diff --git a/pallas-demo/src/main/resources/pallas-console/assets/css/app.118f8f2ec8112fa7e84a402ac4705c97.css b/pallas-demo/src/main/resources/pallas-console/assets/css/app.118f8f2ec8112fa7e84a402ac4705c97.css new file mode 100644 index 00000000..74e7e65a --- /dev/null +++ b/pallas-demo/src/main/resources/pallas-console/assets/css/app.118f8f2ec8112fa7e84a402ac4705c97.css @@ -0,0 +1,4 @@ +.el-breadcrumb:after,.el-breadcrumb:before,.el-button-group:after,.el-button-group:before,.el-form-item:after,.el-form-item:before,.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-checkbox-button__original,.el-pagination--small .arrow.disabled,.el-table--hidden,.el-table .hidden-columns,.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-breadcrumb:after,.el-button-group:after,.el-form-item:after,.el-form-item__content:after{clear:both}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-dialog__header:after,.el-dialog__header:before{display:table;content:""}.el-dialog__header:after{clear:both}@font-face{font-family:element-icons;src:url(data:application/font-woff;base64,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) format("woff"),url(/assets/fonts/element-icons.b02bdc1.ttf) format("truetype");font-weight:400;font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-arrow-down:before{content:"\E600"}.el-icon-arrow-left:before{content:"\E601"}.el-icon-arrow-right:before{content:"\E602"}.el-icon-arrow-up:before{content:"\E603"}.el-icon-caret-bottom:before{content:"\E604"}.el-icon-caret-left:before{content:"\E605"}.el-icon-caret-right:before{content:"\E606"}.el-icon-caret-top:before{content:"\E607"}.el-icon-check:before{content:"\E608"}.el-icon-circle-check:before{content:"\E609"}.el-icon-circle-close:before{content:"\E60A"}.el-icon-circle-cross:before{content:"\E60B"}.el-icon-close:before{content:"\E60C"}.el-icon-upload:before{content:"\E60D"}.el-icon-d-arrow-left:before{content:"\E60E"}.el-icon-d-arrow-right:before{content:"\E60F"}.el-icon-d-caret:before{content:"\E610"}.el-icon-date:before{content:"\E611"}.el-icon-delete:before{content:"\E612"}.el-icon-document:before{content:"\E613"}.el-icon-edit:before{content:"\E614"}.el-icon-information:before{content:"\E615"}.el-icon-loading:before{content:"\E616"}.el-icon-menu:before{content:"\E617"}.el-icon-message:before{content:"\E618"}.el-icon-minus:before{content:"\E619"}.el-icon-more:before{content:"\E61A"}.el-icon-picture:before{content:"\E61B"}.el-icon-plus:before{content:"\E61C"}.el-icon-search:before{content:"\E61D"}.el-icon-setting:before{content:"\E61E"}.el-icon-share:before{content:"\E61F"}.el-icon-star-off:before{content:"\E620"}.el-icon-star-on:before{content:"\E621"}.el-icon-time:before{content:"\E622"}.el-icon-warning:before{content:"\E623"}.el-icon-delete2:before{content:"\E624"}.el-icon-upload2:before{content:"\E627"}.el-icon-view:before{content:"\E626"}.el-icon-loading{animation:a 1s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#48576a}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span{display:inline-block;font-size:13px;min-width:28px;height:28px;line-height:28px;vertical-align:top;box-sizing:border-box}.el-pagination .el-select .el-input{width:110px}.el-pagination .el-select .el-input input{padding-right:25px;border-radius:2px;height:28px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#20a0ff}.el-pagination button.disabled{color:#e4e4e4;background-color:#fff}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat #fff;background-size:16px;border:1px solid #d1dbe5;cursor:pointer;margin:0;color:#97a8be}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px}.el-pagination .btn-prev{border-radius:2px 0 0 2px;border-right:0}.el-pagination .btn-next{border-radius:0 2px 2px 0;border-left:0}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .el-pager li{border-radius:2px}.el-pagination__sizes{margin:0 10px 0 0}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;border-color:#d1dbe5}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#20a0ff}.el-pagination__jump{margin-left:10px}.el-pagination__total{margin:0 10px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{border:1px solid #d1dbe5;border-radius:2px;line-height:18px;padding:4px 2px;width:30px;text-align:center;margin:0 6px;box-sizing:border-box;transition:border .3s;-moz-appearance:textfield}.el-pager,.el-pager li{vertical-align:top;display:inline-block;margin:0}.el-pagination__editor::-webkit-inner-spin-button,.el-pagination__editor::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__editor:focus{outline:0;border-color:#20a0ff}.el-autocomplete-suggestion__wrap,.el-pager li{border:1px solid #d1dbe5;box-sizing:border-box}.el-pager{-moz-user-select:none;user-select:none;list-style:none;font-size:0;padding:0}.el-date-table,.el-pager,.el-radio{-webkit-user-select:none;-ms-user-select:none}.el-date-table,.el-radio,.el-time-panel{-moz-user-select:none}.el-pager li{background:#fff}.el-pager li:last-child{border-right:1px solid #d1dbe5}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#97a8be}.el-pager li.active+li{border-left:0;padding-left:5px}.el-pager li:hover{color:#20a0ff}.el-pager li.active{border-color:#20a0ff;background-color:#20a0ff;color:#fff;cursor:default}.el-dialog{position:absolute;left:50%;transform:translateX(-50%);background:#fff;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;margin-bottom:50px}.el-dialog--tiny{width:30%}.el-dialog--small{width:50%}.el-dialog--large{width:90%}.el-dialog--full{width:100%;top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{top:0;right:0;bottom:0;left:0;position:fixed;overflow:auto;margin:0}.el-autocomplete,.el-dropdown{display:inline-block;position:relative}.el-dialog__header{padding:20px 20px 0}.el-dialog__headerbtn{float:right;background:0 0;border:none;outline:0;padding:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#bfcbd9}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#20a0ff}.el-dialog__title{line-height:1;font-size:16px;color:#1f2d3d}.el-dialog__body{padding:30px 20px;color:#48576a;font-size:14px}.el-dialog__footer{padding:10px 20px 15px}.dialog-fade-enter-active{animation:d .3s}.dialog-fade-leave-active{animation:e .3s}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 0 6px 0 rgba(0,0,0,.04),0 2px 4px 0 rgba(0,0,0,.12)}.el-autocomplete-suggestion li{list-style:none;line-height:36px;padding:0 10px;margin:0;cursor:pointer;color:#48576a;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover{background-color:#e4e8f1}.el-autocomplete-suggestion li.highlighted{background-color:#20a0ff;color:#fff}.el-autocomplete-suggestion li:active{background-color:#0082e6}.el-autocomplete-suggestion.is-loading li:hover,.el-dropdown-menu{background-color:#fff}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #d1dbe5}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-autocomplete-suggestion__wrap{max-height:280px;overflow:auto;background-color:#fff;padding:6px 0;border-radius:2px}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-dropdown{color:#48576a;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-right:5px;padding-left:5px}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown-menu{margin:5px 0;border:1px solid #d1dbe5;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.12);padding:6px 0;z-index:10;position:absolute;top:0;left:0;min-width:100px}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 10px;margin:0;cursor:pointer}.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e4e8f1;color:#48576a}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bfcbd9;pointer-events:none}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #d1dbe5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -10px;background-color:#fff}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;font-size:14px;color:#48576a;padding:0 20px;cursor:pointer;position:relative;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-menu{border-radius:2px;list-style:none;position:relative;margin:0;padding-left:0;background-color:#eef1f6}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu li{list-style:none}.el-menu--dark{background-color:#324157}.el-menu--dark .el-menu-item,.el-menu--dark .el-submenu__title{color:#bfcbd9}.el-menu--dark .el-menu-item:hover,.el-menu--dark .el-submenu__title:hover{background-color:#48576a}.el-menu--dark .el-submenu .el-menu{background-color:#1f2d3d}.el-menu--dark .el-submenu .el-menu .el-menu-item:hover{background-color:#48576a}.el-menu--horizontal .el-menu-item{float:left;height:60px;line-height:60px;margin:0;cursor:pointer;position:relative;box-sizing:border-box;border-bottom:5px solid transparent}.el-menu--horizontal .el-menu-item a,.el-menu--horizontal .el-menu-item a:hover{color:inherit}.el-menu--horizontal .el-submenu{float:left;position:relative}.el-menu--horizontal .el-submenu>.el-menu{position:absolute;top:65px;left:0;border:1px solid #d1dbe5;padding:5px 0;background-color:#fff;z-index:100;min-width:100%;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-menu--horizontal .el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:5px solid transparent}.el-menu--horizontal .el-submenu .el-menu-item{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px}.el-menu--horizontal .el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:5px;color:#97a8be;margin-top:-3px}.el-menu--horizontal .el-menu-item:hover,.el-menu--horizontal .el-submenu__title:hover{background-color:#eef1f6}.el-menu--horizontal>.el-menu-item:hover,.el-menu--horizontal>.el-submenu.is-active .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{border-bottom:5px solid #20a0ff}.el-menu--horizontal.el-menu--dark .el-menu-item:hover,.el-menu--horizontal.el-menu--dark .el-submenu__title:hover{background-color:#324157}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item:hover,.el-menu--horizontal.el-menu--dark .el-submenu .el-submenu-title:hover,.el-menu-item:hover{background-color:#d1dbe5}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item,.el-menu--horizontal.el-menu--dark .el-submenu .el-submenu-title{color:#48576a}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item.is-active,.el-menu-item.is-active{color:#20a0ff}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center}.el-menu-item *{vertical-align:middle}.el-menu-item:first-child{margin-left:0}.el-menu-item:last-child{margin-right:0}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center}.el-submenu .el-menu{background-color:#e4e8f1}.el-submenu .el-menu-item:hover,.el-submenu__title:hover{background-color:#d1dbe5}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-active .el-submenu__title{border-bottom-color:#20a0ff}.el-submenu__title{position:relative}.el-submenu__title *{vertical-align:middle}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding-top:15px;line-height:normal;font-size:14px;padding-left:20px;color:#97a8be}.el-radio-button__inner,.el-radio-group,.el-radio__input{line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}.el-radio{color:#1f2d3d;cursor:pointer;white-space:nowrap}.el-radio+.el-radio{margin-left:15px}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0}.el-radio__input.is-focus .el-radio__inner{border-color:#20a0ff}.el-radio__input.is-checked .el-radio__inner{border-color:#20a0ff;background:#20a0ff}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-disabled .el-radio__inner{background-color:#eef1f6;border-color:#d1dbe5;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#eef1f6}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#d1dbe5;border-color:#d1dbe5}.el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#fff}.el-radio__input.is-disabled+.el-radio__label{color:#bbb;cursor:not-allowed}.el-radio__inner{border:1px solid #bfcbd9;width:18px;height:18px;border-radius:50%;cursor:pointer;box-sizing:border-box}.el-radio__inner:hover{border-color:#20a0ff}.el-radio__inner:after{width:6px;height:6px;border-radius:50%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s cubic-bezier(.71,-.46,.88,.6)}.el-switch__core,.el-switch__label{width:46px;height:22px;cursor:pointer}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative}.el-radio__label{font-size:14px;padding-left:5px}.el-radio-group{display:inline-block;font-size:0}.el-radio-group .el-radio{font-size:14px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #bfcbd9;border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button__inner{white-space:nowrap;background:#fff;border:1px solid #bfcbd9;border-left:0;color:#1f2d3d;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:10px 15px;font-size:14px;border-radius:0}.el-radio-button__inner:hover{color:#20a0ff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1;left:-999px}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#20a0ff;border-color:#20a0ff;box-shadow:-1px 0 0 0 #20a0ff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#bfcbd9;cursor:not-allowed;background-image:none;background-color:#eef1f6;border-color:#d1dbe5;box-shadow:none}.el-radio-button--large .el-radio-button__inner{padding:11px 19px;font-size:16px;border-radius:0}.el-radio-button--small .el-radio-button__inner{padding:7px 9px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner{padding:4px;font-size:12px;border-radius:0}.el-switch,.el-switch__label,.el-switch__label *{font-size:14px;display:inline-block}.el-switch{position:relative;line-height:22px;height:22px;vertical-align:middle}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-switch.is-disabled .el-switch__core{border-color:#e4e8f1!important;background:#e4e8f1!important}.el-switch.is-disabled .el-switch__core span{background-color:#fbfdff!important}.el-switch.is-disabled .el-switch__core~.el-switch__label *{color:#fbfdff!important}.el-switch.is-checked .el-switch__core{border-color:#20a0ff;background-color:#20a0ff}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:.2s;position:absolute;left:0;top:0;z-index:2}.el-switch__label *{line-height:1;top:4px;position:absolute;color:#fff}.el-switch__label--left i{left:6px}.el-switch__label--right i{right:6px}.el-switch__input{display:none}.el-switch__input.allow-focus{z-index:0;display:inline;display:initial;position:absolute;left:0;top:0;outline:0;opacity:0}.el-switch__input.allow-focus:focus+.el-switch__core{box-shadow:0 0 2px #20a0ff}.el-switch__core{margin:0;display:inline-block;position:relative;border:1px solid #bfcbd9;outline:0;border-radius:12px;box-sizing:border-box;background:#bfcbd9;transition:border-color .3s,background-color .3s;z-index:1}.el-switch__core .el-switch__button{top:0;left:0;position:absolute;border-radius:100%;transition:transform .3s;width:16px;height:16px;background-color:#fff}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #d1dbe5;border-radius:2px;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);box-sizing:border-box;margin:5px 0}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#20a0ff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover,.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#e4e8f1}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:10px;font-family:element-icons;content:"\E608";font-size:11px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:8px 10px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#48576a;height:36px;line-height:1.5;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.selected{background-color:#20a0ff}.el-select-dropdown__item.selected.hover{background-color:#1c8de0}.el-select-dropdown__item span{line-height:1.5!important}.el-select-dropdown__item.is-disabled{color:#bfcbd9;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-group{margin:0;padding:0}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-group__wrap{list-style:none;margin:0;padding:0}.el-select-group__title{padding-left:10px;font-size:12px;color:#999;height:30px;line-height:30px}.el-select{display:inline-block;position:relative}.el-select:hover .el-input__inner{border-color:#8391a5}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#20a0ff}.el-select .el-input .el-input__icon{color:#bfcbd9;font-size:12px;transition:transform .3s;transform:translateY(-50%) rotate(180deg);line-height:16px;top:50%;cursor:pointer}.el-select .el-input .el-input__icon.is-show-close{transition:0s;width:16px;height:16px;font-size:14px;right:8px;text-align:center;transform:translateY(-50%) rotate(180deg);border-radius:100%;color:#bfcbd9}.el-select .el-input .el-input__icon.is-show-close:hover{color:#97a8be}.el-select .el-input .el-input__icon.is-reverse{transform:translateY(-50%)}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#d1dbe5}.el-select>.el-input{display:block}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{height:24px;line-height:24px;box-sizing:border-box;margin:3px 0 3px 6px}.el-select__input{border:none;outline:0;padding:0;margin-left:10px;color:#666;font-size:14px;vertical-align:baseline;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#bfcbd9;line-height:18px;font-size:12px}.el-select__close:hover{color:#97a8be}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;transform:translateY(-50%)}.el-table,.el-table td,.el-table th{box-sizing:border-box;position:relative}.el-select__tag{display:inline-block;height:24px;line-height:24px;font-size:14px;border-radius:4px;color:#fff;background-color:#20a0ff}.el-select__tag .el-icon-close{font-size:12px}.el-table{overflow:hidden;width:100%;max-width:100%;background-color:#fff;border:1px solid #dfe6ec;font-size:14px;color:#1f2d3d}.el-table .el-tooltip.cell{white-space:nowrap;min-width:50px}.el-table td,.el-table th{height:40px;min-width:0;text-overflow:ellipsis;vertical-align:middle}.el-table:after,.el-table:before{background-color:#dfe6ec}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.is-left,.el-table th.is-left{text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #dfe6ec}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .cell,.el-table th>div{padding-left:18px;padding-right:18px}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table:after{top:0;right:0;width:1px;height:100%}.el-table .caret-wrapper,.el-table th>.cell{position:relative;display:inline-block;vertical-align:middle}.el-table th{white-space:nowrap;overflow:hidden;background-color:#eef1f6;text-align:left}.el-table th.is-sortable{cursor:pointer}.el-table th>div{display:inline-block;line-height:40px;overflow:hidden;white-space:nowrap}.el-table td>div{box-sizing:border-box}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table th>.cell{word-wrap:normal;text-overflow:ellipsis;line-height:30px;width:100%;box-sizing:border-box}.el-table th>.cell.highlight{color:#20a0ff}.el-table .caret-wrapper{cursor:pointer;margin-left:5px;margin-top:-2px;width:16px;height:30px;overflow:visible;overflow:initial}.el-table .cell,.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table .sort-caret{display:inline-block;width:0;height:0;border:0;content:"";position:absolute;left:3px;z-index:2}.el-table .sort-caret.ascending,.el-table .sort-caret.descending{border-right:5px solid transparent;border-left:5px solid transparent}.el-table .sort-caret.ascending{top:9px;border-top:none;border-bottom:5px solid #97a8be}.el-table .sort-caret.descending{bottom:9px;border-top:5px solid #97a8be;border-bottom:none}.el-table .ascending .sort-caret.ascending{border-bottom-color:#48576a}.el-table .descending .sort-caret.descending{border-top-color:#48576a}.el-table td.gutter{width:0}.el-table .cell{white-space:normal;word-break:break-all;line-height:24px}.el-badge__content,.el-message__group p,.el-progress-bar__inner,.el-steps.is-horizontal,.el-tabs__nav,.el-tag,.el-time-spinner,.el-tree-node,.el-upload-list__item-name{white-space:nowrap}.el-table tr input[type=checkbox]{margin:0}.el-table tr{background-color:#fff}.el-table .hidden-columns{position:absolute;z-index:-1}.el-table__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-table__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#5e7382}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;transition:transform .2s ease-in-out;height:40px}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expanded-cell{padding:20px 50px;background-color:#fbfdff;box-shadow:inset 0 2px 0 #f4f4f4}.el-table__expanded-cell:hover{background-color:#fbfdff!important}.el-table--fit{border-right:0;border-bottom:0}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #dfe6ec}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--border td,.el-table--border th{border-right:1px solid #dfe6ec}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;box-shadow:1px 0 8px #d3d4d6;overflow-x:hidden}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#dfe6ec;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#eef1f6}.el-table__fixed-right{top:0;left:auto;right:0;box-shadow:-1px 0 8px #d3d4d6}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-header-wrapper thead div{background-color:#eef1f6;color:#1f2d3d}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #dfe6ec;background-color:#fbfdff;color:#1f2d3d}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #dfe6ec}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed}.el-table__footer-wrapper thead div,.el-table__header-wrapper thead div{background-color:#eef1f6;color:#1f2d3d}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#fbfdff;color:#1f2d3d}.el-table__body-wrapper{overflow:auto;position:relative}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background:#edf7ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#eef1f6}.el-table__body tr.current-row>td{background:#edf7ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #dfe6ec;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;margin-left:5px;cursor:pointer}.el-table__column-filter-trigger i{color:#97a8be}.el-table--enable-row-transition .el-table__body td{transition:background-color .25s ease}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#eef1f6}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #d1dbe5;border-radius:2px;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.12);box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#e4e8f1;color:#48576a}.el-table-filter__list-item.is-active{background-color:#20a0ff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #d1dbe5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#8391a5;cursor:pointer;font-size:14px;padding:0 3px}.el-table-filter__bottom button:hover{color:#20a0ff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#bfcbd9;cursor:not-allowed}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;min-width:224px;user-select:none}.el-date-table td{width:32px;height:32px;box-sizing:border-box;text-align:center;cursor:pointer}.el-date-table td.next-month,.el-date-table td.prev-month{color:#ddd}.el-date-table td.today{color:#20a0ff;position:relative}.el-date-table td.today:before{content:" ";position:absolute;top:0;right:0;width:0;height:0;border-top:.5em solid #20a0ff;border-left:.5em solid transparent}.el-month-table td .cell,.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px}.el-date-table td.available:hover{background-color:#e4e8f1}.el-date-table td.in-range{background-color:#d2ecff}.el-date-table td.in-range:hover{background-color:#afddff}.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date{background-color:#20a0ff!important}.el-date-table td.disabled{background-color:#f4f4f4;opacity:1;cursor:not-allowed;color:#ccc}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-date-table td.week{font-size:80%;color:#8391a5}.el-month-table,.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-date-table th{padding:5px;color:#8391a5;font-weight:400}.el-date-table.is-week-mode .el-date-table__row:hover{background-color:#e4e8f1}.el-date-table.is-week-mode .el-date-table__row.current{background-color:#d2ecff}.el-month-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-month-table td .cell{color:#48576a}.el-month-table td .cell:hover{background-color:#e4e8f1}.el-month-table td.disabled .cell{background-color:#f4f4f4;cursor:not-allowed;color:#ccc}.el-month-table td.current:not(.disabled) .cell{background-color:#20a0ff!important;color:#fff}.el-year-table .el-icon{color:#97a8be}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td .cell{color:#48576a}.el-year-table td .cell:hover{background-color:#e4e8f1}.el-year-table td.disabled .cell{background-color:#f4f4f4;cursor:not-allowed;color:#ccc}.el-year-table td.current:not(.disabled) .cell{background-color:#20a0ff!important;color:#fff}.el-date-range-picker{min-width:520px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker.has-sidebar.has-time{min-width:766px}.el-date-range-picker.has-sidebar{min-width:620px}.el-date-range-picker.has-time{min-width:660px}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header button{float:left}.el-date-range-picker__header div{font-size:14px;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-right .el-date-range-picker__header button{float:right}.el-date-range-picker__content.is-right .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#97a8be}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-time-range-picker{min-width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-picker-panel,.el-time-range-picker__body{border-radius:2px;border:1px solid #d1dbe5}.el-picker-panel{color:#48576a;box-shadow:0 2px 6px #ccc;background:#fff;line-height:20px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#48576a;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{background-color:#e4e8f1}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#20a0ff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#97a8be;border:0;background:0 0;cursor:pointer;outline:0;margin-top:3px}.el-date-picker__header-label.active,.el-date-picker__header-label:hover,.el-picker-panel__icon-btn:hover{color:#20a0ff}.el-picker-panel__link-btn{cursor:pointer;color:#20a0ff;text-decoration:none;padding:15px;font-size:12px}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;box-sizing:border-box;padding-top:6px;background-color:#fbfdff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{min-width:254px}.el-date-picker .el-picker-panel__content{min-width:224px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker.has-sidebar.has-time{min-width:434px}.el-date-picker.has-sidebar{min-width:370px}.el-date-picker.has-time{min-width:324px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header-label{font-size:14px;padding:0 5px;line-height:22px;text-align:center;cursor:pointer}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px}.time-select-item.selected:not(.disabled){background-color:#20a0ff;color:#fff}.time-select-item.selected:not(.disabled):hover{background-color:#20a0ff}.time-select-item.disabled{color:#d1dbe5;cursor:not-allowed}.time-select-item:hover{background-color:#e4e8f1;cursor:pointer}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active,.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active,.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-date-editor{position:relative;display:inline-block}.el-date-editor .el-picker-panel{position:absolute;min-width:180px;box-sizing:border-box;box-shadow:0 2px 6px #ccc;background:#fff;z-index:10;top:41px}.el-date-editor.el-input{width:193px}.el-date-editor--daterange.el-input{width:220px}.el-date-editor--datetimerange.el-input{width:350px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33%}.el-time-spinner.has-seconds .el-time-spinner__wrapper:nth-child(2){margin-left:1%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#e4e8f1;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#fff}.el-time-spinner__item.disabled{color:#d1dbe5;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #d1dbe5;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-ms-user-select:none;user-select:none}.el-popover,.el-tabs--border-card{box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-slider__button,.el-slider__button-wrapper{-webkit-user-select:none;-moz-user-select:none}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:":";top:50%;color:#fff;position:absolute;font-size:14px;margin-top:-15px;line-height:16px;background-color:#20a0ff;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:-2px}.el-time-panel__content:before{padding-left:50%;margin-right:-2px}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#8391a5}.el-time-panel__btn.confirm{font-weight:800;color:#20a0ff}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:2px;border:1px solid #d1dbe5;padding:10px;z-index:2000;font-size:12px}.el-popover .popper__arrow,.el-popover .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popover .popper__arrow{border-width:6px}.el-popover .popper__arrow:after{content:" ";border-width:6px}.el-popover[x-placement^=top]{margin-bottom:12px}.el-popover[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#d1dbe5;border-bottom-width:0}.el-popover[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popover[x-placement^=bottom]{margin-top:12px}.el-popover[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#d1dbe5}.el-popover[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popover[x-placement^=right]{margin-left:12px}.el-popover[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#d1dbe5;border-left-width:0}.el-popover[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popover[x-placement^=left]{margin-right:12px}.el-popover[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#d1dbe5}.el-popover[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-popover__title{color:#1f2d3d;font-size:13px;line-height:1;margin-bottom:9px}.v-modal-enter{animation:b .2s ease}.v-modal-leave{animation:c .2s ease forwards}@keyframes b{0%{opacity:0}}@keyframes c{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-message-box{text-align:left;display:inline-block;vertical-align:middle;background-color:#fff;width:420px;border-radius:3px;font-size:16px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:20px 20px 0}.el-message-box__headerbtn{position:absolute;top:19px;right:20px;background:0 0;border:none;outline:0;padding:0;cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:#999}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#20a0ff}.el-message-box__content{padding:30px 20px;color:#48576a;font-size:14px;position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#ff4949}.el-message-box__errormsg{color:#ff4949;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:16px;font-weight:700;height:18px;color:#333}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:1.4}.el-message-box__btns{padding:10px 20px 15px;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:36px!important}.el-message-box__status.el-icon-circle-check{color:#13ce66}.el-message-box__status.el-icon-information{color:#50bfff}.el-message-box__status.el-icon-warning{color:#f7ba2a}.el-message-box__status.el-icon-circle-cross{color:#ff4949}.msgbox-fade-enter-active{animation:d .3s}.msgbox-fade-leave-active{animation:e .3s}@keyframes d{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes e{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:13px;line-height:1}.el-breadcrumb__separator{margin:0 8px;color:#bfcbd9}.el-breadcrumb__item{float:left}.el-breadcrumb__item:last-child .el-breadcrumb__item__inner,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner a:hover{color:#97a8be;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-breadcrumb__item__inner,.el-breadcrumb__item__inner a{transition:color .15s linear;color:#48576a}.el-breadcrumb__item__inner:hover,.el-breadcrumb__item__inner a:hover{color:#20a0ff;cursor:pointer}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner,.el-form-item.is-error .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-textarea__inner{border-color:#ff4949}.el-form-item.is-required .el-form-item__label:before{content:"*";color:#ff4949;margin-right:4px}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#48576a;line-height:1;padding:11px 12px 11px 0;box-sizing:border-box}.el-form-item__content{line-height:36px;position:relative;font-size:14px}.el-form-item__error{color:#ff4949;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-tabs__header{border-bottom:1px solid #d1dbe5;padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:3px;background-color:#20a0ff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#20a0ff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap.is-scrollable{padding:0 15px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#8391a5}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{position:relative;transition:transform .3s;float:left}.el-tabs__item{padding:0 16px;height:42px;box-sizing:border-box;line-height:42px;display:inline-block;list-style:none;font-size:14px;color:#8391a5;position:relative}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{transform:scale(.7);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#97a8be;color:#fff}.el-tabs__item:hover{color:#1f2d3d;cursor:pointer}.el-tabs__item.is-disabled{color:#bbb;cursor:default}.el-tabs__item.is-active{color:#20a0ff}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tag,.slideInLeft-transition,.slideInRight-transition{display:inline-block}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border:1px solid transparent;transition:all .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-right:9px;padding-left:9px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border:1px solid #d1dbe5;border-bottom-color:#fff;border-radius:4px 4px 0 0}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-right:16px;padding-left:16px}.el-tabs--border-card{background:#fff;border:1px solid #d1dbe5}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#eef1f6;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;border-top:0;margin-right:-1px;margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:#fff;border-right-color:#d1dbe5;border-left-color:#d1dbe5}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active:first-child{border-left-color:#d1dbe5}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active:last-child{border-right-color:#d1dbe5}.slideInRight-enter{animation:f .3s}.slideInRight-leave{position:absolute;left:0;right:0;animation:g .3s}.slideInLeft-enter{animation:h .3s}.slideInLeft-leave{position:absolute;left:0;right:0;animation:i .3s}@keyframes f{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes g{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes h{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes i{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tag{background-color:#8391a5;padding:0 5px;height:24px;line-height:22px;font-size:12px;color:#fff;border-radius:4px;box-sizing:border-box;border:1px solid transparent}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;transform:scale(.75);height:18px;width:18px;line-height:18px;vertical-align:middle;top:-1px;right:-2px}.el-tag .el-icon-close:hover{background-color:#fff;color:#8391a5}.el-tag--gray{background-color:#e4e8f1;border-color:#e4e8f1;color:#48576a}.el-tag--gray .el-tag__close:hover{background-color:#48576a;color:#fff}.el-tag--gray.is-hit{border-color:#48576a}.el-tag--primary{background-color:rgba(32,160,255,.1);border-color:rgba(32,160,255,.2);color:#20a0ff}.el-tag--primary .el-tag__close:hover{background-color:#20a0ff;color:#fff}.el-tag--primary.is-hit{border-color:#20a0ff}.el-tag--success{background-color:rgba(18,206,102,.1);border-color:rgba(18,206,102,.2);color:#13ce66}.el-tag--success .el-tag__close:hover{background-color:#13ce66;color:#fff}.el-tag--success.is-hit{border-color:#13ce66}.el-tag--warning{background-color:rgba(247,186,41,.1);border-color:rgba(247,186,41,.2);color:#f7ba2a}.el-tag--warning .el-tag__close:hover{background-color:#f7ba2a;color:#fff}.el-tag--warning.is-hit{border-color:#f7ba2a}.el-tag--danger{background-color:rgba(255,73,73,.1);border-color:rgba(255,73,73,.2);color:#ff4949}.el-tag--danger .el-tag__close:hover{background-color:#ff4949;color:#fff}.el-tag--danger.is-hit{border-color:#ff4949}.el-tree{cursor:default;background:#fff;border:1px solid #d1dbe5}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#5e7382}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree-node__expand-icon,.el-tree-node__label,.el-tree-node__loading-icon{display:inline-block;vertical-align:middle}.el-tree-node__content{line-height:36px;height:36px;cursor:pointer}.el-tree-node__content>.el-checkbox,.el-tree-node__content>.el-tree-node__expand-icon{margin-right:8px}.el-tree-node__content>.el-checkbox{vertical-align:middle}.el-tree-node__content:hover{background:#e4e8f1}.el-tree-node__expand-icon{cursor:pointer;width:0;height:0;margin-left:10px;border:6px solid transparent;border-right-width:0;border-left-color:#97a8be;border-left-width:7px;transform:rotate(0);transition:transform .3s ease-in-out}.el-tree-node__expand-icon:hover{border-left-color:#999}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{border-color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:4px;font-size:14px;color:#97a8be}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#edf7ff}.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;color:#fff;opacity:1;display:table;transition:opacity .2s}.el-alert .el-alert__description{color:#fff;font-size:12px;margin:5px 0 0}.el-alert--success{background-color:#13ce66}.el-alert--info{background-color:#50bfff}.el-alert--warning{background-color:#f7ba2a}.el-alert--error{background-color:#ff4949}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px;display:table-cell;color:#fff;vertical-align:middle}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert__closebtn{font-size:12px;color:#fff;opacity:1;top:12px;right:15px;position:absolute;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{width:330px;padding:20px;box-sizing:border-box;border-radius:2px;position:fixed;right:16px;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);transition:opacity .3s,transform .3s,right .3s,top .4s;overflow:hidden}.el-notification .el-icon-circle-check{color:#13ce66}.el-notification .el-icon-circle-cross{color:#ff4949}.el-notification .el-icon-information{color:#50bfff}.el-notification .el-icon-warning{color:#f7ba2a}.el-notification__group{margin-left:0}.el-notification__group.is-with-icon{margin-left:55px}.el-notification__title{font-weight:400;font-size:16px;color:#1f2d3d;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:10px 0 0;color:#8391a5;text-align:justify}.el-notification__icon{width:40px;height:40px;font-size:40px;float:left;position:relative;top:3px}.el-notification__closeBtn{top:20px;right:20px;position:absolute;cursor:pointer;color:#bfcbd9;font-size:14px}.el-notification__closeBtn:hover{color:#97a8be}.el-notification-fade-enter{transform:translateX(100%);right:0}.el-input-number{display:inline-block;width:180px;position:relative;line-height:normal}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:82px}.el-input-number.is-without-controls .el-input__inner{padding-right:10px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#d1dbe5;color:#d1dbe5}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#d1dbe5;cursor:not-allowed}.el-input-number__decrease,.el-input-number__increase{height:auto;border-left:1px solid #bfcbd9;width:36px;line-height:34px;top:1px;text-align:center;color:#97a8be;cursor:pointer;position:absolute;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#20a0ff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#20a0ff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#d1dbe5;cursor:not-allowed}.el-input-number__increase{right:0}.el-input-number__decrease{right:37px}.el-input-number--large{width:200px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{line-height:40px;width:42px;font-size:16px}.el-input-number--large .el-input-number__decrease{right:43px}.el-input-number--large .el-input__inner{padding-right:94px}.el-input-number--small{width:130px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{line-height:28px;width:30px;font-size:13px}.el-input-number--small .el-input-number__decrease{right:31px}.el-input-number--small .el-input__inner{padding-right:70px}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-progress-bar__inner:after,.el-row:after,.el-row:before,.el-slider:after,.el-slider:before,.el-slider__button-wrapper:after,.el-upload-cover:after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#1f2d3d;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#1f2d3d;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#1f2d3d}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#1f2d3d}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#1f2d3d;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#1f2d3d;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#1f2d3d}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#1f2d3d}.el-tooltip__popper.is-light{background:#fff;border:1px solid #1f2d3d}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#1f2d3d}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#1f2d3d}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#1f2d3d}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#1f2d3d}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-tooltip__popper.is-dark{background:#1f2d3d;color:#fff}.el-slider:after,.el-slider:before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider:after{clear:both}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:4px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:4px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-16px;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:64px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:30px;margin-top:-1px;border:1px solid #bfcbd9;line-height:20px;box-sizing:border-box;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#8391a5}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#20a0ff}.el-slider__runway{width:100%;height:4px;margin:16px 0;background-color:#e4e8f1;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar,.el-slider__runway.disabled .el-slider__button{background-color:#bfcbd9}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1);cursor:not-allowed}.el-slider__input{float:right;margin-top:3px}.el-slider__bar{height:4px;background-color:#20a0ff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{width:36px;height:36px;position:absolute;z-index:1001;top:-16px;transform:translateX(-50%);background-color:transparent;text-align:center;-ms-user-select:none;user-select:none}.el-slider__button-wrapper:after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:12px;height:12px;background-color:#20a0ff;border-radius:50%;transition:.2s;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.5);background-color:#1c8de0}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;width:4px;height:4px;border-radius:100%;background-color:#bfcbd9;transform:translateX(-50%)}.el-loading-mask{position:absolute;z-index:10000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{width:50px;height:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-row{position:relative}.el-loading-spinner .el-loading-text{color:#20a0ff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{width:42px;height:42px;animation:k 2s linear infinite}.el-loading-spinner .path{animation:j 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#20a0ff;stroke-linecap:round}@keyframes j{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box}.el-row:after,.el-row:before{display:table}.el-row:after{clear:both}.el-row--flex{display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-align-bottom{-ms-flex-align:end;align-items:flex-end}.el-row--flex.is-align-middle{-ms-flex-align:center;align-items:center}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-justify-space-between{-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-end{-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-center{-ms-flex-pack:center;justify-content:center}.el-col-1,.el-col-2,.el-col-3,.el-col-4,.el-col-5,.el-col-6,.el-col-7,.el-col-8,.el-col-9,.el-col-10,.el-col-11,.el-col-12,.el-col-13,.el-col-14,.el-col-15,.el-col-16,.el-col-17,.el-col-18,.el-col-19,.el-col-20,.el-col-21,.el-col-22,.el-col-23,.el-col-24{float:left;box-sizing:border-box}.el-col-0{width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media (max-width:768px){.el-col-xs-0{width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media (min-width:768px){.el-col-sm-0{width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media (min-width:992px){.el-col-md-0{width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media (min-width:1200px){.el-col-lg-0{width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}.el-progress-bar__inner:after{display:inline-block;height:100%;vertical-align:middle}.el-upload{display:inline-block;text-align:center;cursor:pointer}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#8391a5;margin-top:7px}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover{border-color:#20a0ff;color:#20a0ff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-upload__text{color:#97a8be;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#20a0ff;font-style:normal}.el-upload-dragger .el-icon-upload{font-size:67px;color:#97a8be;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid rgba(191,203,217,.2);margin-top:7px;padding-top:5px}.el-upload-dragger:hover{border-color:#20a0ff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #20a0ff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#48576a;line-height:1.8;margin-top:5px;box-sizing:border-box;border-radius:4px;width:100%;position:relative}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;top:-13px;right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#13ce66}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#48576a;transform:scale(.7)}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item:hover{background-color:#eef1f6}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#20a0ff;cursor:pointer}.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none}.el-upload-list__item-name{color:#48576a;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s}.el-upload-list__item-name [class^=el-icon]{color:#97a8be;margin-right:7px;height:100%;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#48576a;display:none}.el-upload-list__item-delete:hover{color:#20a0ff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg) scale(.8)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg) scale(.8)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg) scale(.8);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:transform .3s cubic-bezier(.23,1,.32,1) .1s,opacity .3s cubic-bezier(.23,1,.32,1) .1s;margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#48576a}.el-progress{position:relative;line-height:1}.el-progress.is-exception .el-progress-bar__inner{background-color:#ff4949}.el-progress.is-exception .el-progress__text{color:#ff4949}.el-progress.is-success .el-progress-bar__inner{background-color:#13ce66}.el-progress.is-success .el-progress__text{color:#13ce66}.el-progress__text{font-size:14px;color:#48576a;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle{display:inline-block}.el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#e4e8f1;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#20a0ff;text-align:right;border-radius:100px;line-height:1}.el-progress-bar__innerText{color:#fff;font-size:12px;margin:0 5px}.el-time-spinner{width:100%}.el-spinner-inner{animation:k 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:l 1.5s ease-in-out infinite}@keyframes k{to{transform:rotate(1turn)}}@keyframes l{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);min-width:300px;padding:10px 12px;box-sizing:border-box;border-radius:2px;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#fff;transition:opacity .3s,transform .4s;overflow:hidden}.el-message .el-icon-circle-check{color:#13ce66}.el-message .el-icon-circle-cross{color:#ff4949}.el-message .el-icon-information{color:#50bfff}.el-message .el-icon-warning{color:#f7ba2a}.el-message__group{margin-left:38px;position:relative;height:20px;line-height:20px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-message__group p{font-size:14px;margin:0 34px 0 0;color:#8391a5;text-align:justify}.el-step__head,.el-steps.is-horizontal.is-center{text-align:center}.el-message__group.is-with-icon{margin-left:0}.el-message__img{width:40px;height:40px;position:absolute;left:0;top:0}.el-message__icon{vertical-align:middle;margin-right:8px}.el-message__closeBtn{top:3px;right:0;position:absolute;cursor:pointer;color:#bfcbd9;font-size:14px}.el-message__closeBtn:hover{color:#97a8be}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#ff4949;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;border:1px solid #fff}.el-badge__content.is-dot{width:8px;height:8px;padding:0;right:0;border-radius:50%}.el-badge__content.is-fixed{top:0;right:10px;position:absolute;transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-card{border:1px solid #d1dbe5;border-radius:4px;background-color:#fff;overflow:hidden;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-card__header{padding:18px 20px;border-bottom:1px solid #d1dbe5;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#bfcbd9;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{font-size:0}.el-steps>:last-child .el-step__line{display:none}.el-step.is-horizontal,.el-step.is-vertical .el-step__head,.el-step.is-vertical .el-step__main,.el-step__line{display:inline-block}.el-step{position:relative;vertical-align:top}.el-step:last-child .el-step__main{padding-right:0}.el-step.is-vertical .el-step__main{padding-left:10px}.el-step__line{position:absolute;border-color:inherit;background-color:#bfcbd9}.el-step__line.is-vertical{width:2px;box-sizing:border-box;top:32px;bottom:0;left:15px}.el-step__line.is-horizontal{top:15px;height:2px;left:32px;right:0}.el-step__line.is-icon.is-horizontal{right:4px}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:all .15s;box-sizing:border-box;width:0;height:0}.el-step__icon{display:block;line-height:28px}.el-step__icon>*{line-height:inherit;vertical-align:middle}.el-step__head{width:28px;height:28px;border-radius:50%;background-color:transparent;line-height:28px;font-size:28px;vertical-align:top;transition:all .15s}.el-carousel__arrow,.el-carousel__button{margin:0;transition:.3s;cursor:pointer;outline:0}.el-step__head.is-finish{color:#20a0ff;border-color:#20a0ff}.el-step__head.is-error{color:#ff4949;border-color:#ff4949}.el-step__head.is-success{color:#13ce66;border-color:#13ce66}.el-step__head.is-process,.el-step__head.is-wait{color:#bfcbd9;border-color:#bfcbd9}.el-step__head.is-text{font-size:14px;border-width:2px;border-style:solid}.el-step__head.is-text.is-finish{color:#fff;background-color:#20a0ff;border-color:#20a0ff}.el-step__head.is-text.is-error{color:#fff;background-color:#ff4949;border-color:#ff4949}.el-step__head.is-text.is-success{color:#fff;background-color:#13ce66;border-color:#13ce66}.el-step__head.is-text.is-wait{color:#bfcbd9;background-color:#fff;border-color:#bfcbd9}.el-step__head.is-text.is-process{color:#fff;background-color:#bfcbd9;border-color:#bfcbd9}.el-step__main{white-space:normal;padding-right:10px;text-align:left}.el-step__title{font-size:14px;line-height:32px;display:inline-block}.el-step__title.is-finish{font-weight:700;color:#20a0ff}.el-step__title.is-error{font-weight:700;color:#ff4949}.el-step__title.is-success{font-weight:700;color:#13ce66}.el-step__title.is-wait{font-weight:400;color:#97a8be}.el-step__title.is-process{font-weight:700;color:#48576a}.el-step__description{font-size:12px;font-weight:400;line-height:14px}.el-step__description.is-finish{color:#20a0ff}.el-step__description.is-error{color:#ff4949}.el-step__description.is-success{color:#13ce66}.el-step__description.is-wait{color:#bfcbd9}.el-step__description.is-process{color:#8391a5}.el-carousel{overflow-x:hidden;position:relative}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;padding:0;width:36px;height:36px;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__indicators{position:absolute;list-style:none;bottom:0;left:50%;transform:translateX(-50%);margin:0;padding:0;z-index:2}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#8391a5;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{width:auto;height:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{display:inline-block;background-color:transparent;padding:12px 4px;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;padding:0}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active .el-scrollbar__bar,.el-scrollbar:focus .el-scrollbar__bar,.el-scrollbar:hover .el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(151,168,190,.3);transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(151,168,190,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity .12s ease-out}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-active,.el-cascader-menus,.el-cascader .el-icon-circle-close{z-index:2}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:#fff;opacity:.24;transition:.2s}.el-collapse{border:1px solid #dfe6ec;border-radius:0}.el-collapse-item:last-child{margin-bottom:-1px}.el-collapse-item.is-active>.el-collapse-item__header .el-collapse-item__header__arrow{transform:rotate(90deg)}.el-collapse-item__header{height:43px;line-height:43px;padding-left:15px;background-color:#fff;color:#48576a;cursor:pointer;border-bottom:1px solid #dfe6ec;font-size:13px}.el-collapse-item__header__arrow{margin-right:8px;transition:transform .3s}.el-collapse-item__wrap{will-change:height;background-color:#fbfdff;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #dfe6ec}.el-collapse-item__content{padding:10px 15px;font-size:13px;color:#1f2d3d;line-height:1.769230769230769}.el-cascader{display:inline-block;position:relative}.el-cascader .el-input,.el-cascader .el-input__inner{cursor:pointer}.el-cascader .el-input__icon{transition:none}.el-cascader .el-icon-caret-bottom{transition:transform .3s}.el-cascader .el-icon-caret-bottom.is-reverse{transform:rotate(180deg)}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#bbb}.el-cascader__label{position:absolute;left:0;top:0;height:100%;line-height:36px;padding:0 25px 0 10px;color:#1f2d3d;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;box-sizing:border-box;cursor:pointer;font-size:14px;text-align:left}.el-cascader__label span{color:#97a8be}.el-cascader--large{font-size:16px}.el-cascader--large .el-cascader__label{line-height:40px}.el-cascader--small{font-size:13px}.el-cascader--small .el-cascader__label{line-height:28px}.el-cascader-menus{white-space:nowrap;background:#fff;position:absolute;margin:5px 0;border:1px solid #d1dbe5;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04)}.el-cascader-menu{display:inline-block;vertical-align:top;height:204px;overflow:auto;border-right:1px solid #d1dbe5;background-color:#fff;box-sizing:border-box;margin:0;padding:6px 0;min-width:160px}.el-cascader-menu:last-child{border-right:0}.el-cascader-menu__item{font-size:14px;padding:8px 30px 8px 10px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#48576a;height:36px;line-height:1.5;box-sizing:border-box;cursor:pointer}.el-cascader-menu__item:hover{background-color:#e4e8f1}.el-cascader-menu__item.selected{color:#fff;background-color:#20a0ff}.el-cascader-menu__item.selected.hover{background-color:#1c8de0}.el-cascader-menu__item.is-active{color:#fff;background-color:#20a0ff}.el-cascader-menu__item.is-active:hover{background-color:#1c8de0}.el-cascader-menu__item.is-disabled{color:#bfcbd9;background-color:#fff;cursor:not-allowed}.el-cascader-menu__item.is-disabled:hover{background-color:#fff}.el-cascader-menu__item__keyword{font-weight:700}.el-cascader-menu__item--extensible:after{font-family:element-icons;content:"\E606";font-size:12px;transform:scale(.8);color:#bfcbd9;position:absolute;right:10px;margin-top:1px}.el-cascader-menu--flexible{height:auto;max-height:180px;overflow:auto}.el-cascader-menu--flexible .el-cascader-menu__item{overflow:visible}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#1f2d3d}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#20a0ff;border-color:#20a0ff}.el-color-dropdown__link-btn{cursor:pointer;color:#20a0ff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:#4db3ff}.el-color-picker{display:inline-block;position:relative;line-height:normal}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:36px;padding:6px;border:1px solid #bfcbd9;border-radius:4px;font-size:0}.el-color-picker__color{position:relative;display:inline-block;box-sizing:border-box;border:1px solid #666;width:22px;height:22px;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{font-size:12px;vertical-align:middle;color:#666;position:absolute;top:4px;left:4px}.el-color-picker__icon{display:inline-block;position:relative;top:-6px;margin-left:8px;width:12px;color:#888;font-size:12px}.el-input,.el-input__inner{width:100%;display:inline-block}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;background-color:#fff;border:1px solid #d1dbe5;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.12)}.el-input{position:relative;font-size:14px}.el-input.is-disabled .el-input__inner{background-color:#eef1f6;border-color:#d1dbe5;color:#bbb;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#bfcbd9}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#bfcbd9}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#bfcbd9}.el-input.is-disabled .el-input__inner::placeholder{color:#bfcbd9}.el-input.is-active .el-input__inner{outline:0;border-color:#20a0ff}.el-input__inner{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #bfcbd9;box-sizing:border-box;color:#1f2d3d;font-size:inherit;height:36px;line-height:1;outline:0;padding:3px 10px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-button,.el-checkbox-button__inner{-webkit-appearance:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;outline:0;text-align:center}.el-input__inner::-webkit-input-placeholder{color:#97a8be}.el-input__inner::-moz-placeholder{color:#97a8be}.el-input__inner:-ms-input-placeholder{color:#97a8be}.el-input__inner::placeholder{color:#97a8be}.el-input__inner:hover{border-color:#8391a5}.el-input__inner:focus{border-color:#20a0ff}.el-input__icon{position:absolute;width:35px;height:100%;right:0;top:0;text-align:center;color:#bfcbd9;transition:all .3s}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__icon+.el-input__inner{padding-right:35px}.el-input__icon.is-clickable:hover{cursor:pointer;color:#8391a5}.el-input__icon.is-clickable:hover+.el-input__inner{border-color:#8391a5}.el-input--large{font-size:16px}.el-input--large .el-input__inner{height:42px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:30px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:22px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#fbfdff;color:#97a8be;vertical-align:middle;display:table-cell;position:relative;border:1px solid #bfcbd9;border-radius:4px;padding:0 10px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:block;margin:-10px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-button,.el-textarea__inner{font-size:14px;box-sizing:border-box}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-textarea{display:inline-block;width:100%;vertical-align:bottom}.el-textarea.is-disabled .el-textarea__inner{background-color:#eef1f6;border-color:#d1dbe5;color:#bbb;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#bfcbd9}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#bfcbd9}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#bfcbd9}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#bfcbd9}.el-textarea__inner{display:block;resize:vertical;padding:5px 7px;line-height:1.5;width:100%;color:#1f2d3d;background-color:#fff;background-image:none;border:1px solid #bfcbd9;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#97a8be}.el-textarea__inner::-moz-placeholder{color:#97a8be}.el-textarea__inner:-ms-input-placeholder{color:#97a8be}.el-textarea__inner::placeholder{color:#97a8be}.el-textarea__inner:hover{border-color:#8391a5}.el-textarea__inner:focus{border-color:#20a0ff}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #c4c4c4;color:#1f2d3d;margin:0;padding:10px 15px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#20a0ff;border-color:#20a0ff}.el-button:active{color:#1d90e6;border-color:#1d90e6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#bfcbd9;cursor:not-allowed;background-image:none;background-color:#eef1f6;border-color:#d1dbe5}.el-checkbox,.el-checkbox__input{cursor:pointer;display:inline-block;position:relative;white-space:nowrap}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#d1dbe5;color:#bfcbd9}.el-button.is-active{color:#1d90e6;border-color:#1d90e6}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#20a0ff;color:#20a0ff}.el-button.is-plain:active{background:#fff;border-color:#1d90e6;color:#1d90e6;outline:0}.el-button--primary{background-color:#20a0ff;border-color:#20a0ff}.el-button--primary:focus,.el-button--primary:hover{background:#4db3ff;border-color:#4db3ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#1d90e6;border-color:#1d90e6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-plain{background:#fff;border:1px solid #bfcbd9;color:#1f2d3d}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#fff;border-color:#20a0ff;color:#20a0ff}.el-button--primary.is-plain:active{background:#fff;border-color:#1d90e6;color:#1d90e6;outline:0}.el-button--success{color:#fff;background-color:#13ce66;border-color:#13ce66}.el-button--success:focus,.el-button--success:hover{background:#42d885;border-color:#42d885;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#11b95c;border-color:#11b95c;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-plain{background:#fff;border:1px solid #bfcbd9;color:#1f2d3d}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#fff;border-color:#13ce66;color:#13ce66}.el-button--success.is-plain:active{background:#fff;border-color:#11b95c;color:#11b95c;outline:0}.el-button--warning{color:#fff;background-color:#f7ba2a;border-color:#f7ba2a}.el-button--warning:focus,.el-button--warning:hover{background:#f9c855;border-color:#f9c855;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#dea726;border-color:#dea726;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-plain{background:#fff;border:1px solid #bfcbd9;color:#1f2d3d}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#fff;border-color:#f7ba2a;color:#f7ba2a}.el-button--warning.is-plain:active{background:#fff;border-color:#dea726;color:#dea726;outline:0}.el-button--danger{color:#fff;background-color:#ff4949;border-color:#ff4949}.el-button--danger:focus,.el-button--danger:hover{background:#ff6d6d;border-color:#ff6d6d;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#e64242;border-color:#e64242;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-plain{background:#fff;border:1px solid #bfcbd9;color:#1f2d3d}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#fff;border-color:#ff4949;color:#ff4949}.el-button--danger.is-plain:active{background:#fff;border-color:#e64242;color:#e64242;outline:0}.el-button--info{color:#fff;background-color:#50bfff;border-color:#50bfff}.el-button--info:focus,.el-button--info:hover{background:#73ccff;border-color:#73ccff;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#48ace6;border-color:#48ace6;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-plain{background:#fff;border:1px solid #bfcbd9;color:#1f2d3d}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#fff;border-color:#50bfff;color:#50bfff}.el-button--info.is-plain:active{background:#fff;border-color:#48ace6;color:#48ace6;outline:0}.el-button--large{padding:11px 19px;font-size:16px;border-radius:4px}.el-button--small{padding:7px 9px;font-size:12px;border-radius:4px}.el-button--mini{padding:4px;font-size:12px;border-radius:4px}.el-button--text{border:none;color:#20a0ff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#4db3ff}.el-button--text:active{color:#1d90e6}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button{float:left;position:relative}.el-button-group .el-button+.el-button{margin-left:0}.el-button-group .el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group .el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group .el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group .el-button:not(:last-child){margin-right:-1px}.el-button-group .el-button.is-active,.el-button-group .el-button:active,.el-button-group .el-button:focus,.el-button-group .el-button:hover{z-index:1}.el-checkbox{color:#1f2d3d;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-checkbox+.el-checkbox{margin-left:15px}.el-checkbox__input{outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#20a0ff;border-color:#0190fe}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;border:1px solid #fff;margin-top:-1px;left:3px;right:3px;top:50%}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#20a0ff}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#20a0ff;border-color:#0190fe}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#eef1f6;border-color:#d1dbe5;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#eef1f6}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#d1dbe5;border-color:#d1dbe5}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#fff}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#d1dbe5;border-color:#d1dbe5}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{border-color:#fff}.el-checkbox__input.is-disabled+.el-checkbox__label{color:#bbb;cursor:not-allowed}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #bfcbd9;border-radius:4px;box-sizing:border-box;width:18px;height:18px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#20a0ff}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:2px solid #fff;border-left:0;border-top:0;height:8px;left:5px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:4px;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;left:-999px}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{font-size:14px;padding-left:5px}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#20a0ff;border-color:#20a0ff;box-shadow:-1px 0 0 0 #20a0ff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#bfcbd9;cursor:not-allowed;background-image:none;background-color:#eef1f6;border-color:#d1dbe5;box-shadow:none}.el-checkbox-button__inner,.el-transfer-panel{background:#fff;vertical-align:middle;box-sizing:border-box}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#20a0ff}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #bfcbd9;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button__inner{line-height:1;white-space:nowrap;border:1px solid #bfcbd9;border-left:0;color:#1f2d3d;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:10px 15px;font-size:14px;border-radius:0}.el-checkbox-button__inner:hover{color:#20a0ff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;left:-999px}.el-checkbox-button--large .el-checkbox-button__inner{padding:11px 19px;font-size:16px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner{padding:7px 9px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner{padding:4px;font-size:12px;border-radius:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 10px}.el-transfer__buttons .el-button{display:block;margin:0 auto;padding:8px 12px}.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__buttons .el-button [class*=el-icon-]+span{margin-left:0}.el-transfer__buttons .el-button:first-child{margin-bottom:6px}.el-transfer-panel{border:1px solid #d1dbe5;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);display:inline-block;width:200px;position:relative}.el-transfer-panel .el-transfer-panel__header{height:36px;line-height:36px;background:#fbfdff;margin:0;padding-left:20px;border-bottom:1px solid #d1dbe5;box-sizing:border-box;color:#1f2d3d}.el-transfer-panel .el-transfer-panel__footer{height:36px;background:#fff;margin:0;padding:0;border-top:1px solid #d1dbe5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#8391a5}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:32px;line-height:32px;padding:6px 20px 0;color:#8391a5}.el-transfer-panel .el-checkbox__label{padding-left:14px}.el-transfer-panel .el-checkbox__inner{width:14px;height:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-transfer-panel__body{padding-bottom:36px;height:246px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:214px}.el-transfer-panel__item{height:32px;line-height:32px;padding-left:20px;display:block}.el-transfer-panel__item .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:28px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:9px}.el-transfer-panel__item.el-checkbox{color:#48576a}.el-transfer-panel__item:hover{background:#e4e8f1}.el-transfer-panel__filter{margin-top:10px;text-align:center;padding:0 10px;width:100%;box-sizing:border-box}.el-transfer-panel__filter .el-input__inner{height:22px;width:100%;display:inline-block;box-sizing:border-box}.el-transfer-panel__filter .el-input__icon{right:10px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(/assets/fonts/fontawesome-webfont.674f50d.eot);src:url(/assets/fonts/fontawesome-webfont.674f50d.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(/assets/fonts/fontawesome-webfont.af7ae50.woff2) format("woff2"),url(/assets/fonts/fontawesome-webfont.fee66e7.woff) format("woff"),url(/assets/fonts/fontawesome-webfont.b06871f.ttf) format("truetype"),url(/assets/img/fontawesome-webfont.912ec66.svg#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:m 2s infinite linear;animation:m 2s infinite linear}.fa-pulse{-webkit-animation:m 1s infinite steps(8);animation:m 1s infinite steps(8)}@-webkit-keyframes m{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes m{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\F000"}.fa-music:before{content:"\F001"}.fa-search:before{content:"\F002"}.fa-envelope-o:before{content:"\F003"}.fa-heart:before{content:"\F004"}.fa-star:before{content:"\F005"}.fa-star-o:before{content:"\F006"}.fa-user:before{content:"\F007"}.fa-film:before{content:"\F008"}.fa-th-large:before{content:"\F009"}.fa-th:before{content:"\F00A"}.fa-th-list:before{content:"\F00B"}.fa-check:before{content:"\F00C"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\F00D"}.fa-search-plus:before{content:"\F00E"}.fa-search-minus:before{content:"\F010"}.fa-power-off:before{content:"\F011"}.fa-signal:before{content:"\F012"}.fa-cog:before,.fa-gear:before{content:"\F013"}.fa-trash-o:before{content:"\F014"}.fa-home:before{content:"\F015"}.fa-file-o:before{content:"\F016"}.fa-clock-o:before{content:"\F017"}.fa-road:before{content:"\F018"}.fa-download:before{content:"\F019"}.fa-arrow-circle-o-down:before{content:"\F01A"}.fa-arrow-circle-o-up:before{content:"\F01B"}.fa-inbox:before{content:"\F01C"}.fa-play-circle-o:before{content:"\F01D"}.fa-repeat:before,.fa-rotate-right:before{content:"\F01E"}.fa-refresh:before{content:"\F021"}.fa-list-alt:before{content:"\F022"}.fa-lock:before{content:"\F023"}.fa-flag:before{content:"\F024"}.fa-headphones:before{content:"\F025"}.fa-volume-off:before{content:"\F026"}.fa-volume-down:before{content:"\F027"}.fa-volume-up:before{content:"\F028"}.fa-qrcode:before{content:"\F029"}.fa-barcode:before{content:"\F02A"}.fa-tag:before{content:"\F02B"}.fa-tags:before{content:"\F02C"}.fa-book:before{content:"\F02D"}.fa-bookmark:before{content:"\F02E"}.fa-print:before{content:"\F02F"}.fa-camera:before{content:"\F030"}.fa-font:before{content:"\F031"}.fa-bold:before{content:"\F032"}.fa-italic:before{content:"\F033"}.fa-text-height:before{content:"\F034"}.fa-text-width:before{content:"\F035"}.fa-align-left:before{content:"\F036"}.fa-align-center:before{content:"\F037"}.fa-align-right:before{content:"\F038"}.fa-align-justify:before{content:"\F039"}.fa-list:before{content:"\F03A"}.fa-dedent:before,.fa-outdent:before{content:"\F03B"}.fa-indent:before{content:"\F03C"}.fa-video-camera:before{content:"\F03D"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\F03E"}.fa-pencil:before{content:"\F040"}.fa-map-marker:before{content:"\F041"}.fa-adjust:before{content:"\F042"}.fa-tint:before{content:"\F043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\F044"}.fa-share-square-o:before{content:"\F045"}.fa-check-square-o:before{content:"\F046"}.fa-arrows:before{content:"\F047"}.fa-step-backward:before{content:"\F048"}.fa-fast-backward:before{content:"\F049"}.fa-backward:before{content:"\F04A"}.fa-play:before{content:"\F04B"}.fa-pause:before{content:"\F04C"}.fa-stop:before{content:"\F04D"}.fa-forward:before{content:"\F04E"}.fa-fast-forward:before{content:"\F050"}.fa-step-forward:before{content:"\F051"}.fa-eject:before{content:"\F052"}.fa-chevron-left:before{content:"\F053"}.fa-chevron-right:before{content:"\F054"}.fa-plus-circle:before{content:"\F055"}.fa-minus-circle:before{content:"\F056"}.fa-times-circle:before{content:"\F057"}.fa-check-circle:before{content:"\F058"}.fa-question-circle:before{content:"\F059"}.fa-info-circle:before{content:"\F05A"}.fa-crosshairs:before{content:"\F05B"}.fa-times-circle-o:before{content:"\F05C"}.fa-check-circle-o:before{content:"\F05D"}.fa-ban:before{content:"\F05E"}.fa-arrow-left:before{content:"\F060"}.fa-arrow-right:before{content:"\F061"}.fa-arrow-up:before{content:"\F062"}.fa-arrow-down:before{content:"\F063"}.fa-mail-forward:before,.fa-share:before{content:"\F064"}.fa-expand:before{content:"\F065"}.fa-compress:before{content:"\F066"}.fa-plus:before{content:"\F067"}.fa-minus:before{content:"\F068"}.fa-asterisk:before{content:"\F069"}.fa-exclamation-circle:before{content:"\F06A"}.fa-gift:before{content:"\F06B"}.fa-leaf:before{content:"\F06C"}.fa-fire:before{content:"\F06D"}.fa-eye:before{content:"\F06E"}.fa-eye-slash:before{content:"\F070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\F071"}.fa-plane:before{content:"\F072"}.fa-calendar:before{content:"\F073"}.fa-random:before{content:"\F074"}.fa-comment:before{content:"\F075"}.fa-magnet:before{content:"\F076"}.fa-chevron-up:before{content:"\F077"}.fa-chevron-down:before{content:"\F078"}.fa-retweet:before{content:"\F079"}.fa-shopping-cart:before{content:"\F07A"}.fa-folder:before{content:"\F07B"}.fa-folder-open:before{content:"\F07C"}.fa-arrows-v:before{content:"\F07D"}.fa-arrows-h:before{content:"\F07E"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\F080"}.fa-twitter-square:before{content:"\F081"}.fa-facebook-square:before{content:"\F082"}.fa-camera-retro:before{content:"\F083"}.fa-key:before{content:"\F084"}.fa-cogs:before,.fa-gears:before{content:"\F085"}.fa-comments:before{content:"\F086"}.fa-thumbs-o-up:before{content:"\F087"}.fa-thumbs-o-down:before{content:"\F088"}.fa-star-half:before{content:"\F089"}.fa-heart-o:before{content:"\F08A"}.fa-sign-out:before{content:"\F08B"}.fa-linkedin-square:before{content:"\F08C"}.fa-thumb-tack:before{content:"\F08D"}.fa-external-link:before{content:"\F08E"}.fa-sign-in:before{content:"\F090"}.fa-trophy:before{content:"\F091"}.fa-github-square:before{content:"\F092"}.fa-upload:before{content:"\F093"}.fa-lemon-o:before{content:"\F094"}.fa-phone:before{content:"\F095"}.fa-square-o:before{content:"\F096"}.fa-bookmark-o:before{content:"\F097"}.fa-phone-square:before{content:"\F098"}.fa-twitter:before{content:"\F099"}.fa-facebook-f:before,.fa-facebook:before{content:"\F09A"}.fa-github:before{content:"\F09B"}.fa-unlock:before{content:"\F09C"}.fa-credit-card:before{content:"\F09D"}.fa-feed:before,.fa-rss:before{content:"\F09E"}.fa-hdd-o:before{content:"\F0A0"}.fa-bullhorn:before{content:"\F0A1"}.fa-bell:before{content:"\F0F3"}.fa-certificate:before{content:"\F0A3"}.fa-hand-o-right:before{content:"\F0A4"}.fa-hand-o-left:before{content:"\F0A5"}.fa-hand-o-up:before{content:"\F0A6"}.fa-hand-o-down:before{content:"\F0A7"}.fa-arrow-circle-left:before{content:"\F0A8"}.fa-arrow-circle-right:before{content:"\F0A9"}.fa-arrow-circle-up:before{content:"\F0AA"}.fa-arrow-circle-down:before{content:"\F0AB"}.fa-globe:before{content:"\F0AC"}.fa-wrench:before{content:"\F0AD"}.fa-tasks:before{content:"\F0AE"}.fa-filter:before{content:"\F0B0"}.fa-briefcase:before{content:"\F0B1"}.fa-arrows-alt:before{content:"\F0B2"}.fa-group:before,.fa-users:before{content:"\F0C0"}.fa-chain:before,.fa-link:before{content:"\F0C1"}.fa-cloud:before{content:"\F0C2"}.fa-flask:before{content:"\F0C3"}.fa-cut:before,.fa-scissors:before{content:"\F0C4"}.fa-copy:before,.fa-files-o:before{content:"\F0C5"}.fa-paperclip:before{content:"\F0C6"}.fa-floppy-o:before,.fa-save:before{content:"\F0C7"}.fa-square:before{content:"\F0C8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\F0C9"}.fa-list-ul:before{content:"\F0CA"}.fa-list-ol:before{content:"\F0CB"}.fa-strikethrough:before{content:"\F0CC"}.fa-underline:before{content:"\F0CD"}.fa-table:before{content:"\F0CE"}.fa-magic:before{content:"\F0D0"}.fa-truck:before{content:"\F0D1"}.fa-pinterest:before{content:"\F0D2"}.fa-pinterest-square:before{content:"\F0D3"}.fa-google-plus-square:before{content:"\F0D4"}.fa-google-plus:before{content:"\F0D5"}.fa-money:before{content:"\F0D6"}.fa-caret-down:before{content:"\F0D7"}.fa-caret-up:before{content:"\F0D8"}.fa-caret-left:before{content:"\F0D9"}.fa-caret-right:before{content:"\F0DA"}.fa-columns:before{content:"\F0DB"}.fa-sort:before,.fa-unsorted:before{content:"\F0DC"}.fa-sort-desc:before,.fa-sort-down:before{content:"\F0DD"}.fa-sort-asc:before,.fa-sort-up:before{content:"\F0DE"}.fa-envelope:before{content:"\F0E0"}.fa-linkedin:before{content:"\F0E1"}.fa-rotate-left:before,.fa-undo:before{content:"\F0E2"}.fa-gavel:before,.fa-legal:before{content:"\F0E3"}.fa-dashboard:before,.fa-tachometer:before{content:"\F0E4"}.fa-comment-o:before{content:"\F0E5"}.fa-comments-o:before{content:"\F0E6"}.fa-bolt:before,.fa-flash:before{content:"\F0E7"}.fa-sitemap:before{content:"\F0E8"}.fa-umbrella:before{content:"\F0E9"}.fa-clipboard:before,.fa-paste:before{content:"\F0EA"}.fa-lightbulb-o:before{content:"\F0EB"}.fa-exchange:before{content:"\F0EC"}.fa-cloud-download:before{content:"\F0ED"}.fa-cloud-upload:before{content:"\F0EE"}.fa-user-md:before{content:"\F0F0"}.fa-stethoscope:before{content:"\F0F1"}.fa-suitcase:before{content:"\F0F2"}.fa-bell-o:before{content:"\F0A2"}.fa-coffee:before{content:"\F0F4"}.fa-cutlery:before{content:"\F0F5"}.fa-file-text-o:before{content:"\F0F6"}.fa-building-o:before{content:"\F0F7"}.fa-hospital-o:before{content:"\F0F8"}.fa-ambulance:before{content:"\F0F9"}.fa-medkit:before{content:"\F0FA"}.fa-fighter-jet:before{content:"\F0FB"}.fa-beer:before{content:"\F0FC"}.fa-h-square:before{content:"\F0FD"}.fa-plus-square:before{content:"\F0FE"}.fa-angle-double-left:before{content:"\F100"}.fa-angle-double-right:before{content:"\F101"}.fa-angle-double-up:before{content:"\F102"}.fa-angle-double-down:before{content:"\F103"}.fa-angle-left:before{content:"\F104"}.fa-angle-right:before{content:"\F105"}.fa-angle-up:before{content:"\F106"}.fa-angle-down:before{content:"\F107"}.fa-desktop:before{content:"\F108"}.fa-laptop:before{content:"\F109"}.fa-tablet:before{content:"\F10A"}.fa-mobile-phone:before,.fa-mobile:before{content:"\F10B"}.fa-circle-o:before{content:"\F10C"}.fa-quote-left:before{content:"\F10D"}.fa-quote-right:before{content:"\F10E"}.fa-spinner:before{content:"\F110"}.fa-circle:before{content:"\F111"}.fa-mail-reply:before,.fa-reply:before{content:"\F112"}.fa-github-alt:before{content:"\F113"}.fa-folder-o:before{content:"\F114"}.fa-folder-open-o:before{content:"\F115"}.fa-smile-o:before{content:"\F118"}.fa-frown-o:before{content:"\F119"}.fa-meh-o:before{content:"\F11A"}.fa-gamepad:before{content:"\F11B"}.fa-keyboard-o:before{content:"\F11C"}.fa-flag-o:before{content:"\F11D"}.fa-flag-checkered:before{content:"\F11E"}.fa-terminal:before{content:"\F120"}.fa-code:before{content:"\F121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\F122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\F123"}.fa-location-arrow:before{content:"\F124"}.fa-crop:before{content:"\F125"}.fa-code-fork:before{content:"\F126"}.fa-chain-broken:before,.fa-unlink:before{content:"\F127"}.fa-question:before{content:"\F128"}.fa-info:before{content:"\F129"}.fa-exclamation:before{content:"\F12A"}.fa-superscript:before{content:"\F12B"}.fa-subscript:before{content:"\F12C"}.fa-eraser:before{content:"\F12D"}.fa-puzzle-piece:before{content:"\F12E"}.fa-microphone:before{content:"\F130"}.fa-microphone-slash:before{content:"\F131"}.fa-shield:before{content:"\F132"}.fa-calendar-o:before{content:"\F133"}.fa-fire-extinguisher:before{content:"\F134"}.fa-rocket:before{content:"\F135"}.fa-maxcdn:before{content:"\F136"}.fa-chevron-circle-left:before{content:"\F137"}.fa-chevron-circle-right:before{content:"\F138"}.fa-chevron-circle-up:before{content:"\F139"}.fa-chevron-circle-down:before{content:"\F13A"}.fa-html5:before{content:"\F13B"}.fa-css3:before{content:"\F13C"}.fa-anchor:before{content:"\F13D"}.fa-unlock-alt:before{content:"\F13E"}.fa-bullseye:before{content:"\F140"}.fa-ellipsis-h:before{content:"\F141"}.fa-ellipsis-v:before{content:"\F142"}.fa-rss-square:before{content:"\F143"}.fa-play-circle:before{content:"\F144"}.fa-ticket:before{content:"\F145"}.fa-minus-square:before{content:"\F146"}.fa-minus-square-o:before{content:"\F147"}.fa-level-up:before{content:"\F148"}.fa-level-down:before{content:"\F149"}.fa-check-square:before{content:"\F14A"}.fa-pencil-square:before{content:"\F14B"}.fa-external-link-square:before{content:"\F14C"}.fa-share-square:before{content:"\F14D"}.fa-compass:before{content:"\F14E"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\F150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\F151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\F152"}.fa-eur:before,.fa-euro:before{content:"\F153"}.fa-gbp:before{content:"\F154"}.fa-dollar:before,.fa-usd:before{content:"\F155"}.fa-inr:before,.fa-rupee:before{content:"\F156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\F157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\F158"}.fa-krw:before,.fa-won:before{content:"\F159"}.fa-bitcoin:before,.fa-btc:before{content:"\F15A"}.fa-file:before{content:"\F15B"}.fa-file-text:before{content:"\F15C"}.fa-sort-alpha-asc:before{content:"\F15D"}.fa-sort-alpha-desc:before{content:"\F15E"}.fa-sort-amount-asc:before{content:"\F160"}.fa-sort-amount-desc:before{content:"\F161"}.fa-sort-numeric-asc:before{content:"\F162"}.fa-sort-numeric-desc:before{content:"\F163"}.fa-thumbs-up:before{content:"\F164"}.fa-thumbs-down:before{content:"\F165"}.fa-youtube-square:before{content:"\F166"}.fa-youtube:before{content:"\F167"}.fa-xing:before{content:"\F168"}.fa-xing-square:before{content:"\F169"}.fa-youtube-play:before{content:"\F16A"}.fa-dropbox:before{content:"\F16B"}.fa-stack-overflow:before{content:"\F16C"}.fa-instagram:before{content:"\F16D"}.fa-flickr:before{content:"\F16E"}.fa-adn:before{content:"\F170"}.fa-bitbucket:before{content:"\F171"}.fa-bitbucket-square:before{content:"\F172"}.fa-tumblr:before{content:"\F173"}.fa-tumblr-square:before{content:"\F174"}.fa-long-arrow-down:before{content:"\F175"}.fa-long-arrow-up:before{content:"\F176"}.fa-long-arrow-left:before{content:"\F177"}.fa-long-arrow-right:before{content:"\F178"}.fa-apple:before{content:"\F179"}.fa-windows:before{content:"\F17A"}.fa-android:before{content:"\F17B"}.fa-linux:before{content:"\F17C"}.fa-dribbble:before{content:"\F17D"}.fa-skype:before{content:"\F17E"}.fa-foursquare:before{content:"\F180"}.fa-trello:before{content:"\F181"}.fa-female:before{content:"\F182"}.fa-male:before{content:"\F183"}.fa-gittip:before,.fa-gratipay:before{content:"\F184"}.fa-sun-o:before{content:"\F185"}.fa-moon-o:before{content:"\F186"}.fa-archive:before{content:"\F187"}.fa-bug:before{content:"\F188"}.fa-vk:before{content:"\F189"}.fa-weibo:before{content:"\F18A"}.fa-renren:before{content:"\F18B"}.fa-pagelines:before{content:"\F18C"}.fa-stack-exchange:before{content:"\F18D"}.fa-arrow-circle-o-right:before{content:"\F18E"}.fa-arrow-circle-o-left:before{content:"\F190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\F191"}.fa-dot-circle-o:before{content:"\F192"}.fa-wheelchair:before{content:"\F193"}.fa-vimeo-square:before{content:"\F194"}.fa-try:before,.fa-turkish-lira:before{content:"\F195"}.fa-plus-square-o:before{content:"\F196"}.fa-space-shuttle:before{content:"\F197"}.fa-slack:before{content:"\F198"}.fa-envelope-square:before{content:"\F199"}.fa-wordpress:before{content:"\F19A"}.fa-openid:before{content:"\F19B"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\F19C"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\F19D"}.fa-yahoo:before{content:"\F19E"}.fa-google:before{content:"\F1A0"}.fa-reddit:before{content:"\F1A1"}.fa-reddit-square:before{content:"\F1A2"}.fa-stumbleupon-circle:before{content:"\F1A3"}.fa-stumbleupon:before{content:"\F1A4"}.fa-delicious:before{content:"\F1A5"}.fa-digg:before{content:"\F1A6"}.fa-pied-piper-pp:before{content:"\F1A7"}.fa-pied-piper-alt:before{content:"\F1A8"}.fa-drupal:before{content:"\F1A9"}.fa-joomla:before{content:"\F1AA"}.fa-language:before{content:"\F1AB"}.fa-fax:before{content:"\F1AC"}.fa-building:before{content:"\F1AD"}.fa-child:before{content:"\F1AE"}.fa-paw:before{content:"\F1B0"}.fa-spoon:before{content:"\F1B1"}.fa-cube:before{content:"\F1B2"}.fa-cubes:before{content:"\F1B3"}.fa-behance:before{content:"\F1B4"}.fa-behance-square:before{content:"\F1B5"}.fa-steam:before{content:"\F1B6"}.fa-steam-square:before{content:"\F1B7"}.fa-recycle:before{content:"\F1B8"}.fa-automobile:before,.fa-car:before{content:"\F1B9"}.fa-cab:before,.fa-taxi:before{content:"\F1BA"}.fa-tree:before{content:"\F1BB"}.fa-spotify:before{content:"\F1BC"}.fa-deviantart:before{content:"\F1BD"}.fa-soundcloud:before{content:"\F1BE"}.fa-database:before{content:"\F1C0"}.fa-file-pdf-o:before{content:"\F1C1"}.fa-file-word-o:before{content:"\F1C2"}.fa-file-excel-o:before{content:"\F1C3"}.fa-file-powerpoint-o:before{content:"\F1C4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\F1C5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\F1C6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\F1C7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\F1C8"}.fa-file-code-o:before{content:"\F1C9"}.fa-vine:before{content:"\F1CA"}.fa-codepen:before{content:"\F1CB"}.fa-jsfiddle:before{content:"\F1CC"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\F1CD"}.fa-circle-o-notch:before{content:"\F1CE"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\F1D0"}.fa-empire:before,.fa-ge:before{content:"\F1D1"}.fa-git-square:before{content:"\F1D2"}.fa-git:before{content:"\F1D3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\F1D4"}.fa-tencent-weibo:before{content:"\F1D5"}.fa-qq:before{content:"\F1D6"}.fa-wechat:before,.fa-weixin:before{content:"\F1D7"}.fa-paper-plane:before,.fa-send:before{content:"\F1D8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\F1D9"}.fa-history:before{content:"\F1DA"}.fa-circle-thin:before{content:"\F1DB"}.fa-header:before{content:"\F1DC"}.fa-paragraph:before{content:"\F1DD"}.fa-sliders:before{content:"\F1DE"}.fa-share-alt:before{content:"\F1E0"}.fa-share-alt-square:before{content:"\F1E1"}.fa-bomb:before{content:"\F1E2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\F1E3"}.fa-tty:before{content:"\F1E4"}.fa-binoculars:before{content:"\F1E5"}.fa-plug:before{content:"\F1E6"}.fa-slideshare:before{content:"\F1E7"}.fa-twitch:before{content:"\F1E8"}.fa-yelp:before{content:"\F1E9"}.fa-newspaper-o:before{content:"\F1EA"}.fa-wifi:before{content:"\F1EB"}.fa-calculator:before{content:"\F1EC"}.fa-paypal:before{content:"\F1ED"}.fa-google-wallet:before{content:"\F1EE"}.fa-cc-visa:before{content:"\F1F0"}.fa-cc-mastercard:before{content:"\F1F1"}.fa-cc-discover:before{content:"\F1F2"}.fa-cc-amex:before{content:"\F1F3"}.fa-cc-paypal:before{content:"\F1F4"}.fa-cc-stripe:before{content:"\F1F5"}.fa-bell-slash:before{content:"\F1F6"}.fa-bell-slash-o:before{content:"\F1F7"}.fa-trash:before{content:"\F1F8"}.fa-copyright:before{content:"\F1F9"}.fa-at:before{content:"\F1FA"}.fa-eyedropper:before{content:"\F1FB"}.fa-paint-brush:before{content:"\F1FC"}.fa-birthday-cake:before{content:"\F1FD"}.fa-area-chart:before{content:"\F1FE"}.fa-pie-chart:before{content:"\F200"}.fa-line-chart:before{content:"\F201"}.fa-lastfm:before{content:"\F202"}.fa-lastfm-square:before{content:"\F203"}.fa-toggle-off:before{content:"\F204"}.fa-toggle-on:before{content:"\F205"}.fa-bicycle:before{content:"\F206"}.fa-bus:before{content:"\F207"}.fa-ioxhost:before{content:"\F208"}.fa-angellist:before{content:"\F209"}.fa-cc:before{content:"\F20A"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\F20B"}.fa-meanpath:before{content:"\F20C"}.fa-buysellads:before{content:"\F20D"}.fa-connectdevelop:before{content:"\F20E"}.fa-dashcube:before{content:"\F210"}.fa-forumbee:before{content:"\F211"}.fa-leanpub:before{content:"\F212"}.fa-sellsy:before{content:"\F213"}.fa-shirtsinbulk:before{content:"\F214"}.fa-simplybuilt:before{content:"\F215"}.fa-skyatlas:before{content:"\F216"}.fa-cart-plus:before{content:"\F217"}.fa-cart-arrow-down:before{content:"\F218"}.fa-diamond:before{content:"\F219"}.fa-ship:before{content:"\F21A"}.fa-user-secret:before{content:"\F21B"}.fa-motorcycle:before{content:"\F21C"}.fa-street-view:before{content:"\F21D"}.fa-heartbeat:before{content:"\F21E"}.fa-venus:before{content:"\F221"}.fa-mars:before{content:"\F222"}.fa-mercury:before{content:"\F223"}.fa-intersex:before,.fa-transgender:before{content:"\F224"}.fa-transgender-alt:before{content:"\F225"}.fa-venus-double:before{content:"\F226"}.fa-mars-double:before{content:"\F227"}.fa-venus-mars:before{content:"\F228"}.fa-mars-stroke:before{content:"\F229"}.fa-mars-stroke-v:before{content:"\F22A"}.fa-mars-stroke-h:before{content:"\F22B"}.fa-neuter:before{content:"\F22C"}.fa-genderless:before{content:"\F22D"}.fa-facebook-official:before{content:"\F230"}.fa-pinterest-p:before{content:"\F231"}.fa-whatsapp:before{content:"\F232"}.fa-server:before{content:"\F233"}.fa-user-plus:before{content:"\F234"}.fa-user-times:before{content:"\F235"}.fa-bed:before,.fa-hotel:before{content:"\F236"}.fa-viacoin:before{content:"\F237"}.fa-train:before{content:"\F238"}.fa-subway:before{content:"\F239"}.fa-medium:before{content:"\F23A"}.fa-y-combinator:before,.fa-yc:before{content:"\F23B"}.fa-optin-monster:before{content:"\F23C"}.fa-opencart:before{content:"\F23D"}.fa-expeditedssl:before{content:"\F23E"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\F240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\F241"}.fa-battery-2:before,.fa-battery-half:before{content:"\F242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\F243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\F244"}.fa-mouse-pointer:before{content:"\F245"}.fa-i-cursor:before{content:"\F246"}.fa-object-group:before{content:"\F247"}.fa-object-ungroup:before{content:"\F248"}.fa-sticky-note:before{content:"\F249"}.fa-sticky-note-o:before{content:"\F24A"}.fa-cc-jcb:before{content:"\F24B"}.fa-cc-diners-club:before{content:"\F24C"}.fa-clone:before{content:"\F24D"}.fa-balance-scale:before{content:"\F24E"}.fa-hourglass-o:before{content:"\F250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\F251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\F252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\F253"}.fa-hourglass:before{content:"\F254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\F255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\F256"}.fa-hand-scissors-o:before{content:"\F257"}.fa-hand-lizard-o:before{content:"\F258"}.fa-hand-spock-o:before{content:"\F259"}.fa-hand-pointer-o:before{content:"\F25A"}.fa-hand-peace-o:before{content:"\F25B"}.fa-trademark:before{content:"\F25C"}.fa-registered:before{content:"\F25D"}.fa-creative-commons:before{content:"\F25E"}.fa-gg:before{content:"\F260"}.fa-gg-circle:before{content:"\F261"}.fa-tripadvisor:before{content:"\F262"}.fa-odnoklassniki:before{content:"\F263"}.fa-odnoklassniki-square:before{content:"\F264"}.fa-get-pocket:before{content:"\F265"}.fa-wikipedia-w:before{content:"\F266"}.fa-safari:before{content:"\F267"}.fa-chrome:before{content:"\F268"}.fa-firefox:before{content:"\F269"}.fa-opera:before{content:"\F26A"}.fa-internet-explorer:before{content:"\F26B"}.fa-television:before,.fa-tv:before{content:"\F26C"}.fa-contao:before{content:"\F26D"}.fa-500px:before{content:"\F26E"}.fa-amazon:before{content:"\F270"}.fa-calendar-plus-o:before{content:"\F271"}.fa-calendar-minus-o:before{content:"\F272"}.fa-calendar-times-o:before{content:"\F273"}.fa-calendar-check-o:before{content:"\F274"}.fa-industry:before{content:"\F275"}.fa-map-pin:before{content:"\F276"}.fa-map-signs:before{content:"\F277"}.fa-map-o:before{content:"\F278"}.fa-map:before{content:"\F279"}.fa-commenting:before{content:"\F27A"}.fa-commenting-o:before{content:"\F27B"}.fa-houzz:before{content:"\F27C"}.fa-vimeo:before{content:"\F27D"}.fa-black-tie:before{content:"\F27E"}.fa-fonticons:before{content:"\F280"}.fa-reddit-alien:before{content:"\F281"}.fa-edge:before{content:"\F282"}.fa-credit-card-alt:before{content:"\F283"}.fa-codiepie:before{content:"\F284"}.fa-modx:before{content:"\F285"}.fa-fort-awesome:before{content:"\F286"}.fa-usb:before{content:"\F287"}.fa-product-hunt:before{content:"\F288"}.fa-mixcloud:before{content:"\F289"}.fa-scribd:before{content:"\F28A"}.fa-pause-circle:before{content:"\F28B"}.fa-pause-circle-o:before{content:"\F28C"}.fa-stop-circle:before{content:"\F28D"}.fa-stop-circle-o:before{content:"\F28E"}.fa-shopping-bag:before{content:"\F290"}.fa-shopping-basket:before{content:"\F291"}.fa-hashtag:before{content:"\F292"}.fa-bluetooth:before{content:"\F293"}.fa-bluetooth-b:before{content:"\F294"}.fa-percent:before{content:"\F295"}.fa-gitlab:before{content:"\F296"}.fa-wpbeginner:before{content:"\F297"}.fa-wpforms:before{content:"\F298"}.fa-envira:before{content:"\F299"}.fa-universal-access:before{content:"\F29A"}.fa-wheelchair-alt:before{content:"\F29B"}.fa-question-circle-o:before{content:"\F29C"}.fa-blind:before{content:"\F29D"}.fa-audio-description:before{content:"\F29E"}.fa-volume-control-phone:before{content:"\F2A0"}.fa-braille:before{content:"\F2A1"}.fa-assistive-listening-systems:before{content:"\F2A2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\F2A3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\F2A4"}.fa-glide:before{content:"\F2A5"}.fa-glide-g:before{content:"\F2A6"}.fa-sign-language:before,.fa-signing:before{content:"\F2A7"}.fa-low-vision:before{content:"\F2A8"}.fa-viadeo:before{content:"\F2A9"}.fa-viadeo-square:before{content:"\F2AA"}.fa-snapchat:before{content:"\F2AB"}.fa-snapchat-ghost:before{content:"\F2AC"}.fa-snapchat-square:before{content:"\F2AD"}.fa-pied-piper:before{content:"\F2AE"}.fa-first-order:before{content:"\F2B0"}.fa-yoast:before{content:"\F2B1"}.fa-themeisle:before{content:"\F2B2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\F2B3"}.fa-fa:before,.fa-font-awesome:before{content:"\F2B4"}.fa-handshake-o:before{content:"\F2B5"}.fa-envelope-open:before{content:"\F2B6"}.fa-envelope-open-o:before{content:"\F2B7"}.fa-linode:before{content:"\F2B8"}.fa-address-book:before{content:"\F2B9"}.fa-address-book-o:before{content:"\F2BA"}.fa-address-card:before,.fa-vcard:before{content:"\F2BB"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\F2BC"}.fa-user-circle:before{content:"\F2BD"}.fa-user-circle-o:before{content:"\F2BE"}.fa-user-o:before{content:"\F2C0"}.fa-id-badge:before{content:"\F2C1"}.fa-drivers-license:before,.fa-id-card:before{content:"\F2C2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\F2C3"}.fa-quora:before{content:"\F2C4"}.fa-free-code-camp:before{content:"\F2C5"}.fa-telegram:before{content:"\F2C6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\F2C7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\F2C8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\F2C9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\F2CA"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\F2CB"}.fa-shower:before{content:"\F2CC"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\F2CD"}.fa-podcast:before{content:"\F2CE"}.fa-window-maximize:before{content:"\F2D0"}.fa-window-minimize:before{content:"\F2D1"}.fa-window-restore:before{content:"\F2D2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\F2D3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\F2D4"}.fa-bandcamp:before{content:"\F2D5"}.fa-grav:before{content:"\F2D6"}.fa-etsy:before{content:"\F2D7"}.fa-imdb:before{content:"\F2D8"}.fa-ravelry:before{content:"\F2D9"}.fa-eercast:before{content:"\F2DA"}.fa-microchip:before{content:"\F2DB"}.fa-snowflake-o:before{content:"\F2DC"}.fa-superpowers:before{content:"\F2DD"}.fa-wpexplorer:before{content:"\F2DE"}.fa-meetup:before{content:"\F2E0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}body{margin:0;padding:0;font-family:Microsoft YaHei,Tahoma,Geneva,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#fff;background-color:#222}a{color:#eee;text-decoration:none}a:hover{color:#97a8be}button,input,keygen,select,textarea{font-family:Microsoft YaHei,Tahoma,Geneva,sans-serif}table{font-size:14px}pre{font:12px/normal Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace}.mrg-lft-10{margin-left:10px}.mrg-top-10{margin-top:10px}.mrg-top-15{margin-top:15px}.pad-top-20{padding-top:20px}.my-breadcrumb{margin:10px 0;background:#373a3c;border-radius:.25rem;height:30px}.my-breadcrumb-content{line-height:30px;font-size:15px;margin:0 15px}.pull-left{float:left!important}.pull-right{float:right!important}.my-a-link a{text-decoration:initial;cursor:pointer}.my-pagination{padding:10px 0}.data-table-filter{overflow:hidden;height:40px;margin-bottom:8px}.el-form--inline .filter-search{margin-right:0}.content{margin:0 0 5px!important}[class*="fa fa-"]{margin-right:4px;margin-left:0}.my-tab-content{background-color:#373a3c;padding:0 15px 15px}.page-content{padding:0 15px 20px}.dropdown-operation li.el-dropdown-menu__item a span{font-size:13px}.dropdown-operation li.el-dropdown-menu__item a span i{color:#bfcbd9}.my-switch{height:36px}.my-switch:after{content:"";display:inline-block;height:36px;width:0;vertical-align:middle}.view-content{height:600px;width:700px;color:#fff}.text-danger{color:#ff4949!important}.text-success{color:#13ce66!important}.text-warning{color:#f7ba2a!important}@media only screen and (min-width:1920px){.chart-auto-size{width:50%}}.el-breadcrumb__item__inner,.el-breadcrumb__item__inner:hover,.el-breadcrumb__item__inner a,.el-breadcrumb__item__inner a:hover{color:#97a8be}.el-breadcrumb__item:last-child .el-breadcrumb__item__inner,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__item__inner a:hover,.el-breadcrumb__item__inner,.el-breadcrumb__item__inner a,.el-form-item__label{color:#fff}.el-input__inner{background-color:#434749;color:#eceeef;border:1px solid #4d4e50}.el-input__inner:focus{outline:0;border-color:#eee}.el-input.is-disabled .el-input__inner{background-color:gray;border-color:#4d4e50}.el-textarea__inner{color:#eceeef;border:1px solid #4d4e50}.el-textarea__inner:focus{outline:0;border-color:#eee}.el-cascader-menu,.el-textarea__inner{background-color:#434749}.el-input-number__decrease,.el-input-number__increase{top:10px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#fff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#fff}.el-select-dropdown{background-color:#434749}.el-select-dropdown__item{color:#eceeef}.el-select .el-input__inner:focus{border-color:#eee}.el-select-dropdown__item.selected{color:#fff;background-color:gray}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover,.el-select-dropdown__item.hover,.el-select-dropdown__item.selected.hover{background-color:gray}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#eee;background-color:#333}.el-table{border:1px solid gray;color:gray;background-color:#373a3c}.el-table__fixed-header-wrapper thead div,.el-table__header-wrapper thead div{color:#fff;background-color:#373a3c}.el-table th{background-color:#373a3c}.el-table tr{background-color:transparent}.el-table__empty-block{height:auto}.el-table .cell,.el-table th>div{padding:10px 10px 10px 6px;box-sizing:border-box;text-overflow:ellipsis}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#323232;background-clip:padding-box}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#222;background-clip:padding-box}.el-table--enable-row-transition .el-table__body td{color:#eee;background-color:transparent;text-align:center}.el-table td,.el-table th.is-leaf{border-bottom:1px solid gray}.el-table--border td,.el-table--border th{border-right:none;text-align:center}.el-table:after,.el-table:before{content:"";position:absolute;background-color:transparent;z-index:1}.el-table-filter{background-color:#373a3c}.el-table-filter__bottom button.is-disabled:hover{color:#bfcbd9}.el-table-filter__bottom button:hover{color:#fff}.el-table__expanded-cell:hover{background-color:#373a3c!important}.el-table__body tr.current-row>td{background:#222}.el-pagination{padding:2px 0}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat transparent;border:1px solid gray;color:gray}.el-pagination button,.el-pagination span{color:#eee}.el-pagination button:hover{color:#fff}.el-pager li{padding:0 4px;color:gray;border-right:0;background-color:transparent;font-size:13px;min-width:28px;height:28px;line-height:28px;text-align:center}.el-pager li:last-child{border-right:1px solid gray}.el-pager li.active{border-color:gray;background-color:transparent}.el-pager li.active+li{border-left:1px solid gray}.el-pager li:hover{color:#fff}.el-autocomplete-suggestion__wrap,.el-pager li{border:1px solid gray}.el-pagination button.disabled{color:rgba(151,168,190,.28);background-color:hsla(0,0%,50%,.52);cursor:not-allowed}.el-pagination__editor{border:1px solid gray;background-color:transparent;color:#eee}.el-pagination__editor:focus{border-color:gray}.el-dialog__title{color:#fff;font-size:14px;font-weight:700}.el-dialog--small{width:auto;min-width:500px}.el-dialog{top:20%;background:#373a3c;border-radius:5px;padding:5px;border:1px solid #434749}.el-dialog__header{padding:10px 0 10px 5px;border-bottom:1px solid #434749}.el-dialog__body{padding:0;padding-top:10px}.el-dialog__footer{padding:10px 20px 5px;text-align:right;box-sizing:border-box;border-top:1px solid #434749}.el-dialog__headerbtn .el-dialog__close:hover{color:#fff}.el-tabs--border-card{background:transparent;border:none}.el-tabs__nav-wrap{margin-bottom:0}.el-tabs__header{border-bottom:1px solid gray}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:none}.el-tabs--border-card>.el-tabs__content{background-color:#373a3c}.el-tabs--border-card>.el-tabs__header{background-color:#333}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:gray}.el-tabs__item.is-active{color:#fff}.el-tabs__active-bar{background-color:gray}.el-tabs__item:hover{color:#fff}.el-tabs__item.is-disabled:hover{color:#bbb;cursor:not-allowed}.el-tree{background:#373a3c;color:#fff;border:1px solid gray}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#222;color:#fff}.el-tree-node__content:hover{background:#333;color:#fff}.el-message-box{background-color:#373a3c;word-wrap:break-word}.el-message-box__title{color:#fff}.el-message-box__close{color:#dcdcdc}.el-message-box__content,.el-upload-list__item-name,.el-upload-list__item .el-icon-close{color:#fff}.el-upload-list__item:hover{background-color:#222}.el-button--primary{color:#fff;background-color:transparent;border-color:gray}.el-button--primary:focus,.el-button--primary:hover{color:#eee;background-color:transparent;border-color:#eee}.el-button--default{color:#fff;background-color:transparent;border-color:gray}.el-button--default:focus,.el-button--default:hover{color:#eee;background-color:transparent;border-color:#eee}.el-button--confirm,.el-message-box__btns .el-button--primary{color:#fff;background-color:transparent;border-color:#ff0}.el-button--confirm:focus,.el-button--confirm:hover{color:#eee;background-color:transparent;border-color:#eee}.el-button--text{color:#eee}.el-button--text:focus,.el-button--text:hover{color:#97a8be}.el-menu--horizontal .el-submenu .el-menu-item{background-color:#373a3c}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item,.el-menu--horizontal.el-menu--dark .el-submenu .el-submenu-title{color:#fff}.el-menu--horizontal .el-submenu>.el-menu{background-color:#373a3c;border:none}.el-menu-item.is-active{color:#fff;border-bottom:5px solid gray}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item.is-active{background-color:#222;color:#fff;border-bottom:none}.el-menu--horizontal>.el-menu-item:hover,.el-menu--horizontal>.el-submenu.is-active .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{border-bottom:5px solid gray}.el-menu--horizontal.el-menu--dark .el-menu-item:hover,.el-menu--horizontal.el-menu--dark .el-submenu__title:hover{background-color:#222}.el-menu--horizontal.el-menu--dark .el-submenu .el-menu-item:hover,.el-menu--horizontal.el-menu--dark .el-submenu .el-submenu-title:hover,.el-menu-item:hover{background-color:#222;color:#fff}.el-picker-panel{color:#eee;background:#373a3c}.el-date-table td.next-month,.el-date-table td.prev-month{color:initial}.el-date-table td{color:#fff}.el-date-table td.today:before{border-top:.5em solid #13ce66}.el-date-table td.today{color:#13ce66}.el-date-table td.available:hover,.el-date-table td.in-range{background-color:#333}.el-date-table td.in-range:hover{background-color:#282828}.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date{background-color:#222!important;color:#fff}.el-picker-panel__footer{background-color:#373a3c}.el-picker-panel__link-btn{color:#eee}.el-picker-panel__btn[disabled]{color:#aaa}.el-picker-panel__btn{color:#eee}.el-picker-panel__icon-btn:hover{color:#fff}.el-time-panel{background-color:#373a3c}.el-time-panel__content:after,.el-time-panel__content:before{background-color:#222}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#2e2e2e}.el-time-panel__btn.confirm{color:#fff}.el-checkbox{color:#eee}.el-checkbox__input.is-disabled .el-checkbox__inner,.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:gray}.el-checkbox-button__inner,.el-transfer-panel{background:#373a3c}.el-transfer-panel{border:1px solid gray}.el-transfer-panel .el-transfer-panel__header{background:#373a3c;color:#eee;border-bottom:1px solid gray}.el-transfer-panel__item.el-checkbox{color:#eee}.el-transfer-panel__item:hover{background-color:#222}.el-transfer-panel .el-transfer-panel__footer{background:#373a3c;border-top:1px solid gray}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:#eee}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{background-color:gray}.el-collapse{border:1px solid #434749}.el-collapse-item__header{color:#fff}.el-collapse-item__header,.el-collapse-item__wrap{background-color:#373a3c;border-bottom:1px solid #434749}.el-collapse-item__content{color:#fff}.el-tag--primary{background-color:rgba(0,0,0,.4);border-color:rgba(0,0,0,.2);color:#eee}.el-tag--primary .el-tag__close:hover{background-color:gray}.el-tag--primary.is-hit{border-color:#eee}.el-tooltip__popper.is-dark{background:#333}.el-tooltip__popper[x-placement^=top] .popper__arrow,.el-tooltip__popper[x-placement^=top] .popper__arrow:after{border-top-color:#333}.el-tooltip__popper[x-placement^=right] .popper__arrow,.el-tooltip__popper[x-placement^=right] .popper__arrow:after{border-right-color:#333}.el-tooltip__popper[x-placement^=bottom] .popper__arrow,.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#333}.el-tooltip__popper[x-placement^=left] .popper__arrow,.el-tooltip__popper[x-placement^=left] .popper__arrow:after{border-left-color:#333}.el-popover{background:#333;border:none;min-width:0}.el-popover[x-placement^=right] .popper__arrow,.el-popover[x-placement^=right] .popper__arrow:after{border-right-color:#333}.el-popover[x-placement^=bottom] .popper__arrow,.el-popover[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#333}.el-popover[x-placement^=top] .popper__arrow,.el-popover[x-placement^=top] .popper__arrow:after{border-top-color:#333}.el-popover[x-placement^=left] .popper__arrow,.el-popover[x-placement^=left] .popper__arrow:after{border-left-color:#333}.el-dropdown{color:#eee}.el-autocomplete-suggestion.is-loading li:hover,.el-dropdown-menu{background-color:#373a3c}.el-dropdown-menu{border:none}.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#333;color:#eee}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#333;border-color:#eee}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#eee}.el-checkbox__inner:hover{border-color:gray}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#333;border-color:#eee}.el-radio{color:#fff}.el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:#32cd32;border-color:#32cd32;box-shadow:-1px 0 0 0 #32cd32}.el-radio-button__inner:hover{color:#32cd32}.el-dialog__wrapper::-webkit-scrollbar,.el-message-box__message::-webkit-scrollbar,.el-table__body-wrapper::-webkit-scrollbar,.el-textarea__inner::-webkit-scrollbar,.el-tree::-webkit-scrollbar,.v-scrollbar::-webkit-scrollbar{width:8px;height:8px;border-radius:8px}.el-dialog__wrapper::-webkit-scrollbar-thumb,.v-scrollbar::-webkit-scrollbar{border-radius:8px;background-color:hsla(0,0%,100%,.5)}.el-message-box__message::-webkit-scrollbar-thumb,.el-table__body-wrapper::-webkit-scrollbar-thumb,.el-textarea__inner::-webkit-scrollbar-thumb,.el-tree::-webkit-scrollbar-thumb{border-radius:8px;background-color:hsla(220,4%,58%,.5)}.el-dialog__wrapper::-webkit-scrollbar-button,.el-message-box__message::-webkit-scrollbar-button,.el-table__body-wrapper::-webkit-scrollbar-button,.el-textarea__inner::-webkit-scrollbar-button,.el-tree::-webkit-scrollbar-button,.v-scrollbar::-webkit-scrollbar{display:none}.el-loading-mask{background-color:rgba(69,69,69,.9)}.el-loading-spinner .el-loading-text{color:#bfcbd9}.el-loading-spinner .path{stroke:#bfcbd9}.el-dropdown-menu__item--divided:before{height:0}.el-scrollbar__wrap{height:100%;overflow:scroll} \ No newline at end of file diff --git a/pallas-demo/src/main/resources/pallas-console/assets/css/app.118f8f2ec8112fa7e84a402ac4705c97.css.map b/pallas-demo/src/main/resources/pallas-console/assets/css/app.118f8f2ec8112fa7e84a402ac4705c97.css.map new file mode 100644 index 00000000..83e33318 --- /dev/null +++ b/pallas-demo/src/main/resources/pallas-console/assets/css/app.118f8f2ec8112fa7e84a402ac4705c97.css.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","file":"assets/css/app.118f8f2ec8112fa7e84a402ac4705c97.css","sourceRoot":""} \ No newline at end of file diff --git a/pallas-demo/src/main/resources/pallas-console/assets/js/app.a3fd8a3a0dcf9bc712ac.js b/pallas-demo/src/main/resources/pallas-console/assets/js/app.a3fd8a3a0dcf9bc712ac.js new file mode 100644 index 00000000..dd144639 --- /dev/null +++ b/pallas-demo/src/main/resources/pallas-console/assets/js/app.a3fd8a3a0dcf9bc712ac.js @@ -0,0 +1,2 @@ +webpackJsonp([1,2],Array(193).concat([function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var a=n(34),o=i(a),s=n(1337),l=i(s),r=n(1343),c=i(r),u=n(1346),d=i(u),p=n(1350),f=i(p),m=n(1338),h=i(m),v=n(1339),g=i(v),b=n(1342),_=i(b),x=n(1341),y=i(x),I=n(1340),w=i(I),C=n(1348),k=i(C),S=n(1349),$=i(S),T=n(1344),N=i(T),P=n(1345),M=i(P),D=n(1347),E=i(D),L=n(1415),V=i(L);o.default.component("index-data-source-item",V.default),o.default.component("Container",c.default),o.default.component("Navbar",d.default),o.default.component("Editor",l.default),o.default.component("Timeline",k.default),o.default.component("Timeline-item",$.default),o.default.component("Version-footer",f.default),o.default.component("chart-container",h.default),o.default.component("chart-no-data",g.default),o.default.component("Pie",_.default),o.default.component("Column",w.default),o.default.component("MyLine",y.default),o.default.component("json-content-dialog",N.default),o.default.component("json-diff",M.default),o.default.component("Panel",E.default),o.default.component("log-monitor",{template:"
"}),o.default.component("preheading-monitor",{template:""}),o.default.component("cluster-manage-search",{template:""})},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=t.SET_LOGIN_USER="SET_LOGIN_USER",a=t.SET_MONITOR_TIME_INTERVAL="SET_MONITOR_TIME_INTERVAL";t.default={SET_LOGIN_USER:i,SET_MONITOR_TIME_INTERVAL:a}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var a=n(34),o=i(a),s=n(2),l=i(s);o.default.filter("formatDate",function(e){var t=void 0;if(null!==e){var n=new Date(e);t=(0,l.default)(n).format("YYYY-MM-DD HH:mm:ss")}else t="-";return t}),o.default.filter("formatOnlyDate",function(e){var t=new Date(e);return(0,l.default)(t).format("MM-DD")}),o.default.filter("formatOnlyTime",function(e){var t=new Date(e);return(0,l.default)(t).format("HH:mm:ss")})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(282);t.default={errorMessage:function(e){i.MessageBox.alert(e,"错误信息",{type:"error",confirmButtonText:"确定"})},successMessage:function(e,t){i.MessageBox.alert(e,"成功信息",{type:"success",confirmButtonText:"确定"}).then(function(){t()}).catch(function(){})},confirmMessage:function(e,t){i.MessageBox.confirm(e,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){t()}).catch(function(){})},success:function(e){(0,i.Message)({showClose:!0,message:e,type:"success"})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=[{name:"login",path:"/login"},{name:"indexManage",path:"/index_manage"},{name:"indexDetail",path:"/index_detail"},{name:"versionManage",path:"/index_detail/version_manage"},{name:"templateManage",path:"/index_detail/template_manage"},{name:"dynamicManage",path:"/index_detail/dynamic_manage"},{name:"flowRecord",path:"/index_detail/flow_record"},{name:"cronDelete",path:"/index_detail/cron_delete"},{name:"routeManage",path:"/index_detail/route_manage"},{name:"serviceManage",path:"/index_detail/service_manage"},{name:"clusterManage",path:"/cluster_manage"},{name:"monitorOverview",path:"/cluster_monitor"},{name:"clusterMonitor",path:"/cluster_monitor/cluster_monitor"},{name:"indicesMonitor",path:"/cluster_monitor/indices_monitor"},{name:"indiceMonitorDetail",path:"/cluster_monitor/indice_monitor_detail"},{name:"nodesMonitor",path:"/cluster_monitor/nodes_monitor"},{name:"nodeMonitorDetail",path:"/cluster_monitor/node_monitor_detail"},{name:"clusterRouteManage",path:"/cluster_route_manage"},{name:"clusterNodeRestart",path:"/cluster_node_restart"},{name:"clusterDetail",path:"/cluster_detail"},{name:"authorityManage",path:"/authority_manage"},{name:"authorityManageAdministrator",path:"/authority_manage_administrator"},{name:"pluginManage",path:"/plugin_manage"},{name:"pluginUpgrade",path:"/plugin_manage/plugin_upgrade"},{name:"agentManage",path:"/agent_manage"},{name:"tokenManage",path:"/token_manage"},{name:"permissionManage",path:"/permission_manage"},{name:"userManage",path:"/permission_manage/user_manage"}];t.default={GetPath:function(e){var t=i.filter(function(t){return t.name===e});if(void 0!==t)return t[0].path;throw new Error("can not find route path ")}}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){n(1545);var i=n(4)(n(632),n(1461),null,null);e.exports=i.exports},function(e,t,n){n(1544);var i=n(4)(n(702),n(1459),null,null);e.exports=i.exports},function(e,t,n){n(1566);var i=n(4)(n(704),n(1491),null,null);e.exports=i.exports},,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var a=n(34),o=i(a),s=n(625),l=i(s);o.default.directive("diff",l.default.diff),o.default.directive("processingDiff",l.default.processingDiff),o.default.directive("semanticDiff",l.default.semanticDiff),o.default.directive("lineDiff",l.default.lineDiff)},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(2),o=i(a);t.default={methods:{bytesToSize:function(e){if(0===e)return"0 B";var t=1024,n=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=Math.floor(Math.log(e)/Math.log(t));return(e/Math.pow(t,i)).toFixed(2)+" "+n[i]},formatDate:function(e,t){var n=new Date(e);return(0,o.default)(n).format(t)}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(34),o=i(a),s=n(1525),l=i(s),r=n(291),c=i(r),u=n(544),d=i(u),p=n(1418),f=i(p),m=n(1382),h=i(m),v=n(1413),g=i(v),b=n(1407),_=i(b),x=n(1376),y=i(x),I=n(1378),w=i(I),C=n(1375),k=i(C),S=n(1386),$=i(S),T=n(1390),N=i(T),P=n(1358),M=i(P),D=n(1373),E=i(D),L=n(1367),V=i(L),F=n(1370),A=i(F),j=n(1369),O=i(j),R=n(1372),G=i(R),q=n(1371),z=i(q),U=n(1363),H=i(U),J=n(1359),B=i(J),W=n(1356),K=i(W),Q=n(1353),Y=i(Q),X=n(1354),Z=i(X),ee=n(1423),te=i(ee),ne=n(1424),ie=i(ne),ae=n(1351),oe=i(ae),se=n(1428),le=i(se),re=n(1419),ce=i(re),ue=n(1421),de=i(ue);o.default.use(l.default),t.default=new l.default({routes:[{path:c.default.GetPath("indexManage"),name:"index_manage",component:f.default},{path:"/",redirect:"index_manage"},{path:c.default.GetPath("login"),name:"login",component:d.default},{path:c.default.GetPath("indexDetail"),component:h.default,children:[{path:"",redirect:"version_manage"},{name:"version_manage",path:c.default.GetPath("versionManage"),component:g.default},{name:"template_manage",path:c.default.GetPath("templateManage"),component:_.default},{name:"dynamic_manage",path:c.default.GetPath("dynamicManage"),component:y.default},{name:"route_manage",path:c.default.GetPath("routeManage"),component:$.default},{name:"service_manage",path:c.default.GetPath("serviceManage"),component:N.default},{name:"flow_record",path:c.default.GetPath("flowRecord"),component:w.default},{name:"cron_delete",path:c.default.GetPath("cronDelete"),component:k.default}]},{path:c.default.GetPath("clusterManage"),name:"cluster_manage",component:M.default},{path:c.default.GetPath("monitorOverview"),component:E.default,children:[{path:"",redirect:"cluster_monitor"},{name:"cluster_monitor",path:c.default.GetPath("clusterMonitor"),component:V.default},{name:"indices_monitor",path:c.default.GetPath("indicesMonitor"),component:A.default},{name:"indice_monitor_detail",path:c.default.GetPath("indiceMonitorDetail"),component:O.default},{name:"nodes_monitor",path:c.default.GetPath("nodesMonitor"),component:G.default},{name:"node_monitor_detail",path:c.default.GetPath("nodeMonitorDetail"),component:z.default}]},{path:c.default.GetPath("clusterRouteManage"),name:"cluster_route_manage",component:H.default},{path:c.default.GetPath("clusterNodeRestart"),name:"cluster_node_restart",component:B.default},{path:c.default.GetPath("clusterDetail"),name:"cluster_detail",component:K.default},{path:c.default.GetPath("authorityManage"),name:"authority_manage",component:Y.default},{path:c.default.GetPath("authorityManageAdministrator"),name:"authority_manage_administrator",component:Z.default},{path:c.default.GetPath("pluginManage"),name:"plugin_manage",component:te.default},{path:c.default.GetPath("pluginUpgrade"),name:"plugin_upgrade",component:ie.default},{path:c.default.GetPath("agentManage"),name:"agent_manage",component:oe.default},{path:c.default.GetPath("tokenManage"),name:"token_manage",component:le.default},{path:c.default.GetPath("permissionManage"),component:ce.default,children:[{path:"",redirect:"user_manage"},{name:"user_manage",path:c.default.GetPath("userManage"),component:de.default}]}]})},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a,o,s=n(331),l=i(s),r=n(25),c=i(r),u=n(34),d=i(u),p=n(1586),f=i(p),m=n(195);d.default.use(f.default),t.default=new f.default.Store({state:{loginUser:"",monitorTimeInterval:{command:"30",from:(new Date).getTime()-18e5,to:(new Date).getTime()}},getters:{},mutations:(a={},(0,l.default)(a,m.SET_LOGIN_USER,function(e,t){e.loginUser=t}),(0,l.default)(a,m.SET_MONITOR_TIME_INTERVAL,function(e,t){e.monitorTimeInterval=(0,c.default)({},t)}),a),actions:(o={},(0,l.default)(o,m.SET_LOGIN_USER,function(e,t){(0,e.commit)(m.SET_LOGIN_USER,t)}),(0,l.default)(o,m.SET_MONITOR_TIME_INTERVAL,function(e,t){(0,e.commit)(m.SET_MONITOR_TIME_INTERVAL,t)}),o)})},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(626),o=i(a),s=n(629),l=i(s),r=n(290),c=i(r),u=n(628),d=i(u),p=n(630),f=i(p),m=n(291),h=i(m),v=n(627),g=i(v),b={array:o.default,http:l.default,message:c.default,option:d.default,validate:f.default,routerMapper:h.default,common:g.default};b.install=function(e){e.prototype.$array=o.default,e.prototype.$http=l.default,e.prototype.$message=c.default,e.prototype.$option=d.default,e.prototype.$validate=f.default,e.prototype.$routermapper=h.default,e.prototype.$common=g.default},t.default=b},,function(e,t){},function(e,t){},function(e,t){},function(e,t){},,function(e,t,n){var i=n(4)(n(631),n(1463),null,null);e.exports=i.exports},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(){function e(e){switch(e){case c.DIFF_INSERT:return"ins";case c.DIFF_DELETE:return"del";case c.DIFF_EQUAL:return"match"}}function t(e){switch(e){case c.DIFF_EQUAL:return" ";case c.DIFF_INSERT:return"+";case c.DIFF_DELETE:return"-"}}function n(e){switch(e){case c.DIFF_EQUAL:return"span";case c.DIFF_INSERT:return"ins";case c.DIFF_DELETE:return"del"}}function i(e){switch(e){case c.DIFF_EQUAL:return"equal";case c.DIFF_INSERT:return"insert";case c.DIFF_DELETE:return"delete"}}function a(e){return 0===(0,r.default)(e).length}function o(e,t,n){n=n||{};var o={};if(e&&e.attrs&&(o=JSON.parse((0,s.default)(e.attrs[i(t)]||{}))),a(o)&&a(n))return"";for(var l in n)o[l]?o[l]=n[l]+" "+o[l]:o[l]=n[l];var r=[];for(var c in o)r.push(c+'="'+o[c]+'"');return" "+r.join(" ")}function l(i,a,s){var l="";switch(a){case m.LINEDIFF:l='
"+t(i)+"";break;case m.INSDEL:l="<"+n(i)+o(s,i)+">"}return l}function u(e,t){var i="";switch(t){case m.LINEDIFF:i="
";break;case m.INSDEL:i=""}return i}function d(e,t,n){for(var i=e.split("\n"),a=0;a/g,s=0;s0&&(n=e.some(function(e){return e===t})),n},strToArray:function(e){if(e.indexOf(",")>0){return e.split(",")}return[e]}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1330),o=i(a);t.default={JSONbigParse:function(e){return o.default.parse(e)},JSONbigStringify:function(e,t,n){return o.default.stringify(e,t,n)},JSONbigStringifyFormat:function(e){return o.default.stringify(e,void 0,2)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={pluginTypes:[{label:"PALLAS",value:0}],versionVdpTypes:[]}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(606),l=i(s),r=n(290),c=i(r);l.default.defaults.baseURL="./pallas";var u=!1;t.default={get:function(e,t){return this.request(e,t,"GET")},post:function(e,t){return this.request(e,t,"POST")},postCerebro:function(e,t){return this.requestCerebro(e,t,"POST")},put:function(e,t){return this.request(e,t,"PUT")},delete:function(e,t){return this.request(e,t,"DELETE")},buildErrorHandler:function(e,t){u||(c.default.errorMessage(e),u=!1),t&&t()},request:function(e,t,n){return new o.default(function(i,a){var o={url:e,method:n,cache:!1};switch(n){case"GET":case"DELETE":o.params=t;break;default:o.data=t}l.default.request(o).then(function(e){200===e.status&&(""!==e.data?200===e.data.status?(u=!1,i(e.data.data)):401===e.data.status?top.location.href=e.data.message:(c.default.errorMessage(e.data.message||"请求失败!"),u=!0,a()):(u=!1,i(e.data.data)))}).catch(function(e){var t=e.response.data?e.response.data.message||"请求失败":"请求失败";c.default.errorMessage(t),u=!0,a()})})},requestCerebro:function(e,t,n){return new o.default(function(i,a){var o={url:e,method:n,cache:!1};switch(n){case"GET":case"DELETE":o.params=t;break;default:o.data=t}l.default.request(o).then(function(e){200===e.status&&(""!==e.data?200===e.data.status?(u=!1,i(e.data.body)):401===e.data.status?top.location.href=e.data.message:(c.default.errorMessage(e.data.message||"请求失败!"),u=!0,a()):(u=!1,i(e.data.body)))}).catch(function(e){var t=e.response.data?e.response.data.message||"请求失败":"请求失败";c.default.errorMessage(t),u=!0,a()})})}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(223),o=i(a),s=n(924),l=i(s),r=function(e){return!!/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(e)&&RegExp.$1<=255&&RegExp.$1>=0&&RegExp.$2<=255&&RegExp.$2>=0&&RegExp.$3<=255&&RegExp.$3>=0&&RegExp.$4<=255&&RegExp.$4>=0},c=function(e){return!!(/^(\d)+$/g.test(e)&&(0,l.default)(e,10)<=65535&&(0,l.default)(e,10)>=0)},u=function(e,t){var n=!0,i=/[^a-zA-Z0-9-_.]/g;if(t){t.some(function(t){return!!(i.test(e)||e.indexOf(t)>=0)})&&(n=!1)}else i.test(e)&&(n=!1);return n},d=function(e){var t=0;if(e)if(e.indexOf(":")<=0)t=1;else{var n=e.split(":");r(n[0])||(t=2),c(n[1])||(t=3)}return t},p=function(e){return(0,o.default)(e).some(function(e){return e.charCodeAt(0)>=65&&e.charCodeAt(0)<=90})};t.default={validateIp:function(e,t,n){""===t?n(new Error("请输入ip地址")):(r(t)||n(new Error("请输入正确的ip")),n())},validatePort:function(e,t,n){""===t?n(new Error("请输入端口号")):(c(t)||n(new Error("请输入正确的端口号")),n())},validateIpPort:function(e,t,n){if(t){if(t.indexOf(":")<=0)n(new Error("请输入正确的ip端口号,以:连接"));else{var i=t.split(":");r(i[0])||n(new Error("请输入正确的ip")),c(i[1])||n(new Error("请输入正确的端口号"))}n()}else n(new Error("请输入ip及端口号"))},validateMultipleIpPort:function(e,t,n){if(t){if(t.indexOf(",")<=0)0!==d(t)&&n(new Error("请输入正确的ip端口号,以:连接")),n();else{t.split(",").some(function(e){return 0!==d(e)})&&n(new Error("请输入正确的ip端口号,以:连接"))}n()}else n(new Error("请输入ip及端口号"))},validateCharacterAndNumber:function(e,t,n){""===t?n(new Error("该内容不能为空")):(u(t)||n(new Error("不允许中文和特殊字符")),n())},validateCharacterAndNumberIsExcludePointAndBar:function(e,t,n){if(""===t)n(new Error("该内容不能为空"));else{u(t,[".","-"])||n(new Error("不允许输入中文和特殊字符")),p(t)&&n(new Error("不允许输入英文大写")),n()}},validateArray:function(e,t,n){Array.isArray(t)&&(0===t.length&&n(new Error("内容为空,请选择")),n())},validateSelect:function(e,t,n){t||n(new Error("内容为空,请选择")),n()},validateTimeExpire:function(e,t,n){t?(Date.parse(new Date)>Date.parse(t)&&n(new Error("日期时间已过期,请重新选择")),n()):n(new Error("请选择日期时间"))},validateTime:function(e,t,n){t?n():n(new Error("请选择日期时间"))}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(544),l=i(s),r=n(195);t.default={data:function(){return{loading:!1,initialized:!1,interval:0}},methods:{loginSuccess:function(){this.init()},heartbeat:function(){var e=this;this.interval=setInterval(function(){e.$http.get("/heartbeat.json").then(function(){})},6e5)},getLoginUser:function(){var e=this;return this.$http.get("/system/user.json").then(function(t){e.$store.dispatch(r.SET_LOGIN_USER,t)})},init:function(){var e=this;this.loading=!0,o.default.all([this.getLoginUser()]).then(function(){e.heartbeat(),e.initialized=!0,e.loading=!1})}},computed:{initComponent:function(){return"/login"===this.$route.path?"Login":"Container"}},created:function(){"/login"!==this.$route.path&&this.init()},destroyed:function(){clearInterval(this.interval)},components:{Login:l.default}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={data:function(){return{loading:!1,loginInfo:{username:"",password:""},loginErrorMsg:""}},methods:{login:function(){var e=this,t=new URLSearchParams;t.append("username",this.loginInfo.username),t.append("password",this.loginInfo.password),this.loading=!0,this.$http.post("/authorization/login",t).then(function(){e.$router.push({path:"/"}),e.$emit("login-success")}).finally(function(){e.loading=!1})}},created:function(){}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(930),o=i(a);n(933),n(931),n(932),t.default={props:["editorId","content","readonly","mode"],data:function(){return{editor:Object,beforeContent:""}},watch:{content:function(e){this.beforeContent!==e&&this.editor.setValue(e,1)}},mounted:function(){var e=this,t=this.mode||"json";this.editor=o.default.edit(this.editorId),this.editor.setValue(this.content,1),this.editor.getSession().setMode("ace/mode/"+t),this.editor.setTheme("ace/theme/monokai"),this.editor.setReadOnly(this.readonly||!1),this.editor.on("change",function(){e.beforeContent=e.editor.getValue(),e.$emit("change-content",e.editor.getValue())})},destroyed:function(){this.editor.destroy(),this.editor.container.remove()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["title"],data:function(){return{isExpand:!0}},methods:{togglePanel:function(){this.isExpand=!this.isExpand}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a),s=n(244),l=i(s),r=n(2),c=i(r);n(353),t.default={props:["id","optionInfo"],data:function(){return{myChart:{},option:{color:["#13CE66","#20A0FF","#F7BA2A","#FF4949"],backgroundColor:"#373a3c",tooltip:{trigger:"axis",formatter:function(e){var t=""+(0,c.default)(Number(e[0].name)).format("YYYY-MM-DD HH:mm:ss")+"
";return e.forEach(function(e){t+=e.seriesName+": "+e.value+"
"}),t}},title:{text:null},grid:{top:"35",left:"1%",right:"2%",bottom:"25",containLabel:!0},legend:{y:"bottom",padding:[5,10,5,10]},xAxis:{type:"category",boundaryGap:!1,data:[],axisLabel:{formatter:function(e){return(0,c.default)(Number(e)).format("HH:mm")+"\n"+(0,c.default)(Number(e)).format("MM-DD")}}},yAxis:{type:"value",name:"",splitLine:{show:!0,lineStyle:{type:"solid",color:["#444444"]}}},series:[]}}},watch:{optionInfo:{handler:function(){this.drawLine()},deep:!0}},methods:{resize:function(){var e=this;window.addEventListener("resize",function(){e.myChart.resize()})},drawLine:function(){var e=this,t=this.optionInfo.seriesData.map(function(t){var n=(0,o.default)({},t),i={normal:{show:!0,position:"top"}};return e.$set(n,"type","bar"),e.$set(n,"label",i),n});this.option.xAxis.data=this.optionInfo.xCategories,this.option.yAxis.name=this.optionInfo.yTitle,this.option.series=t,this.myChart=l.default.init(document.getElementById(this.id),"dark"),this.myChart.setOption(this.option),this.resize()}},mounted:function(){}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a),s=n(244),l=i(s),r=n(2),c=i(r);n(363),t.default={props:["id","optionInfo"],data:function(){return{myChart:{},option:{color:["#13CE66","#20A0FF","#F7BA2A","#FF4949"],backgroundColor:"#373a3c",title:{text:null},tooltip:{trigger:"axis",formatter:function(e){var t=""+(0,c.default)(Number(e[0].name)).format("YYYY-MM-DD HH:mm:ss")+"
";return e.forEach(function(e){t+=e.seriesName+": "+e.value+"
"}),t}},legend:{y:"bottom"},grid:{top:"45",left:"3%",right:"3%",bottom:"25",containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:[],axisLabel:{formatter:function(e){return(0,c.default)(Number(e)).format("HH:mm")+"\n"+(0,c.default)(Number(e)).format("MM-DD")}}},yAxis:{type:"value",name:"",splitLine:{show:!0,lineStyle:{type:"solid",color:["#444444"]}}},series:[]}}},watch:{optionInfo:{handler:function(){this.drawLine()},deep:!0}},methods:{resize:function(){var e=this;window.addEventListener("resize",function(){e.myChart.resize()})},drawLine:function(){var e=this,t=this.optionInfo.seriesData.map(function(t){var n=(0,o.default)({},t),i={data:[{type:"max",name:"最大值"},{type:"min",name:"最小值"}]};return e.$set(n,"type","line"),e.$set(n,"symbol","none"),e.$set(n,"smooth",!1),e.$set(n,"markPoint",i),n});this.option.xAxis.data=this.optionInfo.xAxis,this.option.yAxis.name=this.optionInfo.yAxisName,this.option.series=t,this.myChart=l.default.init(document.getElementById(this.id),"dark"),this.myChart.setOption(this.option),this.resize()}},mounted:function(){this.drawLine()}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(244),o=i(a);n(367),t.default={props:["id","optionInfo"],data:function(){return{myChart:{},option:{title:{show:!1,text:""},tooltip:{trigger:"item",formatter:"{a}
{b} : {c} ({d}%)"},legend:{orient:"vertical",left:"left"},series:[]}}},watch:{optionInfo:{handler:function(){this.drawLine()},deep:!0}},methods:{resize:function(){var e=this;window.addEventListener("resize",function(){e.myChart.resize()})},drawLine:function(){this.option.series=this.optionInfo.seriesData,this.myChart=o.default.init(document.getElementById(this.id)),this.myChart.setOption(this.option),this.resize()}},mounted:function(){}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["title","content"],data:function(){return{isVisible:!0}},methods:{closeDialog:function(){this.$emit("close-dialog")}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["isOverwrite","jsonDiffInfo"],data:function(){return{isVisible:!0}},methods:{handleClose:function(){this.$emit("close-dialog")},handleOverwrite:function(){this.$emit("overwrite-operate")}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={data:function(){return{serviceList:[{index:"/index",title:"索引管理",icon:"fa fa-search",path:this.$routermapper.GetPath("indexManage")},{index:"/cluster",title:"ES集群管理",icon:"fa fa-sitemap",path:this.$routermapper.GetPath("clusterManage")},{index:"/authority",title:"模板变更",icon:"fa fa-check-square-o",path:this.$routermapper.GetPath("authorityManage")},{index:"/agent",title:"代理管理",icon:"fa fa-arrows",path:this.$routermapper.GetPath("agentManage")},{index:"/token",title:"Token管理",icon:"fa fa-key",path:this.$routermapper.GetPath("tokenManage")},{index:"/plugin",title:"插件管理",icon:"fa fa-puzzle-piece",path:this.$routermapper.GetPath("pluginManage")},{index:"/permission",title:"权限管理",icon:"fa fa-user-plus",path:this.$routermapper.GetPath("permissionManage")}]}},computed:{activeIndex:function(){return this.$route.path.split("_")[0]},loginUser:function(){return this.$store.state.loginUser}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(331),o=i(a);t.default={props:["type"],data:function(){return{}},methods:{},computed:{panelType:function(){return(0,o.default)({},"panel-"+this.type+"-info",!0)}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["activeIndex"],data:function(){return{versionNum:""}},methods:{getVersionNumber:function(){var e=this;this.$http.get("/system/getVersion.json").then(function(t){e.versionNum=t})}},created:function(){this.getVersionNumber()},computed:{versionNumber:function(){return"Pallas-Console-"+this.versionNum+" ©2019"}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(224),o=i(a),s=n(32),l=i(s),r=n(11),c=i(r);t.default={data:function(){return{loading:!1,isPrivilege:!1,isAgentInfoVisible:!1,multipleSelection:[],viewInfoTitle:"节点信息",viewInfo:"",selectedCluster:this.$route.query.cluster||"",clusters:[],selectedPool:this.$route.query.pool||"",poolList:[],agentList:[],currentPage:Number(this.$route.query.currentPage)||1,pageSize:10,total:0,interval:0}},methods:{heartbeat:function(){var e=this;this.interval=setInterval(function(){e.getAgents()},5e3)},batchUpdateRoute:function(){var e=this;if(this.multipleSelection.length<=0)this.$message.errorMessage("请选择要批量更新的路由!!!");else{var t=[],n=[];this.multipleSelection.forEach(function(e){t.push(e.id),n.push(e.ipport)});var i=t.join(","),a=n.join(" ; ");this.$message.confirmMessage("确认更新路由 "+a+" 吗?",function(){e.loading=!0,e.$http.post("/ss/remote_update.json",{ssIds:i}).then(function(){e.$message.successMessage("批量更新路由成功",function(){e.refreshPage()})}).finally(function(){e.loading=!1})})}},handleSelectionChange:function(e){this.multipleSelection=e},setSelectable:function(e){return!!e.healthy},handleDelete:function(e){var t=this;this.$message.confirmMessage("确认删除路由"+e.ipport+"吗?",function(){t.loading=!0,t.$http.post("/ss/delete.json",{id:e.id}).then(function(){t.$message.successMessage("删除路由成功",function(){t.refreshPage()})}).finally(function(){t.loading=!1})})},handleDeleteExpired:function(){var e=this;this.$message.confirmMessage("确认删除3天前的无效代理节点吗?",function(){e.loading=!0,e.$http.post("/ss/delete.json",{days:3}).then(function(){e.$message.successMessage("删除路由成功",function(){e.refreshPage()})}).finally(function(){e.loading=!1})})},handleRemoveTraffic:function(e){var t=this,n=this.agentList.filter(function(t){return t.healthy&&t.takeTraffic&&t.cluster===e.cluster});if(1===n.length&&n[0].id===e.id)return void this.$message.errorMessage("不能停用同一个集群下的唯一在线并且启用的路由服务!");this.$message.confirmMessage("确认要停用"+e.ipport+"路由服务吗?",function(){t.loading=!0,t.$http.post("/ss/traffic.json",{id:e.id,takeTraffic:!1}).then(function(){t.$message.successMessage("停用成功",function(){t.refreshPage()})}).finally(function(){t.loading=!1})})},handleRecoverTraffic:function(e){var t=this;this.$message.confirmMessage("确认要重新启用"+e.ipport+"路由服务吗?",function(){t.loading=!0,t.$http.post("/ss/traffic.json",{id:e.id,takeTraffic:!0}).then(function(){t.$message.successMessage("启用成功",function(){t.refreshPage()})}).finally(function(){t.loading=!1})})},changePage:function(e){this.currentPage=e,this.toPage()},updateRoute:function(e){var t=this;this.$message.confirmMessage("确认更新路由"+e.ipport+"吗?",function(){t.loading=!0,t.$http.post("/ss/remote_update.json",{ssIds:e.id}).then(function(){t.$message.successMessage("更新路由成功",function(){t.refreshPage()})}).finally(function(){t.loading=!1})})},getInfo:function(e){this.viewInfo=(0,c.default)(JSON.parse(e.info),void 0,2),this.isAgentInfoVisible=!0},closeDialog:function(){this.isAgentInfoVisible=!1},refreshPage:function(){this.init()},toPage:function(){this.$router.push({path:this.$routermapper.GetPath("agentManage"),query:{currentPage:this.currentPage,cluster:this.selectedCluster,pool:this.selectedPool}})},getClusters:function(){var e=this;return this.$http.post("/ss/clusters.json").then(function(t){e.clusters=t})},getPools:function(){var e=this;return this.$http.post("/ss/pools.json").then(function(t){e.poolList=t})},getAgents:function(){var e=this,t={currentPage:this.$route.query.currentPage||1,pageSize:this.pageSize,selectedCluster:this.selectedCluster,selectedPool:this.selectedPool};return this.$http.get("/ss/find.json",t).then(function(t){e.agentList=t.list,e.total=t.total,e.isPrivilege=!0,e.agentList.forEach(function(t){if(null!==t)try{JSON.parse(t.info)}catch(n){e.$set(t,"info","{}")}})})},init:function(){var e=this;this.loading=!0,l.default.all([this.getAgents(),this.getClusters(),this.getPools()]).then(function(){e.heartbeat(),e.loading=!1})}},created:function(){this.init()},watch:{$route:"getAgents"},filters:{currentQps:function(e){var t=JSON.parse(e.info)?JSON.parse(e.info).gaugesStatistics:void 0,n=/(?=((?!\b)\d{3})+$)/g,i="-1",a=0;return void 0!==t&&e.healthy?((0,o.default)(t.qps).forEach(function(e){e[0]>i&&(i=e[0],a=e[1])}),a.toString().replace(n,",")):"N/A"},currentConns:function(e){var t=JSON.parse(e.info)?JSON.parse(e.info).gaugesStatistics:void 0,n=/(?=((?!\b)\d{3})+$)/g,i="-1",a=0;return void 0!==t&&e.healthy?((0,o.default)(t.conns).forEach(function(e){e[0]>i&&(i=e[0],a=e[1])}),a.toString().replace(n,",")):"N/A"},currentReceiveClientThrougph:function(e){var t=JSON.parse(e.info)?JSON.parse(e.info).gaugesStatistics:void 0,n="-1",i=0;return void 0!==t&&e.healthy?((0,o.default)(t.reqThroughput).forEach(function(e){e[0]>n&&(n=e[0],i=e[1])}),i/=1e3,i.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g,"$1,").concat(" KB")):"N/A"},currentReceiveEsThrougph:function(e){var t=JSON.parse(e.info)?JSON.parse(e.info).gaugesStatistics:void 0,n="-1",i=0;return void 0!==t&&e.healthy?((0,o.default)(t.respThroughput).forEach(function(e){e[0]>n&&(n=e[0],i=e[1])}),i/=1e3,i.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g,"$1,").concat(" KB")):"N/A"},translateState:function(e){return{true:"在线",false:"离线"}[e]}},destroyed:function(){clearInterval(this.interval)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["approveStates","approveInfo"],data:function(){return{loading:!1,isVisible:!0,rules:{state:[{required:!0,message:"请选择",trigger:"blur"}],note:[{required:!0,message:"请输入审批描述",trigger:"blur"}]}}},methods:{submitSyncInfo:function(){var e=this;this.$refs.approveInfo.validate(function(t){t&&(e.loading=!0,e.$http.post("/approve/approve.json",e.approveInfo).then(function(){e.$message.successMessage("审批完成",function(){e.$emit("approve-complete")})}).finally(function(){e.loading=!1}))})},closeDialog:function(){this.$emit("close-approve-dialog")}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a);t.default={data:function(){return{loading:!1,isViewDialogVisible:!1,isAllPrivilege:!1,jsonDiffInfo:{},total:0,pageSize:10,currentPage:Number(this.$route.query.currentPage)||1,applyList:[],clusters:[],selectedCluster:this.$route.query.cluster||"",states:[{value:"0",label:"待审核"},{value:"1",label:"已上线"},{value:"2",label:"审核不通过"},{value:"3",label:"未提交"}],selectedState:this.$route.query.state||"",conditionForSearch:this.$route.query.condition||""}},methods:{handleApproveManage:function(){this.$router.push({path:this.$routermapper.GetPath("authorityManageAdministrator")})},handleView:function(e){var t=this;this.loading=!0,this.$http.get("/index_template/id.json?templateId="+e.relateId).then(function(e){t.jsonDiffInfo.left=e.lastContent,t.jsonDiffInfo.right=e.content,t.isViewDialogVisible=!0}).finally(function(){t.loading=!1})},closeViewContentDialog:function(){this.isViewDialogVisible=!1},changePage:function(e){this.currentPage=e,this.toPage()},refreshPage:function(){this.init()},toPage:function(){this.$router.push({path:this.$routermapper.GetPath("authorityManage"),query:{currentPage:this.currentPage,cluster:this.selectedCluster,state:this.selectedState,condition:this.conditionForSearch}})},handleCancel:function(e){var t=this;this.$message.confirmMessage("确定取消审批模板"+e.templateName+"吗?",function(){t.loading=!0,t.$http.post("/approve/apply/cancel.json",{id:e.id}).then(function(){t.$message.successMessage("取消审批成功",function(){t.refreshPage()})}).finally(function(){t.loading=!1})})},getApplyList:function(){var e=this,t={currentPage:Number(this.$route.query.currentPage)||1,pageSize:this.pageSize,state:this.$route.query.state||"",conditions:this.$route.query.condition||"",clusterId:this.$route.query.cluster||""};return this.$http.get("/approve/apply/page.json",t).then(function(t){e.total=t.total,e.isAllPrivilege=t.allPrivilege,e.applyList=t.list})},getClusters:function(){var e=this;return this.$http.get("/cluster/all.json").then(function(t){var n=[],i=[];t.forEach(function(e){e.logicalCluster?n.push(e):i.push(e)}),e.clusters.push({label:"物理集群",options:i}),e.clusters.push({label:"逻辑集群",options:n})})},init:function(){var e=this;this.loading=!0,o.default.all([this.getApplyList(),this.getClusters()]).then(function(){e.loading=!1})}},created:function(){this.init()},watch:{$route:"init"},filters:{translateStat:function(e){return{0:"待审核",1:"已上线",2:"审核不通过",3:"未提交"}[e]}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(11),l=i(s),r=n(1352),c=i(r);t.default={data:function(){return{loading:!1,isViewDialogVisible:!1,jsonDiffInfo:{},isApproveDialogVisible:!1,approveStates:[{key:"通过",value:"1"},{key:"不通过",value:"2"}],approveInfo:{},total:0,pageSize:10,currentPage:Number(this.$route.query.currentPage)||1,approveList:[],states:[{value:"0",label:"待审核"},{value:"1",label:"已上线"},{value:"2",label:"审核不通过"},{value:"3",label:"未提交"}],selectedState:this.$route.query.state||"",conditionForSearch:this.$route.query.condition||"",multipleSelection:[]}},methods:{handleBatchApprove:function(){if(this.multipleSelection.length<=0)this.$message.errorMessage("请选择要审批的模板!!!");else{var e=[];this.multipleSelection.forEach(function(t){e.push(t.id)});var t=e.join(","),n={ids:t,state:this.approveStates[0].value,note:""};this.approveInfo=JSON.parse((0,l.default)(n)),this.isApproveDialogVisible=!0}},handleSelectionChange:function(e){this.multipleSelection=e},handleView:function(e){var t=this;this.loading=!0,this.$http.get("/index_template/id.json?templateId="+e.relateId).then(function(e){t.jsonDiffInfo.left=e.lastContent,t.jsonDiffInfo.right=e.content,t.isViewDialogVisible=!0}).finally(function(){t.loading=!1})},closeViewContentDialog:function(){this.isViewDialogVisible=!1},handleApprove:function(e){var t={ids:e.id,state:this.approveStates[0].value,note:""};this.approveInfo=JSON.parse((0,l.default)(t)),this.isApproveDialogVisible=!0},approveComplete:function(){this.isApproveDialogVisible=!1,this.refreshPage()},closeApproveDialog:function(){this.isApproveDialogVisible=!1},changePage:function(e){this.currentPage=e,this.toPage()},refreshPage:function(){this.init()},toPage:function(){this.$router.push({path:this.$routermapper.GetPath("authorityManageAdministrator"),query:{currentPage:this.currentPage,state:this.selectedState,condition:this.conditionForSearch}})},getApproveList:function(){var e=this,t={currentPage:Number(this.$route.query.currentPage)||1,pageSize:this.pageSize,state:this.$route.query.state||"",conditions:this.$route.query.condition||""};return this.$http.get("/approve/approve/page.json",t).then(function(t){e.total=t.total,e.approveList=t.list})},init:function(){var e=this;this.loading=!0,o.default.all([this.getApproveList()]).then(function(){e.loading=!1})}},created:function(){this.init()},components:{"approve-dialog":c.default},watch:{$route:"init"},filters:{translateStat:function(e){return{0:"待审核",1:"已上线",2:"审核不通过",3:"未提交"}[e]}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["clusterInfo"],computed:{clusterUrl:function(){var e="";return this.clusterInfo.httpAddress&&(e=this.clusterInfo.httpAddress),"/cerebro/#/overview?cluster="+this.clusterInfo.clusterId+"&host="+e}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1355),o=i(a);t.default={data:function(){return{loading:!1,clusterInfo:{},clusterId:this.$route.query.clusterId}},methods:{getClusterInfo:function(){var e=this;this.loading=!0,this.$http.get("/cluster/id.json?clusterId="+this.$route.query.clusterId).then(function(t){e.clusterInfo=t}).finally(function(){e.loading=!1})}},components:{"dashboard-component":o.default},created:function(){this.getClusterInfo()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["clusterOperation","clusterInfo","clusterInfoTitle","allPhysicals","allPallasSearchs"],data:function(){return{loading:!1,isClusterInfoVisible:!0,rules:{clusterId:[{validator:this.$validate.validateCharacterAndNumber,trigger:"blur"}],httpAddress:[{required:!0,message:"HTTP地址不能为空",trigger:"change"}],clientAddress:[{required:!0,message:"ES client连接地址不能为空",trigger:"change"}],description:[{required:!0,message:"描述不能为空",trigger:"change"}],realClustersArr:[{validator:this.$validate.validateArray,trigger:"blur"}],accessiblePs:[{validator:this.$validate.validateArray,trigger:"blur"}]}}},methods:{submitClusterInfo:function(){var e=this;this.$refs.clusterInfo.validate(function(t){t?(e.$set(e.clusterInfo,"realClusters",e.clusterInfo.realClustersArr.join(",")),e.$set(e.clusterInfo,"accessiblePs",e.clusterInfo.accessiblePs.join(",")),"add"===e.clusterOperation?(e.loading=!0,e.$http.post("/cluster/add.json",e.clusterInfo).then(function(){e.$message.successMessage("新增集群成功",function(){e.$emit("operate-close-dialog")})}).finally(function(){e.loading=!1})):(e.loading=!0,e.$http.post("/cluster/update.json",e.clusterInfo).then(function(){e.$message.successMessage("修改集群成功",function(){e.$emit("operate-close-dialog")})}).finally(function(){e.loading=!1}))):console.log("error submit!!")})},closeDialog:function(){this.$emit("close-dialog")}},computed:{isEditable:function(){return"edit"===this.clusterOperation}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(11),l=i(s),r=n(1357),c=i(r);t.default={data:function(){return{loading:!1,isAllPrivilege:!1,isClusterInfoVisible:!1,clusterInfoTitle:"",clusterOperation:"",currentPage:Number(this.$route.query.currentPage)||1,pageSize:10,clusterIdForSearch:this.$route.query.clusterId||"",clusterList:{},clusterInfo:{},clusterAddInfo:{clusterId:"",httpAddress:"",clientAddress:"",description:"",realClustersArr:[],logicalCluster:!1,accessiblePs:[],monitorLevelModel:{cluster:0,index:0}},allPhysicals:[],allPallasSearchs:[]}},methods:{handleMonitor:function(e){this.$router.push({path:"cluster_monitor",query:{clusterId:e.clusterId}})},handleRouteSetting:function(e){this.$router.push({path:"cluster_route_manage",query:{clusterId:e.clusterId}})},getPhysicalsClusterArr:function(e){var t=this,n=e.split(","),i=[];return n.forEach(function(e){t.allPhysicals.forEach(function(t){e===t.id&&i.push(t)})}),i},handleAdd:function(){this.isClusterInfoVisible=!0,this.clusterInfoTitle="新增集群",this.clusterOperation="add",this.clusterInfo=JSON.parse((0,l.default)(this.clusterAddInfo))},handleEdit:function(e){var t=this;this.loading=!0,this.$http.get("/cluster/id.json?clusterId="+e.clusterId).then(function(e){var n=e,i=n.realClusters.split(",");t.$set(n,"realClustersArr",i);var a=n.accessiblePs.split(",");t.$set(n,"accessiblePs",a),t.clusterInfo=JSON.parse((0,l.default)(n)),t.clusterInfoTitle="编辑集群",t.clusterOperation="edit",t.isClusterInfoVisible=!0}).finally(function(){t.loading=!1})},handleManage:function(e,t){this.$router.push({path:"cluster_detail",query:{clusterId:t.clusterId}})},handleRestart:function(e){this.$router.push({path:"cluster_node_restart",query:{clusterId:e.clusterId}})},handleDelete:function(e){var t=this;this.$message.confirmMessage("确定删除集群"+e.clusterId+"吗?",function(){t.loading=!0,t.$http.post("/cluster/delete/id.json",{clusterId:e.clusterId}).then(function(){t.$message.successMessage("删除成功",function(){t.refreshPage()})}).finally(function(){t.loading=!1})})},changePage:function(e){this.currentPage=e,this.toPage()},refreshPage:function(){this.init()},toPage:function(){this.$router.push({path:this.$routermapper.GetPath("clusterManage"),query:{currentPage:this.currentPage,clusterId:this.clusterIdForSearch}})},toSpecificPage:function(e){this.clusterIdForSearch=e||"",this.toPage()},closeDialog:function(){this.isClusterInfoVisible=!1},operateCloseDialog:function(){this.isClusterInfoVisible=!1,this.refreshPage()},getClusterList:function(){var e=this,t={clusterId:this.$route.query.clusterId||"",currentPage:Number(this.$route.query.currentPage)||1,pageSize:this.pageSize};return this.$http.get("/cluster/page.json",t).then(function(t){e.clusterList=t,e.isAllPrivilege=t.allPrivilege})},getPhysicals:function(){var e=this;return this.$http.get("/cluster/all/physicals.json").then(function(t){e.allPhysicals=t.list.map(function(e){var t={};return t.id=e.id.toString(),t.clusterId=e.clusterId,t})})},getAllPallasSearchs:function(){var e=this;return this.$http.get("/ss/clusters.json").then(function(t){e.allPallasSearchs=t})},init:function(){var e=this;this.loading=!0,o.default.all([this.getClusterList(),this.getPhysicals(),this.getAllPallasSearchs()]).then(function(){e.loading=!1})}},components:{"cluster-info-dialog":c.default},watch:{$route:"init"},created:function(){this.init()},filters:{clusterType:function(e){return{true:"逻辑集群",false:"物理集群"}[e]}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(224),o=i(a),s=n(2),l=i(s);t.default={data:function(){return{loading:!1,clusterId:this.$route.query.clusterId,nodeRestartList:[],onlyMasterMap:{true:"是",false:"否"},noteStateMap:{1:"即将重启",2:"正在重启",3:"已启动",4:"正常"},noteStateTag:{1:"info",2:"warning",3:"success",4:"success",5:"danger",6:"warning"},clusterStateTag:{green:"success",red:"danger",yellow:"warning"},clusterHealth:"",clusterSettings:[],isEnableRestart:"",interval:0}},methods:{resetClusterSettings:function(){var e=this;this.$message.confirmMessage("确定恢复集群默认设置吗?",function(){e.loading=!0,e.$http.get("/cluster/settings/default/reset.json?clusterName="+e.clusterId).then(function(){e.$message.successMessage("恢复集群默认设置操作成功",function(){e.getCluterSetting()})}).finally(function(){e.loading=!1})})},handleRestart:function(e){var t=this,n={clusterName:this.clusterId,nodeIp:e.nodeIp};this.$message.confirmMessage("确定要重启节点"+e.nodeName+"吗? 注意,提交重启后,请密切关注集群及节点状态!",function(){t.loading=!0,t.$http.post("/cluster/node/restart.json",n).then(function(){t.$message.successMessage("提交重启请求成功",function(){t.init()})}).finally(function(){t.loading=!1})})},getClusterState:function(){var e=this;this.$http.get("/cluster/state.json?clusterName="+this.clusterId).then(function(t){e.clusterHealth=t.status,e.isEnableRestart=t.cause,e.clusterSettings=t.settings,e.nodeRestartList=t.nodes;var n=(0,l.default)().format("x");e.nodeRestartList.forEach(function(t){(n-t.lastStartupTime)/1e3/60/60<1?e.$set(t,"isNew",!0):e.$set(t,"isNew",!1)})})},init:function(){this.getClusterState()},refreshClusterRestart:function(){var e=this;this.interval=setInterval(function(){e.getClusterState()},3e3)}},destroyed:function(){clearInterval(this.interval)},computed:{clusterSettingsArray:function(){var e=[];return(0,o.default)(this.clusterSettings).forEach(function(t){var n={key:t[0],value:t[1]};e.push(n)}),e}},created:function(){this.init(),this.refreshClusterRestart()}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1362),o=i(a);t.default={props:["conditions","conditionInfo","conditionInfoTitle","conditionOperation","routingTargetGroups"],data:function(){return{isVisible:!0,rules:{name:[{required:!0,message:"规则名称不能为空",trigger:"blur"}],sourceType:[{required:!0,message:"数据源类型不能为空",trigger:"blur"}],sourceParameter:[{required:!0,message:"条件判断参数名不能为空",trigger:"blur"}],condExpr:[{required:!0,message:"条件判断运算不能为空",trigger:"blur"}],sourceValue:[{required:!0,message:"条件判断值不能为空",trigger:"blur"}],conditionRelation:[{required:!0,message:"请选择规则关系",trigger:"change"}]},conditionRelations:["OR","AND"],defaultProps:{key:"id",label:"name"}}},methods:{handleChange:function(e,t,n){"right"===t?this.changeDirection(n,"right"):this.changeDirection(n,"left")},changeDirection:function(e,t){var n=this;e.forEach(function(e){n.routingTargetGroups.forEach(function(i){e===i.id&&n.$set(i,"position",t)})})},renderFunc:function(e,t){var n=this;return"left"===t.position?e("div",[e("span",{style:{float:"left"}},t.name)]):e("div",[e("span",{style:{float:"left"}},t.name),e("input",{domProps:{value:t.weight||"0"},class:{"el-input__inner":!0},style:{float:"right",width:"50px",height:"20px",margin:"6px"},on:{input:function(e){n.$set(t,"weight",e.target.value),n.$emit("input",e.target.value)}}})])},submitInfo:function(){var e=this;this.$refs.conditionInfo.validate(function(t){if(t){var n=0;if(0!==e.conditionInfo.conditions.length&&e.$refs.conditions.$refs.conditionItem.forEach(function(e){e.$refs.conditionItemForm.validate(function(e){e&&(n+=1)})}),n===e.conditionInfo.conditions.length){e.conditionInfo.targetGroups=e.getTargetGroupsList();var i=e.setConditionInfo();e.targetGroupWeightValidate(i.targetGroups)&&("add"===e.conditionOperation?e.$emit("add-condition",i):e.$emit("edit-condition",i))}}})},targetGroupWeightValidate:function(e){var t=!1;if(0!==e.length){var n=/^([0-9]\d{0,1}|100)$/;e.some(function(e){return!n.test(e.weight)})?(t=!1,this.$message.errorMessage("请正确输入节点集权重, 0-100整数!")):t=!0}else t=!1,this.$message.errorMessage("请选择节点集!");return t},setConditionInfo:function(){var e={};return e.name=this.conditionInfo.name,e.targetGroups=this.conditionInfo.targetGroups,e.enable=this.conditionInfo.enable,e.conditionRelation=this.conditionInfo.conditionRelation,e.priority=this.conditionInfo.priority,e.conditions=this.conditionInfo.conditions,e},getTargetGroupsList:function(){return this.$refs.targetGroupTransfer.targetData.map(function(e){var t={};return t.id=e.id,t.weight=e.weight,t})},closeDialog:function(){this.$emit("close-dialog")}},computed:{isEditable:function(){return"edit"===this.conditionOperation},alternativeConditions:function(){return"edit"===this.conditionOperation?(this.$array.removeByValue(this.conditions,this.conditionInfo.name),this.conditions):this.conditions}},components:{Conditions:o.default}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["conditionItem"],data:function(){return{rules:{exprOp:[{required:!0,message:"请选择判断运算",trigger:"change"}],paramName:[{required:!0,message:"请输入判断参数名",trigger:"change"}],paramValue:[{required:!0,message:"请输入判断值",trigger:"blur"}]},exprOps:["=","ip_mask"],paramNames:["X-PALLAS-SEARCH-CLIENT-IP","X-PALLAS-SEARCH-TEMPLATE-ID"]}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(1361),l=i(s);t.default={props:["conditions"],data:function(){return{conditionRelateInfo:{paramType:"header",exprOp:"",paramName:"",paramValue:""}}},methods:{addConditionRelate:function(){var e=JSON.parse((0,o.default)(this.conditionRelateInfo));this.conditions.push(e)},deleteConditionRelate:function(e){this.$array.removeByValue(this.conditions,e)}},components:{"condition-item":l.default}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(329),o=i(a),s=n(11),l=i(s),r=n(1364),c=i(r),u=n(1360),d=i(u);t.default={data:function(){return{loading:!1,privilege:!1,clusterId:this.$route.query.clusterId,isConditionInfoVisible:!1,conditionInfo:{},conditionInfoTitle:"",conditionOperation:"",selectedCluster:"",indexNameForSearch:"",conditions:[],rulesList:[],routingTargetGroupsList:{},initTargetGroups:[],routingTargetGroups:[]}},methods:{sortTargetGroups:function(e){e.sort(function(e,t){return e.weightt.weight?-1:0})},handleAdd:function(){this.isConditionInfoVisible=!0,this.conditionInfoTitle="创建规则",this.conditionOperation="add",this.routingTargetGroups=JSON.parse((0,l.default)(this.initTargetGroups));var e={name:"",targetGroups:[],targetGroupsId:[],enable:!1,conditions:[],conditionRelation:"AND",priority:""};this.conditionInfo=JSON.parse((0,l.default)(e))},addCondition:function(e){var t=JSON.parse((0,l.default)(this.rulesList));""===e.priority?t.push(e):t.some(function(n,i){return n.name===e.priority&&(t.splice(i,0,e),!0)}),this.updateConditionRequest(t)},closeConditionDialog:function(){this.isConditionInfoVisible=!1},handleEdit:function(e){var t=this;this.isConditionInfoVisible=!0,this.conditionInfoTitle="编辑规则",this.conditionOperation="edit",this.routingTargetGroups=JSON.parse((0,l.default)(this.initTargetGroups));var n=[];e.targetGroups.forEach(function(e){n.push(e.id),t.routingTargetGroups.forEach(function(n){e.id===n.id&&(t.$set(n,"weight",e.weight),t.$set(n,"position","right"))})});var i={name:e.name,targetGroups:e.targetGroups,targetGroupsId:n,enable:e.enable,conditionRelation:e.conditionRelation,priority:"",conditions:e.conditions};this.conditionInfo=JSON.parse((0,l.default)(i))},editCondition:function(e){var t=JSON.parse((0,l.default)(this.rulesList)),n=void 0;t.some(function(t,i){return t.name===e.name&&(n=i,!0)}),""===e.priority?t.splice(n,1,e):(t.splice(n,1),t.some(function(n,i){return n.name===e.priority&&(t.splice(i,0,e),!0)})),this.updateConditionRequest(t)},updateConditionRequest:function(e){var t=this,n={clusterId:this.clusterId,rules:e};this.loading=!0,this.$http.post("/cluster/routing/rule/update.json",n).then(function(){t.$message.successMessage("操作成功",function(){t.isConditionInfoVisible=!1,t.getRoutingList()})}).finally(function(){t.loading=!1})},handleDelete:function(e,t){var n=this;this.$message.confirmMessage("确定删除规则"+e.name+"吗?",function(){var e=JSON.parse((0,l.default)(n.rulesList));e.splice(t,1),n.updateConditionRequest(e)})},getRoutingList:function(){var e=this,t={clusterId:this.clusterId};this.loading=!0,this.$http.get("/cluster/routing/rule/list.json",t).then(function(t){e.rulesList=t.data.rules,e.rulesList.forEach(function(t){e.sortTargetGroups(t.targetGroups)});var n=[];t.data.rules.forEach(function(e){n.push(e.name)}),e.conditions=n,e.routingTargetGroupsList=t.data.routingTargetGroups,e.initTargetGroups=(0,o.default)(t.data.routingTargetGroups).map(function(e){var t={};return t.id=e.id,t.name=e.name,t.weight=1,t.position="left",t}),e.privilege=t.privilege}).finally(function(){e.loading=!1})}},created:function(){this.getRoutingList()},filters:{translateEnable:function(e){return{true:"是",false:"否"}[e]}},components:{"target-group":c.default,"condition-info-dialog":d.default}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(1366),l=i(s),r=n(1365),c=i(r);t.default={props:["privilege","rulesList","clusterId","routingTargetGroupsList"],data:function(){return{loading:!1,istargetGroupInfoVisible:!1,targetGroupInfo:{},targetGroupInfoTitle:"",targetGroupTree:[],targetGroupTreeNoChildren:[],selectedShowTreeInfo:"name"}},methods:{changeShowTreeInfo:function(e){this.selectedShowTreeInfo=e},handleAdd:function(){this.istargetGroupInfoVisible=!0,this.targetGroupInfoTitle="创建节点集";var e={clusterId:this.clusterId,name:"",clusterLevel:0,nodes:[],clusters:[]};this.targetGroupInfo=JSON.parse((0,o.default)(e))},saveOperation:function(e){var t=this;this.$set(e,"clusterId",this.clusterId),this.loading=!0,this.$http.post("/cluster/routing/target_group/update.json",e).then(function(){t.$emit("get-routing-list")}).finally(function(){t.loading=!1})},deleteOperation:function(e){var t=this,n=!1;this.rulesList.forEach(function(t){t.targetGroups.some(function(t){return t.id===e&&(n=!0),n})}),n?this.$message.errorMessage("此节点集正在使用中,不能删除!"):(this.loading=!0,this.$http.post("/index/routing/target_group/delete.json",{groupId:e}).then(function(){t.$emit("get-routing-list")}).finally(function(){t.loading=!1}))},operationSuccess:function(){this.istargetGroupInfoVisible=!1,this.$emit("get-routing-list")},closeTargetGroupDialog:function(){this.istargetGroupInfoVisible=!1},getTargetGroupTree:function(){var e=this,t={clusterId:this.clusterId};this.loading=!0,this.$http.get("/cluster/routing/target_group/list.json",t).then(function(t){e.targetGroupTree=t.tree.map(function(t){var n={};return n.cluster=t.cluster,n.address=t.address,n.name=t.name,n.disabled=!0,t.children.length>0&&(n.children=e.setTargetGroupChildrenDisabled(t.children)),n}),e.targetGroupTreeNoChildren=t.tree.map(function(e){var t={};return t.cluster=e.cluster,t.address=e.address,t.name=e.name,t.disabled=!0,t})}).finally(function(){e.loading=!1})},setTargetGroupChildrenDisabled:function(e){return e.map(function(e){var t={};return t.cluster=e.cluster,t.address=e.address,t.name=e.name,t.state=e.state,t.weight=e.weight,t.disabled=!0,t})}},components:{"target-group-info-dialog":c.default,"target-group-item":l.default},created:function(){this.getTargetGroupTree()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["rulesList","targetGroupInfo","targetGroupInfoTitle"],data:function(){return{loading:!1,isVisible:!0,rules:{name:[{required:!0,message:"节点集名称不能为空",trigger:"blur"}]}}},methods:{submitInfo:function(){var e=this;this.$refs.targetGroupInfo.validate(function(t){t&&e.targetGroupRequest(e.targetGroupInfo)})},targetGroupRequest:function(e){var t=this;this.loading=!0,this.$http.post("/cluster/routing/target_group/update.json",e).then(function(){t.$message.successMessage("操作成功",function(){t.$emit("operation-success")})}).finally(function(){t.loading=!1})},closeDialog:function(){this.$emit("close-dialog")}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:["privilege","targetGroupItemInfo","targetGroupTree","targetGroupTreeNoChildren","selectedShowTreeInfo"],data:function(){return{name:this.targetGroupItemInfo.name,isDefaultExpand:!0,defaultProps:{children:"children",label:"name",disabled:"disabled"},attrs:[{label:"普通级别",value:0},{label:"集群级别",value:1},{label:"分片动态绑定",value:2}],editable:!1}},methods:{checkChange:function(e,t){if(0!==this.targetGroupItemInfo.clusterLevel&&t){var n=[];n.push(e.name),this.$refs.mytree.setCheckedKeys(n)}},handleSave:function(){this.targetGroupItemInfo.name=this.name;var e=JSON.parse((0,o.default)(this.targetGroupItemInfo));if(0===this.targetGroupItemInfo.clusterLevel){if(this.getTargetGroupNodes(e.nodes),e.nodes.length>0){var t=e.nodes.some(function(t){return t.cluster!==e.nodes[0].cluster});t?this.$message.errorMessage("只能选择某个集群下的节点,请重新选择!"):this.saveInfo(e)}}else this.getTargetGroupNodes(e.clusters),this.saveInfo(e)},saveInfo:function(e){var t=this;this.$message.confirmMessage("确定保存节点集"+this.name+"吗?",function(){t.editable=!1,t.$emit("save-operation",e)})},handleEdit:function(){this.editable=!0,this.setTreeStatus(this.targetGroupTreeNoChildren,!1),this.setTreeStatus(this.targetGroupTree,!1)},handleCancel:function(){this.name=this.targetGroupItemInfo.name,0===this.targetGroupItemInfo.clusterLevel?this.$refs.mytree.setCheckedKeys(this.targetGroupItemInfo.nodes):this.$refs.mytree.setCheckedKeys(this.targetGroupItemInfo.clusters),this.editable=!1,this.setTreeStatus(this.targetGroupTreeNoChildren,!0),this.setTreeStatus(this.targetGroupTree,!0)},setTreeStatus:function(e,t){var n=this;e.forEach(function(e){n.$set(e,"disabled",t),e.children&&e.children.forEach(function(e){n.$set(e,"disabled",t)})})},getTargetGroupNodes:function(e){e.splice(0,e.length),this.$refs.mytree.getCheckedNodes().forEach(function(t){t.children||e.push(t)})},handleDelete:function(){var e=this;this.$message.confirmMessage("确定删除节点集"+this.targetGroupItemInfo.name+"吗?",function(){e.$emit("delete-operation",e.targetGroupItemInfo.id)})},getNodesName:function(e){var t=[];return this.targetGroupTree.forEach(function(n){n.name===e&&n.children&&n.children.forEach(function(e){t.push(e.name)})}),t},getShardNodes:function(e){var t=this,n=[];return this.targetGroupTree.forEach(function(i){i.children&&i.children.forEach(function(i){t.targetGroupItemInfo.nodes&&t.targetGroupItemInfo.nodes.forEach(function(t){i.cluster===e&&t===i.address&&n.push(i.name)})})}),n},renderContent:function(e,t){var n=t.data;return 1===this.targetGroupItemInfo.clusterLevel?e("span",[e("el-popover",{props:{placement:"right",trigger:"hover"}},[e("div",this.getNodesName(n.name).map(function(t){return e("div",t)})),e("span",{slot:"reference",style:{"font-size":"14px","margin-right":"5px"}},"name"===this.selectedShowTreeInfo?n.name:n.address)])]):0===this.targetGroupItemInfo.clusterLevel?e("span",[e("span",{style:{"font-size":"14px","margin-right":"5px"}},"name"===this.selectedShowTreeInfo?n.name:n.address),e("span",{class:{"el-tag":1===n.state,"el-tag--danger":1===n.state}},1===n.state?"离线":"")]):e("span",[e("el-popover",{props:{placement:"right",trigger:"hover",disabled:n.cluster!==this.targetGroupItemInfo.clusters[0]}},[e("div",this.getShardNodes(n.name).map(function(t){return e("div",t)})),e("span",{slot:"reference",style:{"font-size":"14px","margin-right":"5px"}},"name"===this.selectedShowTreeInfo?n.name:n.address)])])}},computed:{myTree:function(){return 1===this.targetGroupItemInfo.clusterLevel||2===this.targetGroupItemInfo.clusterLevel?this.targetGroupTreeNoChildren:this.targetGroupTree},treeCheckedKeys:function(){return 1===this.targetGroupItemInfo.clusterLevel||2===this.targetGroupItemInfo.clusterLevel?this.targetGroupItemInfo.clusters:this.targetGroupItemInfo.nodes}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a);t.default={data:function(){return{loading:!1,gaugeMetricData:[],indexingRateInfo:{},searchRateInfo:{},searchLatencyInfo:{},indexingLatencyInfo:{}}},methods:{getIndexingRate:function(e,t){var n={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"Indexing Rate",data:e.map(function(e){return e.y.toFixed(2)})}],yAxisName:t||"个"};this.indexingRateInfo=n},getSearchRate:function(e,t){var n={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"Search Rate",data:e.map(function(e){return e.y.toFixed(2)})}],yAxisName:t||"个"};this.searchRateInfo=n},getSearchLatency:function(e,t){var n={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"Search Latency",data:e.map(function(e){return e.y.toFixed(2)})}],yAxisName:t||"个"};this.searchLatencyInfo=n},getIndexingLatency:function(e,t){var n={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"Indexing Latency",data:e.map(function(e){return e.y.toFixed(2)})}],yAxisName:t||"个"};this.indexingLatencyInfo=n},getClusterMonitor:function(){var e=this,t=(0,o.default)({},this.timeInterval,{clusterName:this.clusterId});this.$http.post("/monitor/cluster.json",t).then(function(t){t&&(e.gaugeMetricData=[t.gaugeMetric],e.getIndexingRate(t.indexingRate.metricModel,t.indexingRate.unit),e.getSearchRate(t.searchRate.metricModel,t.searchRate.unit),e.getIndexingLatency(t.indexingLatency.metricModel,t.indexingLatency.unit),e.getSearchLatency(t.searchLatency.metricModel,t.searchLatency.unit))})}},computed:{timeInterval:function(){return this.$store.state.monitorTimeInterval},clusterId:function(){return this.$route.query.clusterId}},created:function(){this.getClusterMonitor()},watch:{"$store.state.monitorTimeInterval":function(e){console.log(e),this.getClusterMonitor()}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:[],data:function(){return{visible:!0,formInfo:{timeRange:""},rules:{timeRange:[{validator:this.validateTimeRange,trigger:"blur"}]}}},methods:{validateTimeRange:function(e,t,n){t&&"[null,null]"!==(0,o.default)(t)?(Date.parse(t[1])-Date.parse(t[0])>6048e5&&n(new Error("时间范围不能大于7天")),n()):n(new Error("请选择时间范围"))},closeDialog:function(){this.$emit("close-dialog")},handleSubmit:function(){var e=this;this.$refs.formInfo.validate(function(t){if(t){var n={command:"custom",from:Date.parse(e.formInfo.timeRange[0]),to:Date.parse(e.formInfo.timeRange[1])};e.$emit("set-custom-time",n)}})}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a);t.default={data:function(){return{loading:!1,gaugeMetricData:[],indexMemoryInfo:{},indexDiskInfo:{},segmentCountInfo:{},documentCountInfo:{},indexSearchRateInfo:{},indexSearchLatencyInfo:{}}},methods:{getIndexMemory:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"index memory lucenc total",data:e.map(function(e){return e.y.toFixed(2)})},{name:"index memory terms",data:t.map(function(e){return e.y.toFixed(2)})}],yAxisName:n||"个"};this.indexMemoryInfo=i},getIndexDisk:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"disk-total",data:e.map(function(e){return e.y.toFixed(2)})},{name:"disk-primary",data:t.map(function(e){return e.y.toFixed(2)})}],yAxisName:n||"个"};this.indexDiskInfo=i},getSegmentCount:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"segment-primary",data:t.map(function(e){return e.y})},{name:"segment-total",data:e.map(function(e){return e.y})}],yAxisName:n||"个"};this.segmentCountInfo=i},getDocumentCount:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"document-primary",data:t.map(function(e){return e.y})},{name:"document-total",data:e.map(function(e){return e.y})}],yAxisName:n||"个"};this.documentCountInfo=i},getIndexSerachRate:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"indexing",data:e.map(function(e){return e.y.toFixed(2)})},{name:"search",data:t.map(function(e){return e.y.toFixed(2)})}],yAxisName:n||"个"};this.indexSearchRateInfo=i},getIndexSearchLatency:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"indexing",data:e.map(function(e){return e.y.toFixed(2)})},{name:"search",data:t.map(function(e){return e.y.toFixed(2)})}],yAxisName:n||"个"};this.indexSearchLatencyInfo=i},getIndexMonitor:function(){var e=this,t=(0,o.default)({clusterName:this.clusterId,indexName:this.indice},this.timeInterval);this.$http.post("/monitor/index.json",t).then(function(t){t&&(e.gaugeMetricData=[t.gaugeMetric],e.getIndexMemory(t.index_memory_lucenc_total_in_byte.metricModel,t.index_memory_terms_in_byte.metricModel,t.index_memory_lucenc_total_in_byte.unit),e.getIndexDisk(t.index_disk_total.metricModel,t.index_disk_primary.metricModel,t.index_disk_total.unit),e.getSegmentCount(t.segmentCount.metricModel,t.primarySegmentCount.metricModel,t.segmentCount.unit),e.getDocumentCount(t.documentCount.metricModel,t.primaryDocumentCount.metricModel,t.documentCount.unit),e.getIndexSerachRate(t.indexingRate.metricModel,t.searchRate.metricModel,t.searchRate.unit),e.getIndexSearchLatency(t.indexingLatency.metricModel,t.searchLatency.metricModel,t.searchLatency.unit))})}},computed:{timeInterval:function(){return this.$store.state.monitorTimeInterval},clusterId:function(){return this.$route.query.clusterId},indice:function(){return this.$route.query.indice}},created:function(){this.getIndexMonitor()},watch:{"$store.state.monitorTimeInterval":function(e){console.log(e),this.getIndexMonitor()}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(25),l=i(s);t.default={props:[],data:function(){return{loading:!1,indiceForSearch:"",indicesList:[],indices:[]}},methods:{indicesFilter:function(){var e=this,t=this.indices.slice();t=t.filter(function(t){return t.indexName.indexOf(e.indiceForSearch)>-1}),this.indicesList=t},getIndices:function(){var e=this,t=(0,l.default)({clusterName:this.clusterId},this.timeInterval);return this.$http.post("/monitor/indices/info.json",t).then(function(t){t&&(e.indices=t,e.indicesNum=t.length,e.indicesFilter())})},init:function(){var e=this;this.loading=!0,o.default.all([this.getIndices()]).then().finally(function(){e.loading=!1})}},computed:{timeInterval:function(){return this.$store.state.monitorTimeInterval},clusterId:function(){return this.$route.query.clusterId}},created:function(){this.init()},watch:{"$store.state.monitorTimeInterval":function(e){console.log(e),this.getNodeMonitor()}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a);t.default={data:function(){return{loading:!1,gaugeMetricData:[],gcCountInfo:{},gcDurationInfo:{},jvmHeapInfo:{},cpuPercentInfo:{},indexMemoryInfo:{},segmentCountInfo:{},threadpoolQueueInfo:{},threadpoolRejectInfo:{},threadpoolThreadsInfo:{},httpOpenCurrentInfo:{},indexSearchRateInfo:{},indexSearchLatencyInfo:{},systemLoadInfo:{}}},methods:{getgcCount:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"gc Count Old",data:e.map(function(e){return e.y})},{name:"gc Count Young",data:t.map(function(e){return e.y})}],yAxisName:n||"个"};this.gcCountInfo=i},getgcDuration:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"gc Duration Old",data:e.map(function(e){return e.y})},{name:"gc Duration Young",data:t.map(function(e){return e.y})}],yAxisName:n||"个"};this.gcDurationInfo=i},getJVMHeap:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"jvm heap max",data:e.map(function(e){return e.y.toFixed(2)})},{name:"jvm heap used",data:t.map(function(e){return e.y.toFixed(2)})}],yAxisName:n||"个"};this.jvmHeapInfo=i},getCpuPercent:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"cpu node percent",data:e.map(function(e){return e.y.toFixed(2)})},{name:"cpu process percent",data:t.map(function(e){return e.y.toFixed(2)})}],yAxisName:n||"个"};this.cpuPercentInfo=i},getIndexMemory:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"index memory Lucenc total",data:e.map(function(e){return e.y.toFixed(2)})},{name:"index memory terms",data:t.map(function(e){return e.y.toFixed(2)})}],yAxisName:n||"个"};this.indexMemoryInfo=i},getTheadPoolQueue:function(e,t,n,i){var a={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"queue-search",data:e.map(function(e){return e.y})},{name:"queue-indexing",data:t.map(function(e){return e.y})},{name:"queue-bulk",data:n.map(function(e){return e.y})}],yAxisName:i||"个"};this.threadpoolQueueInfo=a},getThreadPoolReject:function(e,t,n,i){var a={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"reject-search",data:e.map(function(e){return e.y})},{name:"reject-indexing",data:t.map(function(e){return e.y})},{name:"reject-bulk",data:n.map(function(e){return e.y})}],yAxisName:i||"个"};this.threadpoolRejectInfo=a},getThreadPoolThreads:function(e,t,n,i){var a={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"threads-search",data:e.map(function(e){return e.y})},{name:"threads-indexing",data:t.map(function(e){return e.y})},{name:"threads-bulk",data:n.map(function(e){return e.y})}],yAxisName:i||"个"};this.threadpoolThreadsInfo=a},getSegmentCount:function(e,t){var n={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"segment count",data:e.map(function(e){return e.y})}],yAxisName:t||"个"};this.segmentCountInfo=n},getHttpOpenCount:function(e,t){var n={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"http open current",data:e.map(function(e){return e.y})}],yAxisName:t||"个"};this.httpOpenCurrentInfo=n},getIndexSerachRate:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"indexing",data:e.map(function(e){return e.y.toFixed(2)})},{name:"search",data:t.map(function(e){return e.y.toFixed(2)})}],yAxisName:n||"个"};this.indexSearchRateInfo=i},getIndexSearchLatency:function(e,t,n){var i={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"indexing",data:e.map(function(e){return e.y.toFixed(2)})},{name:"search",data:t.map(function(e){return e.y.toFixed(2)})}],yAxisName:n||"个"};this.indexSearchLatencyInfo=i},getSystemLoad:function(e,t){var n={xAxis:e.map(function(e){return e.x}),seriesData:[{name:"system load 1m",data:e.map(function(e){return e.y.toFixed(2)})}],yAxisName:t};this.systemLoadInfo=n},getNodeMonitor:function(){var e=this,t=(0,o.default)({clusterName:this.clusterId,nodeName:this.node},this.timeInterval);this.$http.post("/monitor/node.json",t).then(function(t){t&&(e.gaugeMetricData=[t.gaugeMetric],e.getgcCount(t.gcCountOld.metricModel,t.gcCountYoung.metricModel,t.gcCountOld.unit),e.getgcDuration(t.gc_duration_old_ms.metricModel,t.gc_duration_young_ms.metricModel,t.gc_duration_old_ms.unit),e.getJVMHeap(t.jvm_heap_max_byte.metricModel,t.jvm_heap_used_byte.metricModel,t.jvm_heap_max_byte.unit),e.getCpuPercent(t.cpuNodePercent.metricModel,t.cpuProcessPerent.metricModel,t.cpuNodePercent.unit),e.getIndexMemory(t.index_memory_lucenc_total_byte.metricModel,t.index_memory_terms_bytes.metricModel,t.index_memory_lucenc_total_byte.unit),e.getTheadPoolQueue(t.searchThreadpoolQueue.metricModel,t.indexThreadpoolQueue.metricModel,t.bulkThreadpoolQueue.metricModel,t.searchThreadpoolQueue.unit),e.getThreadPoolThreads(t.searchThreadpoolThreads.metricModel,t.indexThreadpoolThreads.metricModel,t.bulkThreadpoolThreads.metricModel,t.searchThreadpoolThreads.unit),e.getThreadPoolReject(t.searchThreadpoolReject.metricModel,t.indexThreadpoolReject.metricModel,t.bulkThreadpoolReject.metricModel,t.searchThreadpoolReject.unit),e.getSegmentCount(t.segmentCount.metricModel,t.segmentCount.unit),e.getHttpOpenCount(t.httpOpenCurrent.metricModel,t.httpOpenCurrent.unit),e.getIndexSerachRate(t.indexingRate.metricModel,t.searchRate.metricModel,t.searchRate.unit),e.getIndexSearchLatency(t.indexingLatency.metricModel,t.searchLatency.metricModel,t.searchLatency.unit),e.getSystemLoad(t.systemLoad_1m.metricModel,t.systemLoad_1m.unit))})}},computed:{timeInterval:function(){return this.$store.state.monitorTimeInterval},clusterId:function(){return this.$route.query.clusterId},node:function(){return this.$route.query.node}},created:function(){this.getNodeMonitor()},watch:{"$store.state.monitorTimeInterval":function(e){console.log(e),this.getNodeMonitor()}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(25),l=i(s);t.default={props:[],data:function(){return{loading:!1,nodeForSearch:"",nodesList:[],nodes:[]}},methods:{nodesFilter:function(){var e=this,t=this.nodes.slice();t=t.filter(function(t){return t.nodeName.indexOf(e.nodeForSearch)>-1}),this.nodesList=t},getNodes:function(){var e=this,t=(0,l.default)({clusterName:this.clusterId},this.timeInterval);return this.$http.post("/monitor/nodes/info.json",t).then(function(t){t&&(e.nodes=t,e.nodesNum=t.length,e.nodesFilter())})},init:function(){var e=this;this.loading=!0,o.default.all([this.getNodes()]).then().finally(function(){e.loading=!1})}},computed:{clusterId:function(){return this.$route.query.clusterId},timeInterval:function(){return this.$store.state.monitorTimeInterval}},created:function(){this.init()},watch:{"$store.state.monitorTimeInterval":function(e){console.log(e),this.getNodes()}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(25),l=i(s),r=n(195),c=n(1368),u=i(c);t.default={components:{"custom-time-dialog":u.default},data:function(){return{loading:!1,activeTab:"cluster_monitor",nodesNum:0,indicesNum:0,periodTimeMap:{30:"最近30分钟",60:"最近1小时",180:"最近3小时",360:"最近6小时",720:"最近12小时",1440:"最近24小时",4320:"最近3天",10080:"最近7天",custom:"自定义时间"},customTimeVisible:!1}},methods:{handleCommand:function(e){if("custom"!==e){var t={command:e,from:(new Date).getTime()-60*Number(e)*1e3,to:(new Date).getTime()};this.$store.dispatch(r.SET_MONITOR_TIME_INTERVAL,t)}else this.customTimeVisible=!0},setCustomTime:function(e){this.$store.dispatch(r.SET_MONITOR_TIME_INTERVAL,e),this.closeCustomTimeDialog()},closeCustomTimeDialog:function(){this.customTimeVisible=!1},onTabClick:function(){this.$router.push({name:this.activeTab,query:{clusterId:this.clusterId}})},getActiveTab:function(){var e=this.$route.name;e&&(this.activeTab="indice_monitor_detail"===e?"indices_monitor":"node_monitor_detail"===e?"nodes_monitor":e)},getIndicesNum:function(){var e=this,t=(0,l.default)({clusterName:this.clusterId,nodeName:this.node},this.timeInterval);return this.$http.post("/monitor/indices/count.json",t).then(function(t){t&&(e.indicesNum=t)})},getNodesNum:function(){var e=this,t=(0,l.default)({clusterName:this.clusterId,nodeName:this.node},this.timeInterval);return this.$http.post("/monitor/nodes/count.json",t).then(function(t){t&&(e.nodesNum=t)})},init:function(){var e=this;this.loading=!0,o.default.all([this.getIndicesNum(),this.getNodesNum()]).then().finally(function(){e.loading=!1})}},computed:{timeInterval:function(){return this.$store.state.monitorTimeInterval},clusterId:function(){return this.$route.query.clusterId},indice:function(){return this.$route.query.indice},node:function(){return this.$route.query.node},breadcrumbs:function(){var e=[];return"cluster_monitor"===this.$route.name?e.push({name:"集群"}):"indices_monitor"===this.$route.name?e.push({name:"索引"}):"indice_monitor_detail"===this.$route.name?(e.push({name:"索引",route:{name:"indices_monitor",query:{clusterId:this.clusterId}}}),e.push({name:this.indice})):"nodes_monitor"===this.$route.name?e.push({name:"节点"}):"node_monitor_detail"===this.$route.name&&(e.push({name:"节点",route:{name:"nodes_monitor",query:{clusterId:this.clusterId}}}),e.push({name:this.node})),e}},created:function(){this.getActiveTab(),this.init()},watch:{$route:"getActiveTab","$store.state.monitorTimeInterval":function(e){console.log(e),this.getIndicesNum(),this.getNodesNum()}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["indexId","crondeleteInfo","crondeleteOperation","crondeleteTitle"],data:function(){return{loading:!1,isCronDeleteVisible:!0,rules:{cron:[{required:!0,message:"请参照saturn的cron格式",trigger:"blur"}],versionId:[{validator:this.$validate.validateSelect,trigger:"blur"}],scrollSize:[{required:!0,message:"scrollSize不能为空"},{type:"number",message:"scrollSize值必须为数字值"}],dsl:[{required:!0,message:"请输入delete by query的查询dsl",trigger:"blur"}]},versionIdList:[],showImportObject:{show:!1}}},methods:{initVersionIdList:function(){var e=this,t={currentPage:1,pageSize:100,indexId:this.indexId};this.loading=!0,this.$http.get("/index/version/page.json",t).then(function(t){t.list.length>0&&t.list.forEach(function(t){var n={};n=t.isUsed===!0?{label:t.id+"(当前启用版本)",value:t.id}:{label:t.id,value:t.id},e.versionIdList.push(n)})}).finally(function(){e.loading=!1})},submitUpsert:function(){var e=this;this.$refs.crondeleteInfo.validate(function(t){if(t){var n="edit"===e.crondeleteOperation?"修改成功":"新增成功";e.loading=!0,e.$http.post("/crondelete/upsert.json",e.crondeleteInfo).then(function(){e.$message.successMessage(n,function(){e.$emit("operate-close-dialog")})}).finally(function(){e.loading=!1})}})},closeDialog:function(){this.$emit("close-dialog")}},computed:{},components:{},created:function(){this.initVersionIdList()}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(1374),l=i(s);t.default={data:function(){return{loading:!1,indexId:this.$route.query.indexId,indexName:this.$route.query.indexName,isAllPrivilege:!1,showDsl:!1,isCronDeleteVisible:!1,crondeleteOperation:"",crondeleteTitle:"",viewInfoTitle:"",viewInfo:"",cronDeleteList:[],crondeleteInfo:{},crondeleteAddInfo:{versionId:null,cron:"",dsl:"",scrollSize:1e3,id:""}}},methods:{getCronDeleteList:function(){var e=this,t={indexId:this.indexId};this.loading=!0,this.$http.get("/crondelete/find_by_index.json?indexId="+t.indexId).then(function(t){e.isAllPrivilege=t.allPrivilege,e.cronDeleteList=t.list}).finally(function(){e.loading=!1})},getDsl:function(e){this.viewInfo=(0,o.default)(JSON.parse(e.dsl),void 0,2),this.showDsl=!0,this.viewInfoTitle="delete_by_query dsl"},executeSearchDsl:function(e){var t=this,n={id:e.id};this.loading=!0,this.$http.get("/crondelete/query_dsl.json?id="+n.id).then(function(e){t.viewInfo=(0,o.default)(JSON.parse(e),void 0,2),t.showDsl=!0,t.viewInfoTitle="dsl查询结果"}).finally(function(){t.loading=!1})},closeDialog:function(){this.showDsl=!1,this.isCronDeleteVisible=!1},operateCloseDialog:function(){this.isCronDeleteVisible=!1,this.refreshPage()},refreshPage:function(){this.getCronDeleteList()},handleAdd:function(){this.isCronDeleteVisible=!0,this.crondeleteTitle="新增",this.crondeleteOperation="add",this.crondeleteInfo=JSON.parse((0,o.default)(this.crondeleteAddInfo))},handleEdit:function(e){this.isCronDeleteVisible=!0,this.crondeleteTitle="修改",this.crondeleteOperation="edit",this.crondeleteInfo=e},handleRunAtOnce:function(e){var t=this;this.$message.confirmMessage("确定立刻执行作业"+this.indexName+"_"+this.indexId+"_crondelete_"+e.id+"吗? ",function(){t.loading=!0,t.$http.post("/crondelete/run.json",{id:e.id}).then(function(){t.$message.successMessage("已通知saturn执行,请前往saturn查看作业:"+t.indexName+"_"+t.indexId+"_crondelete_"+e.id+" 的执行结果",function(){t.getCronDeleteList()})}).finally(function(){t.loading=!1})})},handleDelete:function(e){var t=this;this.$message.confirmMessage("确定删除"+e.id+"吗?",function(){t.loading=!0,t.$http.post("/crondelete/delete.json",{id:e.id}).then(function(){t.$message.successMessage("删除成功",function(){t.getCronDeleteList()})}).finally(function(){t.loading=!1})})},handleDisableAndDeleteJob:function(e){var t=this;this.$message.confirmMessage("确定禁用"+e.id+"吗?",function(){t.loading=!0,t.$http.post("/crondelete/disable_and_delete_job.json",{id:e.id}).then(function(){t.$message.successMessage("禁用成功",function(){t.getCronDeleteList()})}).finally(function(){t.loading=!1})})},handleCreateAndEnableJob:function(e){var t=this;this.$message.confirmMessage("确定启用"+e.id+"吗?",function(){t.loading=!0,t.$http.post("/crondelete/create_and_enable_job.json",{id:e.id}).then(function(){t.$message.successMessage("启用成功",function(){t.getCronDeleteList()})}).finally(function(){t.loading=!1})})}},filters:{translateIsUsed:function(e){return{true:"是",false:"否"}[e]}},components:{"crondelete-dialog":l.default},created:function(){this.getCronDeleteList()}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(11),l=i(s),r=n(1377),c=i(r);t.default={data:function(){return{loading:!1,indexId:this.$route.query.indexId,pageSize:10,currentPage:1,operationData:{},operationList:[],selectedType:"",filterVersion:"",timeRange:"",typeList:[{value:"索引事件"},{value:"版本事件"},{value:"同步事件"},{value:"模板事件"}],dynamicOperation:"",dynamicInfoTitle:"",isDynamicInfoVisible:!1,isChartVisible:!1,dynamicInfo:{},indexSearchRateInfo:{},indexSearchLatencyInfo:{},dynamicDeleteInfo:{indexId:this.$route.query.indexId,indexName:this.$route.query.indexName,filterVersion:"",selectedType:"",eventName:"",timeRange:90},chartList:[],versionIdList:[]}},methods:{initVersionIdList:function(){var e=this,t={currentPage:1,pageSize:100,indexId:this.indexId};this.loading=!0,this.$http.get("/index/version/page.json",t).then(function(t){t.list.length>0&&t.list.forEach(function(t){var n={};n=t.isUsed===!0?{label:t.id+"(当前启用版本)",value:t.id}:{label:t.id,value:t.id},e.versionIdList.push(n)})}).finally(function(){e.loading=!1})},getClusterMetricChart:function(e){var t=e.metric.indexingRate.metricModel;console.log(t);var n=e.clusterName,i=e.metric.searchRate.metricModel,a={xAxis:t.map(function(e){return e.x}),name:n,seriesData:[{name:"indexing",data:t.map(function(e){return e.y.toFixed(2)})},{name:"search",data:i.map(function(e){return e.y.toFixed(2)})}],yAxisName:i.unit||"个"},o=e.metric.indexingLatency.metricModel,s=e.metric.searchLatency.metricModel,l={xAxis:o.map(function(e){return e.x}),name:n,seriesData:[{name:"indexing",data:o.map(function(e){return e.y.toFixed(2)})},{name:"search",data:s.map(function(e){return e.y.toFixed(2)})}],yAxisName:s.unit||"个"},r={rate:a,latency:l};console.log(r),this.chartList.push(r)},getOperationList:function(){var e=this;"[null,null]"===(0,l.default)(this.timeRange)&&(this.timeRange="");var t={currentPage:this.currentPage,pageSize:this.pageSize,indexId:this.indexId,selectedType:this.selectedType,filterVersion:this.filterVersion,timeRange:this.timeRange};return this.$http.post("/index/dynamic/page.json",t).then(function(t){e.operationData=t,e.operationList=t.list.map(function(e){var t={};return t.id=e.id,t.eventType=e.eventType,t.eventName=e.eventName,t.eventDetail=e.eventDetail,t.endTime=e.endTime,t.operationTime=e.operationTime,t.operator=e.operator,t.versionId=e.versionId,e.eventDetail.length>500?(t.isFold=!0,t.isShowIcon=!0):(t.isFold=!1,t.isShowIcon=!1),t}),t.metric&&(t.metric.forEach(function(t){e.getClusterMetricChart(t)}),e.isChartVisible=!0)})},handleDelete:function(){this.isDynamicInfoVisible=!0,this.dynamicOperation="delete",this.dynamicInfoTitle="删除数据(3月前)",this.dynamicInfo=JSON.parse((0,l.default)(this.dynamicDeleteInfo))},closeDialog:function(){this.isDynamicInfoVisible=!1},operateCloseDialog:function(){this.isDynamicInfoVisible=!1,this.init()},changePage:function(e){this.currentPage=e,this.init()},init:function(){var e=this;this.loading=!0,o.default.all([this.getOperationList()]).then(function(){e.loading=!1})}},components:{"dynamic-info-dialog":c.default},created:function(){this.init(),this.initVersionIdList()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["dynamicOperation","dynamicInfo","dynamicInfoTitle","typeList","versionIdList"],data:function(){return{indexEventList:[{value:"创建索引"},{value:"更新索引"}],versionEventList:[{value:"创建版本"},{value:"更新版本"},{value:"启用版本"},{value:"删除版本"}],versionSyncEventList:[{value:"开始同步"},{value:"结束同步"},{value:"全量"},{value:"增量"},{value:"对账"}],templateEventList:[{value:"新建模板"},{value:"编辑模板"},{value:"导入模板"},{value:"删除模板"}],loading:!1,isDynamicInfoVisible:!0,rules:{}}},methods:{deleteDynamicInfo:function(){var e=this;this.$refs.dynamicInfo.validate(function(t){t?"delete"===e.dynamicOperation&&(e.loading=!0,e.$http.post("/index/dynamic/delete.json",e.dynamicInfo).then(function(){e.$message.successMessage("删除成功",function(){e.$emit("operate-close-dialog")})}).finally(function(){e.loading=!1})):console.log("error submit!!")})},closeDialog:function(){this.$emit("close-dialog")}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(1381),l=i(s),r=n(1380),c=i(r);t.default={components:{"flow-record-export":l.default,"flow-record-config":c.default},data:function(){return{activeNames:["1","2"],flowRecordExportParams:{}}},methods:{getFlowExport:function(e){this.flowRecordExportParams=JSON.parse((0,o.default)(e))}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["configOperation","configInfo","configInfoTitle","allPhysicals","templates"],data:function(){return{loading:!1,isconfigInfoVisible:!0,rules:{templateId:[{validator:this.$validate.validateSelect,trigger:"change"}],startTime:[{validator:this.$validate.validateTime,trigger:"change"}],endTime:[{validator:this.$validate.validateTimeExpire,trigger:"change"}],sampleRate:[{required:!0,message:"抽样系数不能为空",trigger:"blur"}],limit:[{required:!0,message:"采集数量不能为空",trigger:"blur"}]}}},methods:{submitconfigInfo:function(){var e=this;this.$refs.configInfo.validate(function(t){t&&("add"===e.configOperation?(e.loading=!0,e.$http.post("/record/flow_record_config/add.json",e.configInfo).then(function(){e.$message.successMessage("新增规则成功",function(){e.$emit("operate-close-dialog")})}).finally(function(){e.loading=!1})):(e.loading=!0,e.$http.post("/record/flow_record_config/edit.json",e.configInfo).then(function(){e.$message.successMessage("修改规则成功",function(){e.$emit("operate-close-dialog")})}).finally(function(){e.loading=!1})))})},closeDialog:function(){this.$emit("close-dialog")}},computed:{isEditable:function(){return"edit"===this.configOperation}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(1379),l=i(s);t.default={data:function(){return{indexId:this.$route.query.indexId,loading:!1,activeName:"first",flowRecordConfigList:[],indexName:this.$route.query.indexName,isMetaDataNull:!1,pageSize:10,configOperation:"",configInfoTitle:"",total:0,currentPage:1,configInfo:{},templates:[],isConfigInfoVisible:!1,isAllPrivilege:!1}},methods:{cellClick:function(e){var t={configId:e.id,indexId:e.indexId};this.$emit("get-flow-export",t)},init:function(){this.getFlowRecordConfigList(1),this.getTemplateByIndex()},changePage:function(e){this.getFlowRecordConfigList(e)},getTemplateByIndex:function(){var e=this,t={indexId:this.$route.query.indexId};this.$http.get("/record/index_template/list.json?indexId="+t.indexId).then(function(t){e.templates=t})},handleAdd:function(){this.isConfigInfoVisible=!0,this.configInfoTitle="新增规则",this.configOperation="add";var e={templateId:"",startTime:"",endTime:"",indexId:this.$route.query.indexId};this.configInfo=JSON.parse((0,o.default)(e))},handleDelete:function(e){var t=this;this.$message.confirmMessage("确定删除规则"+e.id+"吗,删除会同时停止此规则相关正在采集的作业?",function(){t.loading=!0,t.$http.post("/record/flow_record_config/delete.json",{indexId:t.indexId,configId:e.id}).then(function(){t.$message.successMessage("删除规则成功",function(){t.getFlowRecordConfigList(1)})}).finally(function(){t.loading=!1})})},handleEdit:function(e){var t=this;this.loading=!0,this.$http.get("/record/flow_record_config/id.json?configId="+e.id).then(function(n){var i=n;t.isConfigInfoVisible=!0,t.configInfoTitle="编辑规则",t.configOperation="edit";var a={id:e.id,templateId:i.templateId,startTime:i.startTime,endTime:i.endTime,indexId:t.$route.query.indexId,sampleRate:(0,o.default)(i.sampleRate),limit:(0,o.default)(i.limit),note:i.note||""};t.configInfo=JSON.parse((0,o.default)(a))}).finally(function(){t.loading=!1})},enableConfig:function(e){var t=this;this.$message.confirmMessage("确定启用规则"+e.id+"吗?",function(){t.loading=!0,t.$http.post("/record/flow_record_config/enable.json",{indexId:t.indexId,configId:e.id}).then(function(){t.$message.successMessage("启用规则成功",function(){t.getFlowRecordConfigList(1)})}).finally(function(){t.loading=!1})})},disableConfig:function(e){var t=this;this.$message.confirmMessage("确定禁用规则"+e.id+"吗,禁用会同时停止此规则相关正在采集的作业?",function(){t.loading=!0,t.$http.post("/record/flow_record_config/disable.json",{indexId:t.indexId,configId:e.id}).then(function(){t.$message.successMessage("禁用规则成功",function(){t.getFlowRecordConfigList(1)})}).finally(function(){t.loading=!1})})},getFlowRecordConfigList:function(e){var t=this,n={currentPage:e,pageSize:this.pageSize,indexId:this.$route.query.indexId||""};this.loading=!0,this.$http.get("/record/flow_record_config/page.json",n).then(function(e){t.flowRecordConfigList=e.list,t.total=e.total,t.isAllPrivilege=e.allPrivilege}).finally(function(){t.loading=!1})},closeDialog:function(){this.isConfigInfoVisible=!1},operateCloseDialog:function(){this.isConfigInfoVisible=!1,this.getFlowRecordConfigList(1)}},filters:{translateIsEnable:function(e){return{true:"已启用",false:"待启用"}[e]}},components:{"config-info-dialog":l.default},created:function(){this.init()},watch:{$route:"getFlowRecordConfigList"}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a);t.default={props:["flowRecordExportParams"],data:function(){return{loading:!1,flowRecordList:[],indexId:this.$route.query.indexId,indexName:this.$route.query.indexName,flowRecordStateMap:{0:"就绪",1:"正在采集",2:"已完成",3:"已终止",4:"已结束"},isAllPrivilege:!1,pageSize:10,total:0,currentPage:0}},methods:{changePage:function(e){this.currentPage=e,this.getFlowRecordList(e)},getFlowRecordList:function(e){var t=this,n=(0,o.default)({},this.flowRecordExportParams,{currentPage:e,pageSize:this.pageSize});this.loading=!0,this.$http.get("/record/flow_record/page_by_config.json",n).then(function(e){t.flowRecordList=e.list,t.isAllPrivilege=e.allPrivilege,t.total=e.total}).finally(function(){t.loading=!1})},stopRecord:function(e){var t=this;this.$message.confirmMessage("确定停止采集"+e.id+"吗,停止会同时禁用相关规则?",function(){t.loading=!0,t.$http.post("/record/flow_record/stop.json",{indexId:t.indexId,recordId:e.id}).then(function(){t.$message.successMessage("停止采集成功",function(){t.getFlowRecordList(1)})}).finally(function(){t.loading=!1})})},handleDelete:function(e){var t=this;this.$message.confirmMessage("确定要删除采集数据"+e.id+"吗,删除将清除相关记录数据?",function(){t.loading=!0,t.$http.post("/record/flow_record/delete.json",{indexId:t.indexId,recordId:e.id}).then(function(){t.$message.successMessage("删除采集数据成功",function(){t.getFlowRecordList(1)})}).finally(function(){t.loading=!1})})},refreshList:function(){var e=this;this.interval=setInterval(function(){e.getFlowRecordList(1)},3e3)},exportFlow:function(e){window.location.href="/pallas/record/flow_record/export.json?recordId="+e.id}},filters:{translateIsEnable:function(e){return{true:"是",false:"否"}[e]}},components:{},watch:{flowRecordExportParams:{handler:function(){this.getFlowRecordList(1)},deep:!0}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={data:function(){return{indexId:this.$route.query.indexId,indexName:this.$route.query.indexName,activeTab:"version_manage"}},methods:{onTabClick:function(){this.$router.push({name:this.activeTab,query:{indexId:this.$route.query.indexId,indexName:this.$route.query.indexName}})},getActiveTab:function(){var e=this.$route.name;e&&(this.activeTab=e)}},created:function(){this.activeTab=this.$route.name},watch:{$route:"getActiveTab"}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1385),o=i(a);t.default={props:["conditions","conditionInfo","conditionInfoTitle","conditionOperation","routingTargetGroups"],data:function(){return{isVisible:!0,rules:{name:[{required:!0,message:"规则名称不能为空",trigger:"blur"}],sourceType:[{required:!0,message:"数据源类型不能为空",trigger:"blur"}],sourceParameter:[{required:!0,message:"条件判断参数名不能为空",trigger:"blur"}],condExpr:[{required:!0,message:"条件判断运算不能为空",trigger:"blur"}],sourceValue:[{required:!0,message:"条件判断值不能为空",trigger:"blur"}],conditionRelation:[{required:!0,message:"请选择规则关系",trigger:"change"}],preference:[{validator:this.validatePreference,trigger:"blur"}]},preferenceList:["_primary","_primary_first","_replica","_replica_first","_only_local","_local","_prefer_nodes:abc,xyz","_shards:98,99"],conditionRelations:["OR","AND"],defaultProps:{key:"id",label:"name"}}},methods:{validatePreference:function(e,t,n){"_prefer_nodes:abc,xyz"===t?n(new Error("abc,xyz 请编辑文本填写真实节点内容")):"_shards:98,99"===t&&n(new Error("请编辑文本填写真实的分片")),n()},handleChange:function(e,t,n){"right"===t?this.changeDirection(n,"right"):this.changeDirection(n,"left")},changeDirection:function(e,t){var n=this;e.forEach(function(e){n.routingTargetGroups.forEach(function(i){e===i.id&&n.$set(i,"position",t)})})},renderFunc:function(e,t){var n=this;return"left"===t.position?e("div",[e("span",{style:{float:"left"}},t.name)]):e("div",[e("span",{style:{float:"left"}},t.name),e("input",{domProps:{value:t.weight||"0"},class:{"el-input__inner":!0},style:{float:"right",width:"50px",height:"20px",margin:"6px"},on:{input:function(e){n.$set(t,"weight",e.target.value),n.$emit("input",e.target.value)}}})])},submitInfo:function(){var e=this;this.$refs.conditionInfo.validate(function(t){if(t){var n=0;if(0!==e.conditionInfo.conditions.length&&e.$refs.conditions.$refs.conditionItem.forEach(function(e){e.$refs.conditionItemForm.validate(function(e){e&&(n+=1)})}),n===e.conditionInfo.conditions.length){e.conditionInfo.targetGroups=e.getTargetGroupsList();var i=e.setConditionInfo();e.targetGroupWeightValidate(i.targetGroups)&&("add"===e.conditionOperation?e.$emit("add-condition",i):e.$emit("edit-condition",i))}}})},targetGroupWeightValidate:function(e){var t=!1;if(0!==e.length){var n=/^([0-9]\d{0,1}|100)$/;e.some(function(e){return!n.test(e.weight)})?(t=!1,this.$message.errorMessage("请正确输入节点集权重, 0-100整数!")):t=!0}else t=!1,this.$message.errorMessage("请选择节点集!");return t},setConditionInfo:function(){var e={};return e.name=this.conditionInfo.name,e.targetGroups=this.conditionInfo.targetGroups,e.enable=this.conditionInfo.enable,e.conditionRelation=this.conditionInfo.conditionRelation,e.priority=this.conditionInfo.priority,e.conditions=this.conditionInfo.conditions,e.preference=this.conditionInfo.preference,e},getTargetGroupsList:function(){return this.$refs.targetGroupTransfer.targetData.map(function(e){var t={};return t.id=e.id,t.weight=e.weight,t})},closeDialog:function(){this.$emit("close-dialog")}},computed:{isEditable:function(){return"edit"===this.conditionOperation},alternativeConditions:function(){return"edit"===this.conditionOperation?(this.$array.removeByValue(this.conditions,this.conditionInfo.name),this.conditions):this.conditions}},components:{Conditions:o.default}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["conditionItem"],data:function(){return{rules:{exprOp:[{required:!0,message:"请选择判断运算",trigger:"change"}],paramName:[{required:!0,message:"请输入判断参数名",trigger:"change"}],paramValue:[{required:!0,message:"请输入判断值",trigger:"blur"}]},exprOps:["=","ip_mask"],paramNames:["X-PALLAS-SEARCH-CLIENT-IP","X-PALLAS-SEARCH-TEMPLATE-ID"]}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(1384),l=i(s);t.default={props:["conditions"],data:function(){return{conditionRelateInfo:{paramType:"header",exprOp:"",paramName:"",paramValue:""}}},methods:{addConditionRelate:function(){var e=JSON.parse((0,o.default)(this.conditionRelateInfo));this.conditions.push(e)},deleteConditionRelate:function(e){this.$array.removeByValue(this.conditions,e)}},components:{"condition-item":l.default}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(329),o=i(a),s=n(11),l=i(s),r=n(1387),c=i(r),u=n(1383),d=i(u);t.default={data:function(){return{loading:!1,privilege:!1,indexId:this.$route.query.indexId,indexName:this.$route.query.indexName,isConditionInfoVisible:!1,conditionInfo:{},conditionInfoTitle:"",conditionOperation:"",selectedCluster:"",indexNameForSearch:"",conditions:[],rulesList:[],routingTargetGroupsList:{},initTargetGroups:[],routingTargetGroups:[]}},methods:{sortTargetGroups:function(e){e.sort(function(e,t){return e.weightt.weight?-1:0})},handleAdd:function(){this.isConditionInfoVisible=!0,this.conditionInfoTitle="创建规则",this.conditionOperation="add",this.routingTargetGroups=JSON.parse((0,l.default)(this.initTargetGroups));var e={name:"",targetGroups:[],targetGroupsId:[],preference:"",enable:!1,conditions:[],conditionRelation:"AND",priority:""};this.conditionInfo=JSON.parse((0,l.default)(e))},addCondition:function(e){var t=JSON.parse((0,l.default)(this.rulesList));""===e.priority?t.push(e):t.some(function(n,i){return n.name===e.priority&&(t.splice(i,0,e),!0)}),this.updateConditionRequest(t)},closeConditionDialog:function(){this.isConditionInfoVisible=!1},handleEdit:function(e){var t=this;this.isConditionInfoVisible=!0,this.conditionInfoTitle="编辑规则",this.conditionOperation="edit",this.routingTargetGroups=JSON.parse((0,l.default)(this.initTargetGroups));var n=[];e.targetGroups.forEach(function(e){n.push(e.id),t.routingTargetGroups.forEach(function(n){e.id===n.id&&(t.$set(n,"weight",e.weight),t.$set(n,"position","right"))})});var i={name:e.name,targetGroups:e.targetGroups,targetGroupsId:n,preference:e.preference||"",enable:e.enable,conditionRelation:e.conditionRelation,priority:"",conditions:e.conditions};this.conditionInfo=JSON.parse((0,l.default)(i))},editCondition:function(e){var t=JSON.parse((0,l.default)(this.rulesList)),n=void 0;t.some(function(t,i){return t.name===e.name&&(n=i,!0)}),""===e.priority?t.splice(n,1,e):(t.splice(n,1),t.some(function(n,i){return n.name===e.priority&&(t.splice(i,0,e),!0)})),this.updateConditionRequest(t)},updateConditionRequest:function(e){var t=this,n={indexId:this.indexId,indexName:this.indexName,rules:e};this.loading=!0,this.$http.post("/index/routing/rule/update.json",n).then(function(){t.$message.successMessage("操作成功",function(){t.isConditionInfoVisible=!1,t.getRoutingList()})}).finally(function(){t.loading=!1})},handleDelete:function(e,t){var n=this;this.$message.confirmMessage("确定删除规则"+e.name+"吗?",function(){var e=JSON.parse((0,l.default)(n.rulesList));e.splice(t,1),n.updateConditionRequest(e)})},getRoutingList:function(){var e=this,t={indexId:this.indexId,indexName:this.indexName};this.loading=!0,this.$http.post("/index/routing/list.json",t).then(function(t){e.rulesList=t.data.rules,e.rulesList.forEach(function(t){e.sortTargetGroups(t.targetGroups)});var n=[];t.data.rules.forEach(function(e){n.push(e.name)}),e.conditions=n,e.routingTargetGroupsList=t.data.routingTargetGroups,e.initTargetGroups=(0,o.default)(t.data.routingTargetGroups).map(function(e){var t={};return t.id=e.id,t.name=e.name,t.weight=1,t.position="left",t}),e.privilege=t.privilege}).finally(function(){e.loading=!1})}},created:function(){this.getRoutingList()},filters:{translateEnable:function(e){return{true:"是",false:"否"}[e]}},components:{"target-group":c.default,"condition-info-dialog":d.default}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(1389),l=i(s),r=n(1388),c=i(r);t.default={props:["privilege","rulesList","indexId","indexName","routingTargetGroupsList"],data:function(){return{loading:!1,istargetGroupInfoVisible:!1,targetGroupInfo:{},targetGroupInfoTitle:"",targetGroupTree:[],targetGroupTreeNoChildren:[],selectedShowTreeInfo:"name"}},methods:{changeShowTreeInfo:function(e){this.selectedShowTreeInfo=e},handleAdd:function(){this.istargetGroupInfoVisible=!0,this.targetGroupInfoTitle="创建节点集";var e={indexId:this.indexId,indexName:this.indexName,name:"",clusterLevel:0,nodes:[],clusters:[]};this.targetGroupInfo=JSON.parse((0,o.default)(e))},saveOperation:function(e){var t=this;this.$set(e,"indexName",this.indexName),this.$set(e,"indexId",this.indexId),this.loading=!0,this.$http.post("/index/routing/target_group/update.json",e).then(function(){t.$emit("get-routing-list")}).finally(function(){t.loading=!1})},deleteOperation:function(e){var t=this,n=!1;this.rulesList.forEach(function(t){t.targetGroups.some(function(t){return t.id===e&&(n=!0),n})}),n?this.$message.errorMessage("此节点集正在使用中,不能删除!"):(this.loading=!0,this.$http.post("/index/routing/target_group/delete.json",{groupId:e}).then(function(){t.$emit("get-routing-list")}).finally(function(){t.loading=!1}))},operationSuccess:function(){this.istargetGroupInfoVisible=!1,this.$emit("get-routing-list")},closeTargetGroupDialog:function(){this.istargetGroupInfoVisible=!1},getTargetGroupTree:function(){var e=this,t={indexId:this.indexId,indexName:this.indexName};this.loading=!0,this.$http.post("/index/routing/target_group/list.json",t).then(function(t){e.targetGroupTree=t.map(function(t){var n={};return n.cluster=t.cluster,n.address=t.address,n.name=t.name,n.disabled=!0,t.children.length>0&&(n.children=e.setTargetGroupChildrenDisabled(t.children)),n}),e.targetGroupTreeNoChildren=t.map(function(e){var t={};return t.cluster=e.cluster,t.address=e.address,t.name=e.name,t.disabled=!0,t})}).finally(function(){e.loading=!1})},setTargetGroupChildrenDisabled:function(e){return e.map(function(e){var t={};return t.cluster=e.cluster,t.address=e.address,t.name=e.name,t.state=e.state,t.weight=e.weight,t.disabled=!0,t})}},components:{"target-group-info-dialog":c.default,"target-group-item":l.default},created:function(){this.getTargetGroupTree()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["rulesList","targetGroupInfo","targetGroupInfoTitle"],data:function(){return{loading:!1,isVisible:!0,rules:{name:[{required:!0,message:"节点集名称不能为空",trigger:"blur"}]},attrs:[{label:"普通级别",value:0},{label:"集群级别",value:1},{label:"集群级别(主分片优先)",value:3},{label:"集群级别(复制分片优先)",value:4},{label:"分片动态绑定",value:2},{label:"动态分组",value:5}]}},methods:{submitInfo:function(){var e=this;this.$refs.targetGroupInfo.validate(function(t){t&&e.targetGroupRequest(e.targetGroupInfo)})},targetGroupRequest:function(e){var t=this;this.loading=!0,this.$http.post("/index/routing/target_group/update.json",e).then(function(){t.$message.successMessage("操作成功",function(){t.$emit("operation-success")})}).finally(function(){t.loading=!1})},closeDialog:function(){this.$emit("close-dialog")}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:["privilege","targetGroupItemInfo","targetGroupTree","targetGroupTreeNoChildren","selectedShowTreeInfo"],data:function(){return{name:this.targetGroupItemInfo.name,isDefaultExpand:!0,defaultProps:{children:"children",label:"name",disabled:"disabled"},attrs:[{label:"普通级别",value:0},{label:"集群级别",value:1},{label:"集群级别(主分片优先)",value:3},{label:"集群级别(复制分片优先)",value:4},{label:"分片动态绑定",value:2},{label:"动态分组",value:5}],editable:!1}},methods:{checkChange:function(e,t){if(0!==this.targetGroupItemInfo.clusterLevel&&t){var n=[];n.push(e.name),this.$refs.mytree.setCheckedKeys(n)}},handleSave:function(){this.targetGroupItemInfo.name=this.name;var e=JSON.parse((0,o.default)(this.targetGroupItemInfo));if(0===this.targetGroupItemInfo.clusterLevel){if(this.getTargetGroupNodes(e.nodes),e.nodes.length>0){var t=e.nodes.some(function(t){return t.cluster!==e.nodes[0].cluster});t?this.$message.errorMessage("只能选择某个集群下的节点,请重新选择!"):this.saveInfo(e)}}else this.getTargetGroupNodes(e.clusters),this.saveInfo(e)},saveInfo:function(e){var t=this;this.$message.confirmMessage("确定保存节点集"+this.name+"吗?",function(){t.editable=!1,t.$emit("save-operation",e)})},handleEdit:function(){this.editable=!0,this.setTreeStatus(this.targetGroupTreeNoChildren,!1),this.setTreeStatus(this.targetGroupTree,!1)},handleCancel:function(){this.name=this.targetGroupItemInfo.name,0===this.targetGroupItemInfo.clusterLevel?this.$refs.mytree.setCheckedKeys(this.targetGroupItemInfo.nodes):this.$refs.mytree.setCheckedKeys(this.targetGroupItemInfo.clusters),this.editable=!1,this.setTreeStatus(this.targetGroupTreeNoChildren,!0),this.setTreeStatus(this.targetGroupTree,!0)},setTreeStatus:function(e,t){var n=this;e.forEach(function(e){n.$set(e,"disabled",t),e.children&&e.children.forEach(function(e){n.$set(e,"disabled",t)})})},getTargetGroupNodes:function(e){e.splice(0,e.length),this.$refs.mytree.getCheckedNodes().forEach(function(t){t.children||e.push(t)})},handleDelete:function(){var e=this;this.$message.confirmMessage("确定删除节点集"+this.targetGroupItemInfo.name+"吗?",function(){e.$emit("delete-operation",e.targetGroupItemInfo.id)})},getNodesName:function(e){var t=[];return this.targetGroupTree.forEach(function(n){n.name===e&&n.children&&n.children.forEach(function(e){t.push(e.name)})}),t},getShardNodes:function(e){var t=this,n=[];return this.targetGroupTree.forEach(function(i){i.children&&i.children.forEach(function(i){t.targetGroupItemInfo.nodes&&t.targetGroupItemInfo.nodes.forEach(function(t){i.cluster===e&&t===i.address&&n.push(i.name)})})}),n},renderContent:function(e,t){var n=t.data;return 1===this.targetGroupItemInfo.clusterLevel||3===this.targetGroupItemInfo.clusterLevel||4===this.targetGroupItemInfo.clusterLevel?e("span",[e("el-popover",{props:{placement:"right",trigger:"hover"}},[e("div",this.getNodesName(n.name).map(function(t){return e("div",t)})),e("span",{slot:"reference",style:{"font-size":"14px","margin-right":"5px"}},"name"===this.selectedShowTreeInfo?n.name:n.address)])]):0===this.targetGroupItemInfo.clusterLevel?e("span",[e("span",{style:{"font-size":"14px","margin-right":"5px"}},"name"===this.selectedShowTreeInfo?n.name:n.address),e("span",{class:{"el-tag":1===n.state,"el-tag--danger":1===n.state}},1===n.state?"离线":"")]):5===this.targetGroupItemInfo.clusterLevel?e("span",[e("el-popover",{props:{placement:"right",trigger:"hover",disabled:n.cluster!==this.targetGroupItemInfo.clusters[0]}},[e("div",this.targetGroupItemInfo.nodes.map(function(t){return e("div",t)})),e("span",{slot:"reference",style:{"font-size":"14px","margin-right":"5px"}},"name"===this.selectedShowTreeInfo?n.name:n.address)])]):e("span",[e("el-popover",{props:{placement:"right",trigger:"hover",disabled:n.cluster!==this.targetGroupItemInfo.clusters[0]}},[e("div",this.getShardNodes(n.name).map(function(t){return e("div",t)})),e("span",{slot:"reference",style:{"font-size":"14px","margin-right":"5px"}},"name"===this.selectedShowTreeInfo?n.name:n.address)])])}},computed:{myTree:function(){return 0!==this.targetGroupItemInfo.clusterLevel?this.targetGroupTreeNoChildren:this.targetGroupTree},treeCheckedKeys:function(){return 0!==this.targetGroupItemInfo.clusterLevel?this.targetGroupItemInfo.clusters:this.targetGroupItemInfo.nodes}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1392),o=i(a),s=n(1391),l=i(s);t.default={components:{"timeout-retry-manage":o.default,"throttling-manage":l.default},data:function(){return{loading:!1,indexId:this.$route.query.indexId,tabActive:"timeout_retry",templateList:[],allPrivilege:!1}},methods:{getTemplateList:function(){var e=this;this.loading=!0,this.$http.get("/index_template/list.json?indexId="+this.indexId).then(function(t){e.templateList=t.list,e.allPrivilege=t.allPrivilege}).finally(function(){e.loading=!1})}},created:function(){this.getTemplateList()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["templateList","allPrivilege"],data:function(){return{loading:!1,indexId:this.$route.query.indexId}},methods:{handleUpdate:function(e){var t=this,n={indexId:this.indexId,templateName:e.templateName,threshold:e.threshold,maxBurstSecs:e.maxBurstSecs};this.loading=!0,this.$http.post("/index_template/update.json",n).then(function(){t.$message.successMessage("更新成功",function(){t.$emit("refresh-template")})}).finally(function(){t.loading=!1})}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a);t.default={props:["templateList","allPrivilege"],data:function(){return{loading:!1,indexId:this.$route.query.indexId,indexConfigInfo:{},activeNames:["1","2"]}},methods:{getIndexConfigInfo:function(){var e=this;this.loading=!0,this.$http.get("/index/id.json?indexId="+this.indexId).then(function(t){e.indexConfigInfo=(0,o.default)({},t,{slowerThan:null==t.slowerThan?"200":t.slowerThan})}).finally(function(){e.loading=!1})},handleUpdate:function(){var e=this,t={indexId:this.indexId,timeout:this.indexConfigInfo.timeout,retry:this.indexConfigInfo.retry,slowerThan:this.indexConfigInfo.slowerThan};this.loading=!0,this.$http.post("/index/update/timeout_retry.json",t).then(function(){e.$message.successMessage("索引配置更新成功",function(){e.getIndexConfigInfo()})}).finally(function(){e.loading=!1})},handleTemplateUpdate:function(e){var t=this,n={indexId:this.indexId,templateName:e.templateName,timeout:e.timeout,retry:e.retry};this.loading=!0,this.$http.post("/index_template/update.json",n).then(function(){t.$message.successMessage("模板配置更新成功",function(){t.$emit("refresh-template")})}).finally(function(){t.loading=!1})}},created:function(){this.getIndexConfigInfo()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["templateAddInfo"],data:function(){return{loading:!1,isTemplateAddVisible:!0,rules:{templateName:[{required:!0,message:"请输入模板名称",trigger:"blur"}],type:[{required:!0,message:"请输入类型",trigger:"blur"}]}}},methods:{submitInfo:function(){var e=this;this.$refs.templateAddInfo.validate(function(t){t&&(e.loading=!0,e.$http.post("/index_template/add.json",e.templateAddInfo).then(function(){e.$message.successMessage("新增模板成功",function(){e.$emit("submit-close-dialog",e.templateAddInfo.templateName)})}).finally(function(){e.loading=!1}))})},closeDialog:function(){this.$emit("close-dialog"),this.$refs.templateAddInfo.resetFields()}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:["indexId","modifiedTemplateList"],data:function(){return{batchSubmitInfo:{approveInfo:""},rules:{approveInfo:[{required:!0,message:"请输入描述",trigger:"blur"}]},isBatchSubmitVisible:!0,templateSelected:[],batchSubmitList:[]}},methods:{closeDialog:function(){this.$emit("close-batch-submit-dialog")},submitTemplate:function(){var e=this;if(this.templateSelected.length<=0)return void this.$message.errorMessage("请选择要提交审批的模板!");var t=this.templateSelected.join(",");this.$refs.batchSubmitInfo.validate(function(n){if(n){var i={indexId:e.indexId,templateIds:t,historyDesc:e.batchSubmitInfo.approveInfo};e.$http.post("/index_template/batch/approve.json",i).then(function(){e.$message.successMessage("提交成功,请在模板变更中查看模板审批状态",function(){e.$emit("close-batch-submit-dialog")})}).finally(function(){})}})}},created:function(){var e=JSON.parse((0,o.default)(this.modifiedTemplateList));this.batchSubmitList=e.map(function(e){var t={};return t.key=e.id,t.label=e.templateName,t})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["profileData"],data:function(){return{defaultProps:{children:"children",label:"type"}}},methods:{renderContent:function(e,t){var n=t.data;return e("span",[e("span",{class:{"profile-tree-type":!0}},n.type),e("span",{class:{"profile-tree-desc":!0},attrs:{title:n.description}},n.description.length>30?n.description.substring(0,30)+"...":n.description),e("span",{class:{"pull-right":!0,"profile-tree-time":!0}},Number(n.time.replace(/([0-9]+\.[0-9]*)ms/,"$1")).toFixed(3)+"ms")])}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:["indexId","templateInfo"],data:function(){return{loading:!1,indexInfo:{}}},methods:{getIndexInfo:function(){var e=this;this.loading=!0,this.$http.get("/index/id.json?indexId="+this.indexId).then(function(t){e.indexInfo=JSON.parse((0,o.default)(t))}).finally(function(){e.loading=!1})},handleUpdate:function(){var e=this,t={indexId:this.indexId,templateName:this.templateInfo.templateName,timeout:this.templateInfo.timeout,retry:this.templateInfo.retry};this.loading=!0,this.$http.post("/index_template/update.json",t).then(function(){e.$message.successMessage("更新成功")}).finally(function(){e.loading=!1})}},created:function(){this.getIndexInfo()}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a),s=n(11),l=i(s);t.default={props:["metadataList"],data:function(){return{loading:!1,visible:!0,data:{from:{isChecked:!1,value:"0"},size:{isChecked:!1,value:"100"},sort:{isChecked:!1,isVariable:!0},source:{isChecked:!1,isVariable:!0}},templateContent:{},metadatas:[],queryBody:""}},methods:{handleExecute:function(){var e=this;this.queryBody="";var t={};if(this.data.from.isChecked&&this.$set(t,"from","<%{{from}}{{^from}}"+this.data.from.value+"{{/from}}%>"),this.data.size.isChecked&&this.$set(t,"size","<%{{size}}{{^size}}"+this.data.size.value+"{{/size}}%>"),this.data.sort.isChecked&&(this.data.sort.isVariable?(this.$set(t,"<%{{#sort}}<--","TAG-->"),this.$set(t,"sort","<%{{#toJson}}sort.list{{/toJson}}%>"),this.$set(t,"<%{{/sort}}<--","TAG-->")):this.$set(t,"sort",[{id:"desc"}])),this.data.source.isChecked&&(this.data.source.isVariable?(this.$set(t,"<%{{#source_fields}}<--","TAG-->"),this.$set(t,"_source","<%{{#toJson}}source_fields.list{{/toJson}}%>"),this.$set(t,"<%{{/source_fields}}<--","TAG-->")):this.$set(t,"_source",["id","update_time"])),this.metadatas.some(function(e){return e.queryWay})){this.$set(t,"query",{bool:{filter:["QUERY-BODY"]}});var n=this.metadatas.filter(function(e){return""!==e.queryWay});n.forEach(function(t,i){var a="{}\n ",o="\n";switch(i>0&&(a=" "),i===n.length-1&&(o=""),t.queryWay){case"term":e.queryBody+=a+"{{#"+t.dbFieldName+'}}\n ,{\n "term":{"'+t.dbFieldName+'":"{{'+t.dbFieldName+'}}"}\n }\n {{/'+t.dbFieldName+"}}"+o;break;case"multiTerm":e.queryBody+=a+"{{#"+t.dbFieldName+'}}\n ,{\n "terms":{ "'+t.dbFieldName+'":{{#toJson}}'+t.dbFieldName+".list{{/toJson}} }\n }\n {{/"+t.dbFieldName+"}}"+o;break;case"range":e.queryBody+=a+"{{#"+t.dbFieldName+'_min}}\n ,{\n "range": {\n "'+t.dbFieldName+'": {\n "from": "{{'+t.dbFieldName+'_min}}",\n "to": "{{'+t.dbFieldName+'_max}}"\n }\n }\n }\n {{/'+t.dbFieldName+"_min}}"+o;break;case"script":e.queryBody+=a+"{{#"+t.dbFieldName+'}}\n ,{\n "script": {\n "script": {\n "lang": "painless",\n "inline": "return doc[\''+t.dbFieldName+"'].value > 0\"\n }\n }\n }\n {{/"+t.dbFieldName+"}"+o}})}var i=/"<%/g,a=/%>"/g,o=/<--": "TAG-->",|<--": "TAG-->"/g,s=/"QUERY-BODY"/g;this.templateContent=(0,l.default)(t,void 0,2),this.templateContent=this.templateContent.replace(i,"").replace(a,"").replace(o,"").replace(s,this.queryBody)},handleClose:function(){this.$emit("close-dialog")},handleSave:function(){this.$emit("cover-content",this.templateContent)}},created:function(){this.metadatas=this.metadataList.map(function(e){var t=(0,o.default)({},e);return t.queryWay="",t})}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(224),l=i(s),r=n(25),c=i(r),u=n(11),d=i(u);n(193);var p=n(1395),f=i(p),m=n(1401),h=i(m),v=n(1396),g=i(v),b=n(1400),_=i(b),x=n(1397),y=i(x),I=n(1399),w=i(I);t.default={props:["indexId","indexName","metadataList","clusters","isAllPrivilege","templateInfo","macroList","temPanelHeight"],data:function(){return{loading:!1,clusterId:this.clusters[0].id,activeTab:"edit",selectedMacro:"",resultContent:"",explainContent:"",apiContent:{},paramsInfo:[],historyVersionList:[],isShowHistoryVersion:!1,isVersionContentVisible:!1,versionDiffInfo:{},datasourceList:{},datasourceId:"",sql:"",isEditSaveVisible:!1,isTemplateConfigVisible:!1,isTemplateInsertVisible:!1,profileData:{profile:{shards:[]}},isProfileVisible:!1}},methods:{copySuccess:function(){this.$message.success("已复制内容到剪贴板!")},copyError:function(e){this.$message.errorMessage("复制appSecret失败!"+e)},queryProfile:function(){var e=this,t={indexId:this.indexId,templateName:this.templateInfo.templateName,params:this.templateInfo.params,clusterId:this.clusterId,profile:!0};this.loading=!0,this.$http.post("/index_template/debug.json",t).then(function(t){if("error"===t.substring(2,7))e.resultContent=(0,d.default)(JSON.parse(t),void 0,2);else{var n=JSON.parse(t);e.profileData.profile.shards=n.profile.shards.map(function(e){var t=(0,c.default)({},e),n=e.searches[0].query.reduce(function(e,t){return e+Number(t.time.replace(/([0-9]+\.[0-9]*)ms/,"$1"))},0);return t.totalTime=n.toFixed(3),t}),e.profileData.profile.shards.sort(function(e,t){return Number(t.totalTime)-Number(e.totalTime)}),e.isProfileVisible=!0}}).finally(function(){e.loading=!1})},insertTemplate:function(){this.isTemplateInsertVisible=!0},insertTemplateContent:function(e){this.$refs.aceEditor1.editor.insert(e),this.closeTemplateInsertDialog()},closeTemplateInsertDialog:function(){this.isTemplateInsertVisible=!1},setCustomTemplate:function(){this.isTemplateConfigVisible=!0},coverConfigTemplate:function(e){this.templateInfo.content=e,this.closeTemplateConfigDialog()},closeTemplateConfigDialog:function(){this.isTemplateConfigVisible=!1},initSql:function(e){var t=this.datasourceList[e].split("/")[2];this.sql="select * from "+t},tabClick:function(){var e=this;if("api"===this.activeTab){var t={indexId:this.indexId,templateName:this.templateInfo.templateName};this.loading=!0,this.$http.post("/index_template/genapi.json",t).then(function(t){e.apiContent=t}).finally(function(){e.loading=!1})}else if("test"===this.activeTab){var n={indexId:this.indexId,templateName:this.templateInfo.templateName};this.loading=!0,this.$http.post("/index_template/performance_script/param.json",n).then(function(t){e.paramsInfo=t.map(function(e){var t={};return t.paramName=e.paramName,t.include=!1,t.valueType="1",t.value="",t})}).finally(function(){e.loading=!1})}},insertMacro:function(){this.selectedMacro&&this.$refs.aceEditor1.editor.insert(this.insertContent)},changeEditContent:function(e){this.templateInfo.content!==e&&(this.templateInfo.content=e)},changeDebugContent:function(e){this.templateInfo.params!==e&&(this.templateInfo.params=e)},changeSqlContent:function(e){this.sql!==e&&(this.sql=e)},handleExecute:function(){var e=this,t={indexId:this.indexId,sql:this.sql,datasourceId:this.datasourceId};this.loading=!0,this.$http.post("/index_template/execute.json",t).then(function(t){try{e.explainContent=(0,d.default)(t,void 0,2)}catch(n){e.explainContent="解析错误: "+t.result}}).finally(function(){e.loading=!1})},handleResetParams:function(){this.templateInfo.params=(0,d.default)(JSON.parse(this.templateInfo.resetParams),void 0,2)},handleFormatParams:function(){var e=JSON.parse(this.templateInfo.params);e.params&&null!==e.params?this.templateInfo.params=(0,d.default)(e.params,void 0,2):this.templateInfo.params=(0,d.default)(e,void 0,2)},handleExplain:function(){var e=this,t={sql:this.sql,clusterId:this.clusterId};this.loading=!0,this.$http.post("/index_template/explain.json",t).then(function(t){try{e.explainContent=(0,d.default)(JSON.parse(t),void 0,2)}catch(n){e.explainContent="解析错误: "+t.result}}).finally(function(){e.loading=!1})},handleDelete:function(){var e=this;this.$message.confirmMessage("确定删除模板"+this.templateInfo.templateName+"吗?",function(){var t={indexId:e.indexId,indexName:e.indexName,templateId:e.templateInfo.id,templateName:e.templateInfo.templateName};e.loading=!0,e.$http.post("/index_template/delete.json",t).then(function(){e.$message.successMessage("删除成功",function(){e.$emit("close-delete")})}).finally(function(){e.loading=!1})})},handleSave:function(){var e=this,t={indexId:this.indexId,templateName:this.templateInfo.templateName,content:this.templateInfo.content,params:this.templateInfo.params};this.loading=!0,this.$http.post("/index_template/update.json",t).then(function(){e.$message.successMessage("保存成功",function(){e.$emit("close-edit")})}).finally(function(){e.loading=!1})},handleApprove:function(){this.isEditSaveVisible=!0},closeEditSaveDialog:function(){this.isEditSaveVisible=!1},editSaveSuccess:function(){this.isEditSaveVisible=!1,this.$emit("close-edit"),this.getHistoryList()},handleRender:function(){var e=this,t={indexId:this.indexId,templateName:this.templateInfo.templateName,params:this.templateInfo.params,clusterId:this.clusterId};this.loading=!0,this.$http.post("/index_template/render.json",t).then(function(t){try{e.resultContent=e.$common.JSONbigStringifyFormat(e.$common.JSONbigParse(t))}catch(n){e.resultContent="解析错误: "+t}}).finally(function(){e.isProfileVisible=!1,e.loading=!1})},handleDebug:function(){var e=this,t={indexId:this.indexId,templateName:this.templateInfo.templateName,params:this.templateInfo.params,clusterId:this.clusterId};this.loading=!0,this.$http.post("/index_template/debug.json",t).then(function(t){e.resultContent=e.$common.JSONbigStringifyFormat(e.$common.JSONbigParse(t))}).finally(function(){e.isProfileVisible=!1,e.loading=!1})},handleHistoryVersion:function(){this.isShowHistoryVersion=!this.isShowHistoryVersion,this.isShowHistoryVersion&&this.getHistoryList()},handleVersionDialog:function(e){this.isVersionContentVisible=!0,this.versionDiffInfo.left=e.content,this.versionDiffInfo.right=this.templateInfo.content},closeVersionContentDialog:function(){this.isVersionContentVisible=!1},overwriteVersion:function(){this.templateInfo.content=this.versionDiffInfo.left,this.isVersionContentVisible=!1},getHistoryList:function(){var e=this;this.loading=!0,this.$http.get("/index_template/hislist.json?templateId="+this.templateInfo.id).then(function(t){e.historyVersionList=t}).finally(function(){e.loading=!1})},getDataSourceList:function(){var e=this;return this.$http.post("/index/loadDbList.json",{indexId:this.indexId}).then(function(t){t&&(e.datasourceList=t,0!==e.datasourceList.length&&(e.datasourceId=(0,l.default)(t)[0][0]))})},init:function(){var e=this;this.loading=!0,o.default.all([this.getDataSourceList()]).then(function(){}).finally(function(){e.loading=!1})}},components:{"template-test":h.default,"profile-content":f.default,"template-save-edit-dialog":_.default,"service-governance":g.default,"template-config-dialog":y.default,"template-insert-dialog":w.default},created:function(){this.init()},computed:{insertContent:function(){return"##__"+this.selectedMacro+"__##"},eidtorId:function(){return this.templateInfo.templateName+"_edit"},debugId:function(){return this.templateInfo.templateName+"_debug"},isMacroVisible:function(){return 0===this.templateInfo.type},historyVersionBtn:function(){return this.isShowHistoryVersion?"隐藏历史版本":"历史版本"},isEditOperate:function(){return"edit"===this.activeTab},templateType:function(){return 0===this.templateInfo.type?"宏":"模板"}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a);t.default={props:["metadataList"],data:function(){return{loading:!1,visible:!0,info:{field:"from",from:0,size:100,sort:!0,source:!0},metadatas:[],resultContent:""}},methods:{handleInsert:function(){var e=this;this.$refs.info.validate(function(t){if(t)if("from"===e.info.field)e.resultContent='"from": {{from}}{{^from}}'+e.info.from+"{{/from}},",e.insertContent();else if("size"===e.info.field)e.resultContent='"size": {{size}}{{^size}}'+e.info.size+"{{/size}},",e.insertContent();else if("sort"===e.info.field)e.info.sort?e.resultContent='{{#sort}}\n "sort": {{#toJson}}sort.list{{/toJson}},\n {{/sort}}':e.resultContent='"sort": [{"id":"desc"}],',e.insertContent();else if("source"===e.info.field)e.info.source?e.resultContent='{{#source_fields}}\n "_source": {{#toJson}}source_fields.list{{/toJson}},\n {{/source_fields}}':e.resultContent='"_source": [{"id","update_time"}],',e.insertContent();else{var n=e.metadatas.some(function(e){return e.queryWay});if(n){var i=e.metadatas.filter(function(e){return""!==e.queryWay});i.forEach(function(t,n){var a="",o="\n";switch(n>0&&(a=" "),n===i.length-1&&(o=""),t.queryWay){case"term":e.resultContent+=a+"{{#"+t.dbFieldName+'}}\n ,{\n "term":{"'+t.dbFieldName+'":"{{'+t.dbFieldName+'}}"}\n }\n {{/'+t.dbFieldName+"}}"+o;break;case"multiTerm":e.resultContent+=a+"{{#"+t.dbFieldName+'}}\n ,{\n "terms":{ "'+t.dbFieldName+'":{{#toJson}}'+t.dbFieldName+".list{{/toJson}} }\n }\n {{/"+t.dbFieldName+"}}"+o;break;case"range":e.resultContent+=a+"{{#"+t.dbFieldName+'_min}}\n ,{\n "range": {\n "'+t.dbFieldName+'": {\n "from": "{{'+t.dbFieldName+'_min}}",\n "to": "{{'+t.dbFieldName+'_max}}"\n }\n }\n }\n {{/'+t.dbFieldName+"_min}}"+o;break;case"script":e.resultContent+=a+"{{#"+t.dbFieldName+'}}\n ,{\n "script": {\n "script": {\n "lang": "painless",\n "inline": "return doc[\''+t.dbFieldName+"'].value > 0\"\n }\n }\n }\n {{/"+t.dbFieldName+"}"+o}}),e.insertContent()}else e.$message.errorMessage("还未选择任何query字段,请勾选!")}})},insertContent:function(){this.$emit("insert-template-content",this.resultContent)},handleClose:function(){this.$emit("close-dialog")}},created:function(){this.metadatas=this.metadataList.map(function(e){var t=(0,o.default)({},e);return t.queryWay="",t})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["indexId","templateInfo"],data:function(){return{loading:!1,isEditSaveVisible:!0,editSaveInfo:{historyDesc:""},rules:{historyDesc:[{required:!0,message:"请输入描述",trigger:"blur"}]}}},methods:{handleSubmit:function(){var e=this;this.$refs.editSaveInfo.validate(function(t){if(t){var n={indexId:e.indexId,templateName:e.templateInfo.templateName,content:e.templateInfo.content,params:e.templateInfo.params,historyDesc:e.editSaveInfo.historyDesc};e.loading=!0,e.$http.post("/index_template/approve.json",n).then(function(){e.$message.successMessage("提交成功,请在模板变更中查看模板审批状态",function(){e.$emit("edit-save-success")})}).finally(function(){e.loading=!1})}})},handleClose:function(){this.$emit("close-edit-save-dialog")}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1402),o=i(a),s=n(1404),l=i(s),r=n(1403),c=i(r);t.default={props:["indexId","templateName","paramsInfo","temPanelHeight"],data:function(){return{addDataSource:[{paramNameDef:"",indexId:this.indexId,templateName:this.templateName}],dataSource:[]}},methods:{templateTestUploadSuccess:function(e){this.dataSource.push(e)}},components:{"template-test-data-source":o.default,"template-test-upload":l.default,"template-test-params":c.default}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["indexId","templateName","dataSource"],data:function(){return{loading:!1}},methods:{handleSave:function(e){var t=this;if(e.editParamNameDef)if(e.editParamNameDef.indexOf(",")<=0){var n={indexId:this.indexId,templateName:this.templateName,fileName:e.fileName,paramNameDef:e.editParamNameDef};this.loading=!0,this.$http.post("/index_template/performance_script/update.json",n).then(function(){t.$message.successMessage("保存成功",function(){t.$set(e,"paramNameDef",e.editParamNameDef),t.$set(e,"editParamNameDef","")})}).finally(function(){t.loading=!1})}else this.$message.errorMessage("请用;符号分隔参数");else this.$message.errorMessage("参数不能为空!")},handleDelete:function(e){var t=this;this.$message.confirmMessage("确定删除文件"+e.fileName+"吗?",function(){var n={indexId:t.indexId,templateName:t.templateName,fileName:e.fileName};t.loading=!0,t.$http.post("/index_template/performance_script/delete.json",n).then(function(){t.$message.successMessage("删除成功",function(){t.$array.removeByValue(t.dataSource,e)})}).finally(function(){t.loading=!1})})}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:["indexId","templateName","paramsInfo","dataSource","temPanelHeight"],data:function(){return{}},methods:{valueTypeChange:function(e){this.$set(e,"value","")},handleGen:function(){var e=this,t=[];this.paramsInfo.forEach(function(e){e.include&&t.push(e)});var n=t.some(function(t){return!t.value&&(e.$message.errorMessage("数据源参数映射不能为空!"),!0)});if(t.length){if(!n){var i={indexId:this.indexId,templateName:this.templateName,params:t},a=encodeURIComponent((0,o.default)(i));window.location.href="/pallas/index_template/performance_script/gen.json?params="+a}}else this.$message.errorMessage("请至少选择一个参数!")}},computed:{paramValues:function(){var e=this,t=[];return this.dataSource.forEach(function(e){if(e.paramNameDef.indexOf(";")<=0)t.push(e.paramNameDef);else{e.paramNameDef.split(";").forEach(function(e){t.push(e)})}}),this.paramsInfo.forEach(function(n){if("2"===n.valueType){t.some(function(e){return e===n.value})||e.$set(n,"value","")}}),t}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:["addDataSource","dataSource"],data:function(){return{}},methods:{handleUpload:function(){this.$refs.upload.clearFiles(),this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleError:function(e){this.$message.errorMessage("上传失败: "+e)},handleRemove:function(){this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleAdd:function(e){var t=this;if(e.paramNameDef&&this.$refs.upload.uploadFiles.length)if(e.paramNameDef.indexOf(",")<=0)if(e.paramNameDef.indexOf(";")<=0)this.$array.isContainValue(this.paramValues,e.paramNameDef)?this.$message.errorMessage("不允许相同参数名"):this.$refs.upload.submit();else{var n=e.paramNameDef.split(";"),i=n.some(function(e){return!!t.$array.isContainValue(t.paramValues,e)&&(t.$message.errorMessage("不允许相同参数名"),!0)});i||this.$refs.upload.submit()}else this.$message.errorMessage("请用;符号分隔参数");else this.$message.errorMessage("参数和文件不能为空")},handleSuccess:function(e,t){var n=this;200===e.status?this.$message.confirmMessage("上传成功!",function(){var e={};e.paramNameDef=JSON.parse((0,o.default)(n.addDataSource[0].paramNameDef)),e.fileName=JSON.parse((0,o.default)(t.name)),n.$emit("template-test-upload-success",e),n.$refs.upload.clearFiles(),n.$refs.upload.$refs["upload-inner"].$refs.input.value="",n.addDataSource[0].paramNameDef=""}):this.$message.errorMessage(e.description)}},computed:{paramValues:function(){var e=[];return this.dataSource.forEach(function(t){if(t.paramNameDef.indexOf(";")<=0)e.push(t.paramNameDef);else{t.paramNameDef.split(";").forEach(function(t){e.push(t)})}}),e}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:["indexId","templateList"],data:function(){return{isTemplateExportVisible:!0,templateSelected:[],exportTemplateList:[]}},methods:{closeDialog:function(){this.$emit("close-export-dialog")},sumbitExportTemplate:function(){if(this.templateSelected.length>0){var e=this.templateSelected.join(",");window.location.href="/pallas/index_template/export.json?indexId="+this.indexId+"&templateIds="+e}else this.$message.errorMessage("请选择要导出的模板!")}},created:function(){var e=JSON.parse((0,o.default)(this.templateList));this.exportTemplateList=e.map(function(e){var t={};return t.key=e.id,t.label=e.templateName,t})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["indexId","templateImportTitle","templateImportUrl"],data:function(){return{loading:!1,isTemplateImportVisible:!0,importWay:"localUpload",rules:{updateDesc:[{required:!0,message:"请输入变更描述",trigger:"blur"}]},templateSelected:[],importTemplateList:[],fileList:[],importInfo:{updateDesc:""},indexSelected:"",indexAllList:[]}},methods:{indexChange:function(){this.templateSelected=[],this.getTemplateList()},getTemplateList:function(){var e=this;this.loading=!0,this.$http.get("/index_template/list.json?indexId="+this.indexSelected).then(function(t){e.importTemplateList=t.list}).finally(function(){e.loading=!1})},handleUpload:function(){this.$refs.upload.clearFiles(),this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleRemove:function(){this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleError:function(e){this.$message.errorMessage("上传失败: "+e)},handleSuccess:function(e){var t=this;200===e.status?this.$message.successMessage("导入模板成功!",function(){t.$emit("close-submit-dialog")}):this.$message.errorMessage(e.description)},submitImportTemplate:function(){var e=this;"localUpload"===this.importWay?this.$refs.importInfo.validate(function(t){t&&e.$refs.upload.submit()}):(console.log(this.templateSelected),0===this.templateSelected.length?this.$message.errorMessage("已选模板为空!请选择模板!"):this.indexTemplateImport())},indexTemplateImport:function(){var e=this,t=this.importTemplateList.filter(function(t){return e.templateSelected.indexOf(t.id)>-1}),n=t.map(function(e){return{id:e.id,templateName:e.templateName}}),i={indexId:this.indexId,templateInfos:n};this.loading=!0,this.$http.post("/index_template/index/import.json",i).then(function(t){0===t.length?e.$message.successMessage("导入模板成功",function(){e.$emit("close-submit-dialog")}):e.$message.errorMessage("模板 "+t.join(",")+" 导入失败")}).finally(function(){e.loading=!1})},closeDialog:function(){this.$emit("close-dialog"),"localUpload"===this.importWay&&(this.$refs.upload.clearFiles(),this.$refs.upload.$refs["upload-inner"].$refs.input.value="")},getAllIndexList:function(){var e=this;return this.$http.get("/index/all.json").then(function(t){e.indexAllList=t.filter(function(t){return t.id!==Number(e.indexId)})})}},created:function(){this.getAllIndexList()}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(130),l=i(s),r=n(11),c=i(r);n(193);var u=n(1393),d=i(u),p=n(1406),f=i(p),m=n(1398),h=i(m),v=n(1405),g=i(v),b=n(1394),_=i(b);t.default={data:function(){return{loading:!1,indexId:this.$route.query.indexId,indexName:this.$route.query.indexName,isAllPrivilege:!1,templateInfo:{},templateList:[],modifiedTemplateList:[],isEditable:!1,isTemplateAddVisible:!1,isTemplateImportVisible:!1,templateImportTitle:"",templateImportUrl:"",isExprotTemplateVisible:!1,isBatchSubmitVisible:!1,tempList:[],macroList:[],treeData:[{id:"temp",label:"模板",children:[]},{id:"macro",label:"宏",children:[]}],templateAddInfo:{indexId:"",templateName:"",type:"1",description:""},defaultProps:{children:"children",label:"label"},clusters:[],metadataList:[],temPanelHeight:{height:document.body.clientHeight-210}}},methods:{exportTemplate:function(){this.isExprotTemplateVisible=!0},batchSubmitTemplate:function(){this.isBatchSubmitVisible=!0},closeExportDialog:function(){this.isExprotTemplateVisible=!1},closeBatchSubmitDialog:function(){this.isBatchSubmitVisible=!1},importTemplate:function(){this.isTemplateImportVisible=!0,this.templateImportTitle="导入模板",this.templateImportUrl="/pallas/index_template/import.json?indexId="+this.indexId},addTemplate:function(){this.isTemplateAddVisible=!0,this.templateAddInfo.indexId=this.indexId},handleNodeClick:function(e){e.children||(this.isEditable=!0,this.templateInfo=e,this.templateInfo.content=e.content||"",this.templateInfo.params=e.params||"")},closeDelete:function(){this.init(),this.isEditable=!1},closeEdit:function(){this.init()},closeDialog:function(){this.isTemplateAddVisible=!1},closeImportDialog:function(){this.isTemplateImportVisible=!1},closeSubmitImportDialog:function(){this.isTemplateImportVisible=!1,this.init()},handleCallback:function(e){var t=this;this.templateList=e.list;var n=[];e.list.forEach(function(e){e.newer&&1===e.type&&!e.approving&&n.push(e)}),this.modifiedTemplateList=n,this.isAllPrivilege=e.allPrivilege;var i=JSON.parse((0,c.default)(e.list)),a=[],o=[];i.forEach(function(e){if(e.newer&&1===e.type){var n=t.$createElement("span",null,[t.$createElement("b",{style:{color:"red"}},"新 "),t.$createElement("span",null,e.templateName)]);t.$set(e,"label",n)}else t.$set(e,"label",e.templateName);1===e.type?a.push(e):o.push(e)}),this.treeData[0].children=a,this.treeData[1].children=o,this.tempList=a,this.macroList=o},getTemplateList:function(){var e=this;return this.$http.get("/index_template/list.json?indexId="+this.indexId).then(function(t){e.handleCallback(t)})},submitCloseDialog:function(e){var t=this;this.isTemplateAddVisible=!1,this.loading=!0,this.$http.get("/index_template/list.json?indexId="+this.indexId).then(function(n){t.handleCallback(n),t.isEditable=!0,(0,l.default)(t.templateList).forEach(function(i,a){t.templateList[a].templateName===e&&(t.templateInfo=t.templateList[a],t.templateInfo.content=n.content||"",t.templateInfo.params=n.params||"",t.templateInfo.resultContent="")})}).finally(function(){t.loading=!1})},getClusters:function(){var e=this;return this.$http.post("/index/version/metadata.json",{indexId:this.indexId}).then(function(t){e.clusters=t.clusters,e.metadataList=t.list})},init:function(){var e=this;this.loading=!0,o.default.all([this.getTemplateList(),this.getClusters()]).then(function(){e.loading=!1})}},components:{"template-add-dialog":d.default,"template-import-dialog":f.default,"template-edit":h.default,"template-export-dialog":g.default,"template-batch-submit-dialog":_.default},mounted:function(){this.temPanelHeight=document.body.clientHeight-210;var e=this;window.onresize=function(){e.temPanelHeight=document.body.clientHeight-210}},created:function(){this.init()}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a);t.default={props:["preheadingInfo"],data:function(){return{loading:!1,visible:!0,formInfo:{rampupTarget:"",endTime:"",sampleRate:100},rampupInfo:{rampupTarget:"",state:"",beginTime:"",endTime:"",sampleRate:100},rampupStatusMap:{doing:"正在预热",finish:"预热完成",stop:"预热终止"},rampupStatusTypeMap:{doing:"text-warning",finish:"text-success",stop:"text-danger"},rules:{endTime:[{validator:this.$validate.validateTimeExpire,trigger:"change"}]}}},created:function(){this.init()},methods:{closeDialog:function(){this.$emit("close-dialog")},init:function(){var e=this;this.loading=!0,this.$http.get("/version/rampup/id.json?versionId="+this.preheadingInfo.versionId).then(function(t){e.rampupInfo=t}).finally(function(){e.loading=!1})},handleStop:function(){var e=this;this.$message.confirmMessage("确定停止预热吗?",function(){e.loading=!0,e.$http.get("/version/rampup/stop.json?versionId="+e.preheadingInfo.versionId).then(function(){e.$message.successMessage("停止预热成功",function(){e.init()})}).finally(function(){e.loading=!1})})},startRampup:function(){var e=this;if(this.formInfo.rampupTarget||this.formInfo.endTime)if(this.formInfo.rampupTarget&&this.formInfo.endTime)this.$message.errorMessage("预热条数与截止时间二选一!");else{var t=(0,o.default)({versionId:this.preheadingInfo.versionId},this.formInfo);this.loading=!0,this.$http.get("/version/rampup/start.json?",t).then(function(){e.$message.successMessage("开启预热成功",function(){e.init()})}).finally(function(){e.loading=!1})}else this.$message.errorMessage("请填写预热条数或截止时间!")}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(130),l=i(s),r=n(545),c=i(r),u=n(546),d=i(u);t.default={components:{"schema-copy-to-dialog":c.default,"schema-multi-field-dialog":d.default},props:["isSchemaChildVisible","schemaChildInfo","versionOperation","schemaParentFieldName","versionInfo"],data:function(){return{childInfo:[],schemaExtInfo:{},validCopyToFields:[],isCopyToFieldsVisible:!1,isSchemaMultiFieldsVisible:!1,initDynamic:!1,fieldTypes:[{value:"text",label:"text"},{value:"keyword",label:"keyword"},{value:"date",label:"date"},{value:"boolean",label:"boolean"},{value:"object",label:"object"},{value:"nested",label:"nested"},{value:"long",label:"long"},{value:"integer",label:"integer"},{value:"short",label:"short"},{value:"byte",label:"byte"},{value:"double",label:"double"},{value:"float",label:"float"}]}},methods:{handleAdd:function(){var e={fieldName:"",fieldType:"",multi:"",copyTo:[],multiField:[],search:!1,docValue:!1,store:!1};this.childInfo.push(e)},cancelBtn:function(){this.$emit("close-schema-dialog")},handleDelete:function(e){var t=this;this.$message.confirmMessage("确定删除字段"+e.fieldName+"吗?",function(){t.$array.removeByValue(t.childInfo,e)})},confirmBtn:function(){var e=this;this.checkChildInput(this.childInfo)&&(this.schemaChildInfo.children.splice(0,this.schemaChildInfo.children.length),this.childInfo.forEach(function(t){e.schemaChildInfo.children.push(t)}),0===this.schemaChildInfo.children.length?this.schemaChildInfo.dynamic=!1:this.schemaChildInfo.dynamic=this.initDynamic,this.$emit("add-schema-child",this.schemaChildInfo.children))},checkChildInput:function(e){var t=this,n=!0;return(0,l.default)(e).forEach(function(i,a){""===e[a].fieldName?(t.$message.errorMessage("字段名不能为空"),n=!1):n=!0}),n},openDialog:function(){var e=this;this.childInfo=JSON.parse((0,o.default)(this.schemaChildInfo.children)),(0,l.default)(this.childInfo).forEach(function(t,n){e.childInfo[n].multiField=e.childInfo[n].multiField||[]}),this.initDynamic=this.schemaChildInfo.dynamic},checkArrayNotEmpty:function(e){return e&&e.length>0},viewSchemaMultiFields:function(e){this.isSchemaMultiFieldsVisible=!0,this.schemaExtInfo=e},viewSchemaCopyTo:function(e){var t=this;this.schemaExtInfo=e,this.validCopyToFields=[],this.versionInfo.schema.forEach(function(e){if("N/A"===e.dbFieldType){if("nested"===e.fieldType){if(e.fieldName===t.schemaChildInfo.fieldName)return;return void t.getNestedFieldName(e,"",t.validCopyToFields)}t.validCopyToFields.push(e.fieldName)}}),this.childInfo.forEach(function(e){if("nested"===e.fieldType)return void t.getNestedFieldName(e,t.schemaChildInfo.fieldName,t.validCopyToFields);t.validCopyToFields.push(t.schemaChildInfo.fieldName+"."+e.fieldName)}),this.copyToListFilter(this.validCopyToFields,this.schemaChildInfo.fieldName+"."+e.fieldName),this.isCopyToFieldsVisible=!0},getNestedFieldName:function(e,t,n){var i=this;if("nested"!==e.fieldType)return void n.push(""+t+e.fieldName);e.children.forEach(function(a){"nested"===a.fieldType?i.getNestedFieldName(a,""+t+e.fieldName+".",n):n.push(""+t+e.fieldName+"."+a.fieldName)})},copyToListFilter:function(e,t){var n=e.indexOf(t);n>=0&&e.splice(n,1)},closeSchemaCopyToDialog:function(){this.isCopyToFieldsVisible=!1},closeSchemaMultiFieldsDialog:function(){this.isSchemaMultiFieldsVisible=!1},addSchemaCopyTo:function(e){console.log((0,o.default)(e)),this.isCopyToFieldsVisible=!1},addSchemaMultiFields:function(e){console.log((0,o.default)(e)),this.isSchemaMultiFieldsVisible=!1}},computed:{isEditable:function(){return"view"===this.versionOperation},childTitle:function(){return this.schemaChildInfo.fieldName+"子字段"}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:["isCopyToFieldsVisible","schemaCopyToInfo","copyToList","schemaParentFieldName"],data:function(){return{copyToFieldList:[],copyToFieldSelected:[]}},methods:{closeDialog:function(){this.$emit("close-schema-dialog")},sumbitCopyToField:function(){var e=this;this.copyToFieldSelected.length>0?(this.schemaCopyToInfo.copyTo=[],this.copyToFieldSelected.forEach(function(t){e.schemaCopyToInfo.copyTo.push(t)}),this.$emit("add-schema-copy-to",this.schemaCopyToInfo.copyTo)):this.$message.errorMessage("请选择要复制的域!")},initSelectList:function(){this.copyToFieldSelected=[];var e=JSON.parse((0,o.default)(this.copyToList));this.copyToFieldList=e.map(function(e){var t={};return t.key=e,t.label=e,t})}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["schemaImportTitle","schemaImportUrl"],data:function(){return{isSchemaImportVisible:!0,fileList:[]}},methods:{cancelBtn:function(){this.$emit("close-dialog")},handleUpload:function(){this.$refs.upload.clearFiles(),this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleRemove:function(){this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleError:function(e){this.$message.errorMessage("上传失败: "+e)},handleSuccess:function(e){var t=e.schema.map(function(e){var t={};return t.dbFieldType=e.dbFieldType,t.fieldName=e.fieldName,t.fieldType=e.fieldType,t.multi=e.multi,t.search=e.search,t.docValue=e.docValue,t.children=e.children||[],t.multiField=e.multiField||[],t.copyTo=e.copyTo||[],t.store=e.store,t});this.$emit("schema-import-success",t)},submitImportSchema:function(){console.log(this.schemaImportUrl),this.$refs.upload.submit()},handleClose:function(){this.$emit("close-schema-import-dialog")}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(130),l=i(s);t.default={props:["isSchemaMultiFieldsVisible","schemaMultiFieldsInfo","versionOperation","schemaParentFieldName"],data:function(){return{multiFieldInfo:[],fieldTypes:[{value:"text",label:"text"},{value:"keyword",label:"keyword"},{value:"date",label:"date"},{value:"boolean",label:"boolean"},{value:"object",label:"object"},{value:"nested",label:"nested"},{value:"long",label:"long"},{value:"integer",label:"integer"},{value:"short",label:"short"},{value:"byte",label:"byte"},{value:"double",label:"double"},{value:"float",label:"float"}]}},methods:{handleAdd:function(){var e={fieldName:"",fieldType:"",multi:"",search:!1,docValue:!1};this.multiFieldInfo.push(e)},cancelBtn:function(){this.$emit("close-schema-dialog")},handleDelete:function(e){var t=this;this.$message.confirmMessage("确定删除字段"+e.fieldName+"吗?",function(){t.$array.removeByValue(t.multiFieldInfo,e)})},confirmBtn:function(){var e=this;this.checkChildInput(this.multiFieldInfo)&&(this.schemaMultiFieldsInfo.multiField.splice(0,this.schemaMultiFieldsInfo.multiField.length),this.multiFieldInfo.forEach(function(t){e.schemaMultiFieldsInfo.multiField.push(t)}),this.$emit("add-schema-multi-field",this.schemaMultiFieldsInfo.multiField))},checkChildInput:function(e){var t=this,n=!0;return(0,l.default)(e).forEach(function(i,a){""===e[a].fieldName?(t.$message.errorMessage("字段名不能为空"),n=!1):n=!0}),n},openDialog:function(){this.multiFieldInfo=JSON.parse((0,o.default)(this.schemaMultiFieldsInfo.multiField))}},computed:{isEditable:function(){return"view"===this.versionOperation},childTitle:function(){return this.schemaMultiFieldsInfo.fieldName+" subFields"}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a);t.default={props:["versionOperation","versionInfo","versionInfoTitle","clusters","isLogical"],data:function(){return{loading:!1,isVersionInfoVisible:!0,rules:{replicationNum:[{required:!0,message:"复制数量不能为空"},{type:"number",message:"复制数量必须为数字值"}],indexSlowThreshold:[{required:!0,message:"Index Slow Log不能为空"},{type:"number",message:"Index Slow Log必须为数字值"}],fetchSlowThreshold:[{required:!0,message:"Fetch Slow Log不能为空"},{type:"number",message:"Fetch Slow Log必须为数字值"}],querySlowThreshold:[{required:!0,message:"Query Slow Log不能为空"},{type:"number",message:"Query Slow Log必须为数字值"}],refreshInterval:[{required:!0,message:"refresh_interval不能为空"},{type:"number",message:"refresh_interval必须为数字值"}],maxResultWindow:[{required:!0,message:"max_result_window不能为空"},{type:"number",message:"max_result_window必须为数字值"}],totalShardsPerNode:[{required:!0,message:"total_shards_per_node不能为空"},{type:"number",message:"total_shards_per_node必须为数字值"}],flushThresholdSize:[{required:!0,message:"flush_threshold_size不能为空"}],translogDurability:[{required:!0,message:"translog_durability不能为空"}]}}},methods:{getLogicClusterAllocationNodes:function(){var e=this,t=[];this.clusterArray.forEach(function(n){var i={cluster:n,nodes:e.versionInfo.nodes.filter(function(e){return n===e.parent}).map(function(e){return e.name})};t.push(i)});var n="";return t.forEach(function(e){n+=e.cluster+":"+e.nodes.join()+";"}),n},submitVersionInfo:function(){var e=this;this.$refs.versionInfo.validate(function(t){t&&(e.isLogical?e.$set(e.versionInfo,"allocationNodes",e.getLogicClusterAllocationNodes()):e.$set(e.versionInfo,"allocationNodes",e.versionInfo.nodes.join(",")),e.loading=!0,e.$http.post("/index/version/dynamic_update.json",e.versionInfo).then(function(){e.$message.successMessage("编辑版本成功",function(){e.$emit("template-operate-success")})}).finally(function(){e.loading=!1}))})},closeDialog:function(){this.$emit("close-dialog"),this.$refs.versionInfo.resetFields()}},computed:{clusterArray:function(){return this.clusters.map(function(e){return e.clusterId})},clusterNodes:function(){var e=this,t=[];return this.clusters.forEach(function(n){n.id===e.versionInfo.clusterId&&(t=n.nodes)}),t},clusterGroups:function(){return this.clusters.map(function(e){var t=(0,o.default)({},e);return t.nodes=e.nodes.map(function(t){var n=(0,o.default)({},t);return n.parent=e.clusterId,n}),t})}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a),s=n(11),l=i(s),r=n(330),c=i(r),u=n(223),d=i(u),p=n(1409),f=i(p),m=n(546),h=i(m),v=n(545),g=i(v),b=n(1410),_=i(b);t.default={components:{"schema-child-dialog":f.default,"schema-multi-field-dialog":h.default,"schema-copy-to-dialog":g.default,"schema-import-dialog":_.default},props:["versionOperation","versionInfo","versionInfoTitle","isMetaDataNull","clusters","isLogical"],data:function(){return{loading:!1,isVersionInfoVisible:!0,isSchemaImportVisible:!1,schemaImportTitle:"",schemaImportUrl:"",isSchemaChildVisible:!1,isSchemaMultiFieldsVisible:!1,isCopyToFieldsVisible:!1,schemaExtInfo:{},validCopyToFields:[],schemaParentFieldName:"",rules:{shardNum:[{required:!0,message:"分片数量不能为空"},{type:"number",message:"分片数量必须为数字值"}],replicationNum:[{required:!0,message:"复制数量不能为空"},{type:"number",message:"复制数量必须为数字值"}],routingKey:[{required:!0,message:"请选择Routing Key",trigger:"change"}],idField:[{required:!0,message:"请选择Id列名",trigger:"change"}],updateTimeField:[{required:!0,message:"请选择Update Time",trigger:"change"}],indexSlowThreshold:[{required:!0,message:"Index Slow Log不能为空"},{type:"number",message:"Index Slow Log必须为数字值"}],fetchSlowThreshold:[{required:!0,message:"Fetch Slow Log不能为空"},{type:"number",message:"Fetch Slow Log必须为数字值"}],querySlowThreshold:[{required:!0,message:"Query Slow Log不能为空"},{type:"number",message:"Query Slow Log必须为数字值"}],refreshInterval:[{required:!0,message:"refresh_interval不能为空"},{type:"number",message:"refresh_interval必须为数字值"}],maxResultWindow:[{required:!0,message:"max_result_window不能为空"},{type:"number",message:"max_result_window必须为数字值"}],totalShardsPerNode:[{required:!0,message:"total_shards_per_node不能为空"},{type:"number",message:"total_shards_per_node必须为数字值"}],flushThresholdSize:[{required:!0,message:"flush_threshold_size不能为空"}],syncInterval:[{required:!0,message:"sync_interval不能为空"}],translogDurability:[{required:!0,message:"translog_durability不能为空"}]},fieldTypes:[{value:"text",label:"text(标准分词)"},{value:"text_ngram",label:"text(逐字分词)"},{value:"keyword",label:"keyword"},{value:"keyword_normalized",label:"keyword(全大写处理)"},{value:"keyword_as_number",label:"keyword as number"},{value:"date",label:"date"},{value:"boolean",label:"boolean"},{value:"object",label:"object"},{value:"nested",label:"nested"},{value:"long",label:"long"},{value:"integer",label:"integer"},{value:"short",label:"short"},{value:"byte",label:"byte"},{value:"double",label:"double"},{value:"float",label:"float"}]}},methods:{renderDocValueHeader:function(e){return e("span",[e("span",{slot:"reference",style:{"font-size":"14px","margin-right":"5px"}},"是否启用doc value"),e("el-popover",{props:{placement:"top",trigger:"hover"}},[e("div","是否需要用到 Sort,Aggs,Script 查询"),e("i",{slot:"reference",class:{fa:!0,"fa-question-circle":!0}})])])},clusterChange:function(){this.versionInfo.nodes=[]},fieldTypeChange:function(e){"text"===e.fieldType?this.$set(e,"docValue",!1):"nested"===e.fieldType&&(this.$set(e,"search",!1),this.$set(e,"docValue",!1),this.$set(e,"multi",!0))},importSchema:function(){this.isSchemaImportVisible=!0,this.schemaImportTitle="导入schema",this.schemaImportUrl="/pallas/index/version/schema_import.json?indexId="+this.versionInfo.indexId},closeSchemaImportDialog:function(){this.isSchemaImportVisible=!1},schemaImportSuccess:function(e){var t=this;e.forEach(function(e){t.versionInfo.schema.forEach(function(n,i){e.fieldName===n.fieldName&&t.versionInfo.schema.splice(i,1)})}),e.forEach(function(e){t.versionInfo.schema.push(e)}),this.isSchemaImportVisible=!1},exportSchema:function(){window.location.href="/pallas/index/version/schema_export.json?versionId="+this.versionInfo.versionId},getLogicClusterAllocationNodes:function(){var e=this,t=[];this.clusterArray.forEach(function(n){var i={cluster:n,nodes:e.versionInfo.nodes.filter(function(e){return n===e.parent}).map(function(e){return e.name})};t.push(i)});var n="";return t.forEach(function(e){n+=e.cluster+":"+e.nodes.join()+";"}),n},submitVersionInfo:function(){var e=this;this.$refs.versionInfo.validate(function(t){t&&e.isSchemaSelectSearch()&&!e.isSchemaSelectError()&&(e.isLogical?e.$set(e.versionInfo,"allocationNodes",e.getLogicClusterAllocationNodes()):e.$set(e.versionInfo,"allocationNodes",e.versionInfo.nodes.join(",")),e.versionInfo.sourceIncludesArr&&e.$set(e.versionInfo,"sourceIncludes",e.versionInfo.sourceIncludesArr.join(",")),e.versionInfo.sourceExcludesArr&&e.$set(e.versionInfo,"sourceExcludes",e.versionInfo.sourceExcludesArr.join(",")),"add"===e.versionOperation||"copy"===e.versionOperation?(e.loading=!0,e.$http.post("/index/version/add.json",e.versionInfo).then(function(){e.$message.successMessage("保存版本成功",function(){e.$emit("template-operate-success")})}).finally(function(){e.loading=!1})):"edit"===e.versionOperation&&(e.loading=!0,e.$http.post("/index/version/update.json",e.versionInfo).then(function(){e.$message.successMessage("编辑版本成功",function(){e.$emit("template-operate-success")})}).finally(function(){e.loading=!1})))})},isSchemaSelectError:function(){var e=this;return this.versionInfo.schema.some(function(t){return""===t.fieldName?(e.$message.errorMessage("字段名不允许为空!"),!0):t.fieldName===e.versionInfo.updateTimeField&&"date"!==t.fieldType&&(e.$message.errorMessage("Update Time列名 "+t.fieldName+" 的ES类型必须为date!"),!0)})},isSchemaSelectSearch:function(){var e=this,t=!0,n=[],i=[];return this.versionInfo.schema.forEach(function(t){t.search&&t.docValue||(e.versionInfo.routingKey===t.fieldName&&n.push(e.versionInfo.routingKey),e.versionInfo.idField===t.fieldName&&n.push(e.versionInfo.idField),e.versionInfo.updateTimeField===t.fieldName&&n.push(e.versionInfo.updateTimeField)),"nested"!==t.fieldType||t.multi||i.push(t)}),n.length>0&&(this.$message.errorMessage((0,d.default)(new c.default(n)).join(", ")+"查询关键字、排序或聚合必须同时选中"),t=!1),i.length>0&&(this.$message.errorMessage(i.map(function(e){return e.fieldName}).join(", ")+"的ES类型为nested,请选为多值"),t=!1),t},closeDialog:function(){this.$emit("close-dialog"),this.$refs.versionInfo.resetFields()},closeSchemaDialog:function(){this.isSchemaChildVisible=!1},closeSchemaMultiFieldsDialog:function(){this.isSchemaMultiFieldsVisible=!1},closeSchemaCopyToDialog:function(){this.isCopyToFieldsVisible=!1},viewSchemaChildren:function(e){if("nested"!==e.fieldType&&"object"!==e.fieldType)return void this.$message.errorMessage("ES类型必须为nested或者object");this.isSchemaChildVisible=!0,this.schemaExtInfo=e},viewSchemaMultiFields:function(e){this.isSchemaMultiFieldsVisible=!0,this.schemaExtInfo=e},viewSchemaCopyTo:function(e){var t=this;this.schemaExtInfo=e,this.validCopyToFields=[],this.versionInfo.schema.forEach(function(e){if("N/A"===e.dbFieldType||null===e.dbFieldType){if("nested"===e.fieldType)return void t.getNestedFieldName(e,"",t.validCopyToFields);t.validCopyToFields.push(e.fieldName)}}),this.copyToListFilter(this.validCopyToFields,e.fieldName),this.isCopyToFieldsVisible=!0},getNestedFieldName:function(e,t,n){var i=this;if("nested"!==e.fieldType)return void n.push(""+t+e.fieldName);e.children.forEach(function(a){"nested"===a.fieldType?i.getNestedFieldName(a,""+t+e.fieldName+".",n):n.push(""+t+e.fieldName+"."+a.fieldName)})},copyToListFilter:function(e,t){var n=e.indexOf(t);n>=0&&e.splice(n,1)},addSchemaChild:function(){this.isSchemaChildVisible=!1},addSchemaMultiFields:function(e){console.log((0,l.default)(e)),this.isSchemaMultiFieldsVisible=!1},addSchemaCopyTo:function(e){console.log((0,l.default)(e)),this.isCopyToFieldsVisible=!1},deleteField:function(e){var t=this;this.$message.confirmMessage("确定删除字段"+e.fieldName+"吗?",function(){t.$array.removeByValue(t.versionInfo.schema,e)})},addField:function(e){var t={fieldName:"",dbFieldType:"N/A",docValue:!1,fieldType:"keyword",multi:!1,children:[],multiField:[],copyTo:[],search:!1,isNew:!0,dynamic:!1,store:!1};this.versionInfo.schema.splice(e+1,0,t)}},computed:{clusterArray:function(){return this.clusters.map(function(e){return e.clusterId})},isEditable:function(){return"view"===this.versionOperation},routingKeyWidth:function(){return this.isMetaDataNull?12:8},allSourceFields:function(){var e=this,t=[];return this.versionInfo.schema.forEach(function(n){if("nested"===n.fieldType)return void e.getNestedFieldName(n,"",t);t.push(n.fieldName)}),t},clusterNodes:function(){var e=this,t=[];return this.clusters.forEach(function(n){n.id===e.versionInfo.clusterId&&(t=n.nodes)}),t},clusterGroups:function(){return this.clusters.map(function(e){var t=(0,o.default)({},e);return t.nodes=e.nodes.map(function(t){var n=(0,o.default)({},t);return n.parent=e.clusterId,n}),t})}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(25),o=i(a),s=n(130),l=i(s),r=n(11),c=i(r),u=n(1412),d=i(u),p=n(1411),f=i(p),m=n(1408),h=i(m);t.default={components:{"version-info-dialog":d.default,"version-dynamic-info-dialog":f.default,"preheading-dialog":h.default},data:function(){return{loading:!1,indexId:this.$route.query.indexId,indexName:this.$route.query.indexName,isMetaDataNull:!1,isAllPrivilege:!1,isVersionInfoVisible:!1,isVersionDynamicInfoVisible:!1,versionInfoTitle:"",versionOperation:"",isStartSyncVisible:!1,isViewConfigVisible:!1,isStartFullImportVisible:!1,configInfo:"",configTitle:"",pageSize:10,currentPage:1,versionData:{},versionList:[],versionInfo:{},versionGetInfo:{},versionAddInfo:{indexId:"",shardNum:1,replicationNum:1,vdpQueue:"",routingKey:"id",idField:"id",updateTimeField:"update_time",filterFields:!1,vdp:1,checkSum:!1,schema:[],clusterId:"",nodes:[],indexSlowThreshold:200,fetchSlowThreshold:200,querySlowThreshold:200,refreshInterval:60,maxResultWindow:1e4,totalShardsPerNode:-1,flushThresholdSize:"512mb",syncInterval:"5s",translogDurability:"async",sourceDisabled:!1,sourceIncludes:"",sourceExcludes:"",sourceIncludesArr:[],sourceExcludesArr:[]},clusters:[],isLogical:!1,isPreheadingVisible:!1,preheadingInfo:{}}},methods:{preheading:function(e){this.preheadingInfo={versionId:e.id,isUsed:e.isUsed},this.isPreheadingVisible=!0},closePreheadingDialog:function(){this.isPreheadingVisible=!1},getClusterName:function(e){var t="";return this.clusters.some(function(n){return n.id===Number(e)&&(t=n.clusterId,!0)}),t},viewConfigInfo:function(e,t){var n=this,i={indexId:this.indexId,indexName:this.indexName,versionId:e.id,cid:t};this.loading=!0,this.$http.get("/index/version/info.json",i).then(function(i){n.configInfo=i,n.configTitle=n.indexName+"_"+e.id+"配置信息(集群:"+n.getClusterName(t)+")",n.isViewConfigVisible=!0}).finally(function(){n.loading=!1})},retrieve:function(e,t){var n=this,i={indexId:this.indexId,indexName:this.indexName,versionId:e.id,cid:t};this.loading=!0,this.$http.get("/index/version/retrieve.json",i).then(function(i){n.configInfo=i,n.configTitle=n.indexName+"_"+e.id+"索引数据(集群:"+n.getClusterName(t)+")",n.isViewConfigVisible=!0}).finally(function(){n.loading=!1})},closeViewConfigDialog:function(){this.isViewConfigVisible=!1},createIndex:function(e){var t=this;this.loading=!0,this.$http.post("/index/version/create_index.json",{indexId:this.indexId,versionId:e.id}).then(function(){t.$message.successMessage("生成索引成功",function(){t.getVersionList()})}).finally(function(){t.loading=!1})},enableVersion:function(e){var t=this;this.$message.confirmMessage("确定启用版本"+e.id+"吗?",function(){t.loading=!0,t.$http.post("/index/version/enable.json",{indexId:t.indexId,versionId:e.id}).then(function(){t.$message.successMessage("启用版本成功",function(){t.getVersionList()})}).finally(function(){t.loading=!1})})},handleAdd:function(){this.isVersionInfoVisible=!0,this.versionInfoTitle="新增版本",this.versionOperation="add",this.versionAddInfo.indexId=this.indexId,this.versionAddInfo.clusterId=this.clusters[0].id,this.versionInfo=JSON.parse((0,c.default)(this.versionAddInfo))},triggerDialog:function(e,t){var n=this;this.loading=!0,this.$http.get("/index/version/id.json?versionId="+e.id).then(function(i){if(n.versionGetInfo=i,(0,l.default)(n.versionGetInfo.schema).forEach(function(t,i){n.versionGetInfo.schema[i].children=n.versionGetInfo.schema[i].children||[],n.versionGetInfo.schema[i].multiField=n.versionGetInfo.schema[i].multiField||[],n.versionGetInfo.schema[i].copyTo=n.versionGetInfo.schema[i].copyTo||[],n.versionGetInfo.versionId=e.id}),n.$set(n.versionGetInfo,"versionId",n.versionGetInfo.id),n.$set(n.versionGetInfo,"clusterId",n.clusters[0].id),n.isLogical?n.$set(n.versionGetInfo,"nodes",n.getLogicClusterNodesArray(n.versionGetInfo.allocationNodes)):n.$set(n.versionGetInfo,"nodes",n.getNodesArray(n.versionGetInfo.allocationNodes)),n.versionGetInfo.sourceIncludesArr=[],n.versionGetInfo.sourceExcludesArr=[],n.versionGetInfo.sourceIncludes&&n.versionGetInfo.sourceIncludes.length>0&&n.$set(n.versionGetInfo,"sourceIncludesArr",n.getNodesArray(n.versionGetInfo.sourceIncludes)),n.versionGetInfo.sourceExcludes&&n.versionGetInfo.sourceExcludes.length>0&&n.$set(n.versionGetInfo,"sourceExcludesArr",n.getNodesArray(n.versionGetInfo.sourceExcludes)),n.versionInfo=JSON.parse((0,c.default)(n.versionGetInfo)),"dynamic_edit"===t){n.versionInfoTitle="编辑版本动态配置",n.isVersionDynamicInfoVisible=!0,n.versionOperation=t;var a=n.getClusterName(n.$array.strToArray(e.realClusterIds)[0]);return void n.$http.get("/cluster/id.json?clusterId="+a).then(function(t){if(t){var i="http://"+n.$array.strToArray(t.httpAddress)[0],a=n.indexName+"_"+e.id;n.$http.postCerebro("/cerebro/commons/get_index_settings",{host:i,index:a}).then(function(e){var t=e,i=t[a].settings.index;n.versionInfo.replicationNum=+i.number_of_replicas,n.versionInfo.indexSlowThreshold=+i.indexing.slowlog.threshold.index.info.replace("ms",""),n.versionInfo.fetchSlowThreshold=+i.search.slowlog.threshold.fetch.info.replace("ms",""),n.versionInfo.querySlowThreshold=+i.search.slowlog.threshold.query.info.replace("ms",""),n.versionInfo.refreshInterval=+i.refresh_interval.replace("s",""),n.versionInfo.maxResultWindow=+i.max_result_window,n.versionInfo.totalShardsPerNode=+i.routing.allocation.total_shards_per_node,n.versionInfo.flushThresholdSize=i.translog.flush_threshold_size,n.versionInfo.syncInterval=i.translog.sync_interval,n.versionInfo.translogDurability=i.translog.durability})}})}n.versionInfoTitle="edit"===t?"编辑版本":"copy"===t?"复制版本(From "+e.id+")":"查看版本",n.versionOperation=t,n.isVersionInfoVisible=!0}).finally(function(){n.loading=!1})},copyVersion:function(e,t){var n=this;this.loading=!0,this.$http.post("/index/version/copy.json",{versionId:e.id,indexId:this.indexId}).then(function(i){n.versionGetInfo=i,(0,l.default)(n.versionGetInfo.schema).forEach(function(t,i){n.versionGetInfo.schema[i].children=n.versionGetInfo.schema[i].children||[],n.versionGetInfo.schema[i].multiField=n.versionGetInfo.schema[i].multiField||[],n.versionGetInfo.schema[i].copyTo=n.versionGetInfo.schema[i].copyTo||[],n.versionGetInfo.versionId=e.id}),n.$set(n.versionGetInfo,"versionId",n.versionGetInfo.id),n.$set(n.versionGetInfo,"clusterId",n.clusters[0].id),n.isLogical?n.$set(n.versionGetInfo,"nodes",n.getLogicClusterNodesArray(n.versionGetInfo.allocationNodes)):n.$set(n.versionGetInfo,"nodes",n.getNodesArray(n.versionGetInfo.allocationNodes)),n.versionGetInfo.sourceIncludesArr=[],n.versionGetInfo.sourceExcludesArr=[],n.versionGetInfo.sourceIncludes&&n.versionGetInfo.sourceIncludes.length>0&&n.$set(n.versionGetInfo,"sourceIncludesArr",n.getNodesArray(n.versionGetInfo.sourceIncludes)),n.versionGetInfo.sourceExcludes&&n.versionGetInfo.sourceExcludes.length>0&&n.$set(n.versionGetInfo,"sourceExcludesArr",n.getNodesArray(n.versionGetInfo.sourceExcludes)),n.versionInfo=JSON.parse((0,c.default)(n.versionGetInfo)),n.versionInfoTitle="复制版本(From "+e.id+")",n.versionOperation=t,n.isVersionInfoVisible=!0}).finally(function(){n.loading=!1})},getNodesArray:function(e){var t=[];return""!==e&&(t=e.indexOf(",")>0?e.split(","):[e]),t},getLogicClusterNodesArray:function(e){var t=[];if(e.indexOf(";")>-1){var n=e.split(";");n&&n.forEach(function(e){if(e){var n=e.split(":")[0],i=e.split(":")[1];i&&i.split(",").forEach(function(e){var i={parent:n,name:e};t.push(i)})}})}return t},handleDelete:function(e){var t=this;this.$message.confirmMessage("确定删除版本"+e.id+"吗?",function(){t.loading=!0,t.$http.post("/index/version/delete/id.json",{indexId:t.indexId,versionId:e.id}).then(function(){t.$message.successMessage("删除成功",function(){t.getVersionList()})}).finally(function(){t.loading=!1})})},closeDialog:function(){this.isVersionInfoVisible=!1},closeDynamicDialog:function(){this.isVersionDynamicInfoVisible=!1},templateOperateSuccess:function(){this.isVersionInfoVisible=!1,this.getVersionList()},dynamicUpdateOperateSuccess:function(){this.isVersionDynamicInfoVisible=!1,this.getVersionList()},getSchemaMetaData:function(){var e=this;this.loading=!0,this.$http.post("/index/version/metadata.json",{indexId:this.indexId}).then(function(t){e.clusters=t.clusters,e.isLogical=t.isLogical,null===t.list||0===t.list.length?(e.versionAddInfo.schema=[],e.isMetaDataNull=!0):(e.isMetaDataNull=!1,e.versionAddInfo.schema=t.list.map(function(e){var t={};switch(t.dbFieldType=e.dbFieldType,t.fieldName=e.dbFieldName,t.dbFieldType){case"TINYINT":case"SMALLINT":t.fieldType="keyword_as_number";break;case"INTEGER":t.fieldType="integer";break;case"BIGINT":t.fieldType="long";break;case"DATE":case"TIMESTAMP":t.fieldType="date";break;case"DOUBLE":case"DECIMAL":t.fieldType="double";break;default:t.fieldType="keyword"}switch(t.multi=!1,t.fieldName){case"id":case"update_time":t.search=!0,t.docValue=!0;break;default:t.search=!1,t.docValue=!1}return t.children=[],t.multiField=[],t.copyTo=[],t}))}).finally(function(){e.loading=!1})},getVersionList:function(){var e=this,t={currentPage:this.currentPage,pageSize:this.pageSize,indexId:this.indexId};this.loading=!0,this.$http.get("/index/version/page.json",t).then(function(t){e.versionData=t,e.isAllPrivilege=t.allPrivilege,e.versionList=t.list.map(function(e){return(0,o.default)({},e)});var n=[];e.versionList.length>0&&(e.versionList.forEach(function(e){n.push(e.id)}),e.$http.post("/index/version/count.json",{indexName:e.indexName,indexId:e.indexId,versionIds:n}).then(function(t){e.versionList.forEach(function(n){var i=t.filter(function(e){return e.vid===n.id}),a=[];i[0].data.length>0&&e.$array.strToArray(n.realClusterIds).forEach(function(e){var t=i[0].data.filter(function(t){return t.cid===Number(e)}).map(function(e){return e.count})[0];a.push(t)}),e.$set(n,"count",a)})}))}).finally(function(){e.loading=!1})},changePage:function(e){this.currentPage=e,this.getVersionList()},stopSync:function(e){var t=this,n=this.$createElement("span",null,[this.$createElement("p",null,"确定删除该版本"+e.id+"的索引吗?"),this.$createElement("p",null,"注意此操作会同时停用该版本!")]),i=e.isUsed?n:"确定删除该版本"+e.id+"的索引吗?";this.$message.confirmMessage(i,function(){t.loading=!0,t.$http.post("/index/version/disable.json",{indexId:t.indexId,versionId:e.id}).then(function(){t.$message.successMessage("删除索引成功",function(){t.getVersionList()})}).finally(function(){t.loading=!1})})}},filters:{translateIsUsed:function(e){return{true:"是",false:"否"}[e]}},created:function(){this.getVersionList(),this.getSchemaMetaData()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={data:function(){return{isDsImportVisible:!0,fileList:[]}},methods:{cancelBtn:function(){this.$emit("close-dialog")},handleUpload:function(){this.$refs.upload.clearFiles(),this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleRemove:function(){this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleError:function(e){this.$message.errorMessage("上传失败: "+e)},handleSuccess:function(e){this.$emit("ds-import-success",e)},submitImportDs:function(){this.$refs.upload.submit()},handleClose:function(){this.$emit("close-ds-import-dialog")}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["dataSource","indexOperation"],data:function(){return{rules:{ip:[{required:!0,message:"请输入数据库地址",trigger:"blur"},{validator:this.dbnameValidate,trigger:"blur"}],port:[{validator:this.$validate.validatePort,trigger:"blur"},{validator:this.dbnameValidate,trigger:"blur"}],username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}],dbname:[{required:!0,message:"请输入数据库名",trigger:"blur"},{validator:this.dbnameValidate,trigger:"blur"}],tableName:[{required:!0,message:"请输入数据库表",trigger:"blur"},{validator:this.dbnameValidate,trigger:"blur"}]}}},methods:{dbnameValidate:function(e,t,n){this.$emit("db-validate",this.dataSource,n.bind(this))}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a);t.default={props:["dataSources","showImportObject","indexId","indexOperation"],data:function(){return{dataSourceInfo:{ip:"",port:"",username:"",password:"",dbname:"",tableName:"",isGeneratePwd:!0}}},methods:{dbValidate:function(e,t){this.dataSources.filter(function(t){return t.dbname===e.dbname&&t.tableName===e.tableName&&t.ip===e.ip&&t.port===e.port}).length>1?t(new Error("存在相同数据源,请重新填写")):t()},importDs:function(){this.showImportObject.show=!0},exportDs:function(){window.location.href="/pallas/ds/export.json?indexId="+this.indexId},addDataSource:function(){var e=JSON.parse((0,o.default)(this.dataSourceInfo));this.dataSources.push(e)},deleteDataSource:function(e){this.$array.removeByValue(this.dataSources,e)}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1416),o=i(a),s=n(1414),l=i(s);t.default={props:["indexOperation","indexInfo","indexInfoTitle","clusters"],data:function(){return{loading:!1,isIndexInfoVisible:!0,rules:{indexName:[{validator:this.$validate.validateCharacterAndNumberIsExcludePointAndBar,trigger:"blur"}],clusterId:[{required:!0,message:"请选择所属集群",trigger:"change"}]},showImportObject:{show:!1}}},methods:{submitIndexInfo:function(){var e=this;this.$refs.indexInfo.validate(function(t){if(t){var n=0;e.indexInfo.dataSourceList.length>0&&e.$refs.dataSources.$refs.dataSourceItem.forEach(function(e){e.$refs.dataSource.validate(function(e){e&&(n+=1)})}),n===e.indexInfo.dataSourceList.length&&("add"===e.indexOperation?(e.loading=!0,e.$http.post("/index/add.json",e.indexInfo).then(function(t){t?e.$message.confirmMessage(t,function(){e.indexInfo.confirm=!0,e.$http.post("/index/add.json",e.indexInfo).then(function(){e.$message.successMessage("新增索引成功",function(){e.$emit("operate-close-dialog")})})}):e.$message.successMessage("新增索引成功",function(){e.$emit("operate-close-dialog")})}).finally(function(){e.loading=!1})):(e.loading=!0,e.$http.post("/index/update.json",e.indexInfo).then(function(t){t&&t.indexOf("成功")<0?e.$message.confirmMessage(t,function(){e.indexInfo.confirm=!0,e.$http.post("/index/update.json",e.indexInfo).then(function(){e.$message.successMessage("更新索引成功",function(){e.$emit("operate-close-dialog")})})}):e.$message.successMessage("更新索引成功",function(){e.$emit("operate-close-dialog")})}).finally(function(){e.loading=!1})))}})},closeDialog:function(){this.$emit("close-dialog"),this.$refs.indexInfo.resetFields()},closeDsImportDialog:function(){this.showImportObject.show=!1},dsImportSuccess:function(e){var t=this;console.log("dsImportSuccess",e);var n=e.split(/[\r\n]/);this.indexInfo.dataSourceList=[],n.forEach(function(e){var n=e.split(/\s+/);if(6===n.length){var i={ip:n[0],port:n[1],username:n[2],password:n[3],dbname:n[4],tableName:n[5],isGeneratePwd:!1};t.indexInfo.dataSourceList.push(i)}}),this.showImportObject.show=!1}},computed:{isEditable:function(){return"edit"===this.indexOperation}},components:{"index-data-sources":o.default,"datasource-import-dialog":l.default}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(11),l=i(s);n(289);var r=n(1417),c=i(r);t.default={data:function(){return{loading:!1,isAllPrivilege:!1,isIndexInfoVisible:!1,indexInfoTitle:"",indexOperation:"",indexList:{},clusters:[],selectedCluster:this.$route.query.cluster||"",indexNameForSearch:this.$route.query.indexName||"",currentPage:Number(this.$route.query.currentPage)||1,pageSize:10,indexInfo:{},indexAddInfo:{indexName:"",clusterId:"",description:"",confirm:!1,dataSourceList:[{ip:"",port:"",username:"",password:"",dbname:"",tableName:"",isGeneratePwd:!0}]}}},methods:{handleDelete:function(e){var t=this;this.$message.confirmMessage("确定删除索引"+e.indexName+"(id="+e.id+")吗?",function(){t.loading=!0,t.$http.post("/index/delete/id.json",{indexId:e.id}).then(function(){t.$message.successMessage("删除成功",function(){t.refreshPage()})}).finally(function(){t.loading=!1})})},handleAdd:function(){this.isIndexInfoVisible=!0,this.indexInfoTitle="新增索引",this.indexOperation="add",this.indexInfo=JSON.parse((0,l.default)(this.indexAddInfo))},handleEdit:function(e){var t=this;this.loading=!0,this.$http.get("/index/id.json?indexId="+e.id).then(function(e){var n=e,i={indexId:n.id,clusterId:n.clusterName,description:n.description,dataSourceList:n.dataSourceList,indexName:n.indexName};t.indexInfo=JSON.parse((0,l.default)(i)),t.isIndexInfoVisible=!0,t.indexInfoTitle="编辑索引",t.indexOperation="edit"}).finally(function(){t.loading=!1})},handleManage:function(e,t){this.$router.push({path:"index_detail",query:{indexId:t.id,indexName:t.indexName}})},changePage:function(e){this.currentPage=e,this.toPage()},refreshPage:function(){this.init()},toPage:function(){this.$router.push({path:this.$routermapper.GetPath("indexManage"),query:{currentPage:this.currentPage,cluster:this.selectedCluster,indexName:this.indexNameForSearch}})},closeDialog:function(){this.isIndexInfoVisible=!1},operateCloseDialog:function(){this.isIndexInfoVisible=!1,this.refreshPage()},getIndexList:function(){var e=this,t={currentPage:this.$route.query.currentPage||1,pageSize:this.pageSize,indexName:this.$route.query.indexName||"",clusterId:this.$route.query.cluster||""};return this.$http.get("/index/page.json",t).then(function(t){e.indexList=t,e.isAllPrivilege=t.allPrivilege})},getClusters:function(){var e=this;return this.clusters=[],this.$http.get("/cluster/all.json").then(function(t){var n=[],i=[];t.forEach(function(e){e.logicalCluster?n.push(e):i.push(e)}),e.clusters.push({label:"物理集群",options:i}),e.clusters.push({label:"逻辑集群",options:n})})},init:function(){var e=this;this.loading=!0,o.default.all([this.getIndexList(),this.getClusters()]).then(function(){e.loading=!1})}},components:{"index-info-dialog":c.default},created:function(){this.init()},watch:{$route:"init"}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={data:function(){return{activeTab:"user_manage"}},methods:{onTabClick:function(){this.$router.push({name:this.activeTab})},getActiveTab:function(){var e=this.$route.name;e&&(this.activeTab=e)}},created:function(){this.activeTab=this.$route.name},watch:{$route:"getActiveTab"}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["userInfo","userOperation","rolesList"],data:function(){return{isVisible:!0,loading:!1,rules:{username:[{required:!0,message:"请输入登录名",trigger:"blur"}],realName:[{required:!0,message:"请输入用户名",trigger:"blur"}]}}},methods:{handleSubmit:function(){var e=this;this.$refs.userInfo.validate(function(t){t&&e.userInfoRequest()})},userInfoRequest:function(){var e=this;this.loading=!0,this.$http.post("/authorization/user/update.json",this.userInfo).then(function(){e.$message.successMessage(e.userInfoTitle+"成功",function(){e.$emit("user-info-success")})}).finally(function(){e.loading=!1})},closeDialog:function(){this.$emit("close-dialog")}},computed:{isEditable:function(){return"add"===this.userOperation},userInfoTitle:function(){return this.isEditable?"新增用户":"编辑用户"}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(25),l=i(s),r=n(11),c=i(r),u=n(1420),d=i(u);t.default={components:{"user-info-dialog":d.default},data:function(){return{loading:!1,userList:[],rolesList:[],pageSize:10,currentPage:1,total:3,allPrivilege:!0,formSearch:{keywords:""},isUserInfoVisible:!1,userInfo:{},userOperation:""}},computed:{loginUser:function(){return this.$store.state.loginUser}},methods:{getUserList:function(){var e=this,t={currentPage:1,pageSize:this.pageSize,keywords:this.formSearch.keywords};return this.$http.get("/authorization/user/page.json",t).then(function(t){e.userList=t.list,e.allPrivilege=t.allPrivilege,e.total=t.total})},handleAdd:function(){var e={username:"",realName:"",password:"",email:"",roleNames:[]};this.userOperation="add",this.userInfo=JSON.parse((0,c.default)(e)),this.isUserInfoVisible=!0},handleEdit:function(e){this.userOperation="edit",this.userInfo=(0,l.default)({},e,{roleNames:e.roles.map(function(e){return e.roleName})}),this.isUserInfoVisible=!0},userInfoSuccess:function(){this.init(),this.closeDialog()},closeDialog:function(){this.isUserInfoVisible=!1},handleDelete:function(e){var t=this;this.$message.confirmMessage("确定删除用户 "+e.username+" 吗?",function(){t.loading=!0,t.$http.get("authorization/user/delete/"+e.id+".json").then(function(){t.$message.successMessage("删除用户成功",function(){t.init()})}).finally(function(){t.loading=!1})})},changePage:function(e){this.currentPage=e,this.init()},getRolesList:function(){var e=this;return this.$http.get("/authorization/role/page.json").then(function(t){e.rolesList=t.list})},init:function(){var e=this;this.loading=!0,o.default.all([this.getUserList(),this.getRolesList()]).then(function(){e.loading=!1})}},created:function(){this.init()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["pluginInfo","pluginInfoTitle","pluginInfoOperation"],data:function(){return{loading:!1,isVisible:!0,rules:{clusterId:[{required:!0,message:"请选择集群",trigger:"change"}],pluginName:[{required:!0,message:"请输入插件名称",trigger:"blur"}],pluginVersion:[{required:!0,message:"请输入插件版本",trigger:"blur"}],packagePath:[{required:!0,message:"请上传文件获取包路径",trigger:"blur"}],note:[{required:!0,message:"请输入变更描述",trigger:"blur"}]},clusters:[]}},methods:{handleSubmit:function(){var e=this;this.$refs.pluginInfo.validate(function(t){t&&(e.loading=!0,e.$http.post("/plugin/upgrade/add.json",e.pluginInfo).then(function(){e.$message.successMessage("操作成功",function(){e.$emit("operate-close-dialog")})}).finally(function(){e.loading=!1}))})},closeDialog:function(){this.$emit("close-dialog")},getClusters:function(){var e=this;this.loading=!0,this.$http.get("/cluster/all.json").then(function(t){t.forEach(function(t){t.logicalCluster||e.clusters.push(t)})}).finally(function(){e.loading=!1})},handleUpload:function(){this.$refs.upload.clearFiles(),this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleRemove:function(){this.$refs.upload.$refs["upload-inner"].$refs.input.value=""},handleError:function(e){this.$message.errorMessage("上传失败: "+e)},handleSuccess:function(e){200===e.status?this.pluginInfo.packagePath=e.data:this.$message.errorMessage(e.data.message)}},computed:{isEditable:function(){return"upgrade"===this.pluginInfoOperation},uploadData:function(){return{clusterId:this.pluginInfo.clusterId,pluginName:this.pluginInfo.pluginName,pluginVersion:this.pluginInfo.pluginVersion}},enableUpload:function(){return""!==this.pluginInfo.clusterId&&""!==this.pluginInfo.pluginName&&""!==this.pluginInfo.pluginVersion}},created:function(){this.getClusters()}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(11),l=i(s),r=n(330),c=i(r),u=n(223),d=i(u);n(289);var p=n(1422),f=i(p);t.default={data:function(){return{loading:!1,isPluginInfoDialogVisible:!1,pluginInfo:{},pluginInfoTitle:"",pluginInfoOperation:"",pluginNameForSearch:this.$route.query.pluginName||"",pluginRuntimeList:[],pageSize:10,total:0,currentPage:Number(this.$route.query.currentPage)||1,isAllPrivilege:!1,pluginTypeMap:{0:"PALLAS",1:"ES"}}},methods:{getNodesOfVersion:function(e,t){var n=[];return e.forEach(function(e){e.pluginVersion===t&&n.push(e.nodeIp)}),n},getPluginVersion:function(e){var t=[];return e.forEach(function(e){""!==e.pluginVersion&&t.push(e.pluginVersion)}),(0,d.default)(new c.default(t))},handleAdd:function(){this.isPluginInfoDialogVisible=!0,this.pluginInfoTitle="新建插件",this.pluginInfoOperation="add";var e={clusterId:"",pluginName:"",pluginVersion:"",pluginType:0,note:"",packagePath:""};this.pluginInfo=JSON.parse((0,l.default)(e))},handleRemove:function(e){var t=this,n={pluginUpgradeId:e.id,clusterId:e.clusterId,pluginName:e.pluginName,pluginVersion:e.nodeStates[0].pluginVersion||""};this.$message.confirmMessage("确定移除插件"+e.pluginName+"吗? 请注意,确定后会马上移除插件!",function(){t.loading=!0,t.$http.post("/plugin/remove.json",n).then(function(){t.$message.successMessage("提交移除请求成功并等待后台执行,请稍后刷新页面",function(){t.refreshPage()})}).finally(function(){t.loading=!1})})},handleUpgrade:function(e){this.isPluginInfoDialogVisible=!0,this.pluginInfoTitle=e.pluginName+"插件升级",this.pluginInfoOperation="upgrade";var t={clusterId:e.clusterId,pluginName:e.pluginName,pluginVersion:"",pluginType:0,note:"",packagePath:""};this.pluginInfo=JSON.parse((0,l.default)(t))},closeDialog:function(){this.isPluginInfoDialogVisible=!1},operateCloseDialog:function(){var e=this;this.isPluginInfoDialogVisible=!1,this.$message.successMessage("新增插件成功,等待审核,请稍后刷新页面",function(){e.refreshPage()})},getPluginRuntimeList:function(){var e=this,t={currentPage:Number(this.$route.query.currentPage)||1,pageSize:this.pageSize,pluginName:encodeURIComponent(this.$route.query.pluginName||"")};return this.$http.get("/plugin/runtime/list.json",t).then(function(t){e.pluginRuntimeList=t.list,e.isAllPrivilege=t.allPrivilege,e.total=t.total})},changePage:function(e){this.currentPage=e,this.toPage()},refreshPage:function(){this.init()},toPage:function(){this.$router.push({path:this.$routermapper.GetPath("pluginManage"),query:{currentPage:this.currentPage,pluginName:this.pluginNameForSearch}})},init:function(){var e=this;this.loading=!0,o.default.all([this.getPluginRuntimeList()]).then(function(){e.loading=!1})}},created:function(){this.init()},watch:{$route:"init"},components:{"plugin-info-dialog":f.default}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a);t.default={data:function(){return{loading:!1,pluginUpgradeList:[],pageSize:10,total:0,currentPage:Number(this.$route.query.currentPage)||1,isAllPrivilege:!1,pluginTypeMap:{0:"PALLAS",1:"ES"}}},computed:{pluginName:function(){return this.$route.query.pluginName}},methods:{getPluginUpgradeList:function(){var e=this,t={currentPage:Number(this.$route.query.currentPage)||1,pageSize:this.pageSize,pluginName:encodeURIComponent(this.pluginName||"")};return this.$http.get("/plugin/upgrade/list.json",t).then(function(t){e.pluginUpgradeList=t.list,e.isAllPrivilege=t.allPrivilege,e.total=t.total})},handlePlugin:function(e,t,n){var i=this,a={pluginUpgradeId:e.id,action:t};this.$message.confirmMessage("确定"+n+"插件"+e.pluginName+"吗?",function(){i.loading=!0,i.$http.post("/plugin/upgrade/action.json",a).then(function(){i.$message.successMessage("操作成功",function(){i.refreshPage()})}).finally(function(){i.loading=!1})})},handleRollback:function(e){var t=this,n={clusterId:e.clusterId,pluginName:e.pluginName,pluginVersion:e.pluginVersion,pluginType:e.pluginType,note:e.note,packagePath:e.packagePath};this.$message.confirmMessage("确定回滚插件"+e.pluginName+"吗?",function(){t.loading=!0,t.$http.post("/plugin/upgrade/add.json",n).then(function(){t.$message.successMessage("操作成功,已创建新工单",function(){t.refreshPage()})}).finally(function(){t.loading=!1})})},changePage:function(e){this.currentPage=e,this.toPage()},refreshPage:function(){this.init()},toPage:function(){this.$router.push({path:this.$routermapper.GetPath("pluginUpgrade"),query:{currentPage:this.currentPage,pluginName:this.pluginName}})},init:function(){var e=this;this.loading=!0,o.default.all([this.getPluginUpgradeList()]).then(function(){e.loading=!1})}},created:function(){this.init()},watch:{$route:"init"},filters:{translateStat:function(e){return{0:"创建",1:"待审批",2:"审批不通过",3:"取消",4:"标记完成",5:"下载中",51:"下载完成",6:"升级中",61:"升级完成",7:"插件已移除"}[e]}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),s=n(130),l=i(s),r=n(328),c=i(r),u=n(1426),d=i(u);t.default={props:["tokenInfo","tokenHeight"],data:function(){return{loading:!1,clusterList:[],psClusterList:[],clusterList2update:[],tokenClusterInfo:{}}},computed:{clusterPoolHeight:function(){return{height:.6*this.tokenHeight.height-48}},clusterTokenHeight:function(){return{height:.4*this.tokenHeight.height}},clusterIndexHeight:function(){return{height:this.tokenHeight.height}}},methods:{updateTokenCluster:function(){var e=this,t={id:this.tokenClusterInfo.id,name:this.tokenClusterInfo.name};""===this.tokenClusterInfo.clusterPrivilege?this.$set(t,"privileges",{}):this.$set(t,"privileges",{ClusterAll:[this.tokenClusterInfo.clusterPrivilege]}),0===this.tokenClusterInfo.myIndexPrivilegeArr.length?this.$set(t,"indexPrivileges",[]):(this.tokenClusterInfo.myIndexPrivilegeArr.forEach(function(t){""===t.indexPrivilege?e.$set(t,"privileges",{}):e.$set(t,"privileges",{IndexAll:[t.indexPrivilege]})}),this.$set(t,"indexPrivileges",this.tokenClusterInfo.myIndexPrivilegeArr)),0===this.tokenClusterInfo.pools.length?this.$set(t,"pools",[]):(this.tokenClusterInfo.pools.forEach(function(e){(0,c.default)(e,{aliasName:""})}),this.$set(t,"pools",this.tokenClusterInfo.pools)),this.clusterList.some(function(n,i){return n.id===t.id&&(e.clusterList[i]=t),!1}),this.clusterList2update[0]=t,this.updateTokenRequest()},updateTokenRequest:function(){var e=this,t={id:this.tokenInfo.id,authorizationItems:this.clusterList2update};this.loading=!0,this.$http.post("/token/token_privilege/update.json",t).then(function(){e.getTokenDetail()}).finally(function(){e.loading=!1})},handleNodeClick:function(e){var t=this,n={id:e.id,name:e.name};0===(0,l.default)(e.privileges).length?this.$set(n,"clusterPrivilege",""):this.$set(n,"clusterPrivilege",e.privileges.ClusterAll[0]),e.indexPrivileges.length>0&&e.indexPrivileges.forEach(function(e){0===(0,l.default)(e.privileges).length?t.$set(e,"indexPrivilege",""):t.$set(e,"indexPrivilege",e.privileges.IndexAll[0])}),0===(0,l.default)(e.pools).length?this.$set(n,"pools",[]):this.$set(n,"pools",e.pools),this.$set(n,"serverPools",e.serverPools),this.$set(n,"myIndexPrivilegeArr",e.indexPrivileges),this.psClusterList=this.getPsServerPoolJsonTree(e.serverPools,e.pools);var i=[];n.pools.forEach(function(e){i.push(t.genPsNodeKey(e))}),this.$set(n,"checkedPools",i),this.tokenClusterInfo=JSON.parse((0,o.default)(n))},getTokenDetail:function(){var e=this;this.tokenInfo.id&&(this.loading=!0,this.$http.get("/token/token_privileges.json?id="+this.tokenInfo.id).then(function(t){e.clusterList=t,e.sortTokenCluster(),(0,l.default)(t).length>=0&&e.handleNodeClick(t[0])}).finally(function(){e.loading=!1}))},sortTokenCluster:function(){var e=this;this.clusterList.sort(function(t,n){var i=e.isIndexPrivilege(t)?1:0,a=e.isIndexPrivilege(n)?1:0;return(0,l.default)(t.privileges).length+i>(0,l.default)(n.privileges).length+a?-1:(0,l.default)(t.privileges).length+i<(0,l.default)(n.privileges).length+a?1:0})},isIndexPrivilege:function(e){return e.indexPrivileges.some(function(e){return 0!==(0,l.default)(e.privileges).length})},renderCluster:function(e,t){var n=t.data,i="";return(0!==(0,l.default)(n.privileges).length||this.isIndexPrivilege(n))&&(i="已授权"),e("span",[e("span",{style:{float:"left","margin-left":"10px","font-size":"14px"}},n.name),e("span",{style:{float:"right",color:"#32cd32","margin-right":"10px","font-size":"12px"}},i)])},renderPsCluster:function(e,t){var n=t.data;return n.aliasName?e("span",[e("el-popover",{props:{content:"代理节点集 "+n.name+" 因为下线或者删除该代理等原因已经无法访问",trigger:"hover",placement:"right",disabled:!n.offline}},[e("span",{slot:"reference",style:{"margin-left":"10px","font-size":"14px"},attrs:{class:""+this.renderPoolOffline(n.offline)}},n.name)]),e("el-popover",{props:{content:n.aliasName,trigger:"hover"}},[e("span",{slot:"reference",style:{"margin-left":"5px",color:"gray","font-size":"14px"}},"( "+n.aliasName+" )")])]):e("span",[e("el-popover",{props:{content:"代理节点集 "+n.name+" 因为下线或者删除该代理等原因已经无法访问",trigger:"hover",placement:"right",disabled:!n.offline}},[e("span",{slot:"reference",style:{"margin-left":"10px","font-size":"14px"},attrs:{class:""+this.renderPoolOffline(n.offline)}},n.name)])])},handlePsNodeClick:function(){0===(0,l.default)(this.tokenClusterInfo).length?this.$set(this.tokenClusterInfo,"pools",[]):this.$set(this.tokenClusterInfo,"pools",this.$refs.psPoolTree.getCheckedNodes())},getPsServerPoolJsonTree:function(e,t){var n=this,i={};e.forEach(function(e){var t=e.psClusterName,a=(0,c.default)({},e,{id:n.genPsNodeKey(e)});i[t]=i[t]||[],i[t].push(a)}),t.forEach(function(e){var t=!1,a=e.psClusterName;if(i[a]=i[a]||[],i[a].forEach(function(i){i.id===n.genPsNodeKey(e)&&(t=!0)}),!t){var o=(0,c.default)({},e,{id:n.genPsNodeKey(e),offline:!0});i[a].push(o)}});var a=[];return(0,l.default)(i).forEach(function(e){var t={name:e,children:i[e],disabled:!0};a.push(t)}),a},genPsNodeKey:function(e){return e.name+":"+e.psClusterName},renderPoolOffline:function(e){return e?"pool-offline":""}},created:function(){this.getTokenDetail()},components:{"token-index":d.default}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["tokenClusterInfo","clusterTreeHeight"],data:function(){return{}},methods:{handleUpdate:function(){var e=this;this.$message.confirmMessage("确定更新授权吗?",function(){e.$emit("update-token-cluster")})},handleReset:function(){var e=this;""!==this.tokenClusterInfo.clusterPrivilege&&(this.tokenClusterInfo.clusterPrivilege=""),this.tokenClusterInfo.myIndexPrivilegeArr.length>0&&this.tokenClusterInfo.myIndexPrivilegeArr.forEach(function(t,n){""!==t.indexPrivilege&&(e.tokenClusterInfo.myIndexPrivilegeArr[n].indexPrivilege="")})}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["tokenInfo","tokenInfoTitle","tokenInfoOperate"],data:function(){return{loading:!1,isVisible:!0,rules:{title:[{required:!0,message:"请输入Token标题",trigger:"blur"}]}}},methods:{reGenerate:function(){var e=this;this.loading=!0,this.$http.post("/token/security/token.json").then(function(t){e.tokenInfo.clientToken=t}).finally(function(){e.loading=!1})},submitInfo:function(){var e=this;this.$refs.tokenInfo.validate(function(t){t&&e.tokenRequest("/token/insert.json")})},tokenRequest:function(e){var t=this;this.loading=!0,this.$http.post(e,this.tokenInfo).then(function(){var e={operation:t.tokenInfoOperate,clientToken:t.tokenInfo.clientToken,title:t.tokenInfo.title};t.$emit("token-info-success",e)}).finally(function(){t.loading=!1})},closeDialog:function(){this.$emit("close-dialog")}},computed:{isEditable:function(){return"add"===this.tokenInfoOperate}}}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(32),o=i(a),s=n(11),l=i(s),r=n(1425),c=i(r),u=n(1427),d=i(u);t.default={data:function(){return{loading:!1,isPrivilege:!1,isTokenInfoVisible:!1,isSelectToken:!1,tokenInfo:{},tokenInfoTitle:"",tokenInfoOperate:"",tokenForSearch:"",tokenSelectInfo:{},tokenList:[],statusMap:{true:"启用",false:"禁用"},initTokenList:[],tokenHeight:{height:document.body.clientHeight-225}}},computed:{tokenErrorHeight:function(){return{height:this.tokenHeight.height+92,"line-height":this.tokenHeight.height+92+"px"}}},mounted:function(){this.tokenHeight={height:document.body.clientHeight-225};var e=this;window.onresize=function(){e.tokenHeight={height:document.body.clientHeight-225}}},methods:{handleSearch:function(){var e=this,t=this.initTokenList;t=t.filter(function(t){if("string"==typeof t.clientToken){return t.clientToken.toLowerCase().indexOf(e.tokenForSearch.toLowerCase())>-1||t.title.toLowerCase().indexOf(e.tokenForSearch.toLowerCase())>-1||t.id.toString().indexOf(e.tokenForSearch.toLowerCase())>-1}return t.clientToken===e.tokenForSearch}),this.tokenList=t},handleAdd:function(){var e={title:"",clientToken:"",enabled:!0};this.tokenInfo=JSON.parse((0,l.default)(e)),this.tokenInfoTitle="新建Token",this.tokenInfoOperate="add",this.isTokenInfoVisible=!0},closeTokenInfoDialog:function(){this.isTokenInfoVisible=!1},tokenInfoSuccess:function(e){"edit"===e.operation&&(this.tokenSelectInfo.clientToken=e.clientToken,this.tokenSelectInfo.title=e.title),this.isTokenInfoVisible=!1,this.init()},handleEdit:function(e){var t={id:e.id,title:e.title,clientToken:e.clientToken,enabled:e.enabled};this.tokenInfo=JSON.parse((0,l.default)(t)),this.tokenInfoTitle="编辑Token",this.tokenInfoOperate="edit",this.isTokenInfoVisible=!0},handleTokenClick:function(e){this.isSelectToken=!0,this.tokenSelectInfo=JSON.parse((0,l.default)(e))},getDataList:function(){var e=this;return this.$http.get("/token/list.json").then(function(t){e.tokenList=t,e.initTokenList=t,e.isPrivilege=!0})},init:function(){var e=this;this.loading=!0,o.default.all([this.getDataList()]).then(function(){e.loading=!1})}},created:function(){this.init()},components:{"token-detail":c.default,"token-info-dialog":d.default}}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".target-group-transfer .el-transfer-panel{min-width:43%}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".template-config[data-v-03f7eaf3]{height:500px;margin:15px;color:#fff}.template-config-content .title[data-v-03f7eaf3]{font-weight:700;font-size:16px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".chart-no-data{line-height:300px;text-align:center;color:red}.chart-no-data i{margin-right:10px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".panel[data-v-07add241]{background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-default-info[data-v-07add241]{background-color:#3d3d3d;padding-top:10px;padding-bottom:5px;border:1px solid #262626;opacity:.8}.panel-danger-info[data-v-07add241]{background-color:#c00;padding-top:10px;padding-bottom:5px;text-decoration:none;opacity:.8}.panel-danger-info[data-v-07add241]:hover{background-color:red}.panel-warning-info[data-v-07add241]{background-color:#f80;padding-top:10px;padding-bottom:5px;text-decoration:none;opacity:.8}.panel-success-info[data-v-07add241]{background-color:#67c23a;padding-top:10px;padding-bottom:5px;text-decoration:none;opacity:.8}.panel-content-title[data-v-07add241]{text-align:center;color:#fff;font-size:15px;word-wrap:break-word;word-break:normal}.panel-content-body[data-v-07add241]{text-align:center;color:#fff;font-size:22px;padding-top:5px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".token-index{margin-top:3px}.token-index .el-radio-button--small .el-radio-button__inner{padding:3px 5px}.el-table th,.token-index .el-table td{height:36px}.token-index .el-table th>.cell{line-height:36px}.el-table th>div,.token-index .el-table .cell{padding-top:0;padding-bottom:0}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".label-title{height:30px;line-height:30px;margin-bottom:5px;padding-left:5px;background-color:#333}.label-title .span-title{color:#eee;font-size:15px;margin-right:5px}.label-content{margin:10px 15px 20px}.label-content span{color:#eee}.version-info-dialog .el-dialog__body{padding:10px 5px 10px 0}.version-info-dialog .el-dialog__footer{padding:10px 20px 0 0}.version-info-dialog .el-form-item,.version-info-dialog form{margin-bottom:0}.red{color:red}.version-info-dialog .el-button--text{color:#eee}.el-button--text:hover,.version-info-dialog .el-button--text:focus{color:gray}.version-info-dialog .el-checkbox{color:#eee}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".batch-submit-template{margin:10px}.batch-submit-template .el-transfer-panel{width:250px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".edit-save-span{color:#fff;font-size:15px;font-weight:bolder;padding:15px 40px}.edit-save-span i{color:red}.edit-save-span span{color:#32cd32}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".export-template{margin:10px}.export-template .el-transfer-panel{width:250px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".panel-container[data-v-22a7638e]{border:1px solid gray;margin-bottom:20px}.panel-container .panel-header[data-v-22a7638e]{color:#eee;background-color:#373a3c;border-bottom:1px solid gray;height:35px;line-height:35px;padding:0 10px}.panel-container .panel-header i[data-v-22a7638e]{height:35px;line-height:35px}.panel-container .panel-body[data-v-22a7638e]{background-color:#373a3c}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".condition-add[data-v-254d07b9]{margin:10px 5px}.condition-add .warning i[data-v-254d07b9]{color:red}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".plugin-version .el-button+.el-button{margin-left:0}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".target-group-transfer .el-transfer-panel{min-width:43%}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".condition-add[data-v-2eb1c088]{margin:10px 5px}.condition-add .warning i[data-v-2eb1c088]{color:red}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".clusters-select{width:100%}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".copy-to-field{margin:10px}.copy-to-field .el-transfer-panel{width:250px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".login-box{margin:15% auto;width:400px;border:1px solid gray;border-radius:6px}.login-box .login-header{color:#eee;padding:10px;border-bottom:1px solid gray}.login-box .login-body{padding:20px 40px}.login-box .login-body .el-row{margin-bottom:20px}.login-box .login-body .el-row:last-child{margin-bottom:0}.login-box .login-body .msg-error{position:relative;background:#ffebeb;color:#e4393c;border:1px solid #faccc6;line-height:15px;font-size:13px;padding:3px 10px;margin-bottom:10px}.login-box .login-body .msg-error i{margin-right:5px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".template_content{display:table;width:100%}.template_tree{padding-right:30px;display:table-cell;width:245px}.template-warning{text-align:center;color:red;font-size:larger;font-weight:bolder;display:table-cell;vertical-align:middle}.template-warning i{padding-right:10px}.template-body{display:table-cell}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".template-test-upload .el-table--enable-row-hover .el-table__body tr:hover>td{background-color:transparent}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".target-group-item{margin-right:5px}.condition-table+.condition-table{border-top:1px solid gray}.condition-table span{white-space:nowrap}.route-tag{margin-bottom:5px}.route-weight{color:#7fffd4;font-size:12px;margin-left:3px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".index-timeout-retry[data-v-4ac0cba8]{margin:10px 0 20px;font-size:15px}.index-timeout-retry span[data-v-4ac0cba8]{color:#32cd32}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".template-content .template-title{color:#fff;line-height:30px}.template-content .template-title .template-name{color:#32cd32;font-weight:700;margin-right:15px}.template-content .template-title .template-approving{color:red;margin-left:10px;font-weight:400}.template-content .template-title .template-approving a{color:red}.template-content .template-title .template-approving a:hover{color:rgba(255,0,0,.7)}.result-content .el-textarea__inner{background-color:#272822}.api-content{padding:5px;background-color:#222;color:#fff}.no-border{border:none}.debug-title{width:100%;margin-bottom:5px;height:30px;line-height:30px}.template-edit-content{height:650px;width:100%;overflow-y:auto;float:left}.template-edit-and-version-content{height:650px;width:62%;float:left}.template-history-version-content{position:relative;width:38%;float:left}.template-history-version-content table{font-size:10px}.template-history-version-content .el-table .cell{line-height:normal}.template-history-version-content .el-table tr:hover{cursor:pointer}.render-cluster{margin-left:15px}.render-cluster>span{font-size:16px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".target-group-item{margin-right:5px}.condition-table+.condition-table{border-top:1px solid gray}.condition-table span{white-space:nowrap}.route-tag{margin-bottom:5px}.route-weight{color:#7fffd4;font-size:12px;margin-left:3px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".schema-content{margin-bottom:10px}.nested-input{width:50%}.schema-info-dialog .el-dialog__footer{padding:10px 20px 15px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".profile-template .el-collapse-item__header{padding-left:5px;background-color:#272822}.profile-template .el-collapse-item__content{padding:0 1px}.profile-tree .profile-tree-th{color:#aaa;font-size:xx-small;background-color:#272822}.profile-tree .el-tree{border:none;color:#eee;background-color:#272822}.profile-tree-type{font-size:14px;margin-right:10px}.profile-tree-desc{font-size:10px;color:#bbb;font-style:italic}.profile-tree-time{margin-right:10px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".clusters-select{width:100%}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".cluster_restart_setting[data-v-66714b9d],.cluster_restart_tab[data-v-66714b9d]{margin-bottom:10px}.cluster_restart_setting .el-button--text[data-v-66714b9d]:focus,.cluster_restart_setting .el-button--text[data-v-66714b9d]:hover{color:#fff}.cluster_restart_setting .el-table .cell[data-v-66714b9d],.el-table th>div[data-v-66714b9d]{padding-top:0;padding-bottom:0}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".template-import-upload{margin:0 20px 20px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".monitor-top{margin-bottom:10px}.monitor-top .el-table .cell,.monitor-top .el-table th>div{padding-top:0;padding-bottom:0}.monitor-top .el-table td,.monitor-top .el-table th.is-leaf{border-bottom:none}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".my-container[data-v-6ba933be]{height:100%}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".token-name-span{color:#32cd32;font-weight:700;margin-right:10px}.token-cluster{margin-top:5px;overflow:auto}.token-index,.token-pool{margin-top:5px}.title-span{font-size:14px;margin-right:10px}.token-cluster-tree{margin-top:10px;position:relative;overflow:auto}.pool-offline{text-decoration:line-through;color:#ff4949}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".plugin-upload{margin-left:50px}.plugin-upload-tooltip.el-tooltip__popper.is-dark{background:#333}.plugin-upload-warning{margin-left:50px;color:red}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".schema-content{margin-bottom:10px}.schema-info-dialog .el-dialog__footer{padding:10px 20px 15px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".data-source-content{margin:-10px 0 10px}.data-source-add{padding:5px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".template-test{margin:0 10px}.template-test .template-test-content{margin:0 0 10px}.template-test .template-test-content .template-test-tips{margin-top:5px;color:red;font-size:13px}.template-test .template-test-content .template-test-head{background-color:gray;height:25px;border-radius:4px;padding-left:5px;font-size:15px}.template-test-popper{background-color:#222;border:none}.template-test-popper .popper-button{float:left;padding:5px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".target-group-item[data-v-7ef147c0]{margin-bottom:15px}.target-group-item[data-v-7ef147c0]:hover{box-shadow:0 1px 20px #d1dbe5}.target-group-item .target-group-header[data-v-7ef147c0]{padding:10px;border:1px solid gray;height:25px;background-color:#373a3c}.target-group-item .target-group-header .title[data-v-7ef147c0]{background-color:#13ce66;border-radius:4px;padding:5px 10px}.target-group-item .target-group-content .el-tree[data-v-7ef147c0]{border:1px solid gray}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".ins,.match,.text-diff span,ins{color:#fff}.ins,ins{background:#0a3}.del,del{color:#fff;background:#980000}.noselect{user-select:none}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".footer{position:fixed;bottom:0;width:100%}.footer p{text-align:center;color:hsla(0,0%,75%,.5);margin-top:0;margin-bottom:0;font-size:13px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".label-title{height:30px;line-height:30px;margin-bottom:5px;padding-left:5px;background-color:#333}.label-title .span-title{color:#eee;font-size:15px;margin-right:5px}.label-content{margin:10px 15px 20px}.label-content span{color:#eee}.version-info-dialog .el-dialog__body{padding:10px 5px 10px 0}.version-info-dialog .el-dialog__footer{padding:10px 20px 0 0}.version-info-dialog .el-form-item,.version-info-dialog form{margin-bottom:0}.red{color:red}.version-info-dialog .el-button--text{color:#eee}.el-button--text:hover,.version-info-dialog .el-button--text:focus{color:gray}.version-info-dialog .el-checkbox{color:#eee}.source-setting{padding:10px 10px 10px 6px;border:1px solid gray}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".template-insert-dialog .el-dialog--small{width:auto;min-width:700px}.template-insert{margin:15px;color:#fff}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".target-group-item[data-v-aeee314e]{margin-bottom:15px}.target-group-item[data-v-aeee314e]:hover{box-shadow:0 1px 20px #d1dbe5}.target-group-item .target-group-header[data-v-aeee314e]{padding:10px;border:1px solid gray;height:25px}.target-group-item .target-group-header .title[data-v-aeee314e]{background-color:#13ce66;border-radius:4px;padding:5px 10px}.target-group-item .target-group-content .el-tree[data-v-aeee314e]{height:200px;overflow:auto;border:1px solid gray}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".token-table .el-table--enable-row-transition .el-table__body td{text-align:left}.token-warning{text-align:center;color:red;font-size:larger;font-weight:bolder;vertical-align:middle}.token-warning i{padding-right:10px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".ace_scrollbar-h::-webkit-scrollbar,.ace_scrollbar-v::-webkit-scrollbar{width:8px;height:8px;border-radius:8px}.ace_scrollbar-h::-webkit-scrollbar-thumb,.ace_scrollbar-v::-webkit-scrollbar-thumb{border-radius:8px;background-color:hsla(220,4%,58%,.5)}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".navbar{width:100%;display:table}.navbar-title{display:table-cell;background-color:#373a3c;color:#fff;height:60px;line-height:60px;font-weight:700;width:260px}.navbar-title span img{float:left;padding:10px 10px 0 25px}.navbar-content{display:table-cell;vertical-align:middle}.navbar-content ul{background-color:#373a3c;border-radius:0}.logout-a-link{text-decoration:initial}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".my-table-expand{font-size:0;padding-left:100px}.my-table-expand label{width:90px;color:#99a9bf}.my-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:33.3333333%;text-align:left}.data-source-text{margin-right:8px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,'.tm-body{background:#373a3c none repeat scroll 0 0;border-radius:4px;margin-left:5px;margin-right:5px}.tm-body:after{bottom:0;content:"";display:block;height:65%;left:146px;position:absolute;width:3px;z-index:0}.tm-items{list-style:outside none none;margin:0;padding:0;position:relative;font-size:14px}.tm-items:before{background-color:#eee;bottom:0;content:" ";left:127px;position:absolute;top:0;width:3px}.tm-items>li{margin:30px 0;min-height:65px;padding:0 0 0 190px;position:relative;z-index:1}.tm-items>li .tm-icon{background-color:#373a3c;border-color:#08c;border-radius:126px;color:#ccc;font-size:22px;height:25px;left:66px;line-height:25px;margin-left:50px;margin-top:-17px;padding-top:5px;position:absolute;text-align:center;top:50%;width:25px;z-index:2}.tm-items>li .tm-datetime{left:0;margin-left:3px;text-align:right}.tm-items>li .tm-datetime,.tm-items>li .tm-item{height:48px;margin-top:-17px;padding-top:5px;position:absolute;top:50%;width:100px;z-index:3}.tm-items>li .tm-item{color:#ccc;font-weight:700;left:150px;text-align:left}.tm-items>li .tm-timeline-box{left:140px;line-height:29px;margin-left:-30px;margin-top:-20px;position:absolute;text-align:center;top:50%;width:120px;z-index:2}.tm-items>li .tm-timeline-box .tm-timeline{background-color:#428bca;padding-left:2px;text-align:left}.tm-items>li .tm-ratio{line-height:29px;text-align:left}.tm-items>li .tm-box{background:#222 none repeat scroll 0 0;border:1px solid #222;border-radius:6px;margin-left:80px;margin-right:5px;min-height:65px;padding:10px 20px;position:relative}.tm-items>li .tm-box:after{border:none;border-color:transparent #222 transparent transparent;border-image:none;border-style:solid;border-width:8px;content:" ";height:0;margin-top:-8px;pointer-events:none;position:absolute;right:100%;top:50%;width:0;z-index:2}.tm-items>li .tm-box .tm-meta{margin:20px 0 0}',""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,"",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".target-group[data-v-ed9f792e]{margin-top:10px}.target-group-null[data-v-ed9f792e]{text-align:center;border:1px solid gray;padding:10px;font-size:14px;color:#5e7382}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".content{margin:0 20px 20px}.dynamic-pagination{padding-right:5px}.operation-content a{cursor:pointer}.operation-content .operation-content-fold{height:21px;overflow:hidden}.operation-content .operation-content-unfold{height:auto}.empty-operation{position:relative;text-align:center;height:60px;border:1px solid gray;margin-top:20px;line-height:60px;color:#5e7382;font-size:14px}.bg-purple-dark{background:#222}.grid-content{line-height:36px;border-radius:4px;min-height:36px}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".target-group[data-v-eee0a37c]{margin-top:10px}.target-group-null[data-v-eee0a37c]{text-align:center;border:1px solid gray;padding:10px;font-size:14px;color:#5e7382;background-color:#373a3c}",""])},function(e,t,n){t=e.exports=n(6)(void 0),t.push([e.i,".page-tab .el-tabs{background-color:#373a3c}",""])},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){function i(e){return n(a(e))}function a(e){var t=o[e];if(!(t+1))throw new Error("Cannot find module '"+e+"'.");return t}var o={"./af":416,"./af.js":416,"./ar":423,"./ar-dz":417,"./ar-dz.js":417,"./ar-kw":418,"./ar-kw.js":418,"./ar-ly":419,"./ar-ly.js":419,"./ar-ma":420,"./ar-ma.js":420,"./ar-sa":421,"./ar-sa.js":421,"./ar-tn":422,"./ar-tn.js":422,"./ar.js":423,"./az":424,"./az.js":424,"./be":425,"./be.js":425,"./bg":426,"./bg.js":426,"./bm":427,"./bm.js":427,"./bn":428,"./bn.js":428,"./bo":429,"./bo.js":429,"./br":430,"./br.js":430,"./bs":431,"./bs.js":431,"./ca":432,"./ca.js":432,"./cs":433,"./cs.js":433,"./cv":434,"./cv.js":434,"./cy":435,"./cy.js":435,"./da":436,"./da.js":436,"./de":439,"./de-at":437,"./de-at.js":437,"./de-ch":438,"./de-ch.js":438,"./de.js":439,"./dv":440,"./dv.js":440,"./el":441,"./el.js":441,"./en-SG":442,"./en-SG.js":442,"./en-au":443,"./en-au.js":443,"./en-ca":444,"./en-ca.js":444,"./en-gb":445,"./en-gb.js":445,"./en-ie":446,"./en-ie.js":446,"./en-il":447,"./en-il.js":447,"./en-nz":448,"./en-nz.js":448,"./eo":449,"./eo.js":449,"./es":452,"./es-do":450,"./es-do.js":450,"./es-us":451,"./es-us.js":451,"./es.js":452,"./et":453,"./et.js":453,"./eu":454,"./eu.js":454,"./fa":455,"./fa.js":455,"./fi":456,"./fi.js":456,"./fo":457,"./fo.js":457,"./fr":460,"./fr-ca":458,"./fr-ca.js":458,"./fr-ch":459,"./fr-ch.js":459,"./fr.js":460,"./fy":461,"./fy.js":461,"./ga":462,"./ga.js":462,"./gd":463,"./gd.js":463,"./gl":464,"./gl.js":464,"./gom-latn":465,"./gom-latn.js":465,"./gu":466,"./gu.js":466,"./he":467,"./he.js":467,"./hi":468,"./hi.js":468,"./hr":469,"./hr.js":469,"./hu":470,"./hu.js":470,"./hy-am":471,"./hy-am.js":471,"./id":472,"./id.js":472,"./is":473,"./is.js":473,"./it":475,"./it-ch":474,"./it-ch.js":474,"./it.js":475,"./ja":476,"./ja.js":476,"./jv":477,"./jv.js":477,"./ka":478,"./ka.js":478,"./kk":479,"./kk.js":479,"./km":480,"./km.js":480,"./kn":481,"./kn.js":481,"./ko":482,"./ko.js":482,"./ku":483,"./ku.js":483,"./ky":484,"./ky.js":484,"./lb":485,"./lb.js":485,"./lo":486,"./lo.js":486,"./lt":487,"./lt.js":487,"./lv":488,"./lv.js":488,"./me":489,"./me.js":489,"./mi":490,"./mi.js":490,"./mk":491,"./mk.js":491,"./ml":492,"./ml.js":492,"./mn":493,"./mn.js":493,"./mr":494,"./mr.js":494,"./ms":496,"./ms-my":495,"./ms-my.js":495,"./ms.js":496,"./mt":497,"./mt.js":497,"./my":498,"./my.js":498,"./nb":499,"./nb.js":499,"./ne":500,"./ne.js":500,"./nl":502,"./nl-be":501,"./nl-be.js":501,"./nl.js":502,"./nn":503,"./nn.js":503,"./pa-in":504,"./pa-in.js":504,"./pl":505,"./pl.js":505,"./pt":507,"./pt-br":506,"./pt-br.js":506,"./pt.js":507,"./ro":508,"./ro.js":508,"./ru":509,"./ru.js":509,"./sd":510,"./sd.js":510,"./se":511,"./se.js":511,"./si":512,"./si.js":512,"./sk":513,"./sk.js":513,"./sl":514,"./sl.js":514,"./sq":515,"./sq.js":515,"./sr":517,"./sr-cyrl":516,"./sr-cyrl.js":516,"./sr.js":517,"./ss":518,"./ss.js":518,"./sv":519,"./sv.js":519,"./sw":520,"./sw.js":520,"./ta":521,"./ta.js":521,"./te":522,"./te.js":522,"./tet":523,"./tet.js":523,"./tg":524,"./tg.js":524,"./th":525,"./th.js":525,"./tl-ph":526,"./tl-ph.js":526,"./tlh":527,"./tlh.js":527,"./tr":528,"./tr.js":528,"./tzl":529,"./tzl.js":529,"./tzm":531,"./tzm-latn":530,"./tzm-latn.js":530,"./tzm.js":531,"./ug-cn":532,"./ug-cn.js":532,"./uk":533,"./uk.js":533,"./ur":534,"./ur.js":534,"./uz":536,"./uz-latn":535,"./uz-latn.js":535,"./uz.js":536,"./vi":537,"./vi.js":537,"./x-pseudo":538,"./x-pseudo.js":538,"./yo":539,"./yo.js":539,"./zh-cn":540,"./zh-cn.js":540,"./zh-hk":541,"./zh-hk.js":541,"./zh-tw":542,"./zh-tw.js":542};i.keys=function(){return Object.keys(o)},i.resolve=a,e.exports=i,i.id=1333},,,function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADcklEQVRYR+1XXVLaUBT+Tqi8lsICandAwgLUFYgrEGYapm/qCoorKL51ks6IK1BWIC7AhK5AXQBp+qrlns69EAohITeh03E68AjnnO+73/mF8Mo/9Mr5YUtw0wz93wpW/E+7BiaHELRLxHUG6lIxAkbMNILBjwKlQWh+fSyqZCEFK36rYqB8QoyuDjAzesJ4Pg/Nfqhjv2iTm2DN7xwzc49AlTxgDA5B6Aame5HHLxfB6n2nS4TPeQDitsw4DxqOlvKzctGDq/l2C0yXetYZVsTtsen2dWJpKVjxP+6X2LhNCsjgJzD1hSGGofltKOsTeFM3hCEbRir+NslvQuJA2meR1CJY9ToPBOyuBuPBhF5aacWvmkmUT5PKgoHHwHI+bEyw5neaYFxn1VLFs/cMmo4ZwRiFlnsX+VS9Tp+A4xUyhKOx6dysI5mpYFJwBr4HlqPIyFlY4sklQPvLQDycUKkdzcCaZ98AdBizGYwtt1mYoExRics/4gEmZHyQwCqFXPaT0w/INAp6NmUJVHy7XmLyV2M9v1s3HxMVVOliaoLQjIPLpggsV9Vj9d7uEdHJOgWY+SJouKfK3rMfCfR+0V4+AoybWZMN4rGWCMpXGoxLAqn0JXctrgLLac0A/XW20obBo8ByTZ0HSVtBaIemO4qw5wTlKDGYrrM2xOKgrXkdzupC+fvYchSOzqCXG0cQH0UjSDmm1UeKhvPCrnn2EKC9tSleaKjUbk4IEM1JRbDm2berXZiWYv2UqRQv12BmSUSoUWlQkRUWvW7axTujeOEvgDwJeqmv6+K1JULcpjyy/wnGw7HlHkzLQ83B/mqq+W5CpdZ8DqYM/IzyuKKqZ2vLvjQeGL2g4ZxF36kmm+5fCEOMkvZs3mzJEUS6nZg4cpj7QcNt63RyZJOXJFXvO2HaxaEDrA5Rdc3wVTS/pnuZ9sFogXkYf4QuSWb8pOQdqUNN34YTlNbD5YFUUJ5DX/ThilnGSWoNbcYZTbtQPBSDzecVkZyt1NusrSWPkmgF/RMV8zyHGWdBw+nNd7FeTeSB2MSW78aWq+7LhWNBnuc73azzaRNYHV+5GoXx0o1uxJV7cHbV9NPWlw5IERt5ZwriVnzAp578C//OYqd8Efh0H3moAr9GaVd15n+Sv0snf7QtwfyaLXtsFdwquKkCm/r/Bsz2yXeA+vMzAAAAAElFTkSuQmCC"},function(e,t,n){n(1576);var i=n(4)(n(633),n(1510),null,null);e.exports=i.exports},function(e,t,n){n(1536);var i=n(4)(n(634),n(1447),"data-v-22a7638e",null);e.exports=i.exports},function(e,t,n){n(1528);var i=n(4)(null,n(1432),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(635),n(1482),null,null);e.exports=i.exports},function(e,t,n){n(1551);var i=n(4)(n(636),n(1471),null,null);e.exports=i.exports},function(e,t,n){n(1580);var i=n(4)(n(637),n(1519),null,null);e.exports=i.exports},function(e,t,n){n(1562);var i=n(4)(null,n(1485),"data-v-6ba933be",null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(638),n(1460),null,null);e.exports=i.exports},function(e,t,n){n(1570);var i=n(4)(n(639),n(1498),null,null);e.exports=i.exports},function(e,t,n){n(1577);var i=n(4)(n(640),n(1512),null,null);e.exports=i.exports},function(e,t,n){n(1530);var i=n(4)(n(641),n(1434),"data-v-07add241",null);e.exports=i.exports},function(e,t,n){n(1579);var i=n(4)(null,n(1515),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(null,n(1487),null,null);e.exports=i.exports},function(e,t,n){n(1571);var i=n(4)(n(642),n(1499),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(643),n(1517),null,null);e.exports=i.exports},function(e,t,n){n(1537);var i=n(4)(n(644),n(1449),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(645),n(1439),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(646),n(1448),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(647),n(1440),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(648),n(1505),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(649),n(1452),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(650),n(1435),null,null);e.exports=i.exports},function(e,t,n){n(1559);var i=n(4)(n(651),n(1481),"data-v-66714b9d",null);e.exports=i.exports},function(e,t,n){n(1540);var i=n(4)(n(652),n(1453),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(653),n(1438),null,null);e.exports=i.exports},function(e,t,n){n(1538);var i=n(4)(n(654),n(1450),"data-v-254d07b9",null);e.exports=i.exports},function(e,t,n){n(1553);var i=n(4)(n(655),n(1475),null,null);e.exports=i.exports},function(e,t,n){n(1583);var i=n(4)(n(656),n(1522),"data-v-eee0a37c",null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(657),n(1474),null,null);e.exports=i.exports},function(e,t,n){n(1569);var i=n(4)(n(658),n(1495),"data-v-7ef147c0",null);e.exports=i.exports},function(e,t,n){n(1561);var i=n(4)(n(659),n(1484),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(660),n(1441),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(661),n(1509),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(662),n(1513),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(663),n(1457),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(664),n(1507),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(665),n(1511),null,null);e.exports=i.exports},function(e,t,n){n(1543);var i=n(4)(n(666),n(1456),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(667),n(1500),null,null);e.exports=i.exports},function(e,t,n){n(1582);var i=n(4)(n(668),n(1521),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(669),n(1458),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(670),n(1466),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(671),n(1524),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(672),n(1497),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(673),n(1516),null,null);e.exports=i.exports},function(e,t,n){n(1584);var i=n(4)(n(674),n(1523),null,null);e.exports=i.exports},function(e,t,n){n(1526);var i=n(4)(n(675),n(1430),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(676),n(1462),null,null);e.exports=i.exports},function(e,t,n){n(1542);var i=n(4)(n(677),n(1455),"data-v-2eb1c088",null);e.exports=i.exports},function(e,t,n){n(1549);var i=n(4)(n(678),n(1469),null,null);e.exports=i.exports},function(e,t,n){n(1581);var i=n(4)(n(679),n(1520),"data-v-ed9f792e",null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(680),n(1429),null,null);e.exports=i.exports},function(e,t,n){n(1574);var i=n(4)(n(681),n(1504),"data-v-aeee314e",null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(682),n(1465),null,null);e.exports=i.exports},function(e,t,n){n(1529);var i=n(4)(n(683),n(1433),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(684),n(1501),null,null);e.exports=i.exports},function(e,t,n){n(1548);var i=n(4)(n(685),n(1468),null,null);e.exports=i.exports},function(e,t,n){n(1533);var i=n(4)(n(686),n(1443),null,null);e.exports=i.exports},function(e,t,n){n(1557);var i=n(4)(n(687),n(1479),null,null);e.exports=i.exports},function(e,t,n){n(1550);var i=n(4)(n(688),n(1470),"data-v-4ac0cba8",null);e.exports=i.exports},function(e,t,n){n(1527);var i=n(4)(n(689),n(1431),"data-v-03f7eaf3",null);e.exports=i.exports},function(e,t,n){n(1552);var i=n(4)(n(690),n(1473),null,null);e.exports=i.exports},function(e,t,n){n(1573);var i=n(4)(n(691),n(1503),null,null);e.exports=i.exports},function(e,t,n){n(1534);var i=n(4)(n(692),n(1444),null,null);e.exports=i.exports},function(e,t,n){n(1568);var i=n(4)(n(693),n(1494),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(694),n(1496),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(695),n(1508),null,null);e.exports=i.exports},function(e,t,n){n(1547);var i=n(4)(n(696),n(1467),null,null);e.exports=i.exports},function(e,t,n){n(1535);var i=n(4)(n(697),n(1445),null,null);e.exports=i.exports},function(e,t,n){n(1560);var i=n(4)(n(698),n(1483),null,null);e.exports=i.exports},function(e,t,n){n(1546);var i=n(4)(n(699),n(1464),null,null);e.exports=i.exports},function(e,t,n){n(1565);var i=n(4)(n(700),n(1490),null,null);e.exports=i.exports},function(e,t,n){n(1554);var i=n(4)(n(701),n(1476),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(703),n(1493),null,null);e.exports=i.exports},function(e,t,n){n(1532);var i=n(4)(n(705),n(1437),null,null);e.exports=i.exports},function(e,t,n){n(1572);var i=n(4)(n(706),n(1502),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(707),n(1472),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(708),n(1518),null,null);e.exports=i.exports},function(e,t,n){n(1556);var i=n(4)(n(709),n(1478),null,null);e.exports=i.exports},function(e,t,n){n(1567);var i=n(4)(n(710),n(1492),null,null);e.exports=i.exports},function(e,t,n){n(1558);var i=n(4)(n(711),n(1480),null,null);e.exports=i.exports},function(e,t,n){n(1578);var i=n(4)(n(712),n(1514),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(713),n(1488),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(714),n(1446),null,null);e.exports=i.exports},function(e,t,n){var i=n(4)(n(715),n(1442),null,null);e.exports=i.exports},function(e,t,n){n(1564);var i=n(4)(n(716),n(1489),null,null);e.exports=i.exports},function(e,t,n){n(1539);var i=n(4)(n(717),n(1451),null,null);e.exports=i.exports},function(e,t,n){n(1541);var i=n(4)(n(718),n(1454),null,null);e.exports=i.exports},function(e,t,n){n(1563);var i=n(4)(n(719),n(1486),null,null);e.exports=i.exports},function(e,t,n){n(1531);var i=n(4)(n(720),n(1436),null,null);e.exports=i.exports},function(e,t,n){n(1555);var i=n(4)(n(721),n(1477),null,null);e.exports=i.exports},function(e,t,n){n(1575);var i=n(4)(n(722),n(1506),null,null);e.exports=i.exports},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.targetGroupInfoTitle,"before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isVisible,callback:function(t){e.isVisible=t},expression:"isVisible"}},[n("el-form",{ref:"targetGroupInfo",attrs:{model:e.targetGroupInfo,rules:e.rules,"label-width":"130px"}},[n("el-row",[n("el-col",{attrs:{span:23}},[n("el-form-item",{attrs:{prop:"name",label:"节点集名称"}},[n("el-input",{model:{value:e.targetGroupInfo.name,callback:function(t){e.$set(e.targetGroupInfo,"name",t)},expression:"targetGroupInfo.name"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:23}},[n("el-form-item",{attrs:{prop:"clusterLevel",label:"节点集属性"}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.targetGroupInfo.clusterLevel,callback:function(t){e.$set(e.targetGroupInfo,"clusterLevel",t)},expression:"targetGroupInfo.clusterLevel"}},e._l(e.attrs,function(e){return n("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})}),1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitInfo()}}},[e._v("保存")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{title:e.conditionInfoTitle,size:"large","before-close":e.closeDialog},model:{value:e.isVisible,callback:function(t){e.isVisible=t},expression:"isVisible"}},[n("el-form",{ref:"conditionInfo",attrs:{model:e.conditionInfo,rules:e.rules,"label-width":"120px"}},[n("el-row",{attrs:{gutter:30}},[n("el-col",{attrs:{span:10}},[n("el-form-item",{attrs:{prop:"name",label:"规则名称"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.conditionInfo.name,callback:function(t){e.$set(e.conditionInfo,"name",t)},expression:"conditionInfo.name"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"优先级",prop:"priority"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{placeholder:"优先于选中规则"},model:{value:e.conditionInfo.priority,callback:function(t){e.$set(e.conditionInfo,"priority",t)},expression:"conditionInfo.priority"}},e._l(e.alternativeConditions,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"Preference",prop:"preference"}},[n("el-select",{attrs:{filterable:"","allow-create":""},model:{value:e.conditionInfo.preference,callback:function(t){e.$set(e.conditionInfo,"preference",t)},expression:"conditionInfo.preference"}},[n("el-option",{attrs:{label:"无",value:""}}),e._v(" "),e._l(e.preferenceList,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})})],2),e._v(" "),n("span",{staticClass:"warning"},[n("el-tooltip",{staticClass:"item",attrs:{effect:"dark",placement:"right"}},[n("div",{attrs:{slot:"content"},slot:"content"},[e._v("具体参考Elasticsearch关于Preference相关文档\n "),n("br"),e._v("示例:\n "),n("br"),e._v("_primary:只选择primary分片查询\n "),n("br"),e._v("_primary_first:优先选择primary分片查询\n "),n("br"),e._v("_replica:只选择replica分片查询\n "),n("br"),e._v("_replica_first:优先选择replica分片查询\n "),n("br"),e._v("_only_local:只查询本地节点\n "),n("br"),e._v("_local:优先查询本地节点\n "),n("br"),e._v("_prefer_nodes:abc,xyz:优先查询节点id为abc和xyz的节点\n "),n("br"),e._v("_shards:2,3:只查询第2,3组分片\n ")]),e._v(" "),n("i",{staticClass:"fa fa-info-circle"})])],1)],1),e._v(" "),n("el-form-item",{attrs:{label:"是否启用",prop:"enable"}},[n("div",{staticClass:"my-switch"},[n("el-switch",{model:{value:e.conditionInfo.enable,callback:function(t){e.$set(e.conditionInfo,"enable",t)},expression:"conditionInfo.enable"}})],1)]),e._v(" "),e.conditionInfo.conditions.length>1?n("el-form-item",{attrs:{prop:"conditionRelation",label:"条件关系"}},[n("div",{staticClass:"my-switch"},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.conditionInfo.conditionRelation,callback:function(t){e.$set(e.conditionInfo,"conditionRelation",t)},expression:"conditionInfo.conditionRelation"}},e._l(e.conditionRelations,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)],1)]):e._e()],1),e._v(" "),n("el-col",{attrs:{span:14}},[n("el-form-item",{attrs:{prop:"",label:"","label-width":"0px"}},[n("div",{staticClass:"target-group-transfer"},[n("el-transfer",{ref:"targetGroupTransfer",attrs:{"render-content":e.renderFunc,titles:["所有节点集","应用"],data:e.routingTargetGroups,props:e.defaultProps},on:{change:e.handleChange},model:{value:e.conditionInfo.targetGroupsId,callback:function(t){e.$set(e.conditionInfo,"targetGroupsId",t)},expression:"conditionInfo.targetGroupsId"}})],1)])],1)],1)],1),e._v(" "),n("conditions",{ref:"conditions",attrs:{conditions:e.conditionInfo.conditions}}),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitInfo()}}},[e._v("保存")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:"新模板向导",size:"large","before-close":e.handleClose,"element-loading-text":"请稍等···"},model:{value:e.visible,callback:function(t){e.visible=t},expression:"visible"}},[n("div",{staticClass:"template-config"},[n("el-row",{attrs:{gutter:30}},[n("el-col",{attrs:{span:12}},[n("div",{staticClass:"template-config-content"},[n("div",{staticClass:"title"},[n("span",[e._v("模板选项")]),n("a",{staticStyle:{"margin-left":"10px","font-size":"13px","font-weight":"normal",color:"dodgerblue"},attrs:{target:"_blank",href:"https://vipshop.github.io/pallas/#/zh-cn/1.x/Console%E6%A8%A1%E5%9D%97/%E6%A8%A1%E6%9D%BF%E7%AE%A1%E7%90%86/template"}},[e._v("Mustache语法 "),n("i",{staticClass:"fa fa-external-link",attrs:{"aria-hidden":"true"}})]),e._v(" "),n("el-button",{staticClass:"pull-right",attrs:{type:"success",size:"mini"},on:{click:e.handleExecute}},[n("i",{staticClass:"fa fa-caret-square-o-right"}),e._v("预览")])],1),e._v(" "),n("div",{staticStyle:{"margin-top":"15px"}},[n("el-form",{attrs:{"label-width":"0","label-position":"left"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",[n("el-checkbox",{model:{value:e.data.from.isChecked,callback:function(t){e.$set(e.data.from,"isChecked",t)},expression:"data.from.isChecked"}},[e._v("from\n "),n("el-input",{model:{value:e.data.from.value,callback:function(t){e.$set(e.data.from,"value",t)},expression:"data.from.value"}})],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",[n("el-checkbox",{staticStyle:{"margin-left":"5px"},model:{value:e.data.size.isChecked,callback:function(t){e.$set(e.data.size,"isChecked",t)},expression:"data.size.isChecked"}},[e._v("size\n "),n("el-input",{model:{value:e.data.size.value,callback:function(t){e.$set(e.data.size,"value",t)},expression:"data.size.value"}})],1)],1)],1)],1),e._v(" "),n("el-row",{attrs:{gutter:30}},[n("el-col",{attrs:{span:12}},[n("el-form-item",[n("el-checkbox",{model:{value:e.data.sort.isChecked,callback:function(t){e.$set(e.data.sort,"isChecked",t)},expression:"data.sort.isChecked"}},[e._v("sort\n "),n("el-switch",{attrs:{"on-text":"变量","off-text":"静态"},model:{value:e.data.sort.isVariable,callback:function(t){e.$set(e.data.sort,"isVariable",t)},expression:"data.sort.isVariable"}})],1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",[n("el-checkbox",{model:{value:e.data.source.isChecked,callback:function(t){e.$set(e.data.source,"isChecked",t)},expression:"data.source.isChecked"}},[e._v("source\n "),n("el-switch",{attrs:{"on-text":"变量","off-text":"静态"},model:{value:e.data.source.isVariable,callback:function(t){e.$set(e.data.source,"isVariable",t)},expression:"data.source.isVariable"}})],1)],1)],1)],1),e._v(" "),n("div",{staticStyle:{"margin-bottom":"5px"}},[n("span",[n("i",{staticClass:"fa fa-th-large"}),e._v("query配置")])]),e._v(" "),n("el-table",{attrs:{border:"",data:e.metadatas,"max-height":320}},[n("el-table-column",{attrs:{prop:"dbFieldName",label:"字段名",width:"180"}}),e._v(" "),n("el-table-column",{attrs:{label:"查询类型"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-radio",{staticClass:"radio",attrs:{label:""},model:{value:t.row.queryWay,callback:function(n){e.$set(t.row,"queryWay",n)},expression:"scope.row.queryWay"}},[e._v("不选")]),e._v(" "),n("el-radio",{staticClass:"radio",attrs:{label:"term"},model:{value:t.row.queryWay,callback:function(n){e.$set(t.row,"queryWay",n)},expression:"scope.row.queryWay"}},[e._v("term")]),e._v(" "),n("el-radio",{staticClass:"radio",attrs:{label:"multiTerm"},model:{value:t.row.queryWay,callback:function(n){e.$set(t.row,"queryWay",n)},expression:"scope.row.queryWay"}},[e._v("terms")]),e._v(" "),n("el-radio",{staticClass:"radio",attrs:{label:"range"},model:{value:t.row.queryWay,callback:function(n){e.$set(t.row,"queryWay",n)},expression:"scope.row.queryWay"}},[e._v("range")]),e._v(" "),n("el-radio",{staticClass:"radio",attrs:{label:"script"},model:{value:t.row.queryWay,callback:function(n){e.$set(t.row,"queryWay",n)},expression:"scope.row.queryWay"}},[e._v("script")])]}}])})],1)],1)],1)])]),e._v(" "),n("el-col",{attrs:{span:12}},[n("div",{staticClass:"template-config-content"},[n("div",{staticClass:"title"},[e._v("模板展示")]),e._v(" "),n("div",{staticStyle:{height:"450px"}},[n("el-scrollbar",[n("pre",[e._v(e._s(e.templateContent))])])],1)])])],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.handleClose()}}},[e._v("取消")]),e._v(" "),"{}"!==JSON.stringify(e.templateContent)?n("el-button",{attrs:{type:"confirm"},on:{click:e.handleSave}},[e._v("生成模板")]):e._e()],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},staticRenderFns:[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"chart-no-data"},[n("i",{staticClass:"el-icon-loading"}),e._v("数据加载中...")])}]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("div",{staticClass:"template_content"},[e._m(0),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.templateList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"模板名称","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.templateName))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"单台PS最大QPS(0表示不限流)"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-input-number",{attrs:{min:0,max:1e5},model:{value:t.row.threshold,callback:function(n){e.$set(t.row,"threshold",n)},expression:"scope.row.threshold"}})]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"最大预存流量秒数(限流器参数)"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-input-number",{attrs:{min:1,max:5},model:{value:t.row.maxBurstSecs,callback:function(n){e.$set(t.row,"maxBurstSecs",n)},expression:"scope.row.maxBurstSecs"}})]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"120px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-button",{attrs:{type:"primary",disabled:!e.allPrivilege,title:e.allPrivilege?"":"权限不足"},on:{click:function(n){return e.handleUpdate(t.row)}}},[n("i",{staticClass:"fa fa-refresh"}),e._v("更新\n ")])]}}])})],1)],1)])},staticRenderFns:[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{"padding-bottom":"10px"}},[n("i",{staticClass:"fa fa-th-list"}),e._v("模板限流配置")])}]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"panel",class:e.panelType},[n("div",{staticClass:"panel-content-title"},[e._t("title")],2),e._v(" "),n("div",{staticClass:"panel-content-body"},[e._t("content")],2)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",[n("i",{staticClass:"fa fa-home"}),e._v("ES集群管理")])],1)],1),e._v(" "),n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("input",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{type:"text"}}),e._v(" "),n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"请搜索域名"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.toPage(t)}},model:{value:e.clusterIdForSearch,callback:function(t){e.clusterIdForSearch=t},expression:"clusterIdForSearch"}})],1),e._v(" "),n("el-form-item",{staticClass:"filter-search"},[n("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.toPage}},[e._v("查询")]),e._v(" "),n("cluster-manage-search",{on:{"cluster-search":e.toSpecificPage}})],1)],1)],1),e._v(" "),e.isAllPrivilege?n("div",{staticClass:"pull-right"},[n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("新增ES集群")])],1):e._e()]),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.clusterList.list,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"域名","min-width":"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[!t.row.hasPrivilege||t.row.logicalCluster?n("div",[e._v(e._s(t.row.clusterId))]):n("div",{staticClass:"my-a-link"},[n("router-link",{attrs:{tag:"a",to:{path:"cluster_detail",query:{clusterId:t.row.clusterId}}}},[e._v(e._s(t.row.clusterId))])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"集群类型",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("clusterType")(t.row.logicalCluster)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"物理集群"},scopedSlots:e._u([{key:"default",fn:function(t){return[""===t.row.realClusters?n("div",[e._v("-")]):e._l(e.getPhysicalsClusterArr(t.row.realClusters),function(t){return n("div",{key:t.id,staticClass:"my-a-link"},[n("router-link",{attrs:{tag:"a",to:{path:"cluster_detail",query:{clusterId:t.clusterId}}}},[e._v(e._s(t.clusterId))])],1)})]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"描述",prop:"description","show-overflow-tooltip":""}}),e._v(" "),n("el-table-column",{attrs:{label:"HTTP地址",width:"170px"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.httpAddress?n("div",[n("el-popover",{attrs:{trigger:"hover",placement:"left"}},[e._l(e.$array.strToArray(t.row.httpAddress),function(t){return n("div",{key:t},[e._v(e._s(t))])}),e._v(" "),n("div",{attrs:{slot:"reference"},slot:"reference"},[e._v("\n "+e._s(e.$array.strToArray(t.row.httpAddress)[0])+"\n "),e.$array.strToArray(t.row.httpAddress).length>1?n("span",[e._v("...")]):e._e()])],2)],1):n("div",[e._v("-")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"CLIENT地址",width:"170px"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.clientAddress?n("div",[n("el-popover",{attrs:{trigger:"hover",placement:"right"}},[e._l(e.$array.strToArray(t.row.clientAddress),function(t){return n("div",{key:t},[e._v(e._s(t))])}),e._v(" "),n("div",{attrs:{slot:"reference"},slot:"reference"},[e._v("\n "+e._s(e.$array.strToArray(t.row.clientAddress)[0])+"\n "),e.$array.strToArray(t.row.clientAddress).length>1?n("span",[e._v("...")]):e._e()])],2)],1):n("div",[e._v("-")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"绑定代理集群"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.accessiblePs?e._l(e.$array.strToArray(t.row.accessiblePs),function(t){return n("div",{key:t},[e._v("\n "+e._s(t)+"\n ")])}):n("div",[e._v("-")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-dropdown",{attrs:{trigger:"click"}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n 操作"),n("i",{staticClass:"el-icon-caret-bottom el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{staticClass:"dropdown-operation",attrs:{slot:"dropdown"},slot:"dropdown"},[t.row.hasPrivilege?n("el-dropdown-item",[n("a",{on:{click:function(n){return e.handleEdit(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-pencil-square-o"}),e._v("编辑")])])]):e._e(),e._v(" "),t.row.hasPrivilege&&!t.row.logicalCluster?n("el-dropdown-item",[n("a",{on:{click:function(n){return e.handleRouteSetting(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-cog"}),e._v("路由配置")])])]):e._e(),e._v(" "),t.row.hasPrivilege&&!t.row.logicalCluster?n("el-dropdown-item",[n("a",{on:{click:function(n){return e.handleManage(t.$index,t.row)}}},[n("span",[n("i",{staticClass:"fa fa-bars"}),e._v("管理")])])]):e._e(),e._v(" "),t.row.hasPrivilege&&!t.row.logicalCluster?n("el-dropdown-item",[n("a",{on:{click:function(n){return e.handleMonitor(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-bar-chart"}),e._v("监控")])])]):e._e(),e._v(" "),t.row.hasPrivilege&&!t.row.logicalCluster?n("el-dropdown-item",[n("a",{on:{click:function(n){return e.handleRestart(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-undo"}),e._v("重启")])])]):e._e(),e._v(" "),t.row.hasPrivilege?n("el-dropdown-item",[n("a",{on:{click:function(n){return e.handleDelete(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-trash"}),e._v("删除")])])]):e._e()],1)],1)]}}])})],1),e._v(" "),0!=e.clusterList.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next, jumper",total:e.clusterList.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e(),e._v(" "),e.isClusterInfoVisible?n("div",[n("cluster-info-dialog",{attrs:{"cluster-operation":e.clusterOperation,"cluster-info-title":e.clusterInfoTitle,"cluster-info":e.clusterInfo,"all-physicals":e.allPhysicals,"all-pallas-searchs":e.allPallasSearchs},on:{"close-dialog":e.closeDialog,"operate-close-dialog":e.operateCloseDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{staticClass:"token-index"},[0!==Object.keys(e.tokenClusterInfo).length?n("div",[n("div",[n("el-button",{attrs:{size:"small",type:"success"},on:{click:e.handleUpdate}},[e._v("更新授权")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"danger"},on:{click:e.handleReset}},[e._v("移除授权")])],1),e._v(" "),n("div",{staticClass:"mrg-top-10"},[n("span",{staticClass:"title-span"},[e._v("集群权限:")]),e._v(" "),n("el-radio-group",{attrs:{size:"small"},model:{value:e.tokenClusterInfo.clusterPrivilege,callback:function(t){e.$set(e.tokenClusterInfo,"clusterPrivilege",t)},expression:"tokenClusterInfo.clusterPrivilege"}},[n("el-radio-button",{attrs:{label:""}},[e._v("无")]),e._v(" "),n("el-radio-button",{attrs:{label:"ReadOnly"}},[e._v("只读")]),e._v(" "),n("el-radio-button",{attrs:{label:"Write"}},[e._v("修改")])],1)],1)]):n("div",{staticStyle:{height:"62px"}}),e._v(" "),n("div",{staticClass:"mrg-top-10"},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.tokenClusterInfo.myIndexPrivilegeArr,border:"",height:e.clusterTreeHeight.height}},[n("el-table-column",{attrs:{prop:"name",label:"索引"}}),e._v(" "),n("el-table-column",{attrs:{prop:"indexPrivilege",label:"权限"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-radio-group",{attrs:{size:"small"},model:{value:t.row.indexPrivilege,callback:function(n){e.$set(t.row,"indexPrivilege",n)},expression:"scope.row.indexPrivilege"}},[n("el-radio-button",{attrs:{label:""}},[e._v("无")]),e._v(" "),n("el-radio-button",{attrs:{label:"ReadOnly"}},[e._v("只读")]),e._v(" "),n("el-radio-button",{attrs:{label:"Write"}},[e._v("修改")])],1)]}}])})],1)],1)])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"version-info-dialog"},[n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{size:"large","before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isVersionInfoVisible,callback:function(t){e.isVersionInfoVisible=t},expression:"isVersionInfoVisible"}},[n("span",{attrs:{slot:"title"},slot:"title"},[n("span",[e._v(e._s(e.versionInfoTitle))])]),e._v(" "),n("el-form",{ref:"versionInfo",attrs:{model:e.versionInfo,rules:e.rules,"label-position":"left"}},[n("el-tabs",{attrs:{value:"first"}},[n("el-tab-pane",{attrs:{label:"索引配置",name:"first"}},[n("div",{staticClass:"label-title"},[n("span",{staticClass:"span-title"},[n("i",{staticClass:"fa fa-th-large"}),e._v("分片路由属性")]),e._v(" "),e.isLogical?n("span",{staticStyle:{color:"#C8C8C8"}},[e._v("(所属集群:"+e._s(e.clusterArray.join())+")")]):e._e()]),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"复制数量",prop:"replicationNum","label-width":"120px"}},[n("el-input",{model:{value:e.versionInfo.replicationNum,callback:function(t){e.$set(e.versionInfo,"replicationNum",e._n(t))},expression:"versionInfo.replicationNum"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"ShardPerNode",prop:"totalShardsPerNode","label-width":"120px"}},[n("el-input",{model:{value:e.versionInfo.totalShardsPerNode,callback:function(t){e.$set(e.versionInfo,"totalShardsPerNode",e._n(t))},expression:"versionInfo.totalShardsPerNode"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-content"},[e.isLogical?n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"所属节点",prop:"nodes","label-width":"120px"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"",filterable:"","value-key":"name",placeholder:"请选择机器"},model:{value:e.versionInfo.nodes,callback:function(t){e.$set(e.versionInfo,"nodes",t)},expression:"versionInfo.nodes"}},e._l(e.clusterGroups,function(t){return n("el-option-group",{key:t.clusterId,attrs:{label:t.clusterId}},e._l(t.nodes,function(t){return n("el-option",{key:t.name,attrs:{label:t.name,value:t}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.name))]),e._v(" "),n("el-tooltip",{attrs:{placement:"right"}},[n("div",{attrs:{slot:"content"},slot:"content"},[t.indicis.length>0?n("div",{staticStyle:{width:"600px"}},e._l(t.indicis,function(t){return n("el-col",{key:t,attrs:{span:8}},[e._v(e._s(t))])}),1):n("div",[e._v("暂无索引")])]),e._v(" "),n("el-tag",{staticStyle:{float:"left","margin-left":"10px"}},[e._v(e._s(t.indicis.length))])],1)],1)}),1)}),1)],1)],1)],1):n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"所属节点",prop:"nodes","label-width":"120px"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"",filterable:"",placeholder:"请选择机器"},model:{value:e.versionInfo.nodes,callback:function(t){e.$set(e.versionInfo,"nodes",t)},expression:"versionInfo.nodes"}},e._l(e.clusterNodes,function(t){return n("el-option",{key:t.name,attrs:{label:t.name,value:t.name}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.name))]),e._v(" "),n("el-tooltip",{attrs:{placement:"right"}},[n("div",{attrs:{slot:"content"},slot:"content"},[t.indicis.length>0?n("div",{staticStyle:{width:"600px"}},e._l(t.indicis,function(t){return n("el-col",{key:t,attrs:{span:8}},[e._v(e._s(t))])}),1):n("div",[e._v("暂无索引")])]),e._v(" "),n("el-tag",{staticStyle:{float:"left","margin-left":"10px"}},[e._v(e._s(t.indicis.length))])],1)],1)}),1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-title"},[n("span",{staticClass:"span-title"},[n("i",{staticClass:"fa fa-th-large"}),e._v("慢日志落盘配置(单位ms,-1不限定)")])]),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"Index Slow",prop:"indexSlowThreshold","label-width":"120px"}},[n("el-input",{model:{value:e.versionInfo.indexSlowThreshold,callback:function(t){e.$set(e.versionInfo,"indexSlowThreshold",e._n(t))},expression:"versionInfo.indexSlowThreshold"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"Fetch Slow",prop:"fetchSlowThreshold","label-width":"120px"}},[n("el-input",{model:{value:e.versionInfo.fetchSlowThreshold,callback:function(t){e.$set(e.versionInfo,"fetchSlowThreshold",e._n(t))},expression:"versionInfo.fetchSlowThreshold"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"Query Slow",prop:"querySlowThreshold","label-width":"120px"}},[n("el-input",{model:{value:e.versionInfo.querySlowThreshold,callback:function(t){e.$set(e.versionInfo,"querySlowThreshold",e._n(t))},expression:"versionInfo.querySlowThreshold"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-title"},[n("span",{staticClass:"span-title"},[n("i",{staticClass:"fa fa-th-large"}),e._v("索引其他配置")])]),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"max_result_window",prop:"maxResultWindow","label-width":"180px"}},[n("el-input",{attrs:{placeholder:"10000"},model:{value:e.versionInfo.maxResultWindow,callback:function(t){e.$set(e.versionInfo,"maxResultWindow",e._n(t))},expression:"versionInfo.maxResultWindow"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"flush_threshold_size",prop:"flushThresholdSize","label-width":"180px"}},[n("el-input",{attrs:{placeholder:"512mb"},model:{value:e.versionInfo.flushThresholdSize,callback:function(t){e.$set(e.versionInfo,"flushThresholdSize",t)},expression:"versionInfo.flushThresholdSize"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"sync_interval",prop:"syncInterval","label-width":"180px"}},[n("el-input",{attrs:{disabled:!0},model:{value:e.versionInfo.syncInterval,callback:function(t){e.$set(e.versionInfo,"syncInterval",t)},expression:"versionInfo.syncInterval"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"translog_durability",prop:"translogDurability","label-width":"180px"}},[n("el-input",{attrs:{placeholder:"async"},model:{value:e.versionInfo.translogDurability,callback:function(t){e.$set(e.versionInfo,"translogDurability",t)},expression:"versionInfo.translogDurability"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"refresh(秒)",prop:"refreshInterval","label-width":"120px"}},[n("el-input",{model:{value:e.versionInfo.refreshInterval,callback:function(t){e.$set(e.versionInfo,"refreshInterval",e._n(t))},expression:"versionInfo.refreshInterval"}})],1)],1)],1)],1)])],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitVersionInfo()}}},[e._v("确 定")])],1)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-form",{ref:"conditionItemForm",attrs:{model:e.conditionItem,rules:e.rules,"label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"判断参数名",prop:"paramName"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{filterable:"","allow-create":""},model:{value:e.conditionItem.paramName,callback:function(t){e.$set(e.conditionItem,"paramName",t)},expression:"conditionItem.paramName"}},e._l(e.paramNames,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"判断运算",prop:"exprOp"}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.conditionItem.exprOp,callback:function(t){e.$set(e.conditionItem,"exprOp",t)},expression:"conditionItem.exprOp"}},e._l(e.exprOps,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"判断值",prop:"paramValue"}},[n("el-input",{attrs:{placeholder:"多个判断值请以 , 分隔"},model:{value:e.conditionItem.paramValue,callback:function(t){e.$set(e.conditionItem,"paramValue",t)},expression:"conditionItem.paramValue"}})],1)],1)],1)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",[n("i",{staticClass:"fa fa-home"}),e._v("模板变更")])],1)],1),e._v(" "),n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{clearable:""},on:{change:e.toPage},model:{value:e.selectedCluster,callback:function(t){e.selectedCluster=t},expression:"selectedCluster"}},[n("el-option",{attrs:{label:"全部集群",value:""}}),e._v(" "),e._l(e.clusters,function(t){return n("el-option-group",{key:t.label,attrs:{label:t.label}},e._l(t.options,function(e){return n("el-option",{key:e.id,attrs:{label:e.clusterId,value:e.clusterId}})}),1)})],2)],1),e._v(" "),n("el-form-item",{attrs:{label:""}},[n("el-select",{on:{change:e.toPage},model:{value:e.selectedState,callback:function(t){e.selectedState=t},expression:"selectedState"}},[n("el-option",{attrs:{label:"全部状态",value:""}}),e._v(" "),e._l(e.states,function(e){return n("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})],2)],1),e._v(" "),n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"请搜索索引或模板"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.toPage(t)}},model:{value:e.conditionForSearch,callback:function(t){e.conditionForSearch=t},expression:"conditionForSearch"}})],1),e._v(" "),n("el-form-item",{staticClass:"filter-search"},[n("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.toPage}},[e._v("查询")])],1)],1)],1),e._v(" "),e.isAllPrivilege?n("div",{staticClass:"pull-right"},[n("el-button",{attrs:{type:"primary"},on:{click:e.handleApproveManage}},[n("i",{staticClass:"fa fa-check-square-o"}),e._v("模板审批")])],1):e._e()]),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.applyList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{prop:"id",label:"审批ID",width:"60px"}}),e._v(" "),n("el-table-column",{attrs:{prop:"title",label:"标题",width:"80px","show-overflow-tooltip":""}}),e._v(" "),n("el-table-column",{attrs:{label:"索引名称"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{staticClass:"my-a-link"},[n("router-link",{attrs:{tag:"a",to:{path:"index_detail",query:{indexId:t.row.indexId,indexName:t.row.indexName}}}},[e._v(e._s(t.row.indexName))])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"templateName",label:"模板名称"}}),e._v(" "),n("el-table-column",{attrs:{prop:"clusterId",label:"所属集群"}}),e._v(" "),n("el-table-column",{attrs:{prop:"approveState",label:"当前状态",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("translateStat")(t.row.approveState)))]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"applyUser",label:"提交人",width:"80px"}}),e._v(" "),n("el-table-column",{attrs:{label:"提交时间",width:"160px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.createTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"审批人",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[1===t.row.approveState||2===t.row.approveState?n("span",[e._v(e._s(t.row.approveUser))]):n("span",[e._v("-")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"审批时间",width:"160px"},scopedSlots:e._u([{key:"default",fn:function(t){return[1===t.row.approveState||2===t.row.approveState?n("span",[e._v(e._s(e._f("formatDate")(t.row.approveTime)))]):n("span",[e._v("-")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"70px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{directives:[{name:"show",rawName:"v-show",value:0===t.row.approveState,expression:"scope.row.approveState === 0"}]},[n("el-tooltip",{attrs:{content:"查看",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleView(t.row)}}},[n("i",{staticClass:"fa fa-eye"})])],1),e._v(" "),n("el-tooltip",{attrs:{content:"取消",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleCancel(t.row)}}},[n("i",{staticClass:"fa fa-close"})])],1)],1)]}}])})],1),e._v(" "),0!=e.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next, jumper",total:e.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e(),e._v(" "),e.isViewDialogVisible?n("div",[n("json-diff",{attrs:{"json-diff-info":e.jsonDiffInfo},on:{"close-dialog":e.closeViewContentDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("iframe",{staticClass:"cluster_dashboard",attrs:{src:e.clusterUrl,width:"100%",height:"70%",scrolling:"0",frameborder:"0"}})},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{title:"自定义时间","before-close":e.closeDialog},model:{value:e.visible,callback:function(t){e.visible=t},expression:"visible"}},[n("el-form",{ref:"formInfo",staticStyle:{"margin-top":"20px"},attrs:{model:e.formInfo,rules:e.rules,"label-width":"40px"}},[n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{prop:"timeRange"}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{type:"datetimerange",placeholder:"选择时间范围",align:"right"},model:{value:e.formInfo.timeRange,callback:function(t){e.$set(e.formInfo,"timeRange",t)},expression:"formInfo.timeRange"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.handleSubmit()}}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"请搜索"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.init(t)}},model:{value:e.formSearch.keywords,callback:function(t){e.$set(e.formSearch,"keywords",t)},expression:"formSearch.keywords"}})],1),e._v(" "),n("el-form-item",{staticClass:"filter-search"},[n("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.init}},[e._v("查询")])],1)],1)],1),e._v(" "),e.allPrivilege?n("div",{staticClass:"pull-right"},[n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("新增用户")])],1):e._e()]),e._v(" "),n("div",{staticClass:"content"},[[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.userList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"登录名",prop:"username"}}),e._v(" "),n("el-table-column",{attrs:{label:"用户名",prop:"realName"}}),e._v(" "),n("el-table-column",{attrs:{label:"角色",prop:"roles"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.roles,function(t){return n("el-tag",{key:t.id,staticStyle:{"margin-right":"3px"}},[e._v(e._s(t.description))])})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"邮箱",prop:"email"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.email||"-"))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"创建时间",prop:"createTime"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.createTime)))]}}])}),e._v(" "),e.allPrivilege?n("el-table-column",{attrs:{label:"操作",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tooltip",{attrs:{content:"编辑",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleEdit(t.row)}}},[n("i",{staticClass:"fa fa-edit"})])],1),e._v(" "),t.row.username!==e.loginUser?n("el-tooltip",{attrs:{content:"删除",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleDelete(t.row)}}},[n("i",{staticClass:"fa fa-trash"})])],1):e._e()]}}],null,!1,4284222700)}):e._e()],1)],e._v(" "),0!=e.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next",total:e.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e()],2),e._v(" "),e.isUserInfoVisible?n("div",[n("user-info-dialog",{attrs:{"roles-list":e.rolesList,"user-operation":e.userOperation,"user-info":e.userInfo},on:{"close-dialog":e.closeDialog,"user-info-success":e.userInfoSuccess}})],1):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{title:"批量提交","before-close":e.closeDialog},model:{value:e.isBatchSubmitVisible,callback:function(t){e.isBatchSubmitVisible=t},expression:"isBatchSubmitVisible"}},[n("el-form",{ref:"batchSubmitInfo",attrs:{model:e.batchSubmitInfo,rules:e.rules,"label-width":"80px"}},[n("div",{staticClass:"batch-submit-template"},[n("el-transfer",{attrs:{filterable:"",data:e.batchSubmitList,titles:["可选模板","已选模板"]},model:{value:e.templateSelected,callback:function(t){e.templateSelected=t},expression:"templateSelected"}})],1),e._v(" "),n("el-form-item",{staticStyle:{"margin-right":"10px"},attrs:{label:"修改描述",prop:"approveInfo"}},[n("el-input",{model:{value:e.batchSubmitInfo.approveInfo,callback:function(t){e.$set(e.batchSubmitInfo,"approveInfo",t)},expression:"batchSubmitInfo.approveInfo"}})],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:e.submitTemplate}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:"提交模板","before-close":e.handleClose,"element-loading-text":"请稍等···"},model:{value:e.isEditSaveVisible,callback:function(t){e.isEditSaveVisible=t},expression:"isEditSaveVisible"}},[n("el-form",{ref:"editSaveInfo",attrs:{model:e.editSaveInfo,rules:e.rules,"label-width":"120px"}},[n("div",[n("div",{staticClass:"edit-save-span"},[n("i",{staticClass:"el-icon-warning"}),e._v("\n 确定提交模板 "),n("span",[e._v(e._s(e.templateInfo.templateName))]),e._v(" 吗?\n ")]),e._v(" "),n("el-row",[n("el-col",{attrs:{span:18}},[n("el-form-item",{attrs:{label:"修改描述",prop:"historyDesc"}},[n("el-input",{model:{value:e.editSaveInfo.historyDesc,callback:function(t){e.$set(e.editSaveInfo,"historyDesc",t)},expression:"editSaveInfo.historyDesc"}})],1)],1)],1)],1)]),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.handleClose()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:e.handleSubmit}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{title:"导出模板","before-close":e.closeDialog},model:{value:e.isTemplateExportVisible,callback:function(t){e.isTemplateExportVisible=t},expression:"isTemplateExportVisible"}},[n("div",{staticClass:"export-template"},[n("el-transfer",{attrs:{filterable:"",data:e.exportTemplateList,titles:["可选模板","已选模板"]},model:{value:e.templateSelected,callback:function(t){e.templateSelected=t},expression:"templateSelected"}})],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:e.sumbitExportTemplate}},[e._v("确定")])],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.userInfoTitle,visible:e.isVisible,"before-close":e.closeDialog,"element-loading-text":"请稍等···"},on:{"update:visible":function(t){e.isVisible=t}}},[n("el-form",{ref:"userInfo",attrs:{model:e.userInfo,rules:e.rules,"label-width":"100px"}},[n("el-form-item",{attrs:{label:"登录名",prop:"username"}},[n("el-col",{attrs:{span:22}},[n("el-input",{attrs:{disabled:!e.isEditable},model:{value:e.userInfo.username,callback:function(t){e.$set(e.userInfo,"username",t)},expression:"userInfo.username"}})],1)],1),e._v(" "),n("el-form-item",{attrs:{label:"用户名",prop:"realName"}},[n("el-col",{attrs:{span:22}},[n("el-input",{attrs:{disabled:!e.isEditable},model:{value:e.userInfo.realName,callback:function(t){e.$set(e.userInfo,"realName",t)},expression:"userInfo.realName"}})],1)],1),e._v(" "),n("el-form-item",{attrs:{label:"密码",prop:"password"}},[n("el-col",{attrs:{span:22}},[n("el-input",{model:{value:e.userInfo.password,callback:function(t){e.$set(e.userInfo,"password",t)},expression:"userInfo.password"}})],1)],1),e._v(" "),n("el-form-item",{attrs:{label:"邮箱",prop:"email",rules:[{type:"email",message:"请输入正确的邮箱地址",trigger:"blur,change"}]}},[n("el-col",{attrs:{span:22}},[n("el-input",{model:{value:e.userInfo.email,callback:function(t){e.$set(e.userInfo,"email",t)},expression:"userInfo.email"}})],1)],1),e._v(" "),n("el-form-item",{attrs:{label:"角色",prop:"roleNames"}},[n("el-col",{attrs:{span:22}},[n("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"",placeholder:"请选择"},model:{value:e.userInfo.roleNames,callback:function(t){e.$set(e.userInfo,"roleNames",t)},expression:"userInfo.roleNames"}},e._l(e.rolesList,function(e){return n("el-option",{key:e.id,attrs:{label:e.roleName,value:e.roleName}})}),1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.handleSubmit()}}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"panel-container"},[n("div",{staticClass:"panel-header"},[n("span",{staticClass:"pull-left"},[e._v(e._s(e.title))]),e._v(" "),n("a",{staticClass:"pull-right",on:{click:e.togglePanel}},[e.isExpand?n("i",{staticClass:"fa fa-minus"}):e._e(),e._v(" "),e.isExpand?e._e():n("i",{staticClass:"fa fa-plus"})])]),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.isExpand,expression:"isExpand"}],staticClass:"panel-body"},[e._t("chart")],2)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",{attrs:{to:{name:"authority_manage"}}},[n("i",{staticClass:"fa fa-home"}),e._v("模板变更")]),e._v(" "),n("el-breadcrumb-item",[e._v("模板审批")])],1)],1),e._v(" "),n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{on:{change:e.toPage},model:{value:e.selectedState,callback:function(t){e.selectedState=t},expression:"selectedState"}},[n("el-option",{attrs:{label:"全部状态",value:""}}),e._v(" "),e._l(e.states,function(e){return n("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})],2)],1),e._v(" "),n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"输入索引,模板或提交人"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.toPage(t)}},model:{value:e.conditionForSearch,callback:function(t){e.conditionForSearch=t},expression:"conditionForSearch"}})],1),e._v(" "),n("el-form-item",{staticClass:"filter-search"},[n("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.toPage}},[e._v("查询")])],1)],1)],1),e._v(" "),n("div",{staticClass:"pull-right"},[n("el-button",{attrs:{type:"primary",icon:"circle-check"},on:{click:e.handleBatchApprove}},[e._v("批量处理")])],1)]),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],ref:"multipleTable",staticStyle:{width:"100%"},attrs:{data:e.approveList,border:"","element-loading-text":"请稍等···"},on:{"selection-change":e.handleSelectionChange}},[n("el-table-column",{attrs:{type:"selection",width:"55"}}),e._v(" "),n("el-table-column",{attrs:{prop:"id",label:"审批ID",width:"70px"}}),e._v(" "),n("el-table-column",{attrs:{prop:"title",label:"标题",width:"80px","show-overflow-tooltip":""}}),e._v(" "),n("el-table-column",{attrs:{label:"索引名称"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{staticClass:"my-a-link"},[n("router-link",{attrs:{tag:"a",to:{path:"index_detail",query:{indexId:t.row.indexId,indexName:t.row.indexName}}}},[e._v(e._s(t.row.indexName))])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"templateName",label:"模板名称"}}),e._v(" "),n("el-table-column",{attrs:{prop:"clusterId",label:"所属集群"}}),e._v(" "),n("el-table-column",{attrs:{prop:"approveState",label:"当前状态",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("translateStat")(t.row.approveState)))]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"applyUser",label:"提交人",width:"80px"}}),e._v(" "),n("el-table-column",{attrs:{label:"提交时间",width:"160px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.createTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"审批人",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[1===t.row.approveState||2===t.row.approveState?n("span",[e._v(e._s(t.row.approveUser))]):n("span",[e._v("-")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"审批时间",width:"160px"},scopedSlots:e._u([{key:"default",fn:function(t){return[1===t.row.approveState||2===t.row.approveState?n("span",[e._v(e._s(e._f("formatDate")(t.row.approveTime)))]):n("span",[e._v("-")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"70px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{directives:[{name:"show",rawName:"v-show",value:0===t.row.approveState,expression:"scope.row.approveState === 0"}]},[n("el-tooltip",{attrs:{content:"查看",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleView(t.row)}}},[n("i",{staticClass:"fa fa-eye"})])],1),e._v(" "),n("el-tooltip",{attrs:{content:"处理",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleApprove(t.row)}}},[n("i",{staticClass:"fa fa-arrow-circle-right"})])],1)],1)]}}])})],1),e._v(" "),0!=e.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next, jumper",total:e.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e(),e._v(" "),e.isApproveDialogVisible?n("div",[n("approve-dialog",{attrs:{"approve-states":e.approveStates,"approve-info":e.approveInfo},on:{"close-approve-dialog":e.closeApproveDialog,"approve-complete":e.approveComplete}})],1):e._e(),e._v(" "),e.isViewDialogVisible?n("div",[n("json-diff",{attrs:{"json-diff-info":e.jsonDiffInfo},on:{"close-dialog":e.closeViewContentDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:"审批处理","before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isVisible,callback:function(t){e.isVisible=t},expression:"isVisible"}},[n("el-form",{ref:"approveInfo",attrs:{model:e.approveInfo,rules:e.rules,"label-width":"100px"}},[n("div",[n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"审批",prop:"state"}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.approveInfo.state,callback:function(t){e.$set(e.approveInfo,"state",t)},expression:"approveInfo.state"}},e._l(e.approveStates,function(e){return n("el-option",{key:e.value,attrs:{label:e.key,value:e.value}})}),1)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"描述",prop:"note"}},[n("el-input",{attrs:{type:"textarea"},model:{value:e.approveInfo.note,callback:function(t){e.$set(e.approveInfo,"note",t)},expression:"approveInfo.note"}})],1)],1)],1)],1)]),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitSyncInfo()}}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{staticClass:"condition-add"},[n("el-button",{attrs:{size:"mini",icon:"plus"},on:{click:e.addConditionRelate}},[e._v("新增规则条件")]),e._v(" "),n("span",{staticClass:"warning"},[n("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:"若不增加规则条件,则会默认命中节点集",placement:"right"}},[n("i",{staticClass:"fa fa-info-circle"})])],1)],1),e._v(" "),e._l(e.conditions,function(t,i){return n("el-collapse",{key:i,model:{value:i,callback:function(e){i=e},expression:"index"}},[n("el-collapse-item",{attrs:{name:i}},[n("template",{slot:"title"},[n("span",{staticStyle:{"margin-right":"10px"}},[e._v("条件")]),e._v(" "),n("el-button",{attrs:{type:"danger",size:"mini",icon:"minus"},on:{click:function(n){return n.stopPropagation(),e.deleteConditionRelate(t)}}})],1),e._v(" "),n("condition-item",{ref:"conditionItem",refInFor:!0,attrs:{"condition-item":t}})],2)],1)})],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",[n("i",{staticClass:"fa fa-home"}),e._v("插件管理")])],1)],1),e._v(" "),n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("input",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{type:"text"}}),e._v(" "),n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"请搜索插件"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.toPage(t)}},model:{value:e.pluginNameForSearch,callback:function(t){e.pluginNameForSearch=t},expression:"pluginNameForSearch"}})],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.toPage}},[e._v("查询")])],1),e._v(" "),n("el-form-item",{staticClass:"filter-search"},[n("el-button",{attrs:{type:"primary"},on:{click:e.refreshPage}},[n("i",{staticClass:"fa fa-refresh"}),e._v("刷新")])],1)],1)],1),e._v(" "),n("div",{staticClass:"pull-right"},[n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("新增插件")])],1)]),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.pluginRuntimeList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{prop:"id",label:"升级ID",width:"80px"}}),e._v(" "),n("el-table-column",{attrs:{prop:"clusterId",label:"所属集群"}}),e._v(" "),n("el-table-column",{attrs:{prop:"pluginName",label:"运行插件"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{staticClass:"my-a-link"},[n("router-link",{attrs:{tag:"a",to:{name:"plugin_upgrade",query:{pluginName:t.row.pluginName}}}},[e._v(e._s(t.row.pluginName))])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"pluginVersion",label:"插件版本",width:"120px"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(e.getPluginVersion(t.row.nodeStates),function(i){return n("div",{key:i,staticClass:"plugin-version"},[n("el-popover",{attrs:{trigger:"hover",placement:"right"}},[e._l(e.getNodesOfVersion(t.row.nodeStates,i),function(t){return n("div",{key:t},[e._v(e._s(t))])}),e._v(" "),n("el-button",{attrs:{slot:"reference",type:"text"},slot:"reference"},[e._v(e._s(i))])],2)],1)})}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"pluginType",label:"插件类型",width:"130px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e.pluginTypeMap[t.row.pluginType]))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"更新时间",width:"190px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.updateTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"70px"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.creatable?n("el-tooltip",{attrs:{content:"升级",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleUpgrade(t.row)}}},[n("i",{staticClass:"fa fa-arrow-circle-up"})])],1):e._e(),e._v(" "),e.isAllPrivilege&&t.row.creatable?n("el-tooltip",{attrs:{content:"移除",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleRemove(t.row)}}},[n("i",{staticClass:"fa fa-close"})])],1):e._e()]}}])})],1),e._v(" "),0!=e.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next, jumper",total:e.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e(),e._v(" "),e.isPluginInfoDialogVisible?n("div",[n("plugin-info-dialog",{attrs:{"plugin-info":e.pluginInfo,"plugin-info-title":e.pluginInfoTitle,"plugin-info-operation":e.pluginInfoOperation},on:{"operate-close-dialog":e.operateCloseDialog,"close-dialog":e.closeDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.clusterInfoTitle,size:"small","before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isClusterInfoVisible,callback:function(t){e.isClusterInfoVisible=t},expression:"isClusterInfoVisible"}},[n("el-form",{ref:"clusterInfo",attrs:{model:e.clusterInfo,rules:e.rules,"label-width":"140px"}},[n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{prop:"clusterId",label:"域名",required:""}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.clusterInfo.clusterId,callback:function(t){e.$set(e.clusterInfo,"clusterId",t)},expression:"clusterInfo.clusterId"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{prop:"logicalCluster",label:"集群类型"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{disabled:e.isEditable},model:{value:e.clusterInfo.logicalCluster,callback:function(t){e.$set(e.clusterInfo,"logicalCluster",t)},expression:"clusterInfo.logicalCluster"}},[n("el-option",{attrs:{label:"物理集群",value:!1}}),e._v(" "),n("el-option",{attrs:{label:"逻辑集群",value:!0}})],1)],1)],1)],1),e._v(" "),e.clusterInfo.logicalCluster?n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"物理集群",prop:"realClustersArr",required:""}},[n("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"",filterable:""},model:{value:e.clusterInfo.realClustersArr,callback:function(t){e.$set(e.clusterInfo,"realClustersArr",t)},expression:"clusterInfo.realClustersArr"}},e._l(e.allPhysicals,function(e){return n("el-option",{key:e.id,attrs:{label:e.clusterId,value:e.id}})}),1)],1)],1)],1):e._e(),e._v(" "),e.clusterInfo.logicalCluster?e._e():n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"HTTP地址",prop:"httpAddress",required:""}},[n("el-input",{model:{value:e.clusterInfo.httpAddress,callback:function(t){e.$set(e.clusterInfo,"httpAddress",t)},expression:"clusterInfo.httpAddress"}})],1)],1)],1),e._v(" "),e.clusterInfo.logicalCluster?e._e():n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"ES client连接地址",prop:"clientAddress",required:""}},[n("el-input",{model:{value:e.clusterInfo.clientAddress,callback:function(t){e.$set(e.clusterInfo,"clientAddress",t)},expression:"clusterInfo.clientAddress"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"绑定代理集群",prop:"accessiblePs",required:""}},[n("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"",filterable:""},model:{value:e.clusterInfo.accessiblePs,callback:function(t){e.$set(e.clusterInfo,"accessiblePs",t)},expression:"clusterInfo.accessiblePs"}},e._l(e.allPallasSearchs,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"描述",prop:"description"}},[n("el-input",{attrs:{type:"textarea"},model:{value:e.clusterInfo.description,callback:function(t){e.$set(e.clusterInfo,"description",t)},expression:"clusterInfo.description"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"监控级别"}},[n("span",{staticStyle:{"margin-right":"20px"}},[n("span",{staticStyle:{color:"#fff"}},[e._v("集群:")]),n("el-switch",{attrs:{"on-value":1,"off-value":0},model:{value:e.clusterInfo.monitorLevelModel.cluster,callback:function(t){e.$set(e.clusterInfo.monitorLevelModel,"cluster",t)},expression:"clusterInfo.monitorLevelModel.cluster"}})],1),e._v(" "),n("span",{staticStyle:{color:"#fff"}},[e._v("索引:")]),n("el-switch",{attrs:{"on-value":1,"off-value":0},model:{value:e.clusterInfo.monitorLevelModel.index,callback:function(t){e.$set(e.clusterInfo.monitorLevelModel,"index",t)},expression:"clusterInfo.monitorLevelModel.index"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitClusterInfo()}}},[e._v("保存")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{title:e.conditionInfoTitle,size:"large","before-close":e.closeDialog},model:{value:e.isVisible,callback:function(t){e.isVisible=t},expression:"isVisible"}},[n("el-form",{ref:"conditionInfo",attrs:{model:e.conditionInfo,rules:e.rules,"label-width":"120px"}},[n("el-row",{attrs:{gutter:30}},[n("el-col",{attrs:{span:10}},[n("el-form-item",{attrs:{prop:"name",label:"规则名称"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.conditionInfo.name,callback:function(t){e.$set(e.conditionInfo,"name",t)},expression:"conditionInfo.name"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"优先级",prop:"priority"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{placeholder:"优先于选中规则"},model:{value:e.conditionInfo.priority,callback:function(t){e.$set(e.conditionInfo,"priority",t)},expression:"conditionInfo.priority"}},e._l(e.alternativeConditions,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)],1),e._v(" "),n("el-form-item",{attrs:{label:"是否启用",prop:"enable"}},[n("div",{staticClass:"my-switch"},[n("el-switch",{model:{value:e.conditionInfo.enable,callback:function(t){e.$set(e.conditionInfo,"enable",t)},expression:"conditionInfo.enable"}})],1)]),e._v(" "),e.conditionInfo.conditions.length>1?n("el-form-item",{attrs:{prop:"conditionRelation",label:"条件关系"}},[n("div",{staticClass:"my-switch"},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.conditionInfo.conditionRelation,callback:function(t){e.$set(e.conditionInfo,"conditionRelation",t)},expression:"conditionInfo.conditionRelation"}},e._l(e.conditionRelations,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)],1)]):e._e()],1),e._v(" "),n("el-col",{attrs:{span:14}},[n("el-form-item",{attrs:{prop:"",label:"","label-width":"0px"}},[n("div",{staticClass:"target-group-transfer"},[n("el-transfer",{ref:"targetGroupTransfer",attrs:{"render-content":e.renderFunc,titles:["所有节点集","应用"],data:e.routingTargetGroups,props:e.defaultProps},on:{change:e.handleChange},model:{value:e.conditionInfo.targetGroupsId,callback:function(t){e.$set(e.conditionInfo,"targetGroupsId",t)},expression:"conditionInfo.targetGroupsId"}})],1)])],1)],1)],1),e._v(" "),n("conditions",{ref:"conditions",attrs:{conditions:e.conditionInfo.conditions}}),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitInfo()}}},[e._v("保存")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",{attrs:{to:{name:"plugin_manage"}}},[n("i",{staticClass:"fa fa-home"}),e._v("插件管理")]),e._v(" "),n("el-breadcrumb-item",[e._v(e._s(e.pluginName))])],1)],1),e._v(" "),n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-button",{attrs:{type:"primary"},on:{click:e.refreshPage}},[n("i",{staticClass:"fa fa-refresh"}),e._v("刷新")])],1)]),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.pluginUpgradeList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-form",{staticClass:"my-table-expand",attrs:{"label-position":"left",inline:""}},[n("el-form-item",{staticStyle:{width:"100%"},attrs:{label:"路径"}},[n("span",[e._v(e._s(t.row.packagePath)+";")])]),e._v(" "),3!==t.row.state&&4!==t.row.state?n("div",e._l(t.row.nodeStates,function(t){return n("div",{directives:[{name:"show",rawName:"v-show",value:""!==t.nodeIp,expression:"item.nodeIp !== ''"}],key:t.nodeIp},[n("el-form-item",{staticStyle:{width:"40%"},attrs:{label:"IP"}},[n("span",[e._v(e._s(t.nodeIp))])]),e._v(" "),n("el-form-item",{staticStyle:{width:"30%"},attrs:{label:"版本"}},[n("span",[e._v(e._s(t.pluginVersion))])]),e._v(" "),n("el-form-item",{staticStyle:{width:"30%"},attrs:{label:"状态"}},[n("span",[e._v(e._s(e._f("translateStat")(t.state)))])])],1)}),0):e._e()],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"id",label:"ID",width:"60px"}}),e._v(" "),n("el-table-column",{attrs:{label:"所属集群","min-width":"135px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e.isAllPrivilege?n("div",{staticClass:"my-a-link"},[n("router-link",{attrs:{tag:"a",to:{name:"cluster_detail",query:{clusterId:t.row.clusterId}}}},[e._v(e._s(t.row.clusterId))])],1):n("div",[e._v(e._s(t.row.clusterId))])]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"note",label:"插件描述",width:"95px","show-overflow-tooltip":""}}),e._v(" "),n("el-table-column",{attrs:{prop:"pluginVersion",label:"插件版本"}}),e._v(" "),n("el-table-column",{attrs:{prop:"pluginType",label:"插件类型",width:"100px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e.pluginTypeMap[t.row.pluginType]))]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"applyUser",label:"申请人"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.applyUser||"-"))]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"approveUser",label:"审批人"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.approveUser||"-"))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",width:"90px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("translateStat")(t.row.state))+"\n ")]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"更新时间",width:"160px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.updateTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"130px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e.isAllPrivilege?n("div",[1===t.row.state||5===t.row.state?n("el-tooltip",{attrs:{content:"开始下载",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handlePlugin(t.row,"download","开始下载")}}},[n("i",{staticClass:"fa fa-download"})])],1):e._e(),e._v(" "),5===t.row.state?n("el-tooltip",{attrs:{content:"强制升级",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handlePlugin(t.row,"upgrade","强制升级")}}},[n("i",{staticClass:"fa fa-arrow-up"})])],1):e._e(),e._v(" "),51===t.row.state?n("el-tooltip",{attrs:{content:"开始升级",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handlePlugin(t.row,"upgrade","开始升级")}}},[n("i",{staticClass:"fa fa-arrow-circle-up"})])],1):e._e(),e._v(" "),61===t.row.state||5===t.row.state||51===t.row.state||6===t.row.state?n("el-tooltip",{attrs:{content:"标记完成",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handlePlugin(t.row,"done","标记完成")}}},[n("i",{staticClass:"fa fa-check-circle"})])],1):e._e(),e._v(" "),1===t.row.state?n("el-tooltip",{attrs:{content:"审批不通过",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handlePlugin(t.row,"deny","审批不通过")}}},[n("i",{staticClass:"fa fa-ban"})])],1):e._e(),e._v(" "),4===t.row.state?n("el-tooltip",{attrs:{content:"回滚",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleRollback(t.row)}}},[n("i",{staticClass:"fa fa-undo"})])],1):e._e(),e._v(" "),1===t.row.state?n("el-tooltip",{attrs:{content:"取消",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handlePlugin(t.row,"recall","取消")}}},[n("i",{staticClass:"fa fa-close"})])],1):e._e(),e._v(" "),5===t.row.state||51===t.row.state||6===t.row.state?n("el-tooltip",{attrs:{content:"终止",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handlePlugin(t.row,"stop","终止")}}},[n("i",{staticClass:"fa fa-stop-circle"})])],1):e._e()],1):n("div",[1===t.row.state?n("el-tooltip",{attrs:{content:"取消",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handlePlugin(t.row,"recall","取消")}}},[n("i",{staticClass:"fa fa-close"})])],1):e._e()],1)]}}])})],1),e._v(" "),0!=e.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next, jumper",total:e.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{staticClass:"condition-add"},[n("el-button",{attrs:{size:"mini",icon:"plus"},on:{click:e.addConditionRelate}},[e._v("新增规则条件")]),e._v(" "),n("span",{staticClass:"warning"},[n("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:"若不增加规则条件,则会默认命中节点集",placement:"right"}},[n("i",{staticClass:"fa fa-info-circle"})])],1)],1),e._v(" "),e._l(e.conditions,function(t,i){return n("el-collapse",{key:i,model:{value:i,callback:function(e){i=e},expression:"index"}},[n("el-collapse-item",{attrs:{name:i}},[n("template",{slot:"title"},[n("span",{staticStyle:{"margin-right":"10px"}},[e._v("条件")]),e._v(" "),n("el-button",{attrs:{type:"danger",size:"mini",icon:"minus"},on:{click:function(n){return n.stopPropagation(),e.deleteConditionRelate(t)}}})],1),e._v(" "),n("condition-item",{ref:"conditionItem",refInFor:!0,attrs:{"condition-item":t}})],2)],1)})],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"index-info"},[n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.crondeleteTitle,size:"large","before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isCronDeleteVisible,callback:function(t){e.isCronDeleteVisible=t},expression:"isCronDeleteVisible"}},[n("el-form",{ref:"crondeleteInfo",attrs:{model:e.crondeleteInfo,rules:e.rules,"label-width":"150px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:10}},[n("el-form-item",{attrs:{prop:"cron",label:"cron表达式"}},[n("el-input",{model:{value:e.crondeleteInfo.cron,callback:function(t){e.$set(e.crondeleteInfo,"cron",t)},expression:"crondeleteInfo.cron"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:10}},[n("el-form-item",{attrs:{prop:"scrollSize",label:"每次删除多少"}},[n("el-input-number",{staticStyle:{width:"100%"},model:{value:e.crondeleteInfo.scrollSize,callback:function(t){e.$set(e.crondeleteInfo,"scrollSize",t)},expression:"crondeleteInfo.scrollSize"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:10}},[n("el-form-item",{attrs:{label:"版本",prop:"versionId",required:""}},[n("el-select",{staticStyle:{width:"100%"},attrs:{clearable:""},model:{value:e.crondeleteInfo.versionId,callback:function(t){e.$set(e.crondeleteInfo,"versionId",t)},expression:"crondeleteInfo.versionId"}},e._l(e.versionIdList,function(e){return n("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})}),1)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:20}},[n("el-form-item",{attrs:{label:"delete by query dsl",prop:"dsl",required:""}},[n("el-input",{attrs:{type:"textarea",rows:10},model:{value:e.crondeleteInfo.dsl,callback:function(t){e.$set(e.crondeleteInfo,"dsl",t)},expression:"crondeleteInfo.dsl"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitUpsert()}}},[e._v("保存")])],1)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"my-tab-content",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"monitor-top"},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.gaugeMetricData,border:""}},[n("el-table-column",{attrs:{prop:"transportAddress",label:"transportAddress"}}),e._v(" "),n("el-table-column",{attrs:{prop:"jvmHeapUsage",label:"JVM Heap(%)"}}),e._v(" "),n("el-table-column",{attrs:{label:"Free Disk"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.bytesToSize(t.row.availableFS))+"\n ")]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"documentCount",label:"Documents"}}),e._v(" "),n("el-table-column",{attrs:{label:"Data"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.bytesToSize(t.row.documentStore))+"\n ")]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"indexCount",label:"Indices"}}),e._v(" "),n("el-table-column",{attrs:{prop:"shardCount",label:"Shards"}}),e._v(" "),n("el-table-column",{attrs:{prop:"type",label:"Type"}}),e._v(" "),n("el-table-column",{attrs:{prop:"uptime",label:"Uptime"}})],1)],1),e._v(" "),n("div",[n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"GC Count("+e.gcCountInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"gcCount","option-info":e.gcCountInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"GC Duration("+e.gcDurationInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"gcDuration","option-info":e.gcDurationInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"JVM Heap("+e.jvmHeapInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"jvmHeap","option-info":e.jvmHeapInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Cpu Percent("+e.cpuPercentInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"cpuPercent","option-info":e.cpuPercentInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Threadpool Threads("+e.threadpoolThreadsInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"threadpoolThreads","option-info":e.threadpoolThreadsInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Threadpool Queue("+e.threadpoolQueueInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"threadpoolQueue","option-info":e.threadpoolQueueInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Threadpool Reject("+e.threadpoolRejectInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"threadpoolReject","option-info":e.threadpoolRejectInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Request Rate("+e.indexSearchRateInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexSearchRate","option-info":e.indexSearchRateInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Request Latency("+e.indexSearchLatencyInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexSearchLatency","option-info":e.indexSearchLatencyInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Segment Count("+e.segmentCountInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"segmentCount","option-info":e.segmentCountInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Index Memory("+e.indexMemoryInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexMemory","option-info":e.indexMemoryInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"System load("+e.systemLoadInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"systemLoad","option-info":e.systemLoadInfo}})],1)])],1)],1)],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.dynamicInfoTitle,size:"small","before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isDynamicInfoVisible,callback:function(t){e.isDynamicInfoVisible=t},expression:"isDynamicInfoVisible"}},[n("el-form",{ref:"dynamicInfo",attrs:{model:e.dynamicInfo,rules:e.rules,"label-width":"140px"}},[n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{prop:"indexName",label:"索引",required:""}},[n("el-input",{attrs:{disabled:!0},model:{value:e.dynamicInfo.indexName,callback:function(t){e.$set(e.dynamicInfo,"indexName",t)},expression:"dynamicInfo.indexName"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{prop:"filterVersion",label:"版本"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{filterable:"","allow-create":""},model:{value:e.dynamicInfo.filterVersion,callback:function(t){e.$set(e.dynamicInfo,"filterVersion",t)},expression:"dynamicInfo.filterVersion"}},[n("el-option",{attrs:{label:"全部版本",value:""}}),e._v(" "),e._l(e.versionIdList,function(e){return n("el-option",{key:e.value,attrs:{label:e.value,value:e.value}})})],2)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"事件",prop:"selectedType",required:""}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.dynamicInfo.selectedType,callback:function(t){e.$set(e.dynamicInfo,"selectedType",t)},expression:"dynamicInfo.selectedType"}},[e._l(e.typeList,function(e){return n("el-option",{key:e.value,attrs:{label:e.value,value:e.value}})}),e._v(" "),n("el-option",{attrs:{label:"全部事件",value:"全部事件"}})],2)],1)],1)],1),e._v(" "),n("el-row",["全部事件"==e.dynamicInfo.selectedType?n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"操作",prop:"eventName",required:""}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.dynamicInfo.eventName,callback:function(t){e.$set(e.dynamicInfo,"eventName",t)},expression:"dynamicInfo.eventName"}},[n("el-option",{attrs:{label:"全部操作",value:"全部操作"}})],1)],1)],1):"索引事件"==e.dynamicInfo.selectedType?n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"操作",prop:"eventName",required:""}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.dynamicInfo.eventName,callback:function(t){e.$set(e.dynamicInfo,"eventName",t)},expression:"dynamicInfo.eventName"}},e._l(e.indexEventList,function(e){return n("el-option",{key:e.value,attrs:{label:e.value,value:e.value}})}),1)],1)],1):"版本事件"==e.dynamicInfo.selectedType?n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"操作",prop:"eventName",required:""}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.dynamicInfo.eventName,callback:function(t){e.$set(e.dynamicInfo,"eventName",t)},expression:"dynamicInfo.eventName"}},e._l(e.versionEventList,function(e){return n("el-option",{key:e.value,attrs:{label:e.value,value:e.value}})}),1)],1)],1):"同步事件"==e.dynamicInfo.selectedType?n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"操作",prop:"eventName",required:""}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.dynamicInfo.eventName,callback:function(t){e.$set(e.dynamicInfo,"eventName",t)},expression:"dynamicInfo.eventName"}},e._l(e.versionSyncEventList,function(e){return n("el-option",{key:e.value,attrs:{label:e.value,value:e.value}})}),1)],1)],1):"模板事件"==e.dynamicInfo.selectedType?n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"操作",prop:"eventName",required:""}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.dynamicInfo.eventName,callback:function(t){e.$set(e.dynamicInfo,"eventName",t)},expression:"dynamicInfo.eventName"}},e._l(e.templateEventList,function(e){return n("el-option",{key:e.value,attrs:{label:e.value,value:e.value}})}),1)],1)],1):e._e()],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{prop:"timeRange",label:"天数",required:""}},[n("el-input",{attrs:{disabled:!0},model:{value:e.dynamicInfo.timeRange,callback:function(t){e.$set(e.dynamicInfo,"timeRange",t)},expression:"dynamicInfo.timeRange"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.deleteDynamicInfo()}}},[e._v("删除")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{title:"选择复制的域","before-close":e.closeDialog},on:{open:e.initSelectList},model:{value:e.isCopyToFieldsVisible,callback:function(t){e.isCopyToFieldsVisible=t},expression:"isCopyToFieldsVisible"}},[n("div",{staticClass:"copy-to-field"},[n("el-transfer",{attrs:{filterable:"",data:e.copyToFieldList,titles:["可选的域","已选的域"]},model:{value:e.copyToFieldSelected,callback:function(t){e.copyToFieldSelected=t},expression:"copyToFieldSelected"}})],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:e.sumbitCopyToField}},[e._v("确定")])],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{title:e.title,"before-close":e.closeDialog},model:{value:e.isVisible,callback:function(t){e.isVisible=t},expression:"isVisible"}},[n("fieldset",{staticClass:"no-border"},[n("div",{staticClass:"view-content"},[n("el-scrollbar",[n("pre",[e._v(e._s(e.content))])])],1)])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"login-box"},[n("div",{staticClass:"login-header"},[e._v("\n 用户登录\n ")]),e._v(" "),n("div",{staticClass:"login-body"},[e.loginErrorMsg?n("div",{staticClass:"msg-error"},[n("i",{staticClass:"el-icon-remove"}),e._v(e._s(e.loginErrorMsg))]):e._e(),e._v(" "),n("el-row",[n("el-col",[n("el-input",{attrs:{size:"medium",placeholder:"请输入帐号"},model:{value:e.loginInfo.username,callback:function(t){e.$set(e.loginInfo,"username",t)},expression:"loginInfo.username"}})],1)],1),e._v(" "),n("el-row",[n("el-col",[n("el-input",{attrs:{type:"password",placeholder:"请输入密码"},model:{value:e.loginInfo.password,callback:function(t){e.$set(e.loginInfo,"password",t)},expression:"loginInfo.password"}})],1)],1),e._v(" "),n("el-row",[n("el-col",[n("el-button",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{type:"primary"},on:{click:function(t){return e.login()}}},[e._v("登录")])],1)],1)],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-form",{ref:"conditionItemForm",attrs:{model:e.conditionItem,rules:e.rules,"label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"判断参数名",prop:"paramName"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{filterable:"","allow-create":""},model:{value:e.conditionItem.paramName,callback:function(t){e.$set(e.conditionItem,"paramName",t)},expression:"conditionItem.paramName"}},e._l(e.paramNames,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"判断运算",prop:"exprOp"}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.conditionItem.exprOp,callback:function(t){e.$set(e.conditionItem,"exprOp",t)},expression:"conditionItem.exprOp"}},e._l(e.exprOps,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"判断值",prop:"paramValue"}},[n("el-input",{attrs:{placeholder:"多个判断值请以 , 分隔"},model:{value:e.conditionItem.paramValue,callback:function(t){e.$set(e.conditionItem,"paramValue",t)},expression:"conditionItem.paramValue"}})],1)],1)],1)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[e.initialized||"Login"===e.initComponent?[n(e.initComponent,{tag:"component",on:{"login-success":e.loginSuccess}})]:[n("div",{directives:[{name:"loading",rawName:"v-loading.fullscreen",value:e.loading,expression:"loading",modifiers:{fullscreen:!0}}],attrs:{"element-loading-text":"Pallas正在初始化应用,请稍等···"}})]],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content",style:{height:e.temPanelHeight}},[n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"template_content",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"template_tree"},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isAllPrivilege,expression:"isAllPrivilege"}]},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.addTemplate}},[e._v("新增")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.exportTemplate}},[e._v("导出")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.importTemplate}},[e._v("导入")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.batchSubmitTemplate}},[e._v("批量提交")])],1),e._v(" "),n("div",{staticClass:"mrg-top-10",style:{height:e.temPanelHeight-35,width:"260px"}},[n("el-tree",{staticStyle:{overflow:"auto",height:"100%"},attrs:{"node-key":"id",data:e.treeData,props:e.defaultProps,"default-expand-all":"","expand-on-click-node":!1,"highlight-current":""},on:{"node-click":e.handleNodeClick}})],1)]),e._v(" "),e.isEditable?e._e():n("div",{staticClass:"template-warning"},[n("i",{staticClass:"el-icon-warning"}),e._v("请选择模板")]),e._v(" "),e._l(e.templateList,function(t){return n("div",{key:t.templateName,staticClass:"template-body"},[e.templateInfo.templateName===t.templateName?n("template-edit",{attrs:{"tem-panel-height":e.temPanelHeight,"metadata-list":e.metadataList,clusters:e.clusters,"index-id":e.indexId,"index-name":e.indexName,"is-all-privilege":e.isAllPrivilege,"template-info":e.templateInfo,"macro-list":e.macroList},on:{"close-delete":e.closeDelete,"close-edit":e.closeEdit}}):e._e()],1)})],2),e._v(" "),e.isTemplateAddVisible?n("div",[n("template-add-dialog",{attrs:{"template-add-info":e.templateAddInfo},on:{"close-dialog":e.closeDialog,"submit-close-dialog":e.submitCloseDialog}})],1):e._e(),e._v(" "),e.isTemplateImportVisible?n("div",[n("template-import-dialog",{attrs:{"index-id":e.indexId,"template-import-title":e.templateImportTitle,"template-import-url":e.templateImportUrl},on:{"close-dialog":e.closeImportDialog,"close-submit-dialog":e.closeSubmitImportDialog}})],1):e._e(),e._v(" "),e.isExprotTemplateVisible?n("div",[n("template-export-dialog",{attrs:{"index-id":e.indexId,"template-list":e.templateList},on:{"close-export-dialog":e.closeExportDialog}})],1):e._e(),e._v(" "),e.isBatchSubmitVisible?n("div",[n("template-batch-submit-dialog",{attrs:{"index-id":e.indexId,"modified-template-list":e.modifiedTemplateList},on:{"close-batch-submit-dialog":e.closeBatchSubmitDialog}})],1):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("el-tabs",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{"element-loading-text":"请稍等···"},model:{value:e.tabActive,callback:function(t){e.tabActive=t},expression:"tabActive"}},[n("el-tab-pane",{attrs:{label:"超时重试",name:"timeout_retry"}},[n("timeout-retry-manage",{attrs:{"template-list":e.templateList,"all-privilege":e.allPrivilege},on:{"refresh-template":e.getTemplateList}})],1),e._v(" "),n("el-tab-pane",{attrs:{label:"限流配置",name:"throttling"}},[n("throttling-manage",{attrs:{"template-list":e.templateList,"all-privilege":e.allPrivilege},on:{"refresh-template":e.getTemplateList}})],1)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("el-collapse",{model:{value:e.activeNames,callback:function(t){e.activeNames=t},expression:"activeNames"}},[n("el-collapse-item",{attrs:{name:"1"}},[n("template",{slot:"title"},[e._v("\n 采集规则\n ")]),e._v(" "),n("flow-record-config",{on:{"get-flow-export":e.getFlowExport}})],2),e._v(" "),n("el-collapse-item",{attrs:{title:"采集结果",name:"2"}},[n("template",{slot:"title"},[e._v("\n 采集结果 -- 规则ID:"),n("span",{staticStyle:{color:"#32cd32","font-weight":"bold"}},[e._v(e._s(e.flowRecordExportParams.configId))])]),e._v(" "),n("flow-record-export",{attrs:{"flow-record-export-params":e.flowRecordExportParams}})],2)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"template-test-upload"},[n("el-table",{attrs:{data:e.addDataSource,"show-header":!1}},[n("el-table-column",{scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-input",{model:{value:t.row.paramNameDef,callback:function(n){e.$set(t.row,"paramNameDef",n)},expression:"scope.row.paramNameDef"}})]}}])}),e._v(" "),n("el-table-column",{scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-upload",{ref:"upload",attrs:{action:"/pallas/index_template/performance_script/upload.json","auto-upload":!1,data:e.addDataSource[0],"on-remove":e.handleRemove,"on-error":e.handleError,"on-success":e.handleSuccess}},[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.handleUpload}},[e._v("选择文件")])],1)]}}])}),e._v(" "),n("el-table-column",{scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(n){return e.handleAdd(t.row)}}},[e._v("上传")])]}}])})],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:"新建模板","before-close":e.closeDialog,size:"tiny","element-loading-text":"请稍等···"},model:{value:e.isTemplateAddVisible,callback:function(t){e.isTemplateAddVisible=t},expression:"isTemplateAddVisible"}},[n("el-form",{ref:"templateAddInfo",attrs:{model:e.templateAddInfo,rules:e.rules,"label-width":"90px"}},[n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"名称",prop:"templateName"}},[n("el-input",{model:{value:e.templateAddInfo.templateName,callback:function(t){e.$set(e.templateAddInfo,"templateName",t)},expression:"templateAddInfo.templateName"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"类型",prop:"type"}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.templateAddInfo.type,callback:function(t){e.$set(e.templateAddInfo,"type",t)},expression:"templateAddInfo.type"}},[n("el-option",{key:"1",attrs:{label:"模板",value:"1"}}),e._v(" "),n("el-option",{key:"0",attrs:{label:"宏",value:"0"}})],1)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"描述",prop:"description"}},[n("el-input",{attrs:{type:"textarea"},model:{value:e.templateAddInfo.description,callback:function(t){e.$set(e.templateAddInfo,"description",t)},expression:"templateAddInfo.description"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitInfo()}}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"my-tab-content",attrs:{"element-loading-text":"请稍等···"}},[e.privilege?n("div",{staticClass:"content"},[n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("创建规则")])],1)])]):e._e(),e._v(" "),n("div",{staticClass:"content"},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.rulesList,stripe:""}},[n("el-table-column",{attrs:{label:"规则名称",prop:"name","header-align":"center"}}),e._v(" "),n("el-table-column",{attrs:{label:"规则关系",prop:"conditionRelation",width:"80px","header-align":"center"}}),e._v(" "),n("el-table-column",{attrs:{label:"判断表达式","header-align":"center"}},[n("el-table-column",{attrs:{label:"判断参数名","min-width":"150","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.conditions,function(t){return n("div",{key:t.paramName,staticClass:"condition-table"},[e._v(e._s(t.paramName))])})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"判断运算","min-width":"70","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.conditions,function(t){return n("div",{key:t.exprOp,staticClass:"condition-table"},[e._v(e._s(t.exprOp))])})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"判断值","min-width":"140","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.conditions,function(t){return n("div",{key:t.paramValue,staticClass:"condition-table"},[e._v(e._s(t.paramValue))])})}}])})],1),e._v(" "),n("el-table-column",{attrs:{label:"Preference","min-width":"70","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{staticClass:"target-group-item",attrs:{type:""===t.row.preference?"info":"success","close-transition":""}},[n("span",[e._v(e._s(t.row.preference||"无"))])])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"节点集","min-width":"150","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.targetGroups,function(i){return n("div",{key:i.id,staticClass:"route-tag"},[n("el-tag",{staticClass:"target-group-item",attrs:{type:"warning"}},[n("span",[e._v(e._s(e.routingTargetGroupsList[i.id].name))]),e._v(" "),t.row.targetGroups.length>1?n("span",{staticClass:"route-weight"},[e._v(e._s(i.weight))]):e._e()])],1)})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"是否启用","header-align":"center",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:t.row.enable?"success":"danger","close-transition":""}},[e._v(e._s(e._f("translateEnable")(t.row.enable)))])]}}])}),e._v(" "),e.privilege?n("el-table-column",{attrs:{label:"操作",width:"80px","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tooltip",{attrs:{content:"编辑",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleEdit(t.row)}}},[n("i",{staticClass:"fa fa-edit"})])],1),e._v(" "),n("el-tooltip",{attrs:{content:"删除",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleDelete(t.row,t.$index)}}},[n("i",{staticClass:"fa fa-trash"})])],1)]}}],null,!1,2969598020)}):e._e()],1)],1),e._v(" "),n("target-group",{attrs:{privilege:e.privilege,"index-id":e.indexId,"index-name":e.indexName,"rules-list":e.rulesList,"routing-target-groups-list":e.routingTargetGroupsList},on:{"get-routing-list":e.getRoutingList}}),e._v(" "),e.isConditionInfoVisible?n("div",[n("condition-info-dialog",{attrs:{"routing-target-groups":e.routingTargetGroups,conditions:JSON.parse(JSON.stringify(e.conditions)),"condition-info":e.conditionInfo,"condition-info-title":e.conditionInfoTitle,"condition-operation":e.conditionOperation},on:{"add-condition":e.addCondition,"edit-condition":e.editCondition,"close-dialog":e.closeConditionDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"my-tab-content",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"content"},[n("div",{staticClass:"index-timeout-retry"},[n("i",{staticClass:"fa fa-exclamation-circle"}),e._v("\n 当前索引级别超时为 "),n("span",[e._v(e._s(e.indexInfo.timeout))]),e._v(" 毫秒,重试为 "),n("span",[e._v(e._s(e.indexInfo.retry))]),e._v(" 次。(若模板超时时间为0毫秒,则以当前索引的超时时间和重试为准。)\n ")]),e._v(" "),n("div",{staticClass:"data-table-filter"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"超时时间(毫秒,需>=50ms)"}},[n("el-input-number",{attrs:{placeholder:"超时时间(毫秒)",min:0},model:{value:e.templateInfo.timeout,callback:function(t){e.$set(e.templateInfo,"timeout",t)},expression:"templateInfo.timeout"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"重试次数(上限1次)"}},[n("el-input-number",{attrs:{placeholder:"重试次数",min:0,max:1},model:{value:e.templateInfo.retry,callback:function(t){e.$set(e.templateInfo,"retry",t)},expression:"templateInfo.retry"}})],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{type:"primary"},on:{click:e.handleUpdate}},[n("i",{staticClass:"fa fa-refresh"}),e._v("更新")])],1)],1)],1)])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{height:"300px"}},["{}"===JSON.stringify(e.optionInfo)?n("chart-no-data"):e._e(),e._v(" "),n("div",{staticStyle:{width:"100%",height:"300px"},attrs:{id:e.id}})],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isAllPrivilege,expression:"isAllPrivilege"}],staticClass:"content"},[n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("新增版本")])],1),e._v(" "),n("div",{staticClass:"content"},[[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.versionList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"版本id",prop:"id",width:"150px"}}),e._v(" "),n("el-table-column",{attrs:{label:"所属集群",prop:"realClusterIds"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(e.$array.strToArray(t.row.realClusterIds),function(i){return n("div",{key:i,staticClass:"condition-table"},[n("router-link",{attrs:{tag:"a",to:{name:"cluster_detail",query:{clusterId:e.getClusterName(i)}}}},[e._v(e._s(e.getClusterName(i)))]),e._v(" "),n("el-tooltip",{attrs:{effect:"dark",content:"查看配置信息",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.viewConfigInfo(t.row,i)}}},[n("i",{staticClass:"fa fa-cog"})])],1)],1)})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"数据量",prop:"count",width:"150px"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.count,function(i,a){return n("div",{key:i,staticClass:"condition-table"},[e._v(e._s(i)+"\n "),n("el-tooltip",{attrs:{effect:"dark",content:"快速查看数据",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){e.retrieve(t.row,e.$array.strToArray(t.row.realClusterIds)[a])}}},[n("i",{staticClass:"fa fa-search-plus"})])],1)],1)})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"创建时间",prop:"createTime",width:"200px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.createTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"是否启用",prop:"isUsed",width:"150px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:t.row.isUsed?"success":"danger","close-transition":""}},[e._v(e._s(e._f("translateIsUsed")(t.row.isUsed||!1)))])]}}])}),e._v(" "),e.isAllPrivilege?n("el-table-column",{attrs:{label:"操作",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-dropdown",{attrs:{trigger:"click"}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n 操作"),n("i",{staticClass:"el-icon-caret-bottom el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{staticClass:"dropdown-operation",attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:!t.row.isSync,expression:"!scope.row.isSync"}]},[n("a",{on:{click:function(n){return e.createIndex(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-play-circle"}),e._v("创建索引")])])]),e._v(" "),n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:!t.row.isUsed,expression:"!scope.row.isUsed"}]},[n("a",{on:{click:function(n){return e.enableVersion(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-hand-o-right"}),e._v("启用版本")])])]),e._v(" "),n("el-dropdown-item",[n("a",{on:{click:function(n){return e.triggerDialog(t.row,"view")}}},[n("span",[n("i",{staticClass:"fa fa-eye"}),e._v("配置查看")])])]),e._v(" "),n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:t.row.isSync,expression:"scope.row.isSync"}]},[n("a",{on:{click:function(n){return e.triggerDialog(t.row,"dynamic_edit")}}},[n("span",[n("i",{staticClass:"fa fa-pencil-square-o"}),e._v("动态配置更改")])])]),e._v(" "),n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:!t.row.isSync,expression:"!scope.row.isSync"}]},[n("a",{on:{click:function(n){return e.triggerDialog(t.row,"edit")}}},[n("span",[n("i",{staticClass:"fa fa-pencil-square-o"}),e._v("配置更改")])])]),e._v(" "),n("el-dropdown-item",[n("a",{on:{click:function(n){return e.copyVersion(t.row,"copy")}}},[n("span",[n("i",{staticClass:"fa fa-clone"}),e._v("版本复制")])])]),e._v(" "),n("el-dropdown-item",[n("a",{on:{click:function(n){return e.preheading(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-sun-o"}),e._v("索引预热")])])]),e._v(" "),n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:t.row.isSync,expression:"scope.row.isSync"}]},[n("a",{on:{click:function(n){return e.stopSync(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-stop-circle-o"}),e._v("删除索引")])])]),e._v(" "),n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:!t.row.isSync,expression:"!scope.row.isSync"}]},[n("a",{on:{click:function(n){return e.handleDelete(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-trash"}),e._v("删除版本")])])])],1)],1)]}}],null,!1,2811631662)}):e._e()],1)],e._v(" "),0!=e.versionData.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next",total:e.versionData.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e()],2),e._v(" "),e.isVersionInfoVisible?n("div",[n("version-info-dialog",{attrs:{"version-operation":e.versionOperation,"version-info-title":e.versionInfoTitle,"version-info":e.versionInfo,"is-logical":e.isLogical,clusters:e.clusters,"is-meta-data-null":e.isMetaDataNull},on:{"close-dialog":e.closeDialog,"template-operate-success":e.templateOperateSuccess}})],1):e._e(),e._v(" "),e.isVersionDynamicInfoVisible?n("div",[n("version-dynamic-info-dialog",{attrs:{"version-operation":e.versionOperation,"version-info-title":e.versionInfoTitle,"version-info":e.versionInfo,"is-logical":e.isLogical,clusters:e.clusters},on:{"close-dialog":e.closeDynamicDialog,"template-operate-success":e.dynamicUpdateOperateSuccess}})],1):e._e(),e._v(" "),e.isViewConfigVisible?n("div",[n("json-content-dialog",{attrs:{content:e.configInfo,title:e.configTitle},on:{"close-dialog":e.closeViewConfigDialog}})],1):e._e(),e._v(" "),e.isPreheadingVisible?n("div",[n("preheading-dialog",{attrs:{"preheading-info":e.preheadingInfo},on:{"close-dialog":e.closePreheadingDialog}})],1):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"template-content",style:{height:e.temPanelHeight},attrs:{"element-loading-text":"请稍等···"}},[n("el-row",[n("div",{staticClass:"pull-left template-title"},[e._v("\n 当前"+e._s(this.templateType)+":"),n("span",{staticClass:"template-name"},[e._v(e._s(e.templateInfo.templateName))]),e._v(" "),""===e.templateInfo.content||"{}"===e.templateInfo.content?n("el-tooltip",{attrs:{effect:"dark",content:"初始化自定义业务模板",placement:"bottom"}},[e.isEditOperate&&!e.templateInfo.approving?n("el-button",{attrs:{type:"success",size:"small"},on:{click:e.setCustomTemplate}},[n("i",{staticClass:"fa fa-hand-o-right"}),e._v("模板向导\n ")]):e._e()],1):e._e(),e._v(" "),""!==e.templateInfo.content&&"{}"!==e.templateInfo.content?n("el-tooltip",{attrs:{effect:"dark",content:"可在当前光标处,插入选择的模板字段",placement:"bottom"}},[e.isEditOperate&&!e.templateInfo.approving?n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.insertTemplate}},[n("i",{staticClass:"fa fa-code"}),e._v("插入查询变量\n ")]):e._e()],1):e._e(),e._v(" "),e.templateInfo.approving&&1===e.templateInfo.type?n("span",{staticClass:"template-approving"},[e._v("状态:"),n("router-link",{attrs:{tag:"a",to:{name:"authority_manage"}}},[e._v("待审核")]),e._v(",不可进行保存,删除等操作")],1):e._e(),e._v(" "),e.templateInfo.approving&&0===e.templateInfo.type?n("span",{staticClass:"template-approving"},[e._v("引用该宏的模板处于待审核状态,不可进行保存、删除等操作")]):e._e()],1),e._v(" "),e.isAllPrivilege?n("div",{staticClass:"pull-right"},[n("log-monitor",{attrs:{"template-name":e.templateInfo.templateName,"index-id":e.indexId,"index-name":e.indexName}}),e._v(" "),!e.isMacroVisible&&e.isEditOperate?n("el-select",{staticStyle:{"padding-right":"10px"},attrs:{size:"small",placeholder:"请选择要插入的宏",clearable:""},on:{change:e.insertMacro},model:{value:e.selectedMacro,callback:function(t){e.selectedMacro=t},expression:"selectedMacro"}},e._l(e.macroList,function(e){return n("el-option",{key:e.templateName,attrs:{label:e.templateName,value:e.templateName}})}),1):e._e(),e._v(" "),e.isEditOperate&&!e.templateInfo.approving?n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.handleSave}},[e._v("保存")]):e._e(),e._v(" "),e.isEditOperate&&!e.templateInfo.approving&&1===e.templateInfo.type?n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.handleApprove}},[e._v("提交")]):e._e(),e._v(" "),e.isEditOperate&&!e.templateInfo.approving?n("el-button",{attrs:{type:"danger",size:"small"},on:{click:e.handleDelete}},[e._v("删除")]):e._e(),e._v(" "),e.templateInfo.hisCount>0&&e.isEditOperate?n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.handleHistoryVersion}},[e._v(e._s(e.historyVersionBtn))]):e._e()],1):e._e()]),e._v(" "),n("div",[n("el-row",[n("el-tabs",{on:{"tab-click":e.tabClick},model:{value:e.activeTab,callback:function(t){e.activeTab=t},expression:"activeTab"}},[n("el-tab-pane",{attrs:{label:"编辑模板",name:"edit"}},[n("div",{class:[e.isShowHistoryVersion?"template-edit-and-version-content":"template-edit-content"],style:{height:e.temPanelHeight-85}},[n("editor",{ref:"aceEditor1",attrs:{content:e.templateInfo.content,"editor-id":e.eidtorId},on:{"change-content":e.changeEditContent}})],1),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.isShowHistoryVersion,expression:"isShowHistoryVersion"}],staticClass:"template-history-version-content"},[n("div",{staticStyle:{"padding-left":"10px"}},[n("el-table",{attrs:{data:e.historyVersionList,border:"","max-height":e.temPanelHeight-85},on:{"row-click":e.handleVersionDialog}},[n("el-table-column",{attrs:{label:"修改日期",width:"150px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.createdTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"description",label:"描述"}}),e._v(" "),n("el-table-column",{attrs:{prop:"creator",label:"修改者"}})],1)],1)])]),e._v(" "),n("el-tab-pane",{attrs:{label:"sql parser",name:"sql",disabled:e.isMacroVisible||!e.isAllPrivilege}},[n("div",{staticStyle:{margin:"5px 0 10px"}},[n("span",[e._v("数据源:")]),e._v(" "),n("el-select",{staticStyle:{width:"39%"},attrs:{size:"medium",placeholder:"请选择数据源"},on:{change:e.initSql},model:{value:e.datasourceId,callback:function(t){e.datasourceId=t},expression:"datasourceId"}},e._l(Object.entries(e.datasourceList),function(e){return n("el-option",{key:e[0],attrs:{label:e[1],value:e[0]}})}),1)],1),e._v(" "),n("el-col",{attrs:{span:11}},[n("div",{style:{height:e.temPanelHeight-135}},[n("editor",{ref:"sqlEditor",attrs:{content:e.sql,mode:"sql","editor-id":"sqlEditor"},on:{"change-content":e.changeSqlContent}})],1)]),e._v(" "),n("el-col",{attrs:{span:2}},[n("div",{style:{"margin-top":(e.temPanelHeight-240)/2},attrs:{align:"center"}},[n("div",[n("el-button",{staticStyle:{width:"75px"},attrs:{size:"small",title:"结果仅供参考,需进一步加工",type:"primary"},on:{click:e.handleExplain}},[e._v("转 DSL")])],1),e._v(" "),n("div",{staticStyle:{"margin-top":"5px"}},[n("el-button",{staticStyle:{width:"75px"},attrs:{title:"谨慎执行,别跑挂DB了",disabled:!e.isAllPrivilege,size:"small",type:"primary"},on:{click:e.handleExecute}},[e._v("查询DB")])],1)])]),e._v(" "),n("el-col",{attrs:{span:11}},[n("div",{style:{height:e.temPanelHeight-135}},[n("editor",{ref:"sqlEditorResult",attrs:{content:e.explainContent,readonly:!0,"editor-id":"sqlEditorResult"}})],1)])],1),e._v(" "),n("el-tab-pane",{attrs:{label:"调试",name:"debug",disabled:e.isMacroVisible||!e.isAllPrivilege}},[e.clusters.length>1?n("div",{staticClass:"render-cluster"},[n("span",[e._v("指定集群:")]),e._v(" "),n("el-select",{staticStyle:{"margin-left":"10px"},attrs:{size:"small",placeholder:"请选择集群"},model:{value:e.clusterId,callback:function(t){e.clusterId=t},expression:"clusterId"}},e._l(e.clusters,function(e){return n("el-option",{key:e.id,attrs:{label:e.clusterId,value:e.id}})}),1)],1):e._e(),e._v(" "),n("el-col",{attrs:{span:11}},[n("div",{staticClass:"debug-title pull-left"},[n("div",{staticClass:"pull-left",staticStyle:{"margin-right":"10px"}},[e._v("参数")]),e._v(" "),n("div",{staticClass:"pull-right"},[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.handleResetParams}},[e._v("重置参数")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.handleFormatParams}},[e._v("格式化参数")])],1)]),e._v(" "),n("div",{style:{height:e.temPanelHeight-120}},[n("editor",{ref:"aceEditor2",attrs:{content:e.templateInfo.params,"editor-id":e.debugId},on:{"change-content":e.changeDebugContent}})],1)]),e._v(" "),n("el-col",{attrs:{span:2}},[n("div",{style:{"margin-top":(e.temPanelHeight-240)/2},attrs:{align:"center"}},[n("div",[n("el-button",{staticStyle:{width:"75px"},attrs:{size:"mini",type:"primary"},on:{click:e.handleRender}},[e._v("渲染DSL")])],1),e._v(" "),n("div",{staticStyle:{"margin-top":"10px"}},[n("el-button",{staticStyle:{width:"75px"},attrs:{size:"mini",type:"primary"},on:{click:e.handleDebug}},[e._v("执行查询")])],1),e._v(" "),n("div",{staticStyle:{"margin-top":"10px"}},[n("el-button",{staticStyle:{width:"75px"},attrs:{size:"mini",type:"primary"},on:{click:e.queryProfile}},[e._v("慢查询分析")])],1)])]),e._v(" "),n("el-col",{attrs:{span:11}},[n("div",[n("div",{staticClass:"debug-title"},[n("span",[e._v("结果")]),e._v(" "),e.isProfileVisible?e._e():n("el-button",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.resultContent,expression:"resultContent",arg:"copy"},{name:"clipboard",rawName:"v-clipboard:success",value:e.copySuccess,expression:"copySuccess",arg:"success"},{name:"clipboard",rawName:"v-clipboard:error",value:e.copyError,expression:"copyError",arg:"error"}],staticClass:"pull-right",attrs:{type:"primary",size:"small"}},[e._v("复制内容\n ")])],1),e._v(" "),n("div",{style:{height:e.temPanelHeight-120}},[e.isProfileVisible?n("profile-content",{attrs:{"profile-data":e.profileData}}):n("editor",{ref:"debugResultEditor",attrs:{content:e.resultContent,readonly:!0,"editor-id":"debugResult"}})],1)])])],1),e._v(" "),n("el-tab-pane",{attrs:{label:"API",name:"api",disabled:e.isMacroVisible||!e.isAllPrivilege}},[n("div",{staticClass:"api-content",style:{height:e.temPanelHeight-95}},[n("el-scrollbar",[e._v("\n RestClient示例:\n "),n("br"),e._v(" "),n("pre",[e._v(e._s(e.apiContent.rest_client))]),e._v(" "),n("br"),e._v(" "),n("pre",[e._v(e._s("POST: "+e.apiContent.path))]),e._v(" "),n("pre",[e._v(e._s(e.apiContent.content))])])],1)]),e._v(" "),n("el-tab-pane",{attrs:{label:"性能测试",name:"test",disabled:e.isMacroVisible||!e.isAllPrivilege}},[n("template-test",{attrs:{"index-id":e.indexId,"template-name":e.templateInfo.templateName,"params-info":e.paramsInfo,"tem-panel-height":e.temPanelHeight}})],1),e._v(" "),n("el-tab-pane",{attrs:{label:"超时重试",name:"timeoutRetry",disabled:e.isMacroVisible||!e.isAllPrivilege}},[n("service-governance",{attrs:{"index-id":e.indexId,"template-info":e.templateInfo}})],1)],1)],1)],1)],1),e._v(" "),e.isVersionContentVisible?n("div",[n("json-diff",{attrs:{"is-overwrite":!0,"json-diff-info":e.versionDiffInfo},on:{"overwrite-operate":e.overwriteVersion,"close-dialog":e.closeVersionContentDialog}})],1):e._e(),e._v(" "),e.isEditSaveVisible?n("div",[n("template-save-edit-dialog",{attrs:{"index-id":e.indexId,"template-info":e.templateInfo},on:{"close-edit-save-dialog":e.closeEditSaveDialog,"edit-save-success":e.editSaveSuccess}})],1):e._e(),e._v(" "),e.isTemplateConfigVisible?n("div",[n("template-config-dialog",{attrs:{"metadata-list":e.metadataList},on:{"cover-content":e.coverConfigTemplate,"close-dialog":e.closeTemplateConfigDialog}})],1):e._e(),e._v(" "),e.isTemplateInsertVisible?n("div",[n("template-insert-dialog",{attrs:{"metadata-list":e.metadataList},on:{"insert-template-content":e.insertTemplateContent,"close-dialog":e.closeTemplateInsertDialog}})],1):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.targetGroupInfoTitle,"before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isVisible,callback:function(t){e.isVisible=t},expression:"isVisible"}},[n("el-form",{ref:"targetGroupInfo",attrs:{model:e.targetGroupInfo,rules:e.rules,"label-width":"130px"}},[n("el-row",[n("el-col",{attrs:{span:23}},[n("el-form-item",{attrs:{prop:"name",label:"节点集名称"}},[n("el-input",{model:{value:e.targetGroupInfo.name,callback:function(t){e.$set(e.targetGroupInfo,"name",t)},expression:"targetGroupInfo.name"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitInfo()}}},[e._v("保存")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",{attrs:{to:{name:"cluster_manage"}}},[n("i",{staticClass:"fa fa-home"}),e._v("ES集群管理")]),e._v(" "),n("el-breadcrumb-item",[e._v("ES集群路由配置")]),e._v(" "),n("el-breadcrumb-item",[e._v(e._s(e.clusterId))])],1)],1),e._v(" "),e.privilege?n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("创建规则")])],1)]):e._e(),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.rulesList,stripe:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"规则名称",prop:"name","header-align":"center"}}),e._v(" "),n("el-table-column",{attrs:{label:"规则关系",prop:"conditionRelation","header-align":"center",width:"80px"}}),e._v(" "),n("el-table-column",{attrs:{label:"判断表达式","header-align":"center"}},[n("el-table-column",{attrs:{label:"判断参数名","min-width":"150","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.conditions,function(t){return n("div",{key:t.paramName,staticClass:"condition-table"},[e._v(e._s(t.paramName))])})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"判断运算","min-width":"70","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.conditions,function(t){return n("div",{key:t.exprOp,staticClass:"condition-table"},[e._v(e._s(t.exprOp))])})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"判断值","min-width":"140","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.conditions,function(t){return n("div",{key:t.paramValue,staticClass:"condition-table"},[e._v(e._s(t.paramValue))])})}}])})],1),e._v(" "),n("el-table-column",{attrs:{label:"节点集","min-width":"150","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return e._l(t.row.targetGroups,function(i){return n("div",{key:i.id,staticClass:"route-tag"},[n("el-tag",{staticClass:"target-group-item",attrs:{type:"warning"}},[n("span",[e._v(e._s(e.routingTargetGroupsList[i.id].name))]),e._v(" "),t.row.targetGroups.length>1?n("span",{staticClass:"route-weight"},[e._v(e._s(i.weight))]):e._e()])],1)})}}])}),e._v(" "),n("el-table-column",{attrs:{label:"是否启用","header-align":"center",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:t.row.enable?"success":"danger","close-transition":""}},[e._v(e._s(e._f("translateEnable")(t.row.enable)))])]}}])}),e._v(" "),e.privilege?n("el-table-column",{attrs:{label:"路由管理",width:"80px","header-align":"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tooltip",{attrs:{content:"编辑",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleEdit(t.row)}}},[n("i",{staticClass:"fa fa-edit"})])],1),e._v(" "),n("el-tooltip",{attrs:{content:"删除",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleDelete(t.row,t.$index)}}},[n("i",{staticClass:"fa fa-trash"})])],1)]}}],null,!1,2969598020)}):e._e()],1),e._v(" "),n("target-group",{attrs:{privilege:e.privilege,"cluster-id":e.clusterId,"rules-list":e.rulesList,"routing-target-groups-list":e.routingTargetGroupsList},on:{"get-routing-list":e.getRoutingList}}),e._v(" "),e.isConditionInfoVisible?n("div",[n("condition-info-dialog",{attrs:{"routing-target-groups":e.routingTargetGroups,conditions:JSON.parse(JSON.stringify(e.conditions)),"condition-info":e.conditionInfo,"condition-info-title":e.conditionInfoTitle,"condition-operation":e.conditionOperation},on:{"add-condition":e.addCondition,"edit-condition":e.editCondition,"close-dialog":e.closeConditionDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"schema-info-dialog"},[n("el-dialog",{attrs:{title:e.childTitle,size:"large","show-close":!1,"close-on-click-modal":!1,"close-on-press-escape":!1},on:{open:e.openDialog},model:{value:e.isSchemaChildVisible,callback:function(t){e.isSchemaChildVisible=t},expression:"isSchemaChildVisible"}},[n("div",{staticClass:"schema-content"},[e.isEditable?e._e():n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("新增字段")]),e._v(" "),e.childInfo.length>0?n("span",{staticStyle:{color:"#fff","margin-left":"5px"}},[e._v("Dynamic: "),n("el-switch",{attrs:{disabled:e.isEditable},model:{value:e.initDynamic,callback:function(t){e.initDynamic=t},expression:"initDynamic"}})],1):e._e()],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.childInfo,border:""}},[n("el-table-column",{attrs:{label:"字段名"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-input",{staticClass:"nested-input",attrs:{disabled:e.isEditable},model:{value:t.row.fieldName,callback:function(n){e.$set(t.row,"fieldName",n)},expression:"scope.row.fieldName"}}),e._v(" "),e.checkArrayNotEmpty(t.row.copyTo)?n("el-tag",{attrs:{type:"success"}},[e._v("copy to: "+e._s(t.row.copyTo))]):e._e(),e._v(" "),0!==t.row.multiField.length?n("el-button",{attrs:{type:"warning"},on:{click:function(n){return e.viewSchemaMultiFields(t.row)}}},[n("i",{staticClass:"fa"}),e._v("subFields")]):e._e()]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"ES类型"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("select",{directives:[{name:"model",rawName:"v-model",value:t.row.fieldType,expression:"scope.row.fieldType"}],attrs:{size:"small",disabled:e.isEditable},on:{change:function(n){var i=Array.prototype.filter.call(n.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.$set(t.row,"fieldType",n.target.multiple?i:i[0])}}},e._l(e.fieldTypes,function(t){return n("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.label))])}),0)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"多值/单值"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("select",{directives:[{name:"model",rawName:"v-model",value:t.row.multi,expression:"scope.row.multi"}],attrs:{size:"small",disabled:e.isEditable},on:{change:function(n){var i=Array.prototype.filter.call(n.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.$set(t.row,"multi",n.target.multiple?i:i[0])}}},[n("option",{attrs:{label:"单值"},domProps:{value:!1}},[e._v("单值")]),e._v(" "),n("option",{attrs:{label:"多值"},domProps:{value:!0}},[e._v("多值")])])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"查询关键字"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-checkbox",{attrs:{disabled:e.isEditable},model:{value:t.row.search,callback:function(n){e.$set(t.row,"search",n)},expression:"scope.row.search"}},[e._v("是否查询")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"排序或聚合"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-checkbox",{attrs:{disabled:e.isEditable},model:{value:t.row.docValue,callback:function(n){e.$set(t.row,"docValue",n)},expression:"scope.row.docValue"}},[e._v("用于排序或聚合")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"是否启用store"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-checkbox",{attrs:{disabled:e.isEditable},model:{value:t.row.store,callback:function(n){e.$set(t.row,"store",n)},expression:"scope.row.store"}},[e._v("启用store")])]}}])}),e._v(" "),e.isEditable?e._e():n("el-table-column",{attrs:{label:"操作","min-width":"60"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-dropdown",{attrs:{trigger:"click"}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n 操作"),n("i",{staticClass:"el-icon-caret-bottom el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{staticClass:"dropdown-operation",attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",[n("a",{on:{click:function(n){return e.handleDelete(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-play-circle"}),e._v("删除")])])]),e._v(" "),n("el-dropdown-item",[n("a",{on:{click:function(n){return e.viewSchemaMultiFields(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-play-circle"}),e._v("添加subFields")])])]),e._v(" "),n("el-dropdown-item",[n("a",{on:{click:function(n){return e.viewSchemaCopyTo(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-play-circle"}),e._v("添加copyTo")])])])],1)],1)]}}],null,!1,2842098709)})],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.cancelBtn()}}},[e._v("取消")]),e._v(" "),e.isEditable?e._e():n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.confirmBtn()}}},[e._v("确定")])],1)],1),e._v(" "),n("schema-multi-field-dialog",{attrs:{"is-schema-multi-fields-visible":e.isSchemaMultiFieldsVisible,"schema-multi-fields-info":e.schemaExtInfo,"version-operation":e.versionOperation,"schema-parent-field-name":e.schemaParentFieldName},on:{"close-schema-dialog":e.closeSchemaMultiFieldsDialog,"add-schema-multi-field":e.addSchemaMultiFields}}),e._v(" "),n("schema-copy-to-dialog",{attrs:{"is-copy-to-fields-visible":e.isCopyToFieldsVisible,"schema-copy-to-info":e.schemaExtInfo,"copy-to-list":e.validCopyToFields,"schema-parent-field-name":e.schemaParentFieldName},on:{"close-schema-dialog":e.closeSchemaCopyToDialog,"add-schema-copy-to":e.addSchemaCopyTo}})],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.tokenInfoTitle,visible:e.isVisible,"before-close":e.closeDialog,"element-loading-text":"请稍等···"},on:{"update:visible":function(t){e.isVisible=t}}},[n("el-form",{ref:"tokenInfo",attrs:{model:e.tokenInfo,rules:e.rules,"label-width":"80px"}},[n("el-row",[n("el-col",{attrs:{span:16}},[n("el-form-item",{attrs:{label:"token",prop:"clientToken"}},[n("el-input",{model:{value:e.tokenInfo.clientToken,callback:function(t){e.$set(e.tokenInfo,"clientToken",t)},expression:"tokenInfo.clientToken"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:6}},[n("el-form-item",{attrs:{label:"",prop:"clientToken","label-width":"10px"}},[n("el-button",{attrs:{size:"small"},on:{click:e.reGenerate}},[e._v("重新生成")]),e._v(" "),n("el-popover",{attrs:{placement:"right",trigger:"hover",content:"Token的使用需在Pallas Rest Client发起Pallas Search查询时传入,重新生成后需点击更新按钮保存"}},[n("i",{staticClass:"fa fa-info-circle",attrs:{slot:"reference"},slot:"reference"})])],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"标题",prop:"title"}},[n("el-input",{model:{value:e.tokenInfo.title,callback:function(t){e.$set(e.tokenInfo,"title",t)},expression:"tokenInfo.title"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"启用状态",prop:"enabled"}},[n("div",{staticClass:"my-switch"},[n("el-switch",{model:{value:e.tokenInfo.enabled,callback:function(t){e.$set(e.tokenInfo,"enabled",t)},expression:"tokenInfo.enabled"}}),e._v(" "),n("el-popover",{attrs:{placement:"right",trigger:"hover",content:"如果禁用,客户端就直连es,不经过pallas search"}},[n("i",{staticClass:"fa fa-info-circle",attrs:{slot:"reference"},slot:"reference"})])],1)])],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitInfo()}}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-form",{ref:"dataSource",attrs:{model:e.dataSource,rules:e.rules,"label-width":"120px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:7}},[n("el-form-item",{attrs:{label:"数据库地址",prop:"ip"}},[n("el-input",{attrs:{placeholder:"请输入ip或域名"},model:{value:e.dataSource.ip,callback:function(t){e.$set(e.dataSource,"ip",t)},expression:"dataSource.ip"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:7}},[n("el-form-item",{attrs:{label:"数据库PORT",prop:"port",required:""}},[n("el-input",{model:{value:e.dataSource.port,callback:function(t){e.$set(e.dataSource,"port",t)},expression:"dataSource.port"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:7}},[n("el-form-item",{attrs:{label:"数据库表",prop:"tableName"}},[n("el-input",{model:{value:e.dataSource.tableName,callback:function(t){e.$set(e.dataSource,"tableName",t)},expression:"dataSource.tableName"}})],1)],1)],1),e._v(" "),n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:7}},[n("el-form-item",{attrs:{label:"数据库名",prop:"dbname"}},[n("el-input",{model:{value:e.dataSource.dbname,callback:function(t){e.$set(e.dataSource,"dbname",t)},expression:"dataSource.dbname"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:7}},[n("el-form-item",{attrs:{label:"用户名",prop:"username"}},[n("el-input",{model:{value:e.dataSource.username,callback:function(t){e.$set(e.dataSource,"username",t)},expression:"dataSource.username"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:7}},[n("el-form-item",{attrs:{label:"密码",prop:"password"}},[n("el-input",{attrs:{type:"password"},model:{value:e.dataSource.password,callback:function(t){e.$set(e.dataSource,"password",t)},expression:"dataSource.password"}})],1)],1)],1)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-scrollbar",[n("div",{staticClass:"profile-template"},[n("el-collapse",e._l(e.profileData.profile.shards,function(t){return n("el-collapse-item",{key:t.id,attrs:{name:t.id}},[n("template",{slot:"title"},[n("span",{staticStyle:{"font-weight":"bold","font-size":"14px"}},[e._v(e._s(t.id.replace(/(\[.*\])(\[.*\])(\[.*\])/g,"$1$3")))]),e._v(" "),n("span",{staticClass:"pull-right",staticStyle:{"margin-right":"10px"}},[e._v(e._s(t.totalTime)+"ms")])]),e._v(" "),n("div",{staticClass:"profile-tree"},[n("div",{staticClass:"profile-tree-th"},[n("span",{staticStyle:{"margin-left":"20px"}},[e._v("Type and description")]),e._v(" "),n("span",{staticClass:"pull-right",staticStyle:{"margin-right":"20px"}},[e._v("Time")])]),e._v(" "),n("el-tree",{attrs:{data:t.searches[0].query,props:e.defaultProps,"render-content":e.renderContent}})],1)],2)}),1)],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"index-info"},[n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.indexInfoTitle,size:"large","before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isIndexInfoVisible,callback:function(t){e.isIndexInfoVisible=t},expression:"isIndexInfoVisible"}},[n("el-form",{ref:"indexInfo",attrs:{model:e.indexInfo,rules:e.rules,"label-width":"135px"}},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:11}},[n("el-form-item",{attrs:{prop:"indexName",label:"索引名",required:""}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.indexInfo.indexName,callback:function(t){e.$set(e.indexInfo,"indexName",t)},expression:"indexInfo.indexName"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:10}},[n("el-form-item",{attrs:{label:"所属集群",prop:"clusterId"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{clearable:""},model:{value:e.indexInfo.clusterId,callback:function(t){e.$set(e.indexInfo,"clusterId",t)},expression:"indexInfo.clusterId"}},e._l(e.clusters,function(t){return n("el-option-group",{key:t.label,attrs:{label:t.label}},e._l(t.options,function(e){return n("el-option",{key:e.id,attrs:{label:e.clusterId,value:e.clusterId}})}),1)}),1)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:21}},[n("el-form-item",{attrs:{label:"描述",prop:"description"}},[n("el-input",{attrs:{type:"textarea"},model:{value:e.indexInfo.description,callback:function(t){e.$set(e.indexInfo,"description",t)},expression:"indexInfo.description"}})],1)],1)],1)],1),e._v(" "),n("index-data-sources",{ref:"dataSources",attrs:{"data-sources":e.indexInfo.dataSourceList,"index-operation":e.indexOperation,"show-import-object":e.showImportObject,"index-id":e.indexInfo.indexId}}),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitIndexInfo()}}},[e._v("保存")])],1)],1),e._v(" "),e.showImportObject.show?n("div",[n("datasource-import-dialog",{on:{"ds-import-success":e.dsImportSuccess,"close-ds-import-dialog":e.closeDsImportDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",{attrs:{to:{name:"cluster_manage"}}},[n("i",{staticClass:"fa fa-home"}),e._v("ES集群管理")]),e._v(" "),n("el-breadcrumb-item",[e._v("ES集群重启")]),e._v(" "),n("el-breadcrumb-item",[e._v(e._s(e.clusterId))])],1)],1),e._v(" "),n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-button",{on:{click:e.resetClusterSettings}},[n("i",{staticClass:"fa fa-repeat"}),e._v("恢复集群默认设置")])],1),e._v(" "),n("div",{staticClass:"pull-right"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{staticClass:"filter-search"},[n("el-button",{on:{click:e.init}},[n("i",{staticClass:"fa fa-refresh"}),e._v("刷新集群信息")])],1)],1)],1)]),e._v(" "),n("div",{staticClass:"cluster_restart_setting"},[n("el-row",{attrs:{gutter:6}},e._l(e.clusterSettingsArray,function(t,i){return n("el-col",{key:i,attrs:{span:6}},[n("Panel",{attrs:{type:e.clusterStateTag[e.clusterHealth]}},[n("div",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(t.key))]),e._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},["index.blocks.write"===t.key?n("el-popover",{attrs:{trigger:"hover",placement:"right"}},[""!==t.value?n("div",{staticStyle:{width:"600px"}},[n("el-row",{attrs:{gutter:10}},e._l(e.$array.strToArray(t.value),function(t,i){return n("el-col",{key:i,attrs:{span:8}},[e._v(e._s(t))])}),1)],1):n("div",[e._v("暂无数据")]),e._v(" "),n("el-button",{attrs:{slot:"reference",type:"text"},slot:"reference"},[e._v("查看")])],1):n("div",[e._v(e._s(t.value||"-"))])],1)])],1)}),1)],1),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.nodeRestartList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{prop:"nodeName",label:"节点名称"}}),e._v(" "),n("el-table-column",{attrs:{prop:"nodeIp",label:"节点IP"}}),e._v(" "),n("el-table-column",{attrs:{prop:"indices",label:"分片分布",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-popover",{attrs:{trigger:"hover",placement:"right",disabled:""===t.row.indices}},[t.row.indices?n("div",{staticStyle:{width:"600px"}},[n("el-row",{attrs:{gutter:10}},e._l(e.$array.strToArray(t.row.indices),function(t,i){return n("el-col",{key:i,attrs:{span:8}},[e._v(e._s(t))])}),1)],1):n("div",[e._v("暂无分片")]),e._v(" "),n("el-button",{attrs:{slot:"reference",type:"text",size:"small"},slot:"reference"},[n("i",{staticClass:"fa fa-file-o"})])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"nodeState",label:"节点状态",width:"100px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:e.noteStateTag[t.row.nodeState]}},[e._v(e._s(e.noteStateMap[t.row.nodeState]))])]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"nodeTime",label:"状态时间"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.nodeTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"lastStartupTime",label:"最近启动时间"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.isNew?n("span",{staticClass:"text-danger"},[e._v("新 ")]):e._e(),e._v(e._s(e._f("formatDate")(t.row.lastStartupTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"onlyMaster",label:"OnlyMaster"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:t.row.onlyMaster?"success":"danger","close-transition":""}},[e._v(e._s(e.onlyMasterMap[t.row.onlyMaster]))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-button",{attrs:{size:"small",type:"success",disabled:!t.row.healthy||"could_be_restart"!==e.isEnableRestart},on:{click:function(n){return e.handleRestart(t.row)}}},[e._v("重启")])]}}])})],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{staticStyle:{width:"100%",height:"200px"},attrs:{id:e.id}})])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.templateImportTitle,"before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isTemplateImportVisible,callback:function(t){e.isTemplateImportVisible=t},expression:"isTemplateImportVisible"}},[n("div",{staticStyle:{margin:"20px 15px"}},[n("el-radio",{attrs:{label:"localUpload"},model:{value:e.importWay,callback:function(t){e.importWay=t},expression:"importWay"}},[e._v("本地上传")]),e._v(" "),n("el-radio",{attrs:{label:"otherIndexTemp"},model:{value:e.importWay,callback:function(t){e.importWay=t},expression:"importWay"}},[e._v("导入其他索引模板")])],1),e._v(" "),"localUpload"===e.importWay?n("el-form",{ref:"importInfo",attrs:{model:e.importInfo,rules:e.rules,"label-width":"90px"}},[n("el-row",[n("el-col",{attrs:{span:18}},[n("div",{staticClass:"template-import-upload"},[n("el-upload",{ref:"upload",attrs:{action:e.templateImportUrl,"auto-upload":!1,data:e.importInfo,multiple:!1,"file-list":e.fileList,"on-remove":e.handleRemove,"on-error":e.handleError,"on-success":e.handleSuccess}},[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.handleUpload}},[e._v("点击上传")]),e._v(" "),n("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[e._v("请上传zip文件,且不超过10Mb")])],1)],1)])],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:18}},[n("el-form-item",{attrs:{label:"变更描述",prop:"updateDesc"}},[n("el-input",{model:{value:e.importInfo.updateDesc,callback:function(t){e.$set(e.importInfo,"updateDesc",t)},expression:"importInfo.updateDesc"}})],1)],1)],1)],1):e._e(),e._v(" "),"otherIndexTemp"===e.importWay?n("div",{staticStyle:{margin:"15px"}},[n("el-select",{staticStyle:{width:"100%","margin-bottom":"10px"},attrs:{filterable:"",placeholder:"请选择索引"},on:{change:e.indexChange},model:{value:e.indexSelected,callback:function(t){e.indexSelected=t},expression:"indexSelected"}},e._l(e.indexAllList,function(t){return n("el-option",{key:t.id,attrs:{label:t.indexName,value:t.id}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.indexName))]),e._v(" "),n("span",{staticStyle:{float:"right",color:"#B8B8B8","font-size":"13px"}},[e._v(e._s(t.clusterName))])])}),1),e._v(" "),n("el-transfer",{attrs:{filterable:"",data:e.importTemplateList,props:{key:"id",label:"templateName"},titles:["可选模板","已选模板"]},model:{value:e.templateSelected,callback:function(t){e.templateSelected=t},expression:"templateSelected"}})],1):e._e(),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:e.submitImportTemplate}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"my-tab-content",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"monitor-top"},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.gaugeMetricData,border:""}},[n("el-table-column",{attrs:{prop:"nodeCount",label:"Nodes"}}),e._v(" "),n("el-table-column",{attrs:{prop:"indexCount",label:"Indices"}}),e._v(" "),n("el-table-column",{attrs:{label:"Memory"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.bytesToSize(t.row.used_memory_byte))+" / "+e._s(e.bytesToSize(t.row.total_memory_byte))+"\n ")]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"totalShardCount",label:"Total Shards"}}),e._v(" "),n("el-table-column",{attrs:{prop:"unassignedShardCount",label:"Unassigned Shards",width:"150px"}}),e._v(" "),n("el-table-column",{attrs:{prop:"documentCount",label:"Documents"}}),e._v(" "),n("el-table-column",{attrs:{label:"Data"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.bytesToSize(t.row.document_store_byte))+"\n ")]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"max_uptime",label:"Uptime"}}),e._v(" "),n("el-table-column",{attrs:{prop:"version",label:"Version"}}),e._v(" "),n("el-table-column",{attrs:{prop:"health",label:"Health"}})],1)],1),e._v(" "),n("div",[n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Indexing Rate("+e.indexingRateInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexingRate","option-info":e.indexingRateInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Search Rate("+e.searchRateInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"searchRate","option-info":e.searchRateInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Indexing Latentcy("+e.indexingLatencyInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexingLatency","option-info":e.indexingLatencyInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Search Latentcy("+e.searchLatencyInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"searchLatency","option-info":e.searchLatencyInfo}})],1)])],1)],1)],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-container"},[n("Navbar"),e._v(" "),n("router-view"),e._v(" "),n("Version-footer")],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"token-detail",attrs:{"element-loading-text":"请稍等···"}},[n("el-row",{staticClass:"mrg-top-15",attrs:{gutter:20}},[n("el-col",{attrs:{span:10}},[n("div",[n("div",{staticClass:"token-title"},[e._v("\n 当前选择Token : "),n("span",{staticClass:"token-name-span"},[e._v(e._s(e.tokenInfo.title))]),n("br")])]),e._v(" "),n("div",{staticClass:"token-cluster"},[n("div",{staticClass:"mrg-top-15"},[n("span",{staticClass:"title-span"},[e._v("集群列表"),n("small",{staticStyle:{color:"gray"}},[e._v("(一个token只能绑定一个集群)")])]),e._v(" "),n("el-tree",{staticClass:"token-cluster-tree",style:e.clusterTokenHeight,attrs:{data:e.clusterList,"render-content":e.renderCluster,"highlight-current":"","node-key":"id"},on:{"node-click":e.handleNodeClick}})],1)]),e._v(" "),n("div",{staticClass:"token-pool"},[n("div",{staticClass:"mrg-top-15"},[n("span",{staticClass:"title-span"},[e._v("代理集群节点集"),n("small",{staticStyle:{color:"gray"}},[e._v("(默认为整个集群,不可取消)")])]),e._v(" "),n("el-tree",{ref:"psPoolTree",staticClass:"token-cluster-tree",style:e.clusterPoolHeight,attrs:{data:e.psClusterList,"render-content":e.renderPsCluster,"show-checkbox":"","highlight-current":"","default-expand-all":"","check-strictly":"","default-checked-keys":e.tokenClusterInfo.checkedPools,"node-key":"id"},on:{"check-change":e.handlePsNodeClick}})],1)])]),e._v(" "),n("el-col",{attrs:{span:14}},[n("token-index",{attrs:{"token-cluster-info":e.tokenClusterInfo,"cluster-tree-height":e.clusterIndexHeight},on:{"update-token-cluster":e.updateTokenCluster}})],1)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",[n("div",{staticClass:"tm-info"},[n("div",{staticClass:"tm-item"},[e._t("title")],2),e._v(" "),e._m(0),e._v(" "),n("time",{staticClass:"tm-datetime"},[e._t("date")],2)]),e._v(" "),n("div",{staticClass:"tm-box"},[e._t("content")],2)])},staticRenderFns:[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"tm-icon"},[n("i",{staticClass:"el-icon-time"})])}]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",{attrs:{to:{name:"permission_manage"}}},[n("i",{staticClass:"fa fa-home"}),e._v("权限管理")])],1)],1),e._v(" "),n("div",{staticClass:"page-tab"},[n("el-tabs",{on:{"tab-click":e.onTabClick},model:{value:e.activeTab,callback:function(t){e.activeTab=t},expression:"activeTab"}},[n("el-tab-pane",{attrs:{name:"user_manage"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-user"}),e._v("用户管理")])])],1),e._v(" "),n("router-view")],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.pluginInfoTitle,visible:e.isVisible,"before-close":e.closeDialog,"element-loading-text":"请稍等···"},on:{"update:visible":function(t){e.isVisible=t}}},[n("el-form",{ref:"pluginInfo",attrs:{model:e.pluginInfo,rules:e.rules,"label-width":"120px"}},[n("div",[n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"插件名称",prop:"pluginName"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.pluginInfo.pluginName,callback:function(t){e.$set(e.pluginInfo,"pluginName",t)},expression:"pluginInfo.pluginName"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{prop:"clusterId",label:"所属集群"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{disabled:e.isEditable},model:{value:e.pluginInfo.clusterId,callback:function(t){e.$set(e.pluginInfo,"clusterId",t)},expression:"pluginInfo.clusterId"}},e._l(e.clusters,function(e){return n("el-option",{key:e.clusterId,attrs:{label:e.description,value:e.clusterId}})}),1)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"插件版本",prop:"pluginVersion"}},[n("el-input",{model:{value:e.pluginInfo.pluginVersion,callback:function(t){e.$set(e.pluginInfo,"pluginVersion",t)},expression:"pluginInfo.pluginVersion"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"插件类型",prop:"pluginType"}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.pluginInfo.pluginType,callback:function(t){e.$set(e.pluginInfo,"pluginType",t)},expression:"pluginInfo.pluginType"}},e._l(e.$option.pluginTypes,function(e){return n("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})}),1)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"路径",prop:"packagePath"}},[n("el-input",{attrs:{placeholder:"请上传插件包,获取包路径",disabled:!0},model:{value:e.pluginInfo.packagePath,callback:function(t){e.$set(e.pluginInfo,"packagePath",t)},expression:"pluginInfo.packagePath"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"变更描述",prop:"note"}},[n("el-input",{attrs:{type:"textarea"},model:{value:e.pluginInfo.note,callback:function(t){e.$set(e.pluginInfo,"note",t)},expression:"pluginInfo.note"}})],1)],1)],1),e._v(" "),n("div",{staticClass:"plugin-upload-warning"},[e._v('对于ES原生插件,需要通过"ES集群管理"->"重启"重启全部节点后才生效')]),e._v(" "),e.enableUpload?n("div",{staticClass:"plugin-upload"},[n("el-upload",{ref:"upload",attrs:{action:"/pallas/plugin/upgrade/fileUpload.json",data:e.uploadData,"auto-upload":!0,multiple:!1,"on-remove":e.handleRemove,"on-error":e.handleError,"on-success":e.handleSuccess}},[n("el-button",{attrs:{size:"small",type:"primary",icon:"upload"},on:{click:e.handleUpload}},[e._v("上传插件zip包")]),e._v(" "),n("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[e._v("请先上传插件zip文件,获取包路径")])],1)],1):n("div",{staticClass:"plugin-upload-warning"},[e._v("*上传插件包前,请先输入插件名称,所属集群以及插件版本")])],1)]),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.handleSubmit()}}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"version-info-dialog"},[n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:"索引预热","before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.visible,callback:function(t){e.visible=t},expression:"visible"}},[n("el-form",{ref:"formInfo",attrs:{model:e.formInfo,rules:e.rules,"label-width":"100px"}},[n("div",{staticClass:"label-title"},[n("span",{staticClass:"span-title"},[n("i",{staticClass:"fa fa-th-large"}),e._v("最近预热情况")])]),e._v(" "),n("div",{staticClass:"label-content"},[n("div",{staticStyle:{"margin-bottom":"10px"}},[n("el-button",{attrs:{size:"small"},on:{click:function(t){return e.init()}}},[n("i",{staticClass:"fa fa-refresh"}),e._v("刷新")]),e._v(" "),"doing"===e.rampupInfo.state?n("el-button",{attrs:{size:"small"},on:{click:function(t){return e.handleStop()}}},[n("i",{staticClass:"fa fa-stop-circle"}),e._v("停止")]):e._e(),e._v(" "),n("preheading-monitor",{attrs:{"cluster-name":e.rampupInfo.clusterName,"full-index-name":e.rampupInfo.fullIndexName}})],1),e._v(" "),n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"总预热条数:"}},[n("span",[e._v(e._s(e.rampupInfo.rampupNow))])])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"当前状态:"}},[n("span",{class:e.rampupStatusTypeMap[e.rampupInfo.state]},[e._v(e._s(e.rampupStatusMap[e.rampupInfo.state]))])])],1)],1),e._v(" "),n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"开始时间:"}},[n("span",[e._v(e._s(e._f("formatDate")(e.rampupInfo.beginTime)))])])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"结束时间:"}},[n("span",[e._v(e._s(e._f("formatDate")(e.rampupInfo.endTime)))])])],1)],1),e._v(" "),n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"采样率:"}},[n("span",[e._v(e._s(e.rampupInfo.sampleRate))])])],1)],1)],1),e._v(" "),n("div",{staticClass:"label-title"},[n("span",{staticClass:"span-title"},[n("i",{staticClass:"fa fa-th-large"}),e._v("开始预热")])]),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{span:11}},[n("el-form-item",{attrs:{label:"预热条数",prop:"rampupTarget"}},[n("el-input",{attrs:{disabled:"doing"===e.rampupInfo.state},model:{value:e.formInfo.rampupTarget,callback:function(t){e.$set(e.formInfo,"rampupTarget",e._n(t))},expression:"formInfo.rampupTarget"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:11}},[n("el-form-item",{attrs:{label:"截止时间",prop:"endTime"}},[n("el-date-picker",{attrs:{clearable:"",disabled:"doing"===e.rampupInfo.state,type:"datetime",placeholder:"选择日期时间"},model:{value:e.formInfo.endTime,callback:function(t){e.$set(e.formInfo,"endTime",t)},expression:"formInfo.endTime"}})],1)],1)],1),e._v(" "),n("el-row",{staticStyle:{"padding-top":"10px"},attrs:{gutter:10}},[n("el-col",{attrs:{span:11}},[n("el-form-item",{attrs:{label:"采样率"}},[n("el-input-number",{attrs:{min:1,max:100},model:{value:e.formInfo.sampleRate,callback:function(t){e.$set(e.formInfo,"sampleRate",t)},expression:"formInfo.sampleRate"}})],1)],1)],1),e._v(" "),n("div",{staticStyle:{"margin-top":"20px","text-align":"center"}},["doing"!==e.rampupInfo.state?n("el-button",{attrs:{disabled:e.preheadingInfo.isUsed,size:"small",title:e.preheadingInfo.isUsed?"该版本已启用":""},on:{click:function(t){return e.startRampup()}}},[n("i",{staticClass:"fa fa-caret-square-o-right"}),e._v("开始预热")]):e._e()],1)],1)])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"schema-info-dialog"},[n("el-dialog",{attrs:{title:e.childTitle,size:"large","show-close":!1,"close-on-click-modal":!1,"close-on-press-escape":!1},on:{open:e.openDialog},model:{value:e.isSchemaMultiFieldsVisible,callback:function(t){e.isSchemaMultiFieldsVisible=t},expression:"isSchemaMultiFieldsVisible"}},[n("div",{staticClass:"schema-content"},[e.isEditable?e._e():n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("新增字段")])],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.multiFieldInfo,border:""}},[n("el-table-column",{attrs:{label:"字段名"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-input",{attrs:{disabled:e.isEditable},model:{value:t.row.fieldName,callback:function(n){e.$set(t.row,"fieldName",n)},expression:"scope.row.fieldName"}})]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"ES类型"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("select",{directives:[{name:"model",rawName:"v-model",value:t.row.fieldType,expression:"scope.row.fieldType"}],attrs:{size:"small",disabled:e.isEditable},on:{change:function(n){var i=Array.prototype.filter.call(n.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.$set(t.row,"fieldType",n.target.multiple?i:i[0])}}},e._l(e.fieldTypes,function(t){return n("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.label))])}),0)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"多值/单值"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("select",{directives:[{name:"model",rawName:"v-model",value:t.row.multi,expression:"scope.row.multi"}],attrs:{size:"small",disabled:e.isEditable},on:{change:function(n){var i=Array.prototype.filter.call(n.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.$set(t.row,"multi",n.target.multiple?i:i[0])}}},[n("option",{attrs:{label:"单值"},domProps:{value:!1}},[e._v("单值")]),e._v(" "),n("option",{attrs:{label:"多值"},domProps:{value:!0}},[e._v("多值")])])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"查询关键字"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-checkbox",{attrs:{disabled:e.isEditable},model:{value:t.row.search,callback:function(n){e.$set(t.row,"search",n)},expression:"scope.row.search"}},[e._v("是否查询")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"排序或聚合"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-checkbox",{attrs:{disabled:e.isEditable},model:{value:t.row.docValue,callback:function(n){e.$set(t.row,"docValue",n)},expression:"scope.row.docValue"}},[e._v("用于排序或聚合")])]}}])}),e._v(" "),e.isEditable?e._e():n("el-table-column",{attrs:{label:"操作","min-width":"60"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-button",{attrs:{size:"small",type:"danger"},on:{click:function(n){return e.handleDelete(t.row)}}},[e._v("删除")])]}}],null,!1,3393104428)})],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.cancelBtn()}}},[e._v("取消")]),e._v(" "),e.isEditable?e._e():n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.confirmBtn()}}},[e._v("确定")])],1)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"data-source-content"},[n("div",{staticClass:"data-source-add"},[n("el-button",{attrs:{size:"mini",icon:"plus"},on:{click:e.addDataSource}},[e._v("新增数据源")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"warning"},on:{click:e.importDs}},[n("i",{staticClass:"fa fa-arrow-circle-o-down"}),e._v("导入Mysql数据源")]),e._v(" "),n("el-button",{directives:[{name:"show",rawName:"v-show",value:e.dataSources.length>0&&""!=e.dataSources[0].ip&&e.indexId,expression:"dataSources.length > 0 && dataSources[0].ip != '' && indexId "}],attrs:{size:"mini",type:"warning"},on:{click:e.exportDs}},[n("i",{staticClass:"fa fa-arrow-circle-o-up"}),e._v("导出Mysql数据源")])],1),e._v(" "),e._l(e.dataSources,function(t,i){return n("el-collapse",{key:i,model:{value:i,callback:function(e){i=e},expression:"index"}},[n("el-collapse-item",{attrs:{name:i}},[n("template",{slot:"title"},[n("span",{staticStyle:{"margin-right":"10px"}},[e._v("数据源 "+e._s(t.ip)+":"+e._s(t.port)+" ("+e._s(t.dbname)+" - "+e._s(t.tableName)+")")]),e._v(" "),n("el-button",{attrs:{type:"danger",size:"mini",icon:"minus"},on:{click:function(n){return n.stopPropagation(),e.deleteDataSource(t)}}}),e._v(" "),n("span",{staticStyle:{color:"red","margin-left":"10px"}},[e._v(e._s(t.errorMessage))])],1),e._v(" "),n("index-data-source-item",{ref:"dataSourceItem",refInFor:!0,attrs:{"index-operation":e.indexOperation,"data-source":t},on:{"db-validate":e.dbValidate}})],2)],1)})],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{title:e.schemaImportTitle,"before-close":e.handleClose},model:{value:e.isSchemaImportVisible,callback:function(t){e.isSchemaImportVisible=t},expression:"isSchemaImportVisible"}},[n("el-form",[n("el-row",[n("el-col",{attrs:{span:18}},[n("el-form-item",[n("el-upload",{ref:"upload",attrs:{action:e.schemaImportUrl,"auto-upload":!1,multiple:!1,"file-list":e.fileList,"on-remove":e.handleRemove,"on-error":e.handleError,"on-success":e.handleSuccess}},[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.handleUpload}},[e._v("点击上传")]),e._v(" "),n("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[e._v("请上传json文件,且不超过10Mb")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.handleClose()}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:e.submitImportSchema}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"template-test"},[n("div",{staticClass:"template-test-content"},[n("div",{staticClass:"template-test-head"},[e._v("上传数据源")]),e._v(" "),n("div",{staticClass:"template-test-body"},[n("template-test-data-source",{attrs:{"index-id":e.indexId,"template-name":e.templateName,"data-source":e.dataSource}}),e._v(" "),n("template-test-upload",{attrs:{"add-data-source":e.addDataSource,"data-source":e.dataSource},on:{"template-test-upload-success":e.templateTestUploadSuccess}})],1),e._v(" "),e._m(0)]),e._v(" "),n("template-test-params",{attrs:{"index-id":e.indexId,"template-name":e.templateName,"params-info":e.paramsInfo,"data-source":e.dataSource,"tem-panel-height":e.temPanelHeight}})],1)},staticRenderFns:[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"template-test-tips"},[n("span",[e._v("注意:若文件包含多列,可以定义多个参数名,参数名之间用分号隔开,例如k1;k2")])])}]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"target-group-item"},[n("div",{staticClass:"target-group-header"},[n("div",{staticClass:"pull-left"},[n("div",[e.editable?n("el-input",{staticStyle:{width:"100px"},attrs:{size:"mini"},model:{value:e.name,callback:function(t){e.name=t},expression:"name"}}):n("span",{staticClass:"title"},[e._v(e._s(e.name))]),e._v(" "),1===e.targetGroupItemInfo.clusterLevel?n("el-tag",{attrs:{type:"warning"}},[e._v("集群级别")]):e._e(),e._v(" "),2===e.targetGroupItemInfo.clusterLevel?n("el-tag",{attrs:{type:"warning"}},[e._v("分片动态绑定")]):e._e()],1)]),e._v(" "),e.privilege?n("div",{staticClass:"pull-right"},[n("el-button",{directives:[{name:"show",rawName:"v-show",value:e.editable,expression:"editable"}],attrs:{size:"mini",type:"success"},on:{click:function(t){return e.handleSave()}}},[e._v("保存")]),e._v(" "),n("el-button",{directives:[{name:"show",rawName:"v-show",value:!e.editable,expression:"!editable"}],attrs:{size:"mini"},on:{click:function(t){return e.handleEdit()}}},[e._v("编辑")]),e._v(" "),n("el-button",{directives:[{name:"show",rawName:"v-show",value:e.editable,expression:"editable"}],attrs:{size:"mini"},on:{click:function(t){return e.handleCancel()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete()}}},[e._v("删除")])],1):e._e()]),e._v(" "),n("div",{staticClass:"target-group-content"},[n("el-tree",{ref:"mytree",attrs:{data:e.myTree,"show-checkbox":"","node-key":"name","default-expand-all":e.isDefaultExpand,"default-checked-keys":e.treeCheckedKeys,"render-content":e.renderContent,props:e.defaultProps},on:{"check-change":e.checkChange}})],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.dataSource,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"数据源参数"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-popover",{attrs:{trigger:"hover",placement:"top","popper-class":"template-test-popper"}},[n("div",{staticClass:"pull-left"},[n("el-input",{model:{value:t.row.editParamNameDef,callback:function(n){e.$set(t.row,"editParamNameDef",n)},expression:"scope.row.editParamNameDef"}})],1),e._v(" "),n("div",{staticClass:"popper-button"},[n("el-button",{attrs:{size:"small"},on:{click:function(n){return e.handleSave(t.row)}}},[e._v("保存")])],1),e._v(" "),n("div",{attrs:{slot:"reference"},slot:"reference"},[e._v("\n "+e._s(t.row.paramNameDef)+"\n ")])])]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"fileName",label:"数据源文件"}}),e._v(" "),n("el-table-column",{attrs:{label:"操作"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-button",{attrs:{size:"small",type:"danger"},on:{click:function(n){return e.handleDelete(t.row)}}},[e._v("删除")])]}}])})],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("div",{staticClass:"content"},[n("el-button",{attrs:{type:"primary",icon:"plus",disabled:!e.isAllPrivilege},on:{click:e.handleAdd}},[e._v("新增规则")])],1),e._v(" "),n("div",{staticClass:"content"},[[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.flowRecordConfigList,border:"","highlight-current-row":"","element-loading-text":"请稍等···"},on:{"cell-click":e.cellClick}},[n("el-table-column",{attrs:{label:"规则id",prop:"id",width:"70px"}}),e._v(" "),n("el-table-column",{attrs:{label:"目标模板",prop:"template.templateName","min-width":"110"},scopedSlots:e._u([{key:"default",fn:function(t){return[null===t.row.template?n("div",[e._v("全部")]):n("div",[e._v(e._s(t.row.template.templateName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"采集开始时间",prop:"startTime","min-width":"110"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.startTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"采集结束时间",prop:"endTime","min-width":"110"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.endTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"抽样系数",prop:"sampleRate","min-width":"60"}}),e._v(" "),n("el-table-column",{attrs:{label:"目标采集数",prop:"limit","min-width":"70"}}),e._v(" "),n("el-table-column",{attrs:{label:"最近更新人","min-width":"110"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.createUser||"-"))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"最近更新时间",prop:"endTime","min-width":"110"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.updateTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",prop:"isUsed","min-width":"50"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:t.row.isEnable?"success":"danger","close-transition":""}},[e._v(e._s(e._f("translateIsEnable")(t.row.isEnable||!1)))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-dropdown",{attrs:{trigger:"click"}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n 操作"),n("i",{staticClass:"el-icon-caret-bottom el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{staticClass:"dropdown-operation",attrs:{slot:"dropdown"},slot:"dropdown"},[e.isAllPrivilege?n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:!t.row.isEnable,expression:"!scope.row.isEnable"}]},[n("a",{on:{click:function(n){return e.enableConfig(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-hand-o-right"}),e._v("启用")])])]):e._e(),e._v(" "),e.isAllPrivilege?n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:t.row.isEnable,expression:"scope.row.isEnable"}]},[n("a",{on:{click:function(n){return e.disableConfig(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-stop-circle-o"}),e._v("禁用")])])]):e._e(),e._v(" "),e.isAllPrivilege?n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:!t.row.isEnable,expression:"!scope.row.isEnable"}]},[n("a",{on:{click:function(n){return e.handleEdit(t.row,"edit")}}},[n("span",[n("i",{staticClass:"fa fa-pencil-square-o"}),e._v("编辑")])])]):e._e(),e._v(" "),e.isAllPrivilege?n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:!t.row.isEnable,expression:"!scope.row.isEnable"}]},[n("a",{on:{click:function(n){return e.handleDelete(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-trash"}),e._v("删除")])])]):e._e()],1)],1)]}}])})],1)],e._v(" "),0!=e.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next",total:e.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e(),e._v(" "),e.isConfigInfoVisible?n("div",[n("config-info-dialog",{attrs:{"config-operation":e.configOperation,"config-info-title":e.configInfoTitle,"config-info":e.configInfo,templates:e.templates},on:{"close-dialog":e.closeDialog,"operate-close-dialog":e.operateCloseDialog}})],1):e._e()],2)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{"before-close":e.handleClose},model:{value:e.isVisible,callback:function(t){e.isVisible=t},expression:"isVisible"}},[n("span",{staticClass:"el-dialog__title",attrs:{slot:"title"},slot:"title"},[e._v("模板差异对比( "),n("span",{staticClass:"del"},[e._v("- 删除")]),e._v(" / "),n("span",{staticClass:"ins"},[e._v("+ 增加")]),e._v(" )")]),e._v(" "),n("div",{staticClass:"view-content"},[n("el-scrollbar",[n("pre",{directives:[{name:"line-diff",rawName:"v-line-diff",value:e.jsonDiffInfo,expression:"jsonDiffInfo"}]})])],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.handleClose()}}},[e._v("取消")]),e._v(" "),e.isOverwrite?n("el-button",{attrs:{type:"confirm"},on:{click:e.handleOverwrite}},[e._v("覆盖当前版本")]):e._e()],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"footer"},[n("p",[e._v(e._s(e.versionNumber))])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isAllPrivilege,expression:"isAllPrivilege"}],staticClass:"content"},[n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("新增")])],1),e._v(" "),n("div",{staticClass:"content"},[[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.cronDeleteList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"id",prop:"id",width:"40px"}}),e._v(" "),n("el-table-column",{attrs:{label:"版本id",prop:"versionId",width:"100px"}}),e._v(" "),n("el-table-column",{attrs:{label:"scroll_size",prop:"scrollSize",width:"100px"}}),e._v(" "),n("el-table-column",{attrs:{label:"cron表达式",prop:"cron",width:"140px"}}),e._v(" "),n("el-table-column",{attrs:{label:"更新时间",prop:"updateTime","min-width":"100"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.updateTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"是否启用",prop:"isUsed",width:"100px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:t.row.isSyn?"success":"danger","close-transition":""}},[e._v(e._s(t.row.isSyn))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"300px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tooltip",{attrs:{content:"dsl",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.getDsl(t.row)}}},[n("i",{staticClass:"fa fa-file-code-o"})])],1),e._v(" "),e.isAllPrivilege?n("el-tooltip",{attrs:{content:"执行查询",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.executeSearchDsl(t.row)}}},[n("i",{staticClass:"fa fa-search"})])],1):e._e(),e._v(" "),e.isAllPrivilege?n("el-tooltip",{directives:[{name:"show",rawName:"v-show",value:t.row.isSyn,expression:"scope.row.isSyn"}],attrs:{content:"停用",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleDisableAndDeleteJob(t.row)}}},[n("i",{staticClass:"fa fa-level-down"})])],1):e._e(),e._v(" "),e.isAllPrivilege?n("el-tooltip",{directives:[{name:"show",rawName:"v-show",value:!t.row.isSyn,expression:"!scope.row.isSyn"}],attrs:{content:"启用",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleCreateAndEnableJob(t.row)}}},[n("i",{staticClass:"fa fa-level-up"})])],1):e._e(),e._v(" "),e.isAllPrivilege?n("el-tooltip",{directives:[{name:"show",rawName:"v-show",value:t.row.isSyn,expression:"scope.row.isSyn"}],attrs:{content:"立即执行",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleRunAtOnce(t.row)}}},[n("i",{staticClass:"fa fa-play"})])],1):e._e(),e._v(" "),e.isAllPrivilege?n("el-tooltip",{directives:[{name:"show",rawName:"v-show",value:!t.row.isSyn,expression:"!scope.row.isSyn"}],attrs:{content:"编辑",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleEdit(t.row)}}},[n("i",{staticClass:"fa fa-pencil-square-o"})])],1):e._e(),e._v(" "),e.isAllPrivilege?n("el-tooltip",{directives:[{name:"show",rawName:"v-show",value:!t.row.isSyn,expression:"!scope.row.isSyn"}],attrs:{content:"删除",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleDelete(t.row)}}},[n("i",{staticClass:"fa fa-trash"})])],1):e._e()]}}])})],1)]],2),e._v(" "),e.showDsl?n("div",[n("json-content-dialog",{attrs:{title:e.viewInfoTitle,content:e.viewInfo},on:{"close-dialog":e.closeDialog}})],1):e._e(),e._v(" "),e.isCronDeleteVisible?n("div",[n("crondelete-dialog",{attrs:{"index-id":e.indexId,"crondelete-operation":e.crondeleteOperation,"crondelete-title":e.crondeleteTitle,"crondelete-info":e.crondeleteInfo},on:{"close-dialog":e.closeDialog,"operate-close-dialog":e.operateCloseDialog}})],1):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"my-tab-content",attrs:{"element-loading-text":"请稍等···"}},[n("el-collapse",{model:{value:e.activeNames,callback:function(t){e.activeNames=t},expression:"activeNames"}},[n("el-collapse-item",{attrs:{name:"1","v-show":!0}},[n("template",{slot:"title"},[e._v("\n 索引级别配置\n ")]),e._v(" "),n("div",{staticClass:"data-table-filter"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:"超时时间(毫秒,需>=50ms)"}},[n("el-input-number",{attrs:{placeholder:"超时时间(毫秒)",min:0},model:{value:e.indexConfigInfo.timeout,callback:function(t){e.$set(e.indexConfigInfo,"timeout",t)},expression:"indexConfigInfo.timeout"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"重试次数(上限1次)"}},[n("el-input-number",{attrs:{placeholder:"重试次数",min:0,max:1},model:{value:e.indexConfigInfo.retry,callback:function(t){e.$set(e.indexConfigInfo,"retry",t)},expression:"indexConfigInfo.retry"}})],1),e._v(" "),n("el-form-item",{attrs:{label:"慢查询阈值(毫秒)"}},[n("el-input-number",{attrs:{placeholder:"慢查询阈值(毫秒)",min:0},model:{value:e.indexConfigInfo.slowerThan,callback:function(t){e.$set(e.indexConfigInfo,"slowerThan",t)},expression:"indexConfigInfo.slowerThan"}})],1),e._v(" "),n("el-form-item",[n("el-button",{attrs:{type:"primary",disabled:!e.indexConfigInfo.hasPrivilege,title:e.indexConfigInfo.hasPrivilege?"":"索引权限不足"},on:{click:e.handleUpdate}},[n("i",{staticClass:"fa fa-refresh"}),e._v("更新\n ")])],1)],1)],1)],2),e._v(" "),n("el-collapse-item",{attrs:{title:"模板级别配置",name:"2"}},[n("template",{slot:"title"},[e._v("\n 模板级别配置\n "),n("span",{staticStyle:{color:"#ddd"}},[e._v("(若模板超时时间为0毫秒,则以当前索引的超时时间和重试为准。)")])]),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.templateList,border:""}},[n("el-table-column",{attrs:{label:"模板名称","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.templateName))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"超时时间(毫秒,需>=50ms)"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-input-number",{attrs:{min:0},model:{value:t.row.timeout,callback:function(n){e.$set(t.row,"timeout",n)},expression:"scope.row.timeout"}})]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"重试次数(上限1次)"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-input-number",{attrs:{min:0,max:1},model:{value:t.row.retry,callback:function(n){e.$set(t.row,"retry",n)},expression:"scope.row.retry"}})]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"120px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-button",{attrs:{type:"primary",disabled:!e.allPrivilege,title:e.allPrivilege?"":"权限不足"},on:{click:function(n){return e.handleTemplateUpdate(t.row)}}},[n("i",{staticClass:"fa fa-refresh"}),e._v("更新\n ")])]}}])})],1)],2)],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"version-info-dialog"},[n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{size:"large","before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isVersionInfoVisible,callback:function(t){e.isVersionInfoVisible=t},expression:"isVersionInfoVisible"}},[n("span",{attrs:{slot:"title"},slot:"title"},[n("span",[e._v(e._s(e.versionInfoTitle))])]),e._v(" "),n("el-form",{ref:"versionInfo",attrs:{model:e.versionInfo,rules:e.rules,"label-position":"left"}},[n("el-tabs",{attrs:{value:"first"}},[n("el-tab-pane",{attrs:{label:"索引配置",name:"first"}},[n("div",{staticClass:"label-title"},[n("span",{staticClass:"span-title"},[n("i",{staticClass:"fa fa-th-large"}),e._v("分片路由属性")]),e._v(" "),e.isLogical?n("span",{staticStyle:{color:"#C8C8C8"}},[e._v("(所属集群:"+e._s(e.clusterArray.join())+")")]):e._e()]),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"分片数量",prop:"shardNum","label-width":"120px"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.versionInfo.shardNum,callback:function(t){e.$set(e.versionInfo,"shardNum",e._n(t))},expression:"versionInfo.shardNum"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"复制数量",prop:"replicationNum","label-width":"120px"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.versionInfo.replicationNum,callback:function(t){e.$set(e.versionInfo,"replicationNum",e._n(t))},expression:"versionInfo.replicationNum"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"ShardPerNode",prop:"totalShardsPerNode","label-width":"120px"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.versionInfo.totalShardsPerNode,callback:function(t){e.$set(e.versionInfo,"totalShardsPerNode",e._n(t))},expression:"versionInfo.totalShardsPerNode"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-content"},[e.isLogical?n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:24}},[n("el-form-item",{attrs:{label:"所属节点",prop:"nodes","label-width":"120px"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"",filterable:"","value-key":"name",placeholder:"请选择机器",disabled:e.isEditable},model:{value:e.versionInfo.nodes,callback:function(t){e.$set(e.versionInfo,"nodes",t)},expression:"versionInfo.nodes"}},e._l(e.clusterGroups,function(t){return n("el-option-group",{key:t.clusterId,attrs:{label:t.clusterId}},e._l(t.nodes,function(t){return n("el-option",{key:t.name,attrs:{label:t.name,value:t}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.name))]),e._v(" "),n("el-tooltip",{attrs:{placement:"right"}},[n("div",{attrs:{slot:"content"},slot:"content"},[t.indicis.length>0?n("div",{staticStyle:{width:"600px"}},e._l(t.indicis,function(t){return n("el-col",{key:t,attrs:{span:8}},[e._v(e._s(t))])}),1):n("div",[e._v("暂无索引")])]),e._v(" "),n("el-tag",{staticStyle:{float:"left","margin-left":"10px"}},[e._v(e._s(t.indicis.length))])],1)],1)}),1)}),1)],1)],1)],1):n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属集群",prop:"clusterId","label-width":"120px",required:""}},[n("el-select",{staticStyle:{width:"100%"},attrs:{placeholder:"请选择集群",disabled:e.isEditable},on:{change:e.clusterChange},model:{value:e.versionInfo.clusterId,callback:function(t){e.$set(e.versionInfo,"clusterId",t)},expression:"versionInfo.clusterId"}},e._l(e.clusters,function(e){return n("el-option",{key:e.id,attrs:{label:e.clusterId,value:e.id}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"所属节点",prop:"nodes","label-width":"120px"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"",filterable:"",placeholder:"请选择机器",disabled:e.isEditable},model:{value:e.versionInfo.nodes,callback:function(t){e.$set(e.versionInfo,"nodes",t)},expression:"versionInfo.nodes"}},e._l(e.clusterNodes,function(t){return n("el-option",{key:t.name,attrs:{label:t.name,value:t.name}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t.name))]),e._v(" "),n("el-tooltip",{attrs:{placement:"right"}},[n("div",{attrs:{slot:"content"},slot:"content"},[t.indicis.length>0?n("div",{staticStyle:{width:"600px"}},e._l(t.indicis,function(t){return n("el-col",{key:t,attrs:{span:8}},[e._v(e._s(t))])}),1):n("div",[e._v("暂无索引")])]),e._v(" "),n("el-tag",{staticStyle:{float:"left","margin-left":"10px"}},[e._v(e._s(t.indicis.length))])],1)],1)}),1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:e.routingKeyWidth}},[n("el-form-item",{attrs:{label:"Routing Key",prop:"routingKey","label-width":"120px"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{filterable:"",disabled:e.isEditable},model:{value:e.versionInfo.routingKey,callback:function(t){e.$set(e.versionInfo,"routingKey",t)},expression:"versionInfo.routingKey"}},e._l(e.versionInfo.schema,function(e){return n("el-option",{key:e.fieldName,attrs:{label:e.fieldName,value:e.fieldName}})}),1)],1)],1),e._v(" "),n("el-col",{attrs:{span:e.routingKeyWidth}},[n("el-form-item",{attrs:{label:"Id列名",prop:"idField","label-width":"120px"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{filterable:"",disabled:e.isEditable},model:{value:e.versionInfo.idField,callback:function(t){e.$set(e.versionInfo,"idField",t)},expression:"versionInfo.idField"}},e._l(e.versionInfo.schema,function(e){return n("el-option",{key:e.fieldName,attrs:{label:e.fieldName,value:e.fieldName}})}),1)],1)],1),e._v(" "),e.isMetaDataNull?e._e():n("el-col",{attrs:{span:e.routingKeyWidth}},[n("el-form-item",{attrs:{label:"Update Time列名",prop:"updateTimeField","label-width":"150px"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{filterable:"",disabled:e.isEditable},model:{value:e.versionInfo.updateTimeField,callback:function(t){e.$set(e.versionInfo,"updateTimeField",t)},expression:"versionInfo.updateTimeField"}},e._l(e.versionInfo.schema,function(e){return n("el-option",{key:e.fieldName,attrs:{label:e.fieldName,value:e.fieldName}})}),1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-title"},[n("span",{staticClass:"span-title"},[n("i",{staticClass:"fa fa-th-large"}),e._v("慢日志落盘配置(单位ms,-1不限定)")])]),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"Index Slow",prop:"indexSlowThreshold","label-width":"120px"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.versionInfo.indexSlowThreshold,callback:function(t){e.$set(e.versionInfo,"indexSlowThreshold",e._n(t))},expression:"versionInfo.indexSlowThreshold"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"Fetch Slow",prop:"fetchSlowThreshold","label-width":"120px"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.versionInfo.fetchSlowThreshold,callback:function(t){e.$set(e.versionInfo,"fetchSlowThreshold",e._n(t))},expression:"versionInfo.fetchSlowThreshold"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"Query Slow",prop:"querySlowThreshold","label-width":"120px"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.versionInfo.querySlowThreshold,callback:function(t){e.$set(e.versionInfo,"querySlowThreshold",e._n(t))},expression:"versionInfo.querySlowThreshold"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-title"},[n("span",{staticClass:"span-title"},[n("i",{staticClass:"fa fa-th-large"}),e._v("索引其他配置")])]),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"max_result_window",prop:"maxResultWindow","label-width":"180px"}},[n("el-input",{attrs:{placeholder:"10000",disabled:e.isEditable},model:{value:e.versionInfo.maxResultWindow,callback:function(t){e.$set(e.versionInfo,"maxResultWindow",e._n(t))},expression:"versionInfo.maxResultWindow"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"flush_threshold_size",prop:"flushThresholdSize","label-width":"180px"}},[n("el-input",{attrs:{placeholder:"512mb",disabled:e.isEditable},model:{value:e.versionInfo.flushThresholdSize,callback:function(t){e.$set(e.versionInfo,"flushThresholdSize",t)},expression:"versionInfo.flushThresholdSize"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"sync_interval",prop:"syncInterval","label-width":"180px"}},[n("el-input",{attrs:{placeholder:"5s",disabled:e.isEditable},model:{value:e.versionInfo.syncInterval,callback:function(t){e.$set(e.versionInfo,"syncInterval",t)},expression:"versionInfo.syncInterval"}})],1)],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("el-form-item",{attrs:{label:"translog_durability",prop:"translogDurability","label-width":"180px"}},[n("el-input",{attrs:{placeholder:"async",disabled:e.isEditable},model:{value:e.versionInfo.translogDurability,callback:function(t){e.$set(e.versionInfo,"translogDurability",t)},expression:"versionInfo.translogDurability"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"label-content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"refresh(秒)",prop:"refreshInterval","label-width":"120px"}},[n("el-input",{attrs:{disabled:e.isEditable},model:{value:e.versionInfo.refreshInterval,callback:function(t){e.$set(e.versionInfo,"refreshInterval",e._n(t))},expression:"versionInfo.refreshInterval"}})],1)],1),e._v(" "),e.isMetaDataNull?e._e():n("div",[n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"只导局部字段",prop:"filterFields","label-width":"120px"}},[n("div",{staticClass:"my-switch"},[n("el-switch",{attrs:{disabled:e.isEditable},model:{value:e.versionInfo.filterFields,callback:function(t){e.$set(e.versionInfo,"filterFields",t)},expression:"versionInfo.filterFields"}})],1)])],1),e._v(" "),e.$option.versionVdpTypes&&e.$option.versionVdpTypes.length>0?n("el-col",{attrs:{span:8}},[n("el-form-item",{attrs:{label:"同步数据类型",prop:"vdp","label-width":"100px"}},[n("div",{staticClass:"my-switch"},[n("el-radio-group",{attrs:{disabled:e.isEditable,size:"small"},model:{value:e.versionInfo.vdp,callback:function(t){e.$set(e.versionInfo,"vdp",t)},expression:"versionInfo.vdp"}},e._l(e.$option.versionVdpTypes,function(t){return n("el-radio-button",{key:t.value,attrs:{label:t.value}},[e._v(e._s(t.label))])}),1)],1)])],1):e._e()],1)],1)],1)]),e._v(" "),n("el-tab-pane",{attrs:{label:"Mapping配置",name:"second"}},[n("div",{staticClass:"label-title"},[n("span",{staticClass:"span-title"},[n("i",{staticClass:"fa fa-th-large"}),e._v("ES映射关系配置")]),e._v(" "),e.isMetaDataNull&&0===e.versionInfo.schema.length?n("el-button",{attrs:{size:"mini",type:"success"},on:{click:function(t){return e.addField(0)}}},[n("i",{staticClass:"fa fa-plus"}),e._v("新增")]):e._e(),e._v(" "),n("el-button",{directives:[{name:"show",rawName:"v-show",value:!e.isEditable,expression:"!isEditable"}],attrs:{size:"mini",type:"warning"},on:{click:e.importSchema}},[n("i",{staticClass:"fa fa-arrow-circle-o-down"}),e._v("导入schema")]),e._v(" "),n("el-button",{directives:[{name:"show",rawName:"v-show",value:e.isEditable,expression:"isEditable"}],attrs:{size:"mini",type:"warning"},on:{click:e.exportSchema}},[n("i",{staticClass:"fa fa-arrow-circle-o-up"}),e._v("导出schema")])],1),e._v(" "),n("div",[n("div",{staticStyle:{margin:"10px"}},[n("el-alert",{attrs:{title:"如何选择ES类型",type:"info",description:" ","show-icon":""}},[n("div",{staticStyle:{"font-size":"12px"}},[e._v('\n 1.某些数据库字段,尽管是number类型,但是在做业务查询时仅仅只是做term(s)这类非数学运算非聚合查询,我们非常建议你采用"keyword as number"类型,在这个类型下,ES将会用string格式来建索引以达到更高的检索性能,\n 而获取 _source 时我们仍然会以number的格式返回给 Client。\n '),n("br"),e._v('\n 2.当你需要做模糊匹配,比如数据库值是 AbC,但是仍然希望abc和ABC都能检索出来,那请选择"keyword[全大写处理]"类型,我们在建索引和查询都做大写处理,\n 而获取 _source 时我们仍然会以原值 AbC 的格式返回给 Client。\n '),n("br"),e._v('\n 3.所有的DB类型为TINYINT 的字段,我们都假设它是一些枚举值并且不会用于数学运算,因此我们为这些字段自动匹配了"keyword as number"类型,请自行检查。\n ')])])],1),e._v(" "),n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.versionInfo.schema,border:"","max-height":550}},[n("el-table-column",{attrs:{label:"操作"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-button",{attrs:{size:"small",type:"success",disabled:e.isEditable},on:{click:function(n){return e.addField(t.$index)}}},[n("i",{staticClass:"el-icon-plus"})]),e._v(" "),n("el-button",{attrs:{size:"small",type:"danger",disabled:e.isEditable},on:{click:function(n){return e.deleteField(t.row)}}},[n("i",{staticClass:"el-icon-minus"})])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"字段名","min-width":"180"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-button",{directives:[{name:"show",rawName:"v-show",value:!t.row.isNew,expression:"!scope.row.isNew"}],attrs:{type:"text"}},[n("span",[e._v(e._s(t.row.fieldName))])]),e._v(" "),n("el-input",{directives:[{name:"show",rawName:"v-show",value:t.row.isNew,expression:"scope.row.isNew"}],staticStyle:{width:"50%"},attrs:{placeholder:"请输入字段名"},model:{value:t.row.fieldName,callback:function(n){e.$set(t.row,"fieldName",n)},expression:"scope.row.fieldName"}}),e._v(" "),n("el-button",{directives:[{name:"show",rawName:"v-show",value:t.row.isNew,expression:"scope.row.isNew"}],attrs:{type:"text"}},[n("span",[e._v("子字段")])]),e._v(" "),0!==t.row.children.length?n("el-button",{attrs:{type:"warning",size:"mini"},on:{click:function(n){return e.viewSchemaChildren(t.row)}}},[n("i",{staticClass:"fa"}),e._v("nested")]):e._e(),e._v(" "),0!==t.row.multiField.length?n("el-button",{attrs:{type:"warning",size:"mini"},on:{click:function(n){return e.viewSchemaMultiFields(t.row)}}},[n("i",{staticClass:"fa"}),e._v("subFields")]):e._e(),e._v(" "),n("div",[t.row.copyTo.length>0?n("el-tag",{attrs:{type:"success"}},[e._v("copy to: "+e._s(t.row.copyTo))]):e._e()],1)]}}])}),e._v(" "),e.isMetaDataNull?e._e():n("el-table-column",{attrs:{label:"DB类型"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(t.row.dbFieldType||"N/A")+"\n ")]}}],null,!1,959855009)}),e._v(" "),n("el-table-column",{attrs:{label:"ES类型"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("select",{directives:[{name:"model",rawName:"v-model",value:t.row.fieldType,expression:"scope.row.fieldType"}],attrs:{size:"small",disabled:e.isEditable},on:{change:[function(n){var i=Array.prototype.filter.call(n.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.$set(t.row,"fieldType",n.target.multiple?i:i[0])},function(n){return e.fieldTypeChange(t.row)}]}},e._l(e.fieldTypes,function(t){return n("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.label))])}),0)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"多值/单值"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("select",{directives:[{name:"model",rawName:"v-model",value:t.row.multi,expression:"scope.row.multi"}],attrs:{size:"small",disabled:e.isEditable},on:{change:function(n){var i=Array.prototype.filter.call(n.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.$set(t.row,"multi",n.target.multiple?i:i[0])}}},[n("option",{attrs:{label:"单值"},domProps:{value:!1}},[e._v("单值")]),e._v(" "),n("option",{attrs:{label:"多值"},domProps:{value:!0}},[e._v("多值")])])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"是否创建索引","min-width":"90"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-checkbox",{attrs:{disabled:e.isEditable||"nested"===t.row.fieldType},model:{value:t.row.search,callback:function(n){e.$set(t.row,"search",n)},expression:"scope.row.search"}},[e._v("创建索引")])]}}])}),e._v(" "),n("el-table-column",{attrs:{"render-header":e.renderDocValueHeader},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-checkbox",{attrs:{disabled:e.isEditable||"nested"===t.row.fieldType||"text"===t.row.fieldType},model:{value:t.row.docValue,callback:function(n){e.$set(t.row,"docValue",n)},expression:"scope.row.docValue"}},[e._v("启用doc value")])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"是否启用store"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-checkbox",{attrs:{disabled:e.isEditable},model:{value:t.row.store,callback:function(n){e.$set(t.row,"store",n)},expression:"scope.row.store"}},[e._v("启用store")])]}}])}),e._v(" "),e.isEditable?e._e():n("el-table-column",{attrs:{label:"更多操作",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-dropdown",{attrs:{trigger:"click"}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n 操作"),n("i",{staticClass:"el-icon-caret-bottom el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{staticClass:"dropdown-operation",attrs:{slot:"dropdown"},slot:"dropdown"},[0===t.row.multiField.length?n("el-dropdown-item",[n("a",{on:{click:function(n){return e.viewSchemaChildren(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-play-circle"}),e._v("添加nested/object")])])]):e._e(),e._v(" "),0===t.row.children.length&&"nested"!==t.row.fieldType?n("el-dropdown-item",[n("a",{on:{click:function(n){return e.viewSchemaMultiFields(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-play-circle"}),e._v("添加subFields")])])]):e._e(),e._v(" "),e.isEditable?e._e():n("el-dropdown-item",[n("a",{on:{click:function(n){return e.viewSchemaCopyTo(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-play-circle"}),e._v("添加copyTo")])])])],1)],1)]}}],null,!1,2854098717)})],1)],1),e._v(" "),n("div",{staticClass:"label-title",staticStyle:{"margin-top":"20px"}},[n("span",{staticClass:"span-title",staticStyle:{"margin-right":"20px"}},[n("i",{staticClass:"fa fa-th-large"}),e._v("ES _source配置")])]),e._v(" "),n("div",{staticClass:"source-setting"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:4}},[n("el-form-item",{staticStyle:{display:"inline-block"},attrs:{label:"是否disable _source:",prop:"sourceDisabled","label-width":"150px"}},[n("div",{staticClass:"my-switch"},[n("el-switch",{attrs:{disabled:e.isEditable},model:{value:e.versionInfo.sourceDisabled,callback:function(t){e.$set(e.versionInfo,"sourceDisabled",t)},expression:"versionInfo.sourceDisabled"}})],1)])],1),e._v(" "),e.versionInfo.sourceDisabled?e._e():n("el-col",{attrs:{span:10}},[n("el-form-item",{attrs:{label:"includes",prop:"sourceIncludes","label-width":"120px"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"",filterable:"",placeholder:"请选择_source包含的field",disabled:e.isEditable},model:{value:e.versionInfo.sourceIncludesArr,callback:function(t){e.$set(e.versionInfo,"sourceIncludesArr",t)},expression:"versionInfo.sourceIncludesArr"}},e._l(e.allSourceFields,function(t,i){return n("el-option",{key:i,attrs:{label:t,value:t}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t))])])}),1)],1)],1),e._v(" "),e.versionInfo.sourceDisabled?e._e():n("el-col",{attrs:{span:10}},[n("el-form-item",{attrs:{label:"excludes",prop:"sourceExcludes","label-width":"120px"}},[n("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"",filterable:"",placeholder:"请选择_source不包含的field",disabled:e.isEditable},model:{value:e.versionInfo.sourceExcludesArr,callback:function(t){e.$set(e.versionInfo,"sourceExcludesArr",t)},expression:"versionInfo.sourceExcludesArr"}},e._l(e.allSourceFields,function(t,i){return n("el-option",{key:i,attrs:{label:t,value:t}},[n("span",{staticStyle:{float:"left"}},[e._v(e._s(t))])])}),1)],1)],1)],1)],1)])],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取 消")]),e._v(" "),e.isEditable?e._e():n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitVersionInfo()}}},[e._v("确 定")])],1)],1),e._v(" "),n("schema-child-dialog",{attrs:{"is-schema-child-visible":e.isSchemaChildVisible,"schema-child-info":e.schemaExtInfo,"version-operation":e.versionOperation,"schema-parent-field-name":e.schemaParentFieldName,"version-info":e.versionInfo},on:{"close-schema-dialog":e.closeSchemaDialog,"add-schema-child":e.addSchemaChild}}),e._v(" "),n("schema-multi-field-dialog",{attrs:{"is-schema-multi-fields-visible":e.isSchemaMultiFieldsVisible,"schema-multi-fields-info":e.schemaExtInfo,"version-operation":e.versionOperation,"schema-parent-field-name":e.schemaParentFieldName},on:{"close-schema-dialog":e.closeSchemaMultiFieldsDialog,"add-schema-multi-field":e.addSchemaMultiFields}}),e._v(" "),n("schema-copy-to-dialog",{attrs:{"is-copy-to-fields-visible":e.isCopyToFieldsVisible,"schema-copy-to-info":e.schemaExtInfo,"copy-to-list":e.validCopyToFields,"schema-parent-field-name":e.schemaParentFieldName},on:{"close-schema-dialog":e.closeSchemaCopyToDialog,"add-schema-copy-to":e.addSchemaCopyTo}}),e._v(" "),e.isSchemaImportVisible?n("div",[n("schema-import-dialog",{attrs:{"schema-import-title":e.schemaImportTitle,"schema-import-url":e.schemaImportUrl},on:{"schema-import-success":e.schemaImportSuccess,"close-schema-import-dialog":e.closeSchemaImportDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"template-insert-dialog",staticStyle:{"min-width":"700px"},attrs:{title:"查询变量插入","before-close":e.handleClose,"element-loading-text":"请稍等···"},model:{value:e.visible,callback:function(t){e.visible=t},expression:"visible"}},[n("el-form",{ref:"info",attrs:{model:e.info,"label-width":"100px"}},[n("el-row",[n("el-col",{attrs:{span:23}},[n("el-form-item",{attrs:{prop:"field",label:"查询变量"}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.info.field,callback:function(t){e.$set(e.info,"field",t)},expression:"info.field"}},[n("el-option",{attrs:{label:"from",value:"from"}}),e._v(" "),n("el-option",{attrs:{label:"size",value:"size"}}),e._v(" "),n("el-option",{attrs:{label:"sort",value:"sort"}}),e._v(" "),n("el-option",{attrs:{label:"source",value:"source"}}),e._v(" "),n("el-option",{attrs:{label:"query",value:"query"}})],1)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:23}},["from"===e.info.field?n("el-form-item",{attrs:{prop:"from",label:"from"}},[n("el-input-number",{staticStyle:{width:"100%"},model:{value:e.info.from,callback:function(t){e.$set(e.info,"from",t)},expression:"info.from"}})],1):e._e(),e._v(" "),"size"===e.info.field?n("el-form-item",{attrs:{prop:"size",label:"size"}},[n("el-input-number",{staticStyle:{width:"100%"},model:{value:e.info.size,callback:function(t){e.$set(e.info,"size",t)},expression:"info.size"}})],1):e._e(),e._v(" "),"sort"===e.info.field?n("el-form-item",{attrs:{prop:"sort",label:"sort"}},[n("div",{staticClass:"my-switch"},[n("el-switch",{attrs:{"on-text":"变量","off-text":"静态"},model:{value:e.info.sort,callback:function(t){e.$set(e.info,"sort",t)},expression:"info.sort"}})],1)]):e._e(),e._v(" "),"source"===e.info.field?n("el-form-item",{attrs:{prop:"source",label:"source"}},[n("div",{staticClass:"my-switch"},[n("el-switch",{attrs:{"on-text":"变量","off-text":"静态"},model:{value:e.info.source,callback:function(t){e.$set(e.info,"source",t)},expression:"info.source"}})],1)]):e._e()],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:23}},[n("el-form-item",{attrs:{"label-width":"30px"}},["query"===e.info.field?n("el-table",{attrs:{border:"",data:e.metadatas,"max-height":320}},[n("el-table-column",{attrs:{prop:"dbFieldName",label:"字段名",width:"130","show-overflow-tooltip":""}}),e._v(" "),n("el-table-column",{attrs:{label:"查询方式"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-radio",{staticClass:"radio",attrs:{label:"term"},model:{value:t.row.queryWay,callback:function(n){e.$set(t.row,"queryWay",n)},expression:"scope.row.queryWay"}},[e._v("term")]),e._v(" "),n("el-radio",{staticClass:"radio",attrs:{label:"multiTerm"},model:{value:t.row.queryWay,callback:function(n){e.$set(t.row,"queryWay",n)},expression:"scope.row.queryWay"}},[e._v("多值term")]),e._v(" "),n("el-radio",{staticClass:"radio",attrs:{label:"range"},model:{value:t.row.queryWay,callback:function(n){e.$set(t.row,"queryWay",n)},expression:"scope.row.queryWay"}},[e._v("range")]),e._v(" "),n("el-radio",{staticClass:"radio",attrs:{label:"script"},model:{value:t.row.queryWay,callback:function(n){e.$set(t.row,"queryWay",n)},expression:"scope.row.queryWay"}},[e._v("script")])]}}],null,!1,1112527743)})],1):e._e()],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.handleClose()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.handleInsert()}}},[e._v("插入查询变量")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"target-group-item"},[n("div",{staticClass:"target-group-header"},[n("div",{staticClass:"pull-left"},[n("div",[e.editable?n("el-input",{staticStyle:{width:"100px"},attrs:{size:"mini"},model:{value:e.name,callback:function(t){e.name=t},expression:"name"}}):n("span",{staticClass:"title"},[e._v(e._s(e.name))]),e._v(" "),0===e.targetGroupItemInfo.clusterLevel?n("el-tag",{attrs:{type:"warning"}},[e._v("普通级别")]):e._e(),e._v(" "),1===e.targetGroupItemInfo.clusterLevel?n("el-tag",{attrs:{type:"warning"}},[e._v("集群级别")]):e._e(),e._v(" "),2===e.targetGroupItemInfo.clusterLevel?n("el-tag",{attrs:{type:"warning"}},[e._v("分片动态绑定")]):e._e(),e._v(" "),3===e.targetGroupItemInfo.clusterLevel?n("el-tag",{attrs:{type:"warning"}},[e._v("集群级别(主分片优先)")]):e._e(),e._v(" "),4===e.targetGroupItemInfo.clusterLevel?n("el-tag",{attrs:{type:"warning"}},[e._v("集群级别(复制分片优先)")]):e._e(),e._v(" "),5===e.targetGroupItemInfo.clusterLevel?n("el-tag",{attrs:{type:"warning"}},[e._v("动态分组")]):e._e()],1)]),e._v(" "),e.privilege?n("div",{staticClass:"pull-right"},[n("el-button",{directives:[{name:"show",rawName:"v-show",value:e.editable,expression:"editable"}],attrs:{size:"mini",type:"success"},on:{click:function(t){return e.handleSave()}}},[e._v("保存")]),e._v(" "),n("el-button",{directives:[{name:"show",rawName:"v-show",value:!e.editable,expression:"!editable"}],attrs:{size:"mini"},on:{click:function(t){return e.handleEdit()}}},[e._v("编辑")]),e._v(" "),n("el-button",{directives:[{name:"show",rawName:"v-show",value:e.editable,expression:"editable"}],attrs:{size:"mini"},on:{click:function(t){return e.handleCancel()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(t){return e.handleDelete()}}},[e._v("删除")])],1):e._e()]),e._v(" "),n("div",{staticClass:"target-group-content"},[n("el-tree",{ref:"mytree",attrs:{data:e.myTree,"show-checkbox":"","node-key":"name","default-expand-all":e.isDefaultExpand,"default-checked-keys":e.treeCheckedKeys,"render-content":e.renderContent,props:e.defaultProps},on:{"check-change":e.checkChange}})],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"page-content",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",{attrs:{to:{name:"cluster_manage"}}},[n("i",{staticClass:"fa fa-home"}),e._v("ES集群管理")]),e._v(" "),n("el-breadcrumb-item",[e._v(e._s(e.clusterId))])],1)],1),e._v(" "),n("dashboard-component",{attrs:{"cluster-info":e.clusterInfo}})],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",[n("i",{staticClass:"fa fa-home"}),e._v("Token管理")])],1)],1),e._v(" "),n("el-row",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{gutter:20,"element-loading-text":"请稍等···"}},[n("el-col",{attrs:{span:6}},[e.isPrivilege?n("div",[n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("新建Token")])],1):e._e(),e._v(" "),n("div",{staticClass:"mrg-top-10"},[n("el-input",{attrs:{placeholder:"输入关键字进行过滤",icon:"search","on-icon-click":e.handleSearch},model:{value:e.tokenForSearch,callback:function(t){e.tokenForSearch=t},expression:"tokenForSearch"}})],1),e._v(" "),n("div",{staticClass:"mrg-top-10 token-table"},[n("el-table",{attrs:{data:e.tokenList,"show-header":!1,"highlight-current-row":"",border:"",height:e.tokenHeight.height},on:{"row-click":e.handleTokenClick}},[n("el-table-column",{attrs:{label:"ID",prop:"id",width:"50px"}}),e._v(" "),n("el-table-column",{attrs:{prop:"title",label:"名称","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){return[n("div",{staticStyle:{"font-size":"16px"}},[e._v(e._s(t.row.title)+"\n "),n("el-tag",{attrs:{type:t.row.enabled?"success":"danger"}},[e._v(e._s(e.statusMap[t.row.enabled]))])],1),e._v(" "),n("div",{staticStyle:{color:"gray","font-size":"12px"}},[e._v(e._s(t.row.clientToken))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"编辑",width:"30px",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-button",{attrs:{type:"text"},on:{click:function(n){return n.stopPropagation(),e.handleEdit(t.row)}}},[n("i",{staticClass:"fa fa-pencil-square-o"})])]}}])})],1)],1)]),e._v(" "),n("el-col",{attrs:{span:18}},[e.isSelectToken?e._e():n("div",{staticClass:"token-warning",style:e.tokenErrorHeight},[n("i",{staticClass:"el-icon-warning"}),e._v("请选择Token")]),e._v(" "),e._l(e.tokenList,function(t){return n("div",{key:t.clientToken,staticClass:"token-body"},[e.tokenSelectInfo.clientToken===t.clientToken?n("token-detail",{attrs:{"token-height":e.tokenHeight,"token-info":e.tokenSelectInfo}}):e._e()],1)})],2)],1),e._v(" "),e.isTokenInfoVisible?n("div",[n("token-info-dialog",{attrs:{"token-info":e.tokenInfo,"token-info-operate":e.tokenInfoOperate,"token-info-title":e.tokenInfoTitle},on:{"token-info-success":e.tokenInfoSuccess,"close-dialog":e.closeTokenInfoDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("div",{staticClass:"content"},[n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("input",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{type:"text"}}),e._v(" "),n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"请搜索节点"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.nodesFilter(t)}},model:{value:e.nodeForSearch,callback:function(t){e.nodeForSearch=t},expression:"nodeForSearch"}})],1),e._v(" "),n("el-form-item",{staticClass:"filter-search"},[n("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.nodesFilter}},[e._v("查询")])],1)],1)],1)])]),e._v(" "),n("div",{staticClass:"content"},[[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.nodesList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"Name",prop:"nodeName"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("router-link",{attrs:{tag:"a",to:{path:"node_monitor_detail",query:{clusterId:e.clusterId,node:t.row.nodeName}}}},[e._v(e._s(t.row.nodeName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"CPU Usage",prop:"osCpuPercent"}}),e._v(" "),n("el-table-column",{attrs:{label:"Load Average",prop:"load_1m"}}),e._v(" "),n("el-table-column",{attrs:{label:"JVM Memory(%)",prop:"jvmHeapUsage"}}),e._v(" "),n("el-table-column",{attrs:{label:"Transport Address",prop:"transportAddress"}}),e._v(" "),n("el-table-column",{attrs:{label:"Shards",prop:"shardCount"}})],1)]],2)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{staticClass:"template-test-content"},[n("div",{staticClass:"template-test-head"},[e._v("设置请求参数")]),e._v(" "),n("div",{staticClass:"template-test-body"},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.paramsInfo,border:"","max-height":e.temPanelHeight-390}},[n("el-table-column",{attrs:{prop:"paramName",label:"请求参数"}}),e._v(" "),n("el-table-column",{attrs:{label:"包含"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-checkbox",{model:{value:t.row.include,callback:function(n){e.$set(t.row,"include",n)},expression:"scope.row.include"}})]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"请求值类型"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-select",{attrs:{disabled:!t.row.include,size:"small"},on:{change:function(n){return e.valueTypeChange(t.row)}},model:{value:t.row.valueType,callback:function(n){e.$set(t.row,"valueType",n)},expression:"scope.row.valueType"}},[n("el-option",{key:"1",attrs:{label:"固定值",value:"1"}},[e._v("固定值")]),e._v(" "),n("el-option",{key:"2",attrs:{label:"数据源",value:"2"}},[e._v("数据源")])],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"数据源参数映射"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-input",{directives:[{name:"show",rawName:"v-show",value:"1"===t.row.valueType,expression:"scope.row.valueType === '1'"}],attrs:{disabled:!t.row.include},model:{value:t.row.value,callback:function(n){e.$set(t.row,"value",n)},expression:"scope.row.value"}}),e._v(" "),n("el-select",{directives:[{name:"show",rawName:"v-show",value:"2"===t.row.valueType,expression:"scope.row.valueType === '2'"}],staticStyle:{width:"100%"},attrs:{disabled:!t.row.include},model:{value:t.row.value,callback:function(n){e.$set(t.row,"value",n)},expression:"scope.row.value"}},e._l(e.paramValues,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})}),1)]}}])})],1)],1)]),e._v(" "),n("div",{staticClass:"template-test-content",attrs:{align:"center"}},[n("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.handleGen}},[e._v("生成测试脚本")])],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"my-tab-content",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"monitor-top"},[n("el-table",{staticStyle:{width:"100%"},attrs:{data:e.gaugeMetricData,border:""}},[n("el-table-column",{attrs:{label:"Total"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.bytesToSize(t.row.document_store_byte_total))+"\n ")]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Primaries"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.bytesToSize(t.row.document_store_byte_primary))+"\n ")]}}])}),e._v(" "),n("el-table-column",{attrs:{prop:"primaryDocumentCount",label:"Documents(Primary)"}}),e._v(" "),n("el-table-column",{attrs:{prop:"totalShardCount",label:"Total Shards"}}),e._v(" "),n("el-table-column",{attrs:{prop:"unassignedShardCount",label:"Unassigned Shards"}}),e._v(" "),n("el-table-column",{attrs:{prop:"health",label:"Health"}})],1)],1),e._v(" "),n("div",[n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Index Memory("+e.indexMemoryInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexMemory","option-info":e.indexMemoryInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Index Disk("+e.indexDiskInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexDisk","option-info":e.indexDiskInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Segment Count("+e.segmentCountInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"segmentCount","option-info":e.segmentCountInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Document Count("+e.documentCountInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"documentCount","option-info":e.documentCountInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Request Rate("+e.indexSearchRateInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexSearchRate","option-info":e.indexSearchRateInfo}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Request Latency("+e.indexSearchLatencyInfo.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexSearchLatency","option-info":e.indexSearchLatencyInfo}})],1)])],1)],1)],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{staticStyle:{width:"100%",height:"100%"},attrs:{id:e.editorId}})},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"page-content",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"my-breadcrumb",staticStyle:{width:"100%"}},[n("div",{staticClass:"pull-left",staticStyle:{display:"inline"}},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",{attrs:{to:{name:"cluster_manage"}}},[n("i",{staticClass:"fa fa-home"}),e._v("ES集群管理")]),e._v(" "),n("el-breadcrumb-item",{attrs:{to:{name:"cluster_detail",query:{clusterId:e.clusterId}}}},[e._v(e._s(e.clusterId))]),e._v(" "),n("el-breadcrumb-item",{attrs:{to:{name:"cluster_monitor",query:{clusterId:e.clusterId}}}},[e._v("监控")]),e._v(" "),e._l(e.breadcrumbs,function(t,i){return n("el-breadcrumb-item",{key:i,attrs:{to:t.route}},[e._v(e._s(t.name))])})],2)],1),e._v(" "),n("div",{staticClass:"pull-right",staticStyle:{display:"inline","margin-right":"10px",height:"30px","line-height":"30px"}},[n("el-dropdown",{attrs:{trigger:"click"},on:{command:e.handleCommand}},[n("span",{staticClass:"el-dropdown-link",attrs:{title:"custom"===e.timeInterval.command?e.formatDate(e.timeInterval.from,"MM-DD HH:mm")+" - "+e.formatDate(e.timeInterval.to,"MM-DD HH:mm"):""}},[n("i",{staticClass:"fa fa-clock-o"}),e._v("\n "+e._s(e.periodTimeMap[e.timeInterval.command])),n("i",{staticClass:"el-icon-caret-bottom el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",{attrs:{command:"30"}},[e._v("最近30分钟")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"60"}},[e._v("最近1小时")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"180"}},[e._v("最近3小时")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"360"}},[e._v("最近6小时")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"720"}},[e._v("最近12小时")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"1440"}},[e._v("最近24小时")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"4320"}},[e._v("最近3天")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"10080"}},[e._v("最近7天")]),e._v(" "),n("el-dropdown-item",{attrs:{divided:"",command:"custom"}},[e._v("自定义时间")])],1)],1)],1)]),e._v(" "),n("div",{staticClass:"page-tab"},[n("el-tabs",{on:{"tab-click":e.onTabClick},model:{value:e.activeTab,callback:function(t){e.activeTab=t},expression:"activeTab"}},[n("el-tab-pane",{attrs:{name:"cluster_monitor"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-cube"}),e._v("集群")])]),e._v(" "),n("el-tab-pane",{attrs:{name:"indices_monitor"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-search"}),e._v("索引 ("+e._s(e.indicesNum)+")")])]),e._v(" "),n("el-tab-pane",{attrs:{name:"nodes_monitor"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-cubes"}),e._v("节点 ("+e._s(e.nodesNum)+")")])])],1),e._v(" "),n("router-view")],1),e._v(" "),e.customTimeVisible?n("div",[n("custom-time-dialog",{on:{"set-custom-time":e.setCustomTime,"close-dialog":e.closeCustomTimeDialog}})],1):e._e()])},staticRenderFns:[]}},function(e,t,n){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"navbar"},[e._m(0),e._v(" "),n("div",{staticClass:"navbar-content"},[n("el-menu",{staticClass:"el-menu-demo",attrs:{theme:"dark","default-active":e.activeIndex,mode:"horizontal",router:!0}},[e._l(e.serviceList,function(t){return[n("el-menu-item",{key:t.index,attrs:{index:t.index,route:t}},[n("i",{class:t.icon}),e._v(e._s(t.title))])]}),e._v(" "),n("el-submenu",{staticClass:"pull-right",attrs:{index:"3"}},[n("template",{slot:"title"},[n("i",{staticClass:"fa fa-user"}),e._v(e._s(e.loginUser||"null"))]),e._v(" "),n("el-menu-item",{attrs:{index:""}},[n("a",{staticStyle:{display:"block"},attrs:{href:"/pallas/logout"}},[n("i",{staticClass:"fa fa-sign-out"}),e._v("注销")])])],2)],2)],1)])},staticRenderFns:[function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"navbar-title"},[i("span",[i("img",{attrs:{src:n(1336)}}),e._v("\n Pallas一站式检索平台\n ")])])}]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("div",{staticClass:"content"},[n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("input",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{type:"text"}}),e._v(" "),n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"请搜索索引"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.indicesFilter(t)}},model:{value:e.indiceForSearch,callback:function(t){e.indiceForSearch=t},expression:"indiceForSearch"}})],1),e._v(" "),n("el-form-item",{staticClass:"filter-search"},[n("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.indicesFilter}},[e._v("查询")])],1)],1)],1)])]),e._v(" "),n("div",{staticClass:"content"},[[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.indicesList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"Name",prop:"indexName"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("router-link",{attrs:{tag:"a",to:{path:"indice_monitor_detail",query:{clusterId:e.clusterId,indice:t.row.indexName}}}},[e._v(e._s(t.row.indexName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Status",prop:"status",width:"70px"}}),e._v(" "),n("el-table-column",{attrs:{label:"Document Count",prop:"documentCount"}}),e._v(" "),n("el-table-column",{attrs:{label:"Document Store Primary"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.bytesToSize(t.row.document_store_byte_primary))+"\n ")]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Document Store Total"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.bytesToSize(t.row.document_store_byte_total))+"\n ")]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Health",prop:"health",width:"70px"}}),e._v(" "),n("el-table-column",{attrs:{label:"Total Shard Count",prop:"totalShardCount"}})],1)]],2)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",[n("i",{staticClass:"fa fa-home"}),e._v("索引管理")])],1)],1),e._v(" "),n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{clearable:""},on:{change:e.toPage},model:{value:e.selectedCluster,callback:function(t){e.selectedCluster=t},expression:"selectedCluster"}},[n("el-option",{attrs:{label:"全部集群",value:""}}),e._v(" "),e._l(e.clusters,function(t){return n("el-option-group",{key:t.label,attrs:{label:t.label}},e._l(t.options,function(e){return n("el-option",{key:e.id,attrs:{label:e.clusterId,value:e.clusterId}})}),1)})],2)],1),e._v(" "),n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"请搜索索引"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.toPage(t)}},model:{value:e.indexNameForSearch,callback:function(t){e.indexNameForSearch="string"==typeof t?t.trim():t},expression:"indexNameForSearch"}})],1),e._v(" "),n("el-form-item",{staticClass:"filter-search"},[n("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.toPage}},[e._v("查询")])],1)],1)],1),e._v(" "),e.isAllPrivilege?n("div",{staticClass:"pull-right"},[n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("新增索引")])],1):e._e()]),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.indexList.list,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-form",{staticClass:"my-table-expand",attrs:{"label-position":"left",inline:""}},[n("el-form-item",{attrs:{label:"id"}},[n("span",[e._v(e._s(t.row.id))])]),e._v(" "),n("el-form-item",{attrs:{label:"索引名"}},[n("span",[e._v(e._s(t.row.indexName))])]),e._v(" "),n("el-form-item",{attrs:{label:"索引描述"}},[n("span",[e._v(e._s(t.row.description||"null"))])]),e._v(" "),n("el-form-item",{attrs:{label:"所属集群"}},[n("span",[e._v(e._s(t.row.clusterName))])]),e._v(" "),n("el-form-item",{attrs:{label:"集群描述"}},[n("span",[e._v(e._s(t.row.clusterDesc||"null"))])]),e._v(" "),n("el-form-item",{attrs:{label:"创建人"}},[n("span",[e._v(e._s(t.row.createUser||"null"))])]),e._v(" "),n("el-form-item",{attrs:{label:"创建时间"}},[n("span",[e._v(e._s(e._f("formatDate")(t.row.createTime)))])]),e._v(" "),n("el-form-item",{attrs:{label:"更新时间"}},[n("span",[e._v(e._s(e._f("formatDate")(t.row.updateTime)))])]),e._v(" "),n("el-form-item",{attrs:{label:"数据源数量"}},[n("span",[e._v(e._s(t.row.dataSourceList.length))])]),e._v(" "),n("el-form-item",{staticStyle:{width:"100%"},attrs:{label:"数据源"}},e._l(t.row.dataSourceList,function(t){return n("span",{key:t.id,staticClass:"data-source-text"},[e._v(e._s(t.dbname)+" - "+e._s(t.tableName)+";")])}),0)],1)]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"id",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.hasPrivilege?n("div",{staticClass:"my-a-link"},[n("router-link",{attrs:{tag:"a",to:{path:"index_detail",query:{indexId:t.row.id,indexName:t.row.indexName}}}},[e._v(e._s(t.row.id))])],1):n("div",[e._v(e._s(t.row.id))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"索引名","min-width":"100px"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.hasPrivilege?n("div",{staticClass:"my-a-link"},[n("router-link",{attrs:{tag:"a",to:{path:"index_detail",query:{indexId:t.row.id,indexName:t.row.indexName}}}},[e._v(e._s(t.row.indexName))])],1):n("div",[e._v(e._s(t.row.indexName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"索引描述","show-overflow-tooltip":""},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.description||"-"))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"所属集群","min-width":"100px"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.hasClusterPrivilege&&t.row.httpAddress?n("div",{staticClass:"my-a-link"},[n("router-link",{attrs:{tag:"a",to:{path:"cluster_detail",query:{clusterId:t.row.clusterName}}}},[e._v(e._s(t.row.clusterName))])],1):n("div",[e._v(e._s(t.row.clusterName))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"数据源",width:"70px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.dataSourceList.length))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"创建人"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.createUser||"-"))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"更新时间",prop:"updateTime",width:"160px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.updateTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"100px"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.hasPrivilege?n("el-tooltip",{attrs:{content:"编辑",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleEdit(t.row)}}},[n("i",{staticClass:"fa fa-edit"})])],1):e._e(),e._v(" "),t.row.hasPrivilege?n("el-tooltip",{attrs:{content:"管理",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleManage(t.$index,t.row)}}},[n("i",{staticClass:"fa fa-bars"})])],1):e._e(),e._v(" "),t.row.hasPrivilege?n("el-tooltip",{attrs:{content:"删除",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleDelete(t.row)}}},[n("i",{staticClass:"fa fa-trash"})])],1):e._e()]}}])})],1),e._v(" "),0!=e.indexList.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next, jumper",total:e.indexList.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e(),e._v(" "),e.isIndexInfoVisible?n("div",[n("index-info-dialog",{attrs:{"index-operation":e.indexOperation,"index-info-title":e.indexInfoTitle,"index-info":e.indexInfo,clusters:e.clusters},on:{"close-dialog":e.closeDialog,"operate-close-dialog":e.operateCloseDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"tm-body"},[n("ol",{staticClass:"tm-items"},[e._t("default")],2)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"my-tab-content"},[n("div",{staticClass:"content"},[[n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.flowRecordList,border:"","element-loading-text":"请稍等···"}},[n("el-table-column",{attrs:{label:"记录id",prop:"id",width:"100px"}}),e._v(" "),n("el-table-column",{attrs:{label:"采集规则ID",prop:"configId",width:"100px"}}),e._v(" "),n("el-table-column",{attrs:{label:"最后更新时间",prop:"updateTime","min-width":"110"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.updateTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"抽样系数",prop:"sampleRate","min-width":"110"}}),e._v(" "),n("el-table-column",{attrs:{label:"目标采集数",prop:"limit","min-width":"110"}}),e._v(" "),n("el-table-column",{attrs:{label:"当前采集数",prop:"total","min-width":"110"}}),e._v(" "),n("el-table-column",{attrs:{label:"采集进度","min-width":"110"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(t.row.percentage)+"%")]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"状态",prop:"state","min-width":"50"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:3!=t.row.state?"success":"danger"}},[e._v(e._s(e.flowRecordStateMap[t.row.state]))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-dropdown",{attrs:{trigger:"click"}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n 操作"),n("i",{staticClass:"el-icon-caret-bottom el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{staticClass:"dropdown-operation",attrs:{slot:"dropdown"},slot:"dropdown"},[e.isAllPrivilege?n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:t.row.total>0,expression:"scope.row.total > 0"}]},[n("a",{on:{click:function(n){return e.exportFlow(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-file"}),e._v("导出")])])]):e._e(),e._v(" "),e.isAllPrivilege?n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:2!=t.row.state&&3!=t.row.state,expression:"scope.row.state != 2 && scope.row.state != 3"}]},[n("a",{on:{click:function(n){return e.stopRecord(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-stop-circle-o"}),e._v("终止")])])]):e._e(),e._v(" "),e.isAllPrivilege?n("el-dropdown-item",{directives:[{name:"show",rawName:"v-show",value:2==t.row.state||3==t.row.state,expression:"scope.row.state == 2 || scope.row.state == 3"}]},[n("a",{on:{click:function(n){return e.handleDelete(t.row)}}},[n("span",[n("i",{staticClass:"fa fa-trash"}),e._v("删除")])])]):e._e()],1)],1)]}}])})],1)],e._v(" "),e.total>0?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next",total:e.total,"page-size":e.pageSize},on:{"current-change":e.changePage}})],1):e._e()],2)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",[n("i",{staticClass:"fa fa-home"}),e._v("代理管理")])],1)],1),e._v(" "),n("div",{staticClass:"data-table-filter"},[e.isPrivilege?n("div",{staticClass:"pull-left"},[n("el-button",{attrs:{type:"primary"},on:{click:e.batchUpdateRoute}},[e._v("批量更新路由")])],1):e._e(),e._v(" "),n("div",{staticClass:"pull-right"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{on:{change:e.toPage},model:{value:e.selectedCluster,callback:function(t){e.selectedCluster=t},expression:"selectedCluster"}},[n("el-option",{attrs:{label:"全部集群",value:""}}),e._v(" "),e._l(e.clusters,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})})],2)],1),e._v(" "),n("el-form-item",{attrs:{label:""}},[n("el-select",{on:{change:e.toPage},model:{value:e.selectedPool,callback:function(t){e.selectedPool=t},expression:"selectedPool"}},[n("el-option",{attrs:{label:"全部节点集",value:""}}),e._v(" "),e._l(e.poolList,function(e){return n("el-option",{key:e,attrs:{label:e,value:e}})})],2)],1),e._v(" "),n("el-form-item",{staticClass:"filter-search"},[n("el-button",{attrs:{type:"primary",icon:"delete"},on:{click:e.handleDeleteExpired}},[e._v("删除离线数据(3天前)")])],1)],1)],1)]),e._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],ref:"multipleTable",staticStyle:{width:"100%"},attrs:{data:e.agentList,border:"","element-loading-text":"请稍等···"},on:{"selection-change":e.handleSelectionChange}},[n("el-table-column",{attrs:{type:"selection",width:"55",selectable:e.setSelectable}}),e._v(" "),n("el-table-column",{attrs:{label:"ID",prop:"id"}}),e._v(" "),n("el-table-column",{attrs:{label:"IP端口",prop:"ipport"}}),e._v(" "),n("el-table-column",{attrs:{label:"代理集群",prop:"cluster"}}),e._v(" "),n("el-table-column",{attrs:{label:"节点集",props:"pools"},scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.pools&&0!==Object.keys(JSON.parse(t.row.pools)).length?e._e():n("span",{staticClass:"target-group-item",attrs:{"close-transition":""}},[e._v("default")]),e._v(" "),t.row.pools?n("span",e._l(JSON.parse(t.row.pools),function(t){return n("span",{key:t,staticClass:"target-group-item",attrs:{"close-transition":""}},[n("div",[e._v(e._s(t))])])}),0):e._e()]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"节点状态",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:t.row.healthy?"success":"danger","close-transition":""}},[e._v(e._s(e._f("translateState")(t.row.healthy)))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"当前QPS",width:"80px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("currentQps")(t.row)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"连接数",width:"60px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("currentConns")(t.row)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Req.volume",width:"100px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("currentReceiveClientThrougph")(t.row)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"Res.volume",width:"100px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("currentReceiveEsThrougph")(t.row)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"启用",width:"60px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tag",{attrs:{type:t.row.takeTraffic?"success":"danger","close-transition":""}},[e._v(e._s(t.row.takeTraffic?"是":"否"))])]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"最后上报时间",width:"160px"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v(e._s(e._f("formatDate")(t.row.updateTime)))]}}])}),e._v(" "),n("el-table-column",{attrs:{label:"操作",width:"100px"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("el-tooltip",{attrs:{content:"节点信息",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.getInfo(t.row)}}},[n("i",{staticClass:"fa fa-envelope"})])],1),e._v(" "),t.row.healthy?n("el-tooltip",{attrs:{content:"更新路由",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.updateRoute(t.row)}}},[n("i",{staticClass:"fa fa-repeat"})])],1):e._e(),e._v(" "),t.row.takeTraffic?n("el-tooltip",{attrs:{content:"停用",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleRemoveTraffic(t.row)}}},[n("i",{staticClass:"fa fa-level-down"})])],1):e._e(),e._v(" "),t.row.takeTraffic?e._e():n("el-tooltip",{attrs:{content:"启用",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleRecoverTraffic(t.row)}}},[n("i",{staticClass:"fa fa-level-up"})])],1),e._v(" "),t.row.healthy?e._e():n("el-tooltip",{attrs:{content:"删除",placement:"top"}},[n("el-button",{attrs:{type:"text"},on:{click:function(n){return e.handleDelete(t.row)}}},[n("i",{staticClass:"fa fa-trash"})])],1)]}}])})],1),e._v(" "),0!=e.total?n("div",{staticClass:"my-pagination"},[n("el-pagination",{attrs:{layout:"prev, pager, next, jumper",total:e.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e(),e._v(" "),e.isAgentInfoVisible?n("div",[n("json-content-dialog",{attrs:{title:e.viewInfoTitle,content:e.viewInfo},on:{"close-dialog":e.closeDialog}})],1):e._e()],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{attrs:{title:"导入Mysql数据源","before-close":e.handleClose},model:{value:e.isDsImportVisible,callback:function(t){e.isDsImportVisible=t},expression:"isDsImportVisible"}},[n("el-form",[n("el-row",[n("el-col",{attrs:{span:18}},[n("el-form-item",[n("el-upload",{ref:"upload",attrs:{action:"/pallas/ds/import.json","auto-upload":!1,multiple:!1,"file-list":e.fileList,"on-remove":e.handleRemove,"on-error":e.handleError,"on-success":e.handleSuccess}},[n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.handleUpload}},[e._v("点击上传")]),e._v(" "),n("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[e._v("请上传文本文件,每行一条数据源,内容以空格分开"),n("br"),e._v("字段分别为:ip port user passwd database table")])],1)],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.handleClose()}}},[e._v("取 消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:e.submitImportDs}},[e._v("确定")])],1)],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{staticStyle:{width:"100%",height:"300px"},attrs:{id:e.id}})])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"target-group",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"data-table-filter"},[e.privilege?n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("添加节点集")]):e._e(),e._v(" "),"{}"!=JSON.stringify(e.routingTargetGroupsList)?n("el-select",{on:{change:e.changeShowTreeInfo},model:{value:e.selectedShowTreeInfo,callback:function(t){e.selectedShowTreeInfo=t},expression:"selectedShowTreeInfo"}},[n("el-option",{attrs:{label:"展示节点名称",value:"name"}}),e._v(" "),n("el-option",{attrs:{label:"展示节点地址",value:"address"}})],1):e._e()],1),e._v(" "),"{}"===JSON.stringify(e.routingTargetGroupsList)?n("div",{staticClass:"target-group-null"},[n("span",[e._v("请添加节点集")])]):n("div",[n("el-row",{attrs:{gutter:20}},e._l(e.routingTargetGroupsList,function(t,i){return n("el-col",{key:t.id,attrs:{span:12}},[n("target-group-item",{attrs:{privilege:e.privilege,"target-group-tree-no-children":JSON.parse(JSON.stringify(e.targetGroupTreeNoChildren)),"target-group-tree":JSON.parse(JSON.stringify(e.targetGroupTree)),targetGroupItemInfo:t,"selected-show-tree-info":e.selectedShowTreeInfo},on:{"save-operation":e.saveOperation,"delete-operation":e.deleteOperation}})],1)}),1)],1),e._v(" "),e.istargetGroupInfoVisible?n("div",[n("target-group-info-dialog",{attrs:{"target-group-info":e.targetGroupInfo,"target-group-info-title":e.targetGroupInfoTitle},on:{"operation-success":e.operationSuccess,"close-dialog":e.closeTargetGroupDialog}})],1):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"my-tab-content",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"content"},[n("div",{staticClass:"data-table-filter"},[n("div",{staticClass:"pull-left"},[n("el-button",{attrs:{type:"primary",icon:"delete"},on:{click:e.handleDelete}},[e._v("删除索引动态(3月前)")])],1),e._v(" "),n("div",{staticClass:"pull-right"},[n("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0}},[n("el-form-item",[n("el-select",{on:{change:e.getOperationList},model:{value:e.selectedType,callback:function(t){e.selectedType=t},expression:"selectedType"}},[n("el-option",{attrs:{label:"全部事件",value:""}}),e._v(" "),e._l(e.typeList,function(e){return n("el-option",{key:e.value,attrs:{label:e.value,value:e.value}})})],2)],1),e._v(" "),n("el-form-item",[n("el-select",{attrs:{filterable:"","allow-create":""},on:{change:e.getOperationList},model:{value:e.filterVersion,callback:function(t){e.filterVersion=t},expression:"filterVersion"}},[n("el-option",{attrs:{label:"全部版本",value:""}}),e._v(" "),e._l(e.versionIdList,function(e){return n("el-option",{key:e.value,attrs:{label:e.value,value:e.value}})})],2)],1),e._v(" "),n("el-date-picker",{attrs:{type:"datetimerange",placeholder:"选择时间范围"},on:{change:e.getOperationList},model:{value:e.timeRange,callback:function(t){e.timeRange=t},expression:"timeRange"}}),e._v(" "),n("el-form-item",[n("el-button",{attrs:{type:"primary",icon:"search"},on:{click:e.getOperationList}},[e._v("查询")])],1)],1)],1)])]),e._v(" "),n("div",{staticClass:"content"},e._l(e.chartList,function(t,i){return e.isChartVisible?n("el-row",{key:i,attrs:{gutter:20}},[n("el-col",{attrs:{span:24}},[n("div",{staticClass:"grid-content bg-purple-dark",attrs:{align:"center"}},[e._v(e._s(t.rate.name))])]),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Request Rate("+t.rate.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexSearchRate","option-info":t.rate}})],1)])],1),e._v(" "),n("el-col",{attrs:{span:12}},[n("chart-container",{attrs:{title:"Request Latency("+t.latency.yAxisName+")",type:"line"}},[n("div",{attrs:{slot:"chart"},slot:"chart"},[n("MyLine",{attrs:{id:"indexSearchLatency","option-info":t.latency}})],1)])],1)],1):e._e()}),1),e._v(" "),n("div",{staticClass:"content"},[0===e.operationList.length?n("div",{staticClass:"empty-operation"},[e._v("暂无数据")]):n("Timeline",e._l(e.operationList,function(t){return n("Timeline-item",{key:t.id},[n("div",{staticStyle:{"margin-top":"-8px"},attrs:{slot:"date"},slot:"date"},[e._v("\n "+e._s(e._f("formatOnlyDate")(t.operationTime))),n("br"),e._v(e._s(e._f("formatOnlyTime")(t.operationTime))+"\n ")]),e._v(" "),n("div",{staticStyle:{"margin-top":"-8px"},attrs:{slot:"title"},slot:"title"},[e._v("\n "+e._s(t.eventType)),n("br"),e._v(e._s(t.eventName)+"\n ")]),e._v(" "),n("div",{staticClass:"operation-content",attrs:{slot:"content"},slot:"content"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:2}},[e._v("操作员:")]),e._v(" "),n("el-col",{attrs:{span:9}},[e._v(e._s(t.operator||"无"))]),e._v(" "),n("el-col",{attrs:{span:2}},[e._v("版本号:")]),e._v(" "),n("el-col",{attrs:{span:9}},[e._v(e._s(t.versionId||"无"))]),e._v(" "),t.isShowIcon?n("div",[n("el-col",{directives:[{name:"show",rawName:"v-show",value:!t.isFold,expression:"!op.isFold"}],attrs:{span:2}},[n("div",{attrs:{align:"right"}},[n("a",{on:{click:function(e){t.isFold=!t.isFold}}},[n("i",{staticClass:"el-icon-arrow-down"})])])]),e._v(" "),n("el-col",{directives:[{name:"show",rawName:"v-show",value:t.isFold,expression:"op.isFold"}],attrs:{span:2}},[n("div",{attrs:{align:"right"}},[n("a",{on:{click:function(e){t.isFold=!t.isFold}}},[n("i",{staticClass:"el-icon-arrow-right"})])])])],1):e._e()],1),e._v(" "),n("div",{class:[t.isFold?"operation-content-fold":"operation-content-unfold"]},[n("el-row",[n("el-col",{attrs:{span:2}},[e._v("操作内容:")]),e._v(" "),n("el-col",{staticStyle:{"word-wrap":"break-word"},attrs:{span:22}},[e._v(e._s(t.eventDetail||"无"))])],1)],1)],1)])}),1),e._v(" "),0!=e.operationData.total?n("div",{staticClass:"dynamic-pagination",attrs:{align:"right"}},[n("el-pagination",{attrs:{layout:"prev, pager, next",total:e.operationData.total,"page-size":e.pageSize,"current-page":e.currentPage},on:{"current-change":e.changePage}})],1):e._e()],1),e._v(" "),e.isDynamicInfoVisible?n("div",[n("dynamic-info-dialog",{attrs:{"dynamic-operation":e.dynamicOperation,"dynamic-info-title":e.dynamicInfoTitle,"dynamic-info":e.dynamicInfo,typeList:e.typeList,versionIdList:e.versionIdList},on:{"close-dialog":e.closeDialog,"operate-close-dialog":e.operateCloseDialog}})],1):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"target-group",attrs:{"element-loading-text":"请稍等···"}},[n("div",{staticClass:"data-table-filter"},[e.privilege?n("el-button",{attrs:{type:"primary",icon:"plus"},on:{click:e.handleAdd}},[e._v("添加节点集")]):e._e(),e._v(" "),"{}"!=JSON.stringify(e.routingTargetGroupsList)?n("el-select",{on:{change:e.changeShowTreeInfo},model:{value:e.selectedShowTreeInfo,callback:function(t){e.selectedShowTreeInfo=t},expression:"selectedShowTreeInfo"}},[n("el-option",{attrs:{label:"展示节点名称",value:"name"}}),e._v(" "),n("el-option",{attrs:{label:"展示节点地址",value:"address"}})],1):e._e()],1),e._v(" "),"{}"===JSON.stringify(e.routingTargetGroupsList)?n("div",{staticClass:"target-group-null"},[n("span",[e._v("请添加节点集")])]):n("div",[n("el-row",{attrs:{gutter:20}},e._l(e.routingTargetGroupsList,function(t,i){return n("el-col",{key:t.id,attrs:{span:12}},[n("target-group-item",{attrs:{privilege:e.privilege,"target-group-tree-no-children":JSON.parse(JSON.stringify(e.targetGroupTreeNoChildren)),"target-group-tree":JSON.parse(JSON.stringify(e.targetGroupTree)),targetGroupItemInfo:t,"selected-show-tree-info":e.selectedShowTreeInfo},on:{"save-operation":e.saveOperation,"delete-operation":e.deleteOperation}})],1)}),1)],1),e._v(" "),e.istargetGroupInfoVisible?n("div",[n("target-group-info-dialog",{attrs:{"target-group-info":e.targetGroupInfo,"target-group-info-title":e.targetGroupInfoTitle},on:{"operation-success":e.operationSuccess,"close-dialog":e.closeTargetGroupDialog}})],1):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"my-breadcrumb"},[n("el-breadcrumb",{staticClass:"my-breadcrumb-content",attrs:{separator:"/"}},[n("el-breadcrumb-item",{attrs:{to:{name:"index_manage"}}},[n("i",{staticClass:"fa fa-home"}),e._v("索引管理")]),e._v(" "),n("el-breadcrumb-item",[e._v(e._s(e.indexName)+"("+e._s(e.indexId)+")")])],1)],1),e._v(" "),n("div",{staticClass:"page-tab"},[n("el-tabs",{on:{"tab-click":e.onTabClick},model:{value:e.activeTab,callback:function(t){e.activeTab=t},expression:"activeTab"}},[n("el-tab-pane",{attrs:{name:"version_manage"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-share-alt"}),e._v("版本管理")])]),e._v(" "),n("el-tab-pane",{attrs:{name:"template_manage"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-th-large"}),e._v("模板管理")])]),e._v(" "),n("el-tab-pane",{attrs:{name:"route_manage"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-sitemap"}),e._v("路由管理")])]),e._v(" "),n("el-tab-pane",{attrs:{name:"service_manage"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-server"}),e._v("服务治理")])]),e._v(" "),n("el-tab-pane",{attrs:{name:"dynamic_manage"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-sort-amount-asc"}),e._v("索引动态")])]),e._v(" "),n("el-tab-pane",{attrs:{name:"flow_record"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"fa fa-camera"}),e._v("流量记录")])])],1),e._v(" "),n("router-view")],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-dialog",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],attrs:{title:e.configInfoTitle,size:"small","before-close":e.closeDialog,"element-loading-text":"请稍等···"},model:{value:e.isconfigInfoVisible,callback:function(t){e.isconfigInfoVisible=t},expression:"isconfigInfoVisible"}},[n("el-form",{ref:"configInfo",attrs:{model:e.configInfo,rules:e.rules,"label-width":"140px"}},[n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"目标模板",prop:"templateId",required:""}},[n("el-select",{staticStyle:{width:"100%"},model:{value:e.configInfo.templateId,callback:function(t){e.$set(e.configInfo,"templateId",t)},expression:"configInfo.templateId"}},e._l(e.templates,function(e){return n("el-option",{key:e.id,attrs:{label:e.templateName,value:e.id}})}),1)],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"采集开始时间",prop:"startTime",required:""}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{type:"datetime",placeholder:"选择开始时间"},model:{value:e.configInfo.startTime,callback:function(t){e.$set(e.configInfo,"startTime",t)},expression:"configInfo.startTime"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"采集结束时间",prop:"endTime",required:""}},[n("el-date-picker",{staticStyle:{width:"100%"},attrs:{type:"datetime",placeholder:"选择结束时间"},model:{value:e.configInfo.endTime,callback:function(t){e.$set(e.configInfo,"endTime",t)},expression:"configInfo.endTime"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"抽样系数",prop:"sampleRate",required:""}},[n("el-input",{attrs:{placeholder:"范围0到1"},model:{value:e.configInfo.sampleRate,callback:function(t){e.$set(e.configInfo,"sampleRate",t)},expression:"configInfo.sampleRate"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"采集数量",prop:"limit"}},[n("el-input",{model:{value:e.configInfo.limit,callback:function(t){e.$set(e.configInfo,"limit",t)},expression:"configInfo.limit"}})],1)],1)],1),e._v(" "),n("el-row",[n("el-col",{attrs:{span:22}},[n("el-form-item",{attrs:{label:"描述",prop:"note"}},[n("el-input",{attrs:{type:"textarea"},model:{value:e.configInfo.note,callback:function(t){e.$set(e.configInfo,"note",t)},expression:"configInfo.note"}})],1)],1)],1)],1),e._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){return e.closeDialog()}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{type:"confirm"},on:{click:function(t){return e.submitconfigInfo()}}},[e._v("保存")])],1)],1)},staticRenderFns:[]}},,function(e,t,n){var i=n(989);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("012d57c2",i,!0)},function(e,t,n){var i=n(990);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("0db2173b",i,!0)},function(e,t,n){var i=n(991);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("3fda0f60",i,!0)},function(e,t,n){var i=n(992);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("2501a983",i,!0)},function(e,t,n){var i=n(993);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("2495d13d",i,!0)},function(e,t,n){var i=n(994);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("284eac06",i,!0)},function(e,t,n){var i=n(995);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("449db72f",i,!0)},function(e,t,n){var i=n(996);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("0f34d3dd",i,!0)},function(e,t,n){var i=n(997);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("89aafce8",i,!0)},function(e,t,n){var i=n(998);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("6cb87b85",i,!0)},function(e,t,n){var i=n(999);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("100dd37f",i,!0)},function(e,t,n){var i=n(1e3);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("2c86a19c",i,!0)},function(e,t,n){var i=n(1001);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("30e645b2",i,!0)},function(e,t,n){var i=n(1002);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("3bc08566",i,!0)},function(e,t,n){var i=n(1003);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("6c0c9162",i,!0)},function(e,t,n){var i=n(1004);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("5b248576",i,!0)},function(e,t,n){var i=n(1005);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("24ceb9d6",i,!0)},function(e,t,n){var i=n(1006);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("20e99ef8",i,!0)},function(e,t,n){var i=n(1007);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("10a0e87f",i,!0)},function(e,t,n){var i=n(1008);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("257c714e",i,!0)},function(e,t,n){var i=n(1009);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("c00d6d0c",i,!0)},function(e,t,n){var i=n(1010);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("fd5d2c9e",i,!0)},function(e,t,n){var i=n(1011);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("bbb03962",i,!0)},function(e,t,n){var i=n(1012);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("0209d4e3",i,!0)},function(e,t,n){var i=n(1013);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("9311f38e",i,!0)},function(e,t,n){var i=n(1014);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("7c80f592",i,!0)},function(e,t,n){var i=n(1015);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("75c4635f",i,!0)},function(e,t,n){var i=n(1016);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("7c59e9f8",i,!0)},function(e,t,n){var i=n(1017);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("2c1b4a37",i,!0)},function(e,t,n){var i=n(1018);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("287a9230",i,!0)},function(e,t,n){var i=n(1019);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("7a761bf6",i,!0)},function(e,t,n){var i=n(1020);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("414f0c39",i,!0)},function(e,t,n){var i=n(1021);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("5c80bb0f",i,!0)},function(e,t,n){var i=n(1022);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("8f22182a",i,!0)},function(e,t,n){var i=n(1023);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("a6d816c6",i,!0)},function(e,t,n){var i=n(1024);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("68bf201c",i,!0)},function(e,t,n){var i=n(1025);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("5794c64e",i,!0)},function(e,t,n){var i=n(1026);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("055ce804",i,!0)},function(e,t,n){var i=n(1027);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("18570d76",i,!0)},function(e,t,n){var i=n(1028);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("b2255d5c",i,!0)},function(e,t,n){var i=n(1029);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("4b193684",i,!0)},function(e,t,n){var i=n(1030);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("5c4252a2",i,!0)},function(e,t,n){var i=n(1031);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("04178ab1",i,!0)},function(e,t,n){var i=n(1032);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("8f993ede",i,!0)},function(e,t,n){var i=n(1033);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("71153a16",i,!0)},function(e,t,n){var i=n(1034);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("16c60068",i,!0)},function(e,t,n){var i=n(1035);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("581d124e",i,!0)},function(e,t,n){var i=n(1036);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("2394e428",i,!0)},function(e,t,n){var i=n(1037);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("6e451322",i,!0)},function(e,t,n){var i=n(1038);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("095d2af6",i,!0)},function(e,t,n){var i=n(1039);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("efa6a460",i,!0)},function(e,t,n){var i=n(1040);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("4b7e0b24",i,!0)},function(e,t,n){var i=n(1041);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("86c97bba",i,!0)},function(e,t,n){var i=n(1042);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("54a1f284",i,!0)},function(e,t,n){var i=n(1043);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("6c4ac3f4",i,!0)},function(e,t,n){var i=n(1044);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("1de909ae",i,!0)},function(e,t,n){var i=n(1045);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("6a3b2dee",i,!0)},function(e,t,n){var i=n(1046);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("5d65c4b1",i,!0)},function(e,t,n){var i=n(1047);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);n(7)("54521777",i,!0)},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}n(577);var a=n(34),o=i(a),s=n(282),l=i(s),r=n(582),c=i(r);n(578),n(579),n(193),n(572);var u=n(583),d=i(u),p=n(575),f=i(p),m=n(573),h=i(m),v=n(574),g=i(v),b=n(576),_=i(b);n(581),n(580),o.default.mixin(h.default),o.default.use(l.default),o.default.use(_.default),o.default.use(c.default),new o.default({el:"#app",store:f.default,router:g.default,render:function(e){return e(d.default)}})}]),[1623]); +//# sourceMappingURL=app.a3fd8a3a0dcf9bc712ac.js.map \ No newline at end of file diff --git a/pallas-demo/src/main/resources/pallas-console/assets/js/app.a3fd8a3a0dcf9bc712ac.js.map b/pallas-demo/src/main/resources/pallas-console/assets/js/app.a3fd8a3a0dcf9bc712ac.js.map new file mode 100644 index 00000000..c8774c1a --- /dev/null +++ b/pallas-demo/src/main/resources/pallas-console/assets/js/app.a3fd8a3a0dcf9bc712ac.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///assets/js/app.a3fd8a3a0dcf9bc712ac.js","webpack:///./src/components/index.js","webpack:///./src/store/types.js","webpack:///./src/components/filter.js","webpack:///./src/utils/message.js","webpack:///./src/utils/router_mapper.js","webpack:///./src/Login.vue","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_copy_to_dialog.vue","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_multi_field_dialog.vue","webpack:///./src/directives/index.js","webpack:///./src/mixins/index.js","webpack:///./src/routers.js","webpack:///./src/store/index.js","webpack:///./src/utils/index.js","webpack:///./src/App.vue","webpack:///./src/directives/diffMatchPatch.js","webpack:///./src/utils/array.js","webpack:///./src/utils/common.js","webpack:///./src/utils/option.js","webpack:///./src/utils/request.js","webpack:///./src/utils/validate.js","webpack:///App.vue","webpack:///Login.vue","webpack:///ace_editor.vue","webpack:///chart_container.vue","webpack:///column.vue","webpack:///line.vue","webpack:///pie.vue","webpack:///json_content.vue","webpack:///json_diff.vue","webpack:///navbar.vue","webpack:///panel.vue","webpack:///version_footer.vue","webpack:///agent_manage.vue","webpack:///approve_dialog.vue","webpack:///authority_manage.vue","webpack:///authority_manage_administrator.vue","webpack:///cluster_dashboard.vue","webpack:///cluster_detail.vue","webpack:///cluster_info_dialog.vue","webpack:///cluster_manage.vue","webpack:///cluster_node_restart.vue","webpack:///cluster_condition_info_dialog.vue","webpack:///cluster_condition_item.vue","webpack:///cluster_conditions.vue","webpack:///cluster_route_manage.vue","webpack:///cluster_target_group.vue","webpack:///cluster_target_group_info_dialog.vue","webpack:///cluster_target_group_item.vue","webpack:///cluster_monitor.vue","webpack:///custom_time_dialog.vue","webpack:///indice_detail.vue","webpack:///indices_monitor.vue","webpack:///node_detail.vue","webpack:///nodes_monitor.vue","webpack:///overview.vue","webpack:///cron_delete_dialog.vue","webpack:///cron_delete_manage.vue","webpack:///dynamic_manage.vue","webpack:///dynamic_manage_dialog.vue","webpack:///flow_record.vue","webpack:///config_info_dialog.vue","webpack:///flow_record_config.vue","webpack:///flow_record_export.vue","webpack:///index_detail.vue","webpack:///condition_info_dialog.vue","webpack:///condition_item.vue","webpack:///conditions.vue","webpack:///route_manage.vue","webpack:///target_group.vue","webpack:///target_group_info_dialog.vue","webpack:///target_group_item.vue","webpack:///service_manage.vue","webpack:///throttling_manage.vue","webpack:///timeout_retry_manage.vue","webpack:///template_add_dialog.vue","webpack:///template_batch_submit_dialog.vue","webpack:///profile_content.vue","webpack:///service_governance.vue","webpack:///template_config_dialog.vue","webpack:///template_edit.vue","webpack:///template_insert_dialog.vue","webpack:///template_save_edit_dialog.vue","webpack:///template_test.vue","webpack:///template_test_data_source.vue","webpack:///template_test_params.vue","webpack:///template_test_upload.vue","webpack:///template_export_dialog.vue","webpack:///template_import_dialog.vue","webpack:///template_manage.vue","webpack:///preheading_dialog.vue","webpack:///schema_child_dialog.vue","webpack:///schema_copy_to_dialog.vue","webpack:///schema_import_dialog.vue","webpack:///schema_multi_field_dialog.vue","webpack:///version_dynamic_info_dialog.vue","webpack:///version_info_dialog.vue","webpack:///version_manage.vue","webpack:///datasource_import_dialog.vue","webpack:///index_data_source_item.vue","webpack:///index_data_sources.vue","webpack:///index_info_dialog.vue","webpack:///index_manage.vue","webpack:///permission_manage.vue","webpack:///user_info_dialog.vue","webpack:///user_manage.vue","webpack:///plugin_info_dialog.vue","webpack:///plugin_manage.vue","webpack:///plugin_upgrade.vue","webpack:///token_detail.vue","webpack:///token_index.vue","webpack:///token_info_dialog.vue","webpack:///token_manage.vue","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/condition_info_dialog.vue?413b","webpack:///./src/pages/index_detail/template_manage/template_edit/template_config_dialog.vue?40ad","webpack:///./src/components/common/charts/chart_no_data.vue?06c3","webpack:///./src/pages/index_detail/service_manage/throttling_manage.vue?3977","webpack:///./src/components/common/panel.vue?46d1","webpack:///./src/pages/token_manage/token_index.vue?d4a1","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/version_dynamic_info_dialog.vue?5e0f","webpack:///./src/pages/index_detail/template_manage/template_batch_submit_dialog/template_batch_submit_dialog.vue?29d9","webpack:///./src/pages/index_detail/template_manage/template_edit/template_save_edit_dialog/template_save_edit_dialog.vue?5d8a","webpack:///./src/pages/index_detail/template_manage/template_export_dialog/template_export_dialog.vue?ce12","webpack:///./src/components/common/charts/chart_container.vue?3749","webpack:///./src/pages/authority_manage/approve_dialog/approve_dialog.vue?6ce7","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_conditions.vue?9424","webpack:///./src/pages/plugin_manage/plugin_manage.vue?3399","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_info_dialog.vue?7c52","webpack:///./src/pages/plugin_manage/plugin_upgrade.vue?bb97","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/conditions.vue?062d","webpack:///./src/pages/index_detail/cron_delete/cron_delete_dialog/cron_delete_dialog.vue?23c4","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_copy_to_dialog.vue?e0be","webpack:///./src/Login.vue?87af","webpack:///./src/pages/index_detail/template_manage/template_manage.vue?8664","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test_upload/template_test_upload.vue?83e7","webpack:///./src/pages/index_detail/template_manage/template_add_dialog/template_add_dialog.vue?de65","webpack:///./src/pages/index_detail/route_manage/route_manage.vue?4fb6","webpack:///./src/pages/index_detail/template_manage/template_edit/service_governance/service_governance.vue?2e62","webpack:///./src/components/common/charts/line.vue?7496","webpack:///./src/pages/index_detail/template_manage/template_edit/template_edit.vue?184e","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_route_manage.vue?73f0","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_child_dialog.vue?e6de","webpack:///./src/pages/token_manage/token_info_dialog.vue?fed2","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_source_item.vue?b9b5","webpack:///./src/pages/index_detail/template_manage/template_edit/profile_content.vue?7825","webpack:///./src/pages/index_manage/index_info_dialog/index_info_dialog.vue?3a27","webpack:///./src/pages/cluster_manage/cluster_node_restart/cluster_node_restart.vue?9d74","webpack:///./src/pages/index_detail/template_manage/template_import_dialog/template_import_dialog.vue?1dff","webpack:///./src/pages/cluster_manage/monitor/cluster_monitor.vue?a83e","webpack:///./src/components/common/container.vue?226a","webpack:///./src/pages/token_manage/token_detail.vue?f957","webpack:///./src/pages/plugin_manage/plugin_info_dialog/plugin_info_dialog.vue?1e4b","webpack:///./src/pages/index_detail/version_manage/preheading_dialog.vue?d610","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_multi_field_dialog.vue?7622","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_sources.vue?0c68","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test.vue?5422","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_item.vue?a735","webpack:///./src/components/common/json_diff.vue?7766","webpack:///./src/components/common/version_footer.vue?c5c1","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/version_info_dialog.vue?d503","webpack:///./src/pages/index_detail/template_manage/template_edit/template_insert_dialog.vue?e793","webpack:///./src/pages/index_detail/route_manage/target_group/target_group_item.vue?b53b","webpack:///./src/pages/token_manage/token_manage.vue?226b","webpack:///./src/components/common/ace_editor.vue?bba6","webpack:///./src/components/common/navbar.vue?ca73","webpack:///./src/pages/index_manage/index_manage.vue?9b3f","webpack:///./src/components/common/timeline.vue?350d","webpack:///./src/components/common/charts/pie.vue?cd1b","webpack:///./src/pages/index_detail/route_manage/target_group/target_group.vue?107a","webpack:///./src/pages/index_detail/dynamic_manage/dynamic_manage.vue?4a66","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group.vue?f98a","webpack:///./src/pages/index_detail/index_detail.vue?14a7","webpack:///./~/moment/locale ^\\.\\/.*$","webpack:///./src/image/pallas.png","webpack:///./src/components/common/ace_editor.vue","webpack:///./src/components/common/charts/chart_container.vue","webpack:///./src/components/common/charts/chart_no_data.vue","webpack:///./src/components/common/charts/column.vue","webpack:///./src/components/common/charts/line.vue","webpack:///./src/components/common/charts/pie.vue","webpack:///./src/components/common/container.vue","webpack:///./src/components/common/json_content.vue","webpack:///./src/components/common/json_diff.vue","webpack:///./src/components/common/navbar.vue","webpack:///./src/components/common/panel.vue","webpack:///./src/components/common/timeline.vue","webpack:///./src/components/common/timeline_item.vue","webpack:///./src/components/common/version_footer.vue","webpack:///./src/pages/agent_manage/agent_manage.vue","webpack:///./src/pages/authority_manage/approve_dialog/approve_dialog.vue","webpack:///./src/pages/authority_manage/authority_manage.vue","webpack:///./src/pages/authority_manage/authority_manage_administrator.vue","webpack:///./src/pages/cluster_detail/cluster_dashboard/cluster_dashboard.vue","webpack:///./src/pages/cluster_detail/cluster_detail.vue","webpack:///./src/pages/cluster_manage/cluster_info_dialog/cluster_info_dialog.vue","webpack:///./src/pages/cluster_manage/cluster_manage.vue","webpack:///./src/pages/cluster_manage/cluster_node_restart/cluster_node_restart.vue","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_info_dialog.vue","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_item.vue","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_conditions.vue","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_route_manage.vue","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group.vue","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_info_dialog.vue","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_item.vue","webpack:///./src/pages/cluster_manage/monitor/cluster_monitor.vue","webpack:///./src/pages/cluster_manage/monitor/custom_time_dialog.vue","webpack:///./src/pages/cluster_manage/monitor/indice_detail.vue","webpack:///./src/pages/cluster_manage/monitor/indices_monitor.vue","webpack:///./src/pages/cluster_manage/monitor/node_detail.vue","webpack:///./src/pages/cluster_manage/monitor/nodes_monitor.vue","webpack:///./src/pages/cluster_manage/monitor/overview.vue","webpack:///./src/pages/index_detail/cron_delete/cron_delete_dialog/cron_delete_dialog.vue","webpack:///./src/pages/index_detail/cron_delete/cron_delete_manage.vue","webpack:///./src/pages/index_detail/dynamic_manage/dynamic_manage.vue","webpack:///./src/pages/index_detail/dynamic_manage/dynamic_manage_dialog/dynamic_manage_dialog.vue","webpack:///./src/pages/index_detail/flow_record/flow_record.vue","webpack:///./src/pages/index_detail/flow_record/flow_record_config/config_info_dialog.vue","webpack:///./src/pages/index_detail/flow_record/flow_record_config/flow_record_config.vue","webpack:///./src/pages/index_detail/flow_record/flow_record_config/flow_record_export.vue","webpack:///./src/pages/index_detail/index_detail.vue","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/condition_info_dialog.vue","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/condition_item.vue","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/conditions.vue","webpack:///./src/pages/index_detail/route_manage/route_manage.vue","webpack:///./src/pages/index_detail/route_manage/target_group/target_group.vue","webpack:///./src/pages/index_detail/route_manage/target_group/target_group_info_dialog.vue","webpack:///./src/pages/index_detail/route_manage/target_group/target_group_item.vue","webpack:///./src/pages/index_detail/service_manage/service_manage.vue","webpack:///./src/pages/index_detail/service_manage/throttling_manage.vue","webpack:///./src/pages/index_detail/service_manage/timeout_retry_manage.vue","webpack:///./src/pages/index_detail/template_manage/template_add_dialog/template_add_dialog.vue","webpack:///./src/pages/index_detail/template_manage/template_batch_submit_dialog/template_batch_submit_dialog.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/profile_content.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/service_governance/service_governance.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/template_config_dialog.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/template_edit.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/template_insert_dialog.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/template_save_edit_dialog/template_save_edit_dialog.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test_data_source/template_test_data_source.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test_params/template_test_params.vue","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test_upload/template_test_upload.vue","webpack:///./src/pages/index_detail/template_manage/template_export_dialog/template_export_dialog.vue","webpack:///./src/pages/index_detail/template_manage/template_import_dialog/template_import_dialog.vue","webpack:///./src/pages/index_detail/template_manage/template_manage.vue","webpack:///./src/pages/index_detail/version_manage/preheading_dialog.vue","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_child_dialog.vue","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_import_dialog.vue","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/version_dynamic_info_dialog.vue","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/version_info_dialog.vue","webpack:///./src/pages/index_detail/version_manage/version_manage.vue","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/datasource_import_dialog.vue","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_source_item.vue","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_sources.vue","webpack:///./src/pages/index_manage/index_info_dialog/index_info_dialog.vue","webpack:///./src/pages/index_manage/index_manage.vue","webpack:///./src/pages/permission_manage/permission_manage.vue","webpack:///./src/pages/permission_manage/user_manage/user_info_dialog.vue","webpack:///./src/pages/permission_manage/user_manage/user_manage.vue","webpack:///./src/pages/plugin_manage/plugin_info_dialog/plugin_info_dialog.vue","webpack:///./src/pages/plugin_manage/plugin_manage.vue","webpack:///./src/pages/plugin_manage/plugin_upgrade.vue","webpack:///./src/pages/token_manage/token_detail.vue","webpack:///./src/pages/token_manage/token_index.vue","webpack:///./src/pages/token_manage/token_info_dialog.vue","webpack:///./src/pages/token_manage/token_manage.vue","webpack:///./src/pages/index_detail/route_manage/target_group/target_group_info_dialog.vue?c482","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/condition_info_dialog.vue?19bc","webpack:///./src/pages/index_detail/template_manage/template_edit/template_config_dialog.vue?b165","webpack:///./src/components/common/charts/chart_no_data.vue?f949","webpack:///./src/pages/index_detail/service_manage/throttling_manage.vue?2205","webpack:///./src/components/common/panel.vue?68c8","webpack:///./src/pages/cluster_manage/cluster_manage.vue?e3ca","webpack:///./src/pages/token_manage/token_index.vue?a9e6","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/version_dynamic_info_dialog.vue?5a6a","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_item.vue?9573","webpack:///./src/pages/authority_manage/authority_manage.vue?9c35","webpack:///./src/pages/cluster_detail/cluster_dashboard/cluster_dashboard.vue?bd6d","webpack:///./src/pages/cluster_manage/monitor/custom_time_dialog.vue?7dc7","webpack:///./src/pages/permission_manage/user_manage/user_manage.vue?70ed","webpack:///./src/pages/index_detail/template_manage/template_batch_submit_dialog/template_batch_submit_dialog.vue?4b24","webpack:///./src/pages/index_detail/template_manage/template_edit/template_save_edit_dialog/template_save_edit_dialog.vue?898b","webpack:///./src/pages/index_detail/template_manage/template_export_dialog/template_export_dialog.vue?580e","webpack:///./src/pages/permission_manage/user_manage/user_info_dialog.vue?fee2","webpack:///./src/components/common/charts/chart_container.vue?eae6","webpack:///./src/pages/authority_manage/authority_manage_administrator.vue?91e6","webpack:///./src/pages/authority_manage/approve_dialog/approve_dialog.vue?64ca","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_conditions.vue?a6e0","webpack:///./src/pages/plugin_manage/plugin_manage.vue?26a0","webpack:///./src/pages/cluster_manage/cluster_info_dialog/cluster_info_dialog.vue?935f","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_info_dialog.vue?4830","webpack:///./src/pages/plugin_manage/plugin_upgrade.vue?1fa1","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/conditions.vue?2e0c","webpack:///./src/pages/index_detail/cron_delete/cron_delete_dialog/cron_delete_dialog.vue?b220","webpack:///./src/pages/cluster_manage/monitor/node_detail.vue?ae5f","webpack:///./src/pages/index_detail/dynamic_manage/dynamic_manage_dialog/dynamic_manage_dialog.vue?53fb","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_copy_to_dialog.vue?f554","webpack:///./src/components/common/json_content.vue?79bc","webpack:///./src/Login.vue?c788","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/condition_item.vue?7a8e","webpack:///./src/App.vue?b375","webpack:///./src/pages/index_detail/template_manage/template_manage.vue?3a16","webpack:///./src/pages/index_detail/service_manage/service_manage.vue?9cd0","webpack:///./src/pages/index_detail/flow_record/flow_record.vue?9563","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test_upload/template_test_upload.vue?a5a8","webpack:///./src/pages/index_detail/template_manage/template_add_dialog/template_add_dialog.vue?fa5e","webpack:///./src/pages/index_detail/route_manage/route_manage.vue?10cb","webpack:///./src/pages/index_detail/template_manage/template_edit/service_governance/service_governance.vue?6439","webpack:///./src/components/common/charts/line.vue?c3ce","webpack:///./src/pages/index_detail/version_manage/version_manage.vue?60fc","webpack:///./src/pages/index_detail/template_manage/template_edit/template_edit.vue?ba05","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_info_dialog.vue?c184","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_route_manage.vue?87dd","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_child_dialog.vue?5bf4","webpack:///./src/pages/token_manage/token_info_dialog.vue?e8c1","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_source_item.vue?ecf4","webpack:///./src/pages/index_detail/template_manage/template_edit/profile_content.vue?72ae","webpack:///./src/pages/index_manage/index_info_dialog/index_info_dialog.vue?cf42","webpack:///./src/pages/cluster_manage/cluster_node_restart/cluster_node_restart.vue?1f59","webpack:///./src/components/common/charts/column.vue?9917","webpack:///./src/pages/index_detail/template_manage/template_import_dialog/template_import_dialog.vue?8b3d","webpack:///./src/pages/cluster_manage/monitor/cluster_monitor.vue?f186","webpack:///./src/components/common/container.vue?7d7d","webpack:///./src/pages/token_manage/token_detail.vue?6ddc","webpack:///./src/components/common/timeline_item.vue?8e69","webpack:///./src/pages/permission_manage/permission_manage.vue?b640","webpack:///./src/pages/plugin_manage/plugin_info_dialog/plugin_info_dialog.vue?7b9e","webpack:///./src/pages/index_detail/version_manage/preheading_dialog.vue?48cf","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_multi_field_dialog.vue?90d7","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_sources.vue?bd6c","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_import_dialog.vue?e201","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test.vue?c268","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_item.vue?4fd5","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test_data_source/template_test_data_source.vue?538f","webpack:///./src/pages/index_detail/flow_record/flow_record_config/flow_record_config.vue?7896","webpack:///./src/components/common/json_diff.vue?90af","webpack:///./src/components/common/version_footer.vue?bee7","webpack:///./src/pages/index_detail/cron_delete/cron_delete_manage.vue?26f3","webpack:///./src/pages/index_detail/service_manage/timeout_retry_manage.vue?15e8","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/version_info_dialog.vue?ad77","webpack:///./src/pages/index_detail/template_manage/template_edit/template_insert_dialog.vue?fd39","webpack:///./src/pages/index_detail/route_manage/target_group/target_group_item.vue?ba00","webpack:///./src/pages/cluster_detail/cluster_detail.vue?4bf2","webpack:///./src/pages/token_manage/token_manage.vue?ce7c","webpack:///./src/pages/cluster_manage/monitor/nodes_monitor.vue?0675","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test_params/template_test_params.vue?9fca","webpack:///./src/pages/cluster_manage/monitor/indice_detail.vue?61a5","webpack:///./src/components/common/ace_editor.vue?6c28","webpack:///./src/pages/cluster_manage/monitor/overview.vue?4906","webpack:///./src/components/common/navbar.vue?1f67","webpack:///./src/pages/cluster_manage/monitor/indices_monitor.vue?c06b","webpack:///./src/pages/index_manage/index_manage.vue?feee","webpack:///./src/components/common/timeline.vue?161d","webpack:///./src/pages/index_detail/flow_record/flow_record_config/flow_record_export.vue?61c2","webpack:///./src/pages/agent_manage/agent_manage.vue?26c8","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/datasource_import_dialog.vue?c2ec","webpack:///./src/components/common/charts/pie.vue?6ed5","webpack:///./src/pages/index_detail/route_manage/target_group/target_group.vue?dfc5","webpack:///./src/pages/index_detail/dynamic_manage/dynamic_manage.vue?d9da","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group.vue?3216","webpack:///./src/pages/index_detail/index_detail.vue?7145","webpack:///./src/pages/index_detail/flow_record/flow_record_config/config_info_dialog.vue?9cb1","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/condition_info_dialog.vue?a013","webpack:///./src/pages/index_detail/template_manage/template_edit/template_config_dialog.vue?84f0","webpack:///./src/components/common/charts/chart_no_data.vue?f743","webpack:///./src/pages/index_detail/service_manage/throttling_manage.vue?ceb2","webpack:///./src/components/common/panel.vue?268e","webpack:///./src/pages/token_manage/token_index.vue?e4b5","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/version_dynamic_info_dialog.vue?a948","webpack:///./src/pages/index_detail/template_manage/template_batch_submit_dialog/template_batch_submit_dialog.vue?e661","webpack:///./src/pages/index_detail/template_manage/template_edit/template_save_edit_dialog/template_save_edit_dialog.vue?e008","webpack:///./src/pages/index_detail/template_manage/template_export_dialog/template_export_dialog.vue?1dbf","webpack:///./src/components/common/charts/chart_container.vue?b0b3","webpack:///./src/pages/authority_manage/approve_dialog/approve_dialog.vue?c118","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_conditions.vue?037a","webpack:///./src/pages/plugin_manage/plugin_manage.vue?a167","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_info_dialog.vue?aeab","webpack:///./src/pages/plugin_manage/plugin_upgrade.vue?2d7b","webpack:///./src/pages/index_detail/route_manage/condition_info_dialog/conditions.vue?7f5c","webpack:///./src/pages/index_detail/cron_delete/cron_delete_dialog/cron_delete_dialog.vue?4427","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_copy_to_dialog.vue?b8d8","webpack:///./src/Login.vue?e939","webpack:///./src/pages/index_detail/template_manage/template_manage.vue?44fa","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test_upload/template_test_upload.vue?8481","webpack:///./src/pages/index_detail/template_manage/template_add_dialog/template_add_dialog.vue?a74b","webpack:///./src/pages/index_detail/route_manage/route_manage.vue?a633","webpack:///./src/pages/index_detail/template_manage/template_edit/service_governance/service_governance.vue?a7bc","webpack:///./src/components/common/charts/line.vue?0445","webpack:///./src/pages/index_detail/template_manage/template_edit/template_edit.vue?ee83","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_route_manage.vue?77d7","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_child_dialog.vue?1be6","webpack:///./src/pages/token_manage/token_info_dialog.vue?8407","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_source_item.vue?3c7d","webpack:///./src/pages/index_detail/template_manage/template_edit/profile_content.vue?df8b","webpack:///./src/pages/index_manage/index_info_dialog/index_info_dialog.vue?b132","webpack:///./src/pages/cluster_manage/cluster_node_restart/cluster_node_restart.vue?a924","webpack:///./src/pages/index_detail/template_manage/template_import_dialog/template_import_dialog.vue?84c1","webpack:///./src/pages/cluster_manage/monitor/cluster_monitor.vue?babc","webpack:///./src/components/common/container.vue?57a3","webpack:///./src/pages/token_manage/token_detail.vue?9b7b","webpack:///./src/pages/plugin_manage/plugin_info_dialog/plugin_info_dialog.vue?7fed","webpack:///./src/pages/index_detail/version_manage/preheading_dialog.vue?145b","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/schema_multi_field_dialog.vue?581b","webpack:///./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_sources.vue?7fec","webpack:///./src/pages/index_detail/template_manage/template_edit/template_test/template_test.vue?cb33","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_item.vue?9ebe","webpack:///./src/components/common/json_diff.vue?9756","webpack:///./src/components/common/version_footer.vue?78e5","webpack:///./src/pages/index_detail/version_manage/version_info_dialog/version_info_dialog.vue?9820","webpack:///./src/pages/index_detail/template_manage/template_edit/template_insert_dialog.vue?2f8f","webpack:///./src/pages/index_detail/route_manage/target_group/target_group_item.vue?23f0","webpack:///./src/pages/token_manage/token_manage.vue?d536","webpack:///./src/components/common/ace_editor.vue?ec88","webpack:///./src/components/common/navbar.vue?6522","webpack:///./src/pages/index_manage/index_manage.vue?14b9","webpack:///./src/components/common/timeline.vue?7f28","webpack:///./src/components/common/charts/pie.vue?945f","webpack:///./src/pages/index_detail/route_manage/target_group/target_group.vue?bdc7","webpack:///./src/pages/index_detail/dynamic_manage/dynamic_manage.vue?0a61","webpack:///./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group.vue?1899","webpack:///./src/pages/index_detail/index_detail.vue?d89a","webpack:///./src/index.js"],"names":["webpackJsonp","Array","concat","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","_vue","_vue2","_ace_editor","_ace_editor2","_container","_container2","_navbar","_navbar2","_version_footer","_version_footer2","_chart_container","_chart_container2","_chart_no_data","_chart_no_data2","_pie","_pie2","_line","_line2","_column","_column2","_timeline","_timeline2","_timeline_item","_timeline_item2","_json_content","_json_content2","_json_diff","_json_diff2","_panel","_panel2","_index_data_source_item","_index_data_source_item2","component","template","Object","defineProperty","value","SET_LOGIN_USER","SET_MONITOR_TIME_INTERVAL","_moment","_moment2","filter","time","formatTime","date","Date","format","_elementUi","errorMessage","text","MessageBox","alert","type","confirmButtonText","successMessage","callback","then","catch","confirmMessage","confirm","cancelButtonText","success","Message","showClose","message","routermapperlist","name","path","GetPath","items","x","undefined","Error","Component","_diffMatchPatch","_diffMatchPatch2","directive","diff","processingDiff","semanticDiff","lineDiff","methods","bytesToSize","bytes","k","sizes","i","Math","floor","log","toFixed","formatDate","_vueRouter","_vueRouter2","_router_mapper","_router_mapper2","_Login","_Login2","_index_manage","_index_manage2","_index_detail","_index_detail2","_version_manage","_version_manage2","_template_manage","_template_manage2","_dynamic_manage","_dynamic_manage2","_flow_record","_flow_record2","_cron_delete_manage","_cron_delete_manage2","_route_manage","_route_manage2","_service_manage","_service_manage2","_cluster_manage","_cluster_manage2","_overview","_overview2","_cluster_monitor","_cluster_monitor2","_indices_monitor","_indices_monitor2","_indice_detail","_indice_detail2","_nodes_monitor","_nodes_monitor2","_node_detail","_node_detail2","_cluster_route_manage","_cluster_route_manage2","_cluster_node_restart","_cluster_node_restart2","_cluster_detail","_cluster_detail2","_authority_manage","_authority_manage2","_authority_manage_administrator","_authority_manage_administrator2","_plugin_manage","_plugin_manage2","_plugin_upgrade","_plugin_upgrade2","_agent_manage","_agent_manage2","_token_manage","_token_manage2","_permission_manage","_permission_manage2","_user_manage","_user_manage2","use","routes","redirect","children","_mutations","_actions","_defineProperty2","_defineProperty3","_extends2","_extends3","_vuex","_vuex2","_types","Store","state","loginUser","monitorTimeInterval","command","from","getTime","to","getters","mutations","timeInterinfo","actions","commit","_ref","_ref2","_array","_array2","_request","_request2","_message","_message2","_option","_option2","_validate","_validate2","_common","_common2","Utils","array","http","option","validate","routerMapper","common","install","Vue","prototype","$array","$http","$message","$option","$validate","$routermapper","$common","factory","diffClass","op","DIFF_INSERT","DIFF_DELETE","DIFF_EQUAL","diffSymbol","diffTag","diffAttrName","isEmptyObject","o","_getOwnPropertyNames2","length","getTagAttrs","options","attrs","tagOptions","JSON","parse","_stringify2","lis","push","join","getHtmlPrefix","display","retVal","displayType","LINEDIFF","class","INSDEL","getHtmlSuffix","createHtmlLines","lines","split","y","createHtmlFromDiffs","diffs","pattern_amp","pattern_lt","pattern_gt","data","replace","html","assertArgumentsIsStrings","left","right","createDiffHtml","diff_match_patch","diff_main","createProcessingDiffHtml","dmp","diff_cleanupEfficiency","createSemanticDiffHtml","diff_cleanupSemantic","createLineDiffHtml","a","diff_linesToChars_","chars1","chars2","diff_charsToLines_","lineArray","_stringify","_getOwnPropertyNames","el","binding","scope","innerHTML","console","removeByValue","arr","val","forEach","element","index","splice","isContainValue","flag","some","strToArray","str","indexOf","_jsonBigint","_jsonBigint2","JSONbigParse","jsonString","JSONbigStringify","replacer","space","stringify","JSONbigStringifyFormat","pluginTypes","label","versionVdpTypes","_promise","_promise2","_axios","_axios2","defaults","baseURL","showError","get","url","this","request","post","postCerebro","requestCerebro","put","delete","buildErrorHandler","msg","dataObj","methodType","resolve","reject","config","method","cache","params","response","status","top","location","href","error","errMsg","body","_from","_from2","_parseInt","_parseInt2","isIPv4","ip","test","RegExp","$1","$2","$3","$4","isPort","isCharacterAndNumber","symbolArr","parten","isIpAndPort","num","isContainEnglishCapital","ele","charCodeAt","validateIp","rule","validatePort","validateIpPort","validateMultipleIpPort","validateCharacterAndNumber","validateCharacterAndNumberIsExcludePointAndBar","validateArray","isArray","validateSelect","validateTimeExpire","validateTime","loading","initialized","interval","loginSuccess","init","heartbeat","_this","setInterval","getLoginUser","_this2","$store","dispatch","_this3","all","computed","initComponent","$route","created","destroyed","clearInterval","components","Login","loginInfo","username","password","loginErrorMsg","login","URLSearchParams","append","$router","$emit","finally","_brace","_brace2","props","editor","beforeContent","watch","content","setValue","mounted","modeType","mode","edit","editorId","getSession","setMode","setTheme","setReadOnly","readonly","on","getValue","destroy","container","remove","isExpand","togglePanel","_echarts","_echarts2","myChart","color","backgroundColor","tooltip","trigger","formatter","result","Number","seriesName","title","grid","bottom","containLabel","legend","padding","xAxis","boundaryGap","axisLabel","yAxis","splitLine","show","lineStyle","series","optionInfo","handler","drawLine","deep","resize","window","addEventListener","seriesArray","seriesData","map","rObj","normal","position","$set","xCategories","yTitle","document","getElementById","id","setOption","markPoint","yAxisName","orient","isVisible","closeDialog","handleClose","handleOverwrite","serviceList","icon","activeIndex","panelType","versionNum","getVersionNumber","versionNumber","_entries","_entries2","isPrivilege","isAgentInfoVisible","multipleSelection","viewInfoTitle","viewInfo","selectedCluster","query","cluster","clusters","selectedPool","pool","poolList","agentList","currentPage","pageSize","total","getAgents","batchUpdateRoute","selectedRouteArray","selectedRouteNameArray","ipport","selectedRouteStr","selectedRouteNameStr","ssIds","refreshPage","handleSelectionChange","setSelectable","row","healthy","handleDelete","handleDeleteExpired","_this4","days","handleRemoveTraffic","_this5","filtered","e","takeTraffic","handleRecoverTraffic","_this6","changePage","toPage","updateRoute","_this7","getInfo","info","getClusters","_this8","getPools","_this9","_this10","list","ss","err","_this11","filters","currentQps","gaugesStatistics","pattern","maxKey","maxValue","qps","toString","currentConns","conns","currentReceiveClientThrougph","reqThroughput","currentReceiveEsThrougph","respThroughput","translateState","true","false","rules","required","note","submitSyncInfo","$refs","approveInfo","valid","isViewDialogVisible","isAllPrivilege","jsonDiffInfo","applyList","states","selectedState","conditionForSearch","condition","handleApproveManage","handleView","relateId","lastContent","closeViewContentDialog","handleCancel","templateName","getApplyList","conditions","clusterId","allPrivilege","logicClusters","physicalClusters","logicalCluster","translateStat","0","1","2","3","_approve_dialog","_approve_dialog2","isApproveDialogVisible","approveStates","key","approveList","handleBatchApprove","selectedApproveTemplateArray","selectedApproveTemplateStr","setBatchApproveInfo","ids","handleApprove","setApproveInfo","approveComplete","closeApproveDialog","getApproveList","approve-dialog","clusterUrl","clusterInfo","httpAddress","_cluster_dashboard","_cluster_dashboard2","getClusterInfo","dashboard-component","isClusterInfoVisible","validator","clientAddress","description","realClustersArr","accessiblePs","submitClusterInfo","clusterOperation","isEditable","_cluster_info_dialog","_cluster_info_dialog2","clusterInfoTitle","clusterIdForSearch","clusterList","clusterAddInfo","monitorLevelModel","allPhysicals","allPallasSearchs","handleMonitor","handleRouteSetting","getPhysicalsClusterArr","resultArr","ele1","ele2","handleAdd","handleEdit","clusterEditInfo","realClusters","handleManage","handleRestart","toSpecificPage","operateCloseDialog","getClusterList","getPhysicals","getAllPallasSearchs","cluster-info-dialog","clusterType","nodeRestartList","onlyMasterMap","noteStateMap","4","noteStateTag","5","6","clusterStateTag","green","red","yellow","clusterHealth","clusterSettings","isEnableRestart","resetClusterSettings","getCluterSetting","clusterName","nodeIp","nodeName","getClusterState","cause","settings","nodes","now","lastStartupTime","refreshClusterRestart","clusterSettingsArray","_cluster_conditions","_cluster_conditions2","sourceType","sourceParameter","condExpr","sourceValue","conditionRelation","conditionRelations","defaultProps","handleChange","direction","movedKeys","changeDirection","routingTargetGroups","renderFunc","h","self","style","float","domProps","weight","el-input__inner","width","height","margin","input","event","target","submitInfo","conditionInfo","valid1","count","conditionItem","conditionItemForm","valid2","targetGroups","getTargetGroupsList","conditionInfoObject","setConditionInfo","targetGroupWeightValidate","conditionOperation","conditionObject","enable","priority","targetGroupTransfer","targetData","alternativeConditions","Conditions","exprOp","paramName","paramValue","exprOps","paramNames","_cluster_condition_item","_cluster_condition_item2","conditionRelateInfo","paramType","addConditionRelate","conditionRelate","deleteConditionRelate","item","condition-item","_values","_values2","_cluster_target_group","_cluster_target_group2","_cluster_condition_info_dialog","_cluster_condition_info_dialog2","privilege","isConditionInfoVisible","conditionInfoTitle","indexNameForSearch","rulesList","routingTargetGroupsList","initTargetGroups","sortTargetGroups","sort","b","conditionAddInfo","targetGroupsId","addCondition","addRulesList","updateConditionRequest","closeConditionDialog","conditionEditInfo","editCondition","editRulesList","editConditionIndex","getRoutingList","deleteRulesList","conditionList","translateEnable","target-group","condition-info-dialog","_cluster_target_group_item","_cluster_target_group_item2","_cluster_target_group_info_dialog","_cluster_target_group_info_dialog2","istargetGroupInfoVisible","targetGroupInfo","targetGroupInfoTitle","targetGroupTree","targetGroupTreeNoChildren","selectedShowTreeInfo","changeShowTreeInfo","targetGroupAddInfo","clusterLevel","saveOperation","deleteOperation","groupId","operationSuccess","closeTargetGroupDialog","getTargetGroupTree","tree","address","disabled","setTargetGroupChildrenDisabled","target-group-info-dialog","target-group-item","targetGroupRequest","targetGroupItemInfo","isDefaultExpand","editable","checkChange","isChecked","mytree","setCheckedKeys","handleSave","getTargetGroupNodes","saveInfo","setTreeStatus","boolean","getCheckedNodes","getNodesName","getShardNodes","ele3","renderContent","placement","slot","font-size","margin-right","el-tag","el-tag--danger","myTree","treeCheckedKeys","gaugeMetricData","indexingRateInfo","searchRateInfo","searchLatencyInfo","indexingLatencyInfo","getIndexingRate","indexingRateResp","unit","getSearchRate","searchRateResp","getSearchLatency","searchLatencyResp","getIndexingLatency","indexingLatencyResp","getClusterMonitor","timeInterval","gaugeMetric","indexingRate","metricModel","searchRate","indexingLatency","searchLatency","$store.state.monitorTimeInterval","visible","formInfo","timeRange","validateTimeRange","handleSubmit","indexMemoryInfo","indexDiskInfo","segmentCountInfo","documentCountInfo","indexSearchRateInfo","indexSearchLatencyInfo","getIndexMemory","lucencTotal","terms","getIndexDisk","primary","getSegmentCount","getDocumentCount","getIndexSerachRate","getIndexSearchLatency","getIndexMonitor","indexName","indice","index_memory_lucenc_total_in_byte","index_memory_terms_in_byte","index_disk_total","index_disk_primary","segmentCount","primarySegmentCount","documentCount","primaryDocumentCount","indiceForSearch","indicesList","indices","indicesFilter","slice","getIndices","indicesNum","getNodeMonitor","gcCountInfo","gcDurationInfo","jvmHeapInfo","cpuPercentInfo","threadpoolQueueInfo","threadpoolRejectInfo","threadpoolThreadsInfo","httpOpenCurrentInfo","systemLoadInfo","getgcCount","gcCountOld","gcCountYoung","getgcDuration","gcDurationOld","gcDurationYoung","getJVMHeap","jvmHeapMax","jvmHeapUsed","getCpuPercent","cpuNodePercent","cpuProcessPerent","indexMemoryLucencTotal","indexMemoryTerms","getTheadPoolQueue","search","indexing","bulk","getThreadPoolReject","getThreadPoolThreads","getHttpOpenCount","httpOpenCurrent","getSystemLoad","systemLoad1m","node","gc_duration_old_ms","gc_duration_young_ms","jvm_heap_max_byte","jvm_heap_used_byte","index_memory_lucenc_total_byte","index_memory_terms_bytes","searchThreadpoolQueue","indexThreadpoolQueue","bulkThreadpoolQueue","searchThreadpoolThreads","indexThreadpoolThreads","bulkThreadpoolThreads","searchThreadpoolReject","indexThreadpoolReject","bulkThreadpoolReject","systemLoad_1m","nodeForSearch","nodesList","nodesFilter","getNodes","nodesNum","_custom_time_dialog","_custom_time_dialog2","custom-time-dialog","activeTab","periodTimeMap","30","60","180","360","720","1440","4320","10080","custom","customTimeVisible","handleCommand","setCustomTime","closeCustomTimeDialog","onTabClick","getActiveTab","getIndicesNum","getNodesNum","breadcrumbs","route","isCronDeleteVisible","cron","versionId","scrollSize","dsl","versionIdList","showImportObject","initVersionIdList","indexId","isUsed","submitUpsert","crondeleteInfo","successMsg","crondeleteOperation","_cron_delete_dialog","_cron_delete_dialog2","showDsl","crondeleteTitle","cronDeleteList","crondeleteAddInfo","getCronDeleteList","getDsl","executeSearchDsl","handleRunAtOnce","handleDisableAndDeleteJob","handleCreateAndEnableJob","translateIsUsed","crondelete-dialog","_dynamic_manage_dialog","_dynamic_manage_dialog2","operationData","operationList","selectedType","filterVersion","typeList","dynamicOperation","dynamicInfoTitle","isDynamicInfoVisible","isChartVisible","dynamicInfo","dynamicDeleteInfo","eventName","chartList","getClusterMetricChart","metricData","metric","rateOption","latencyOption","chartGroup","rate","latency","getOperationList","eventType","eventDetail","endTime","operationTime","operator","isFold","isShowIcon","dynamic-info-dialog","indexEventList","versionEventList","versionSyncEventList","templateEventList","deleteDynamicInfo","_flow_record_export","_flow_record_export2","_flow_record_config","_flow_record_config2","flow-record-export","flow-record-config","activeNames","flowRecordExportParams","getFlowExport","isconfigInfoVisible","templateId","startTime","sampleRate","limit","submitconfigInfo","configInfo","configOperation","_config_info_dialog","_config_info_dialog2","activeName","flowRecordConfigList","isMetaDataNull","configInfoTitle","templates","isConfigInfoVisible","cellClick","configId","getFlowRecordConfigList","getTemplateByIndex","configAddInfo","configEditData","configEditInfo","enableConfig","disableConfig","_currentPage","translateIsEnable","config-info-dialog","flowRecordList","flowRecordStateMap","getFlowRecordList","stopRecord","recordId","refreshList","exportFlow","_conditions","_conditions2","preference","validatePreference","preferenceList","_condition_item","_condition_item2","_target_group","_target_group2","_condition_info_dialog","_condition_info_dialog2","_target_group_item","_target_group_item2","_target_group_info_dialog","_target_group_info_dialog2","_timeout_retry_manage","_timeout_retry_manage2","_throttling_manage","_throttling_manage2","timeout-retry-manage","throttling-manage","tabActive","templateList","getTemplateList","handleUpdate","threshold","maxBurstSecs","indexConfigInfo","getIndexConfigInfo","slowerThan","timeout","retry","handleTemplateUpdate","isTemplateAddVisible","templateAddInfo","resetFields","batchSubmitInfo","isBatchSubmitVisible","templateSelected","batchSubmitList","submitTemplate","tplIds","dataParams","templateIds","historyDesc","modifiedTemplateList","profile-tree-type","profile-tree-desc","substring","pull-right","profile-tree-time","indexInfo","getIndexInfo","templateInfo","size","isVariable","source","templateContent","metadatas","queryBody","handleExecute","queryWay","bool","resultArray","frontSpace","endNewline","dbFieldName","expr1","expr2","expr3","expr4","metadataList","_profile_content","_profile_content2","_template_test","_template_test2","_service_governance","_service_governance2","_template_save_edit_dialog","_template_save_edit_dialog2","_template_config_dialog","_template_config_dialog2","_template_insert_dialog","_template_insert_dialog2","selectedMacro","resultContent","explainContent","apiContent","paramsInfo","historyVersionList","isShowHistoryVersion","isVersionContentVisible","versionDiffInfo","datasourceList","datasourceId","sql","isEditSaveVisible","isTemplateConfigVisible","isTemplateInsertVisible","profileData","profile","shards","isProfileVisible","copySuccess","copyError","queryProfile","resultData","totalNum","searches","reduce","accumulator","currentValue","totalTime","insertTemplate","insertTemplateContent","aceEditor1","insert","closeTemplateInsertDialog","setCustomTemplate","coverConfigTemplate","closeTemplateConfigDialog","initSql","dsId","tb","tabClick","_params","include","valueType","insertMacro","insertContent","changeEditContent","changeDebugContent","changeSqlContent","handleResetParams","resetParams","handleFormatParams","p","handleExplain","closeEditSaveDialog","editSaveSuccess","getHistoryList","handleRender","handleDebug","handleHistoryVersion","handleVersionDialog","closeVersionContentDialog","overwriteVersion","getDataSourceList","template-test","profile-content","template-save-edit-dialog","service-governance","template-config-dialog","template-insert-dialog","eidtorId","debugId","isMacroVisible","historyVersionBtn","isEditOperate","templateType","field","handleInsert","isQuery","editSaveInfo","_template_test_data_source","_template_test_data_source2","_template_test_upload","_template_test_upload2","_template_test_params","_template_test_params2","addDataSource","paramNameDef","dataSource","templateTestUploadSuccess","template-test-data-source","template-test-upload","template-test-params","editParamNameDef","fileName","valueTypeChange","handleGen","isError","dataParamsJson","encodeURIComponent","paramValues","element1","element2","elm","handleUpload","upload","clearFiles","handleError","handleRemove","uploadFiles","submit","handleSuccess","file","dataSourceRowInfo","isTemplateExportVisible","exportTemplateList","sumbitExportTemplate","isTemplateImportVisible","importWay","updateDesc","importTemplateList","fileList","importInfo","indexSelected","indexAllList","indexChange","submitImportTemplate","indexTemplateImport","templateResult","templateInfos","getAllIndexList","_keys","_keys2","_template_add_dialog","_template_add_dialog2","_template_import_dialog","_template_import_dialog2","_template_edit","_template_edit2","_template_export_dialog","_template_export_dialog2","_template_batch_submit_dialog","_template_batch_submit_dialog2","templateImportTitle","templateImportUrl","isExprotTemplateVisible","tempList","macroList","treeData","temPanelHeight","clientHeight","exportTemplate","batchSubmitTemplate","closeExportDialog","closeBatchSubmitDialog","importTemplate","addTemplate","handleNodeClick","closeDelete","closeEdit","closeImportDialog","closeSubmitImportDialog","handleCallback","modifiedArr","newer","approving","tempArr","macroArr","approvedLabel","$createElement","submitCloseDialog","template-add-dialog","template-import-dialog","template-edit","template-export-dialog","template-batch-submit-dialog","that","onresize","rampupTarget","rampupInfo","beginTime","rampupStatusMap","doing","finish","stop","rampupStatusTypeMap","preheadingInfo","handleStop","startRampup","_schema_copy_to_dialog","_schema_copy_to_dialog2","_schema_multi_field_dialog","_schema_multi_field_dialog2","schema-copy-to-dialog","schema-multi-field-dialog","childInfo","schemaExtInfo","validCopyToFields","isCopyToFieldsVisible","isSchemaMultiFieldsVisible","initDynamic","fieldTypes","addChildInfo","fieldName","fieldType","multi","copyTo","multiField","docValue","store","cancelBtn","confirmBtn","checkChildInput","schemaChildInfo","dynamic","openDialog","checkArrayNotEmpty","viewSchemaMultiFields","viewSchemaCopyTo","versionInfo","schema","dbFieldType","getNestedFieldName","copyToListFilter","parentFieldName","fieldArr","child","closeSchemaCopyToDialog","closeSchemaMultiFieldsDialog","addSchemaCopyTo","addSchemaMultiFields","versionOperation","childTitle","copyToFieldList","copyToFieldSelected","sumbitCopyToField","schemaCopyToInfo","initSelectList","copyToList","isSchemaImportVisible","submitImportSchema","schemaImportUrl","multiFieldInfo","addMultiFieldInfo","schemaMultiFieldsInfo","isVersionInfoVisible","replicationNum","indexSlowThreshold","fetchSlowThreshold","querySlowThreshold","refreshInterval","maxResultWindow","totalShardsPerNode","flushThresholdSize","translogDurability","getLogicClusterAllocationNodes","clusterArray","parent","v","submitVersionInfo","isLogical","clusterNodes","clusterGroups","obj2","rObj2","_set","_set2","_schema_child_dialog","_schema_child_dialog2","_schema_import_dialog","_schema_import_dialog2","schema-child-dialog","schema-import-dialog","schemaImportTitle","isSchemaChildVisible","schemaParentFieldName","shardNum","routingKey","idField","updateTimeField","syncInterval","renderDocValueHeader","fa","fa-question-circle","clusterChange","fieldTypeChange","importSchema","closeSchemaImportDialog","schemaImportSuccess","index2","exportSchema","isSchemaSelectSearch","isSchemaSelectError","sourceIncludesArr","sourceExcludesArr","errorArray","fieldTypeNestedErrorArray","closeSchemaDialog","viewSchemaChildren","addSchemaChild","deleteField","addField","newRow","isNew","routingKeyWidth","allSourceFields","sourceFields","_version_info_dialog","_version_info_dialog2","_version_dynamic_info_dialog","_version_dynamic_info_dialog2","_preheading_dialog","_preheading_dialog2","version-info-dialog","version-dynamic-info-dialog","preheading-dialog","isVersionDynamicInfoVisible","versionInfoTitle","isStartSyncVisible","isViewConfigVisible","isStartFullImportVisible","configTitle","versionData","versionList","versionGetInfo","versionAddInfo","vdpQueue","filterFields","vdp","checkSum","sourceDisabled","sourceIncludes","sourceExcludes","isPreheadingVisible","preheading","closePreheadingDialog","getClusterName","viewConfigInfo","cid","retrieve","closeViewConfigDialog","createIndex","getVersionList","enableVersion","triggerDialog","operation","getLogicClusterNodesArray","allocationNodes","getNodesArray","realClusterIds","clusterData","hostParam","indexParam","host","settingData","settingInfo","number_of_replicas","slowlog","fetch","refresh_interval","max_result_window","routing","allocation","total_shards_per_node","translog","flush_threshold_size","sync_interval","durability","copyVersion","nodesStr","clusterArr","nodeStr","closeDynamicDialog","templateOperateSuccess","dynamicUpdateOperateSuccess","getSchemaMetaData","versionIds","countList","vid","countResult","m","stopSync","isUsedStopMsg","isDsImportVisible","submitImportDs","dbnameValidate","port","dbname","tableName","bind","dataSourceInfo","isGeneratePwd","dbValidate","dataSources","importDs","exportDs","deleteDataSource","_index_data_sources","_index_data_sources2","_datasource_import_dialog","_datasource_import_dialog2","isIndexInfoVisible","submitIndexInfo","dataSourceList","dataSourceItem","indexOperation","closeDsImportDialog","dsImportSuccess","dsList","ds","oneDataSource","index-data-sources","datasource-import-dialog","_index_info_dialog","_index_info_dialog2","indexInfoTitle","indexList","indexAddInfo","indexEditData","indexEditInfo","getIndexList","index-info-dialog","realName","userInfo","userInfoRequest","userInfoTitle","userOperation","_user_info_dialog","_user_info_dialog2","user-info-dialog","userList","rolesList","formSearch","keywords","isUserInfoVisible","getUserList","userAddInfo","email","roleNames","roles","roleName","userInfoSuccess","getRolesList","pluginName","pluginVersion","packagePath","pluginInfo","pluginInfoOperation","uploadData","enableUpload","_plugin_info_dialog","_plugin_info_dialog2","isPluginInfoDialogVisible","pluginInfoTitle","pluginNameForSearch","pluginRuntimeList","pluginTypeMap","getNodesOfVersion","getPluginVersion","pluginVersions","pluginAddInfo","pluginType","pluginUpgradeId","nodeStates","handleUpgrade","pluginEditInfo","getPluginRuntimeList","plugin-info-dialog","pluginUpgradeList","getPluginUpgradeList","handlePlugin","action","handleRollback","51","61","7","_assign","_assign2","_token_index","_token_index2","psClusterList","clusterList2update","tokenClusterInfo","clusterPoolHeight","tokenHeight","clusterTokenHeight","clusterIndexHeight","updateTokenCluster","clusterParams","clusterPrivilege","ClusterAll","myIndexPrivilegeArr","indexPrivilege","IndexAll","pools","aliasName","updateTokenRequest","tokenInfo","authorizationItems","getTokenDetail","tokenClusterData","privileges","indexPrivileges","serverPools","getPsServerPoolJsonTree","checkedPools","genPsNodeKey","sortTokenCluster","subA","isIndexPrivilege","subB","renderCluster","statusMap","margin-left","renderPsCluster","offline","renderPoolOffline","handlePsNodeClick","psPoolTree","groups","group","psClusterName","newEle","theSame","token-index","handleReset","reGenerate","clientToken","tokenRequest","resp","tokenInfoOperate","_token_detail","_token_detail2","_token_info_dialog","_token_info_dialog2","isTokenInfoVisible","isSelectToken","tokenInfoTitle","tokenForSearch","tokenSelectInfo","tokenList","initTokenList","tokenErrorHeight","line-height","handleSearch","toLowerCase","tokenAddInfo","enabled","closeTokenInfoDialog","tokenInfoSuccess","tokenEditInfo","handleTokenClick","getDataList","token-detail","token-info-dialog","webpackContext","req","webpackContextResolve","./af","./af.js","./ar","./ar-dz","./ar-dz.js","./ar-kw","./ar-kw.js","./ar-ly","./ar-ly.js","./ar-ma","./ar-ma.js","./ar-sa","./ar-sa.js","./ar-tn","./ar-tn.js","./ar.js","./az","./az.js","./be","./be.js","./bg","./bg.js","./bm","./bm.js","./bn","./bn.js","./bo","./bo.js","./br","./br.js","./bs","./bs.js","./ca","./ca.js","./cs","./cs.js","./cv","./cv.js","./cy","./cy.js","./da","./da.js","./de","./de-at","./de-at.js","./de-ch","./de-ch.js","./de.js","./dv","./dv.js","./el","./el.js","./en-SG","./en-SG.js","./en-au","./en-au.js","./en-ca","./en-ca.js","./en-gb","./en-gb.js","./en-ie","./en-ie.js","./en-il","./en-il.js","./en-nz","./en-nz.js","./eo","./eo.js","./es","./es-do","./es-do.js","./es-us","./es-us.js","./es.js","./et","./et.js","./eu","./eu.js","./fa","./fa.js","./fi","./fi.js","./fo","./fo.js","./fr","./fr-ca","./fr-ca.js","./fr-ch","./fr-ch.js","./fr.js","./fy","./fy.js","./ga","./ga.js","./gd","./gd.js","./gl","./gl.js","./gom-latn","./gom-latn.js","./gu","./gu.js","./he","./he.js","./hi","./hi.js","./hr","./hr.js","./hu","./hu.js","./hy-am","./hy-am.js","./id","./id.js","./is","./is.js","./it","./it-ch","./it-ch.js","./it.js","./ja","./ja.js","./jv","./jv.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ku","./ku.js","./ky","./ky.js","./lb","./lb.js","./lo","./lo.js","./lt","./lt.js","./lv","./lv.js","./me","./me.js","./mi","./mi.js","./mk","./mk.js","./ml","./ml.js","./mn","./mn.js","./mr","./mr.js","./ms","./ms-my","./ms-my.js","./ms.js","./mt","./mt.js","./my","./my.js","./nb","./nb.js","./ne","./ne.js","./nl","./nl-be","./nl-be.js","./nl.js","./nn","./nn.js","./pa-in","./pa-in.js","./pl","./pl.js","./pt","./pt-br","./pt-br.js","./pt.js","./ro","./ro.js","./ru","./ru.js","./sd","./sd.js","./se","./se.js","./si","./si.js","./sk","./sk.js","./sl","./sl.js","./sq","./sq.js","./sr","./sr-cyrl","./sr-cyrl.js","./sr.js","./ss","./ss.js","./sv","./sv.js","./sw","./sw.js","./ta","./ta.js","./te","./te.js","./tet","./tet.js","./tg","./tg.js","./th","./th.js","./tl-ph","./tl-ph.js","./tlh","./tlh.js","./tr","./tr.js","./tzl","./tzl.js","./tzm","./tzm-latn","./tzm-latn.js","./tzm.js","./ug-cn","./ug-cn.js","./uk","./uk.js","./ur","./ur.js","./uz","./uz-latn","./uz-latn.js","./uz.js","./vi","./vi.js","./x-pseudo","./x-pseudo.js","./yo","./yo.js","./zh-cn","./zh-cn.js","./zh-hk","./zh-hk.js","./zh-tw","./zh-tw.js","keys","render","_vm","_h","_c","_self","directives","rawName","expression","before-close","element-loading-text","model","$$v","ref","label-width","span","prop","_v","staticStyle","_l","staticClass","click","$event","staticRenderFns","gutter","placeholder","filterable","allow-create","effect","_e","render-content","titles","change","font-weight","aria-hidden","margin-top","label-position","on-text","off-text","margin-bottom","border","max-height","scopedSlots","_u","fn","_s","_m","show-overflow-tooltip","min","max","padding-bottom","_t","separator","inline","nativeOn","keyup","_k","keyCode","cluster-search","min-width","hasPrivilege","tag","_f","$index","layout","page-size","current-page","current-change","cluster-operation","cluster-info-title","cluster-info","all-physicals","all-pallas-searchs","close-dialog","operate-close-dialog","clusterTreeHeight","_n","multiple","value-key","indicis","item1","clearable","approveState","createTime","approveUser","approveTime","json-diff-info","src","scrolling","frameborder","align","roles-list","user-operation","user-info","user-info-success","update:visible","selection-change","approve-states","approve-info","close-approve-dialog","approve-complete","stopPropagation","refInFor","updateTime","creatable","plugin-info","plugin-info-title","plugin-info-operation","on-value","off-value","applyUser","rows","availableFS","documentStore","option-info","open","login-success","modifiers","fullscreen","overflow","node-key","default-expand-all","expand-on-click-node","highlight-current","node-click","tem-panel-height","metadata-list","index-id","index-name","is-all-privilege","template-info","macro-list","close-delete","close-edit","template-add-info","submit-close-dialog","template-import-title","template-import-url","close-submit-dialog","template-list","close-export-dialog","modified-template-list","close-batch-submit-dialog","all-privilege","refresh-template","get-flow-export","flow-record-export-params","show-header","auto-upload","on-remove","on-error","on-success","stripe","header-align","close-transition","rules-list","routing-target-groups-list","get-routing-list","routing-target-groups","condition-info","condition-info-title","condition-operation","add-condition","edit-condition","isSync","version-operation","version-info-title","version-info","is-logical","is-meta-data-null","template-operate-success","preheading-info","template-name","padding-right","hisCount","tab-click","editor-id","change-content","padding-left","row-click","createdTime","entries","arg","profile-data","rest_client","params-info","is-overwrite","overwrite-operate","close-edit-save-dialog","edit-save-success","cover-content","insert-template-content","cluster-id","show-close","close-on-click-modal","close-on-press-escape","$$selectedVal","call","selected","_value","is-schema-multi-fields-visible","schema-multi-fields-info","schema-parent-field-name","close-schema-dialog","add-schema-multi-field","is-copy-to-fields-visible","schema-copy-to-info","copy-to-list","add-schema-copy-to","data-sources","index-operation","show-import-object","ds-import-success","close-ds-import-dialog","nodeState","nodeTime","onlyMaster","file-list","used_memory_byte","total_memory_byte","document_store_byte","show-checkbox","check-strictly","default-checked-keys","check-change","token-cluster-info","cluster-tree-height","update-token-cluster","cluster-name","full-index-name","fullIndexName","rampupNow","padding-top","text-align","data-source","db-validate","add-data-source","template-test-upload-success","popper-class","highlight-current-row","cell-click","createUser","isEnable","config-operation","config-info-title","config-info","isSyn","crondelete-operation","crondelete-title","crondelete-info","v-show","show-icon","render-header","is-schema-child-visible","schema-child-info","add-schema-child","schema-import-title","schema-import-url","schema-import-success","close-schema-import-dialog","on-icon-click","token","token-height","token-info","token-info-operate","token-info-title","token-info-success","document_store_byte_total","document_store_byte_primary","divided","set-custom-time","theme","default-active","router","trim","clusterDesc","hasClusterPrivilege","index-info-title","index-info","percentage","selectable","target-group-tree-no-children","target-group-tree","selected-show-tree-info","save-operation","delete-operation","target-group-info","target-group-info-title","operation-success","chartData","word-wrap","dynamic-operation","dynamic-info-title","dynamic-info","locals","_elementUi2","_vueClipboard","_vueClipboard2","_App","_App2","_store","_store2","_mixins","_mixins2","_routers","_routers2","_utils","_utils2","mixin"],"mappings":"AAAAA,cAAc,EAAE,GAAGC,MAAM,KAAKC,QAExB,SAAUC,EAAQC,EAASC,GAEjC,YAmEA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GCvEvF,GAAAG,GAAAL,EAAA,IDSIM,EAAQL,EAAuBI,GCRnCE,EAAAP,EAAA,MDYIQ,EAAeP,EAAuBM,GCX1CE,EAAAT,EAAA,MDeIU,EAAcT,EAAuBQ,GCdzCE,EAAAX,EAAA,MDkBIY,EAAWX,EAAuBU,GCjBtCE,EAAAb,EAAA,MDqBIc,EAAmBb,EAAuBY,GCpB9CE,EAAAf,EAAA,MDwBIgB,EAAoBf,EAAuBc,GCvB/CE,EAAAjB,EAAA,MD2BIkB,EAAkBjB,EAAuBgB,GC1B7CE,EAAAnB,EAAA,MD8BIoB,EAAQnB,EAAuBkB,GC7BnCE,EAAArB,EAAA,MDiCIsB,EAASrB,EAAuBoB,GChCpCE,EAAAvB,EAAA,MDoCIwB,EAAWvB,EAAuBsB,GCnCtCE,EAAAzB,EAAA,MDuCI0B,EAAazB,EAAuBwB,GCtCxCE,EAAA3B,EAAA,MD0CI4B,EAAkB3B,EAAuB0B,GCzC7CE,EAAA7B,EAAA,MD6CI8B,EAAiB7B,EAAuB4B,GC5C5CE,EAAA/B,EAAA,MDgDIgC,EAAc/B,EAAuB8B,GC/CzCE,EAAAjC,EAAA,MDmDIkC,EAAUjC,EAAuBgC,GClDrCE,EAAAnC,EAAA,MDsDIoC,EAA2BnC,EAAuBkC,ECpDtD7B,GAAAF,QAAIiC,UAAU,yBAAdD,EAAAhC,SACAE,EAAAF,QAAIiC,UAAU,YAAd3B,EAAAN,SACAE,EAAAF,QAAIiC,UAAU,SAAdzB,EAAAR,SACAE,EAAAF,QAAIiC,UAAU,SAAd7B,EAAAJ,SACAE,EAAAF,QAAIiC,UAAU,WAAdX,EAAAtB,SACAE,EAAAF,QAAIiC,UAAU,gBAAdT,EAAAxB,SACAE,EAAAF,QAAIiC,UAAU,iBAAdvB,EAAAV,SACAE,EAAAF,QAAIiC,UAAU,kBAAdrB,EAAAZ,SACAE,EAAAF,QAAIiC,UAAU,gBAAdnB,EAAAd,SACAE,EAAAF,QAAIiC,UAAU,MAAdjB,EAAAhB,SACAE,EAAAF,QAAIiC,UAAU,SAAdb,EAAApB,SACAE,EAAAF,QAAIiC,UAAU,SAAdf,EAAAlB,SACAE,EAAAF,QAAIiC,UAAU,sBAAdP,EAAA1B,SACAE,EAAAF,QAAIiC,UAAU,YAAdL,EAAA5B,SACAE,EAAAF,QAAIiC,UAAU,QAAdH,EAAA9B,SACAE,EAAAF,QAAIiC,UAAU,eAAiBC,SAAU,gBACzChC,EAAAF,QAAIiC,UAAU,sBAAwBC,SAAU,kBAChDhC,EAAAF,QAAIiC,UAAU,yBAA2BC,SAAU,mBD2D1C,CAEH,SAAUxC,EAAQC,EAASC,GAEjC,YAGAuC,QAAOC,eAAezC,EAAS,cAC7B0C,OAAO,GErGF,IAAMC,oBAAiB,iBACjBC,8BAA4B,2BFwGzC5C,GAAQK,SEtGNsC,iBACAC,8BF2GO,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAU7C,EAAQC,EAASC,GAEjC,YAWA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GG1NvF,GAAAG,GAAAL,EAAA,IHoNIM,EAAQL,EAAuBI,GGnNnCuC,EAAA5C,EAAA,GHuNI6C,EAAW5C,EAAuB2C,EGrNtCtC,GAAAF,QAAI0C,OAAO,aAAc,SAACC,GACxB,GAAIC,SACJ,IAAa,OAATD,EAAe,CACjB,GAAME,GAAO,GAAIC,MAAKH,EACtBC,IAAa,EAAAH,EAAAzC,SAAO6C,GAAME,OAAO,2BAEjCH,GAAa,GAEf,OAAOA,KAET1C,EAAAF,QAAI0C,OAAO,iBAAkB,SAACC,GAC5B,GAAME,GAAO,GAAIC,MAAKH,EACtB,QAAO,EAAAF,EAAAzC,SAAO6C,GAAME,OAAO,WAE7B7C,EAAAF,QAAI0C,OAAO,iBAAkB,SAACC,GAC5B,GAAME,GAAO,GAAIC,MAAKH,EACtB,QAAO,EAAAF,EAAAzC,SAAO6C,GAAME,OAAO,eH8NvB,SAAUrD,EAAQC,EAASC,GAEjC,YAGAuC,QAAOC,eAAezC,EAAS,cAC7B0C,OAAO,GIvPT,IAAAW,GAAApD,EAAA,IJ4PAD,GAAQK,SIzPNiD,aADa,SACAC,GACXF,EAAAG,WAAWC,MAAMF,EAAM,QACrBG,KAAM,QACNC,kBAAmB,QAGvBC,eAPa,SAOEL,EAAMM,GACnBR,EAAAG,WAAWC,MAAMF,EAAM,QACrBG,KAAM,UACNC,kBAAmB,OAClBG,KAAK,WACND,MACCE,MAAM,eAGXC,eAhBa,SAgBET,EAAMM,GACnBR,EAAAG,WAAWS,QAAQV,EAAM,MACvBI,kBAAmB,KACnBO,iBAAkB,KAClBR,KAAM,YACLI,KAAK,WACND,MACCE,MAAM,eAGXI,QA1Ba,SA0BLZ,IACN,EAAAF,EAAAe,UACEC,WAAW,EACXC,QAASf,EACTG,KAAM,eJ+PN,SAAU3D,EAAQC,EAASC,GAEjC,YAGAuC,QAAOC,eAAezC,EAAS,cAC3B0C,OAAO,GKrSX,IAAM6B,KACAC,KAAM,QAASC,KAAM,WACrBD,KAAM,cAAeC,KAAM,kBAC3BD,KAAM,cAAeC,KAAM,kBAC3BD,KAAM,gBAAiBC,KAAM,iCAC7BD,KAAM,iBAAkBC,KAAM,kCAC9BD,KAAM,gBAAiBC,KAAM,iCAC7BD,KAAM,aAAcC,KAAM,8BAC1BD,KAAM,aAAcC,KAAM,8BAC1BD,KAAM,cAAeC,KAAM,+BAC3BD,KAAM,gBAAiBC,KAAM,iCAC7BD,KAAM,gBAAiBC,KAAM,oBAE7BD,KAAM,kBAAmBC,KAAM,qBAC/BD,KAAM,iBAAkBC,KAAM,qCAC9BD,KAAM,iBAAkBC,KAAM,qCAC9BD,KAAM,sBAAuBC,KAAM,2CACnCD,KAAM,eAAgBC,KAAM,mCAC5BD,KAAM,oBAAqBC,KAAM,yCAEjCD,KAAM,qBAAsBC,KAAM,0BAClCD,KAAM,qBAAsBC,KAAM,0BAClCD,KAAM,gBAAiBC,KAAM,oBAC7BD,KAAM,kBAAmBC,KAAM,sBAC/BD,KAAM,+BAAgCC,KAAM,oCAC5CD,KAAM,eAAgBC,KAAM,mBAC5BD,KAAM,gBAAiBC,KAAM,kCAC7BD,KAAM,cAAeC,KAAM,kBAC3BD,KAAM,cAAeC,KAAM,kBAC3BD,KAAM,mBAAoBC,KAAM,uBAChCD,KAAM,aAAcC,KAAM,kCL2QhCzE,GAAQK,SKvQNqE,QADa,SACLF,GACN,GAAMG,GAAQJ,EAAiBxB,OAAO,SAAA6B,GAAA,MAAKA,GAAEJ,OAASA,GACtD,IAAcK,SAAVF,EACF,MAAOA,GAAM,GAAGF,IAElB,MAAM,IAAIK,OAAM,+BL+QX,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAU/E,EAAQC,EAASC,GMjjBjCA,EAAA,KAEA,IAAA8E,GAAA9E,EAAA,GAEAA,EAAA,KAEAA,EAAA,MAEA,KAEA,KAGAF,GAAAC,QAAA+E,EAAA/E,SN0jBM,SAAUD,EAAQC,EAASC,GOvkBjCA,EAAA,KAEA,IAAA8E,GAAA9E,EAAA,GAEAA,EAAA,KAEAA,EAAA,MAEA,KAEA,KAGAF,GAAAC,QAAA+E,EAAA/E,SPglBM,SAAUD,EAAQC,EAASC,GQ7lBjCA,EAAA,KAEA,IAAA8E,GAAA9E,EAAA,GAEAA,EAAA,KAEAA,EAAA,MAEA,KAEA,KAGAF,GAAAC,QAAA+E,EAAA/E,SRqmBS,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUD,EAAQC,EAASC,GAEjC,YAWA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GS3pBvF,GAAAG,GAAAL,EAAA,ITqpBIM,EAAQL,EAAuBI,GSppBnC0E,EAAA/E,EAAA,KTwpBIgF,EAAmB/E,EAAuB8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,EAAoB,IAEjCyO,EAAcxO,EAAuBkR,GAErC6/B,EAAQhxC,EAAoB,KAE5BixC,EAAShxC,EAAuB+wC,G2FlhSpC0D,EAAA10C,EAAA,K3FshSI20C,EAA0B10C,EAAuBy0C,G2FnhSrDE,EAAA50C,EAAA,K3FuhSI60C,EAA8B50C,EAAuB20C,EAIzD70C,GAAQK,SACNsY,Y2FzhSFo8B,wBAAAH,EAAAv0C,QAEA20C,4BAAAF,EAAAz0C,S3F2hSEoZ,OAAQ,uBAAwB,kBAAmB,mBAAoB,wB2F1hSzE,e3F2hSE1J,KAAM,WACJ,OACEklC,aACAC,iBACAC,qBACAC,uB2F1hSN,E3F2hSMC,4B2F1hSN,E3F2hSMC,a2F1hSN,E3F2hSMC,aACE7yC,M2F1hSR,O3F2hSQwQ,M2F1hSR,S3F4hSQxQ,M2F1hSR,U3F2hSQwQ,M2F1hSR,Y3F4hSQxQ,M2F1hSR,O3F2hSQwQ,M2F1hSR,S3F4hSQxQ,M2F1hSR,U3F2hSQwQ,M2F1hSR,Y3F4hSQxQ,M2F1hSR,S3F2hSQwQ,M2F1hSR,W3F4hSQxQ,M2F1hSR,S3F2hSQwQ,M2F1hSR,W3F4hSQxQ,M2F1hSR,O3F2hSQwQ,M2F1hSR,S3F4hSQxQ,M2F1hSR,U3F2hSQwQ,M2F1hSR,Y3F4hSQxQ,M2F1hSR,Q3F2hSQwQ,M2F1hSR,U3F4hSQxQ,M2F1hSR,O3F2hSQwQ,M2F1hSR,S3F4hSQxQ,M2F1hSR,S3F2hSQwQ,M2F1hSR,W3F4hSQxQ,M2F1hSR,Q3F2hSQwQ,M2FxhSR,Y3F6hSE3N,SACEgjB,UAAW,WACT,GAAIitB,IACFC,U2F3hSR,G3F4hSQC,U2F3hSR,G3F4hSQC,M2F3hSR,G3F4hSQC,UACAC,cACAvc,Q2F3hSR,E3F4hSQwc,U2F3hSR,E3F4hSQC,O2F1hSR,E3F4hSMliC,MAAKohC,UAAUrmC,K2F3hSrB4mC,I3F6hSIQ,UAAW,WACTniC,KAAKwF,M2F3hSX,wB3F6hSIqH,aAAc,SAAsBF,G2F3hSxC,GAAA3I,GAAAhE,I3F8hSMA,MAAK3G,SAASlJ,eAAe,SAAyCwc,EAAIi1B,UAAY,KAAW,WAC/F59B,EAAM7K,OAAO2E,cAAckG,EAAMo9B,U2F7h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jE,yB9Fk4SE1J,KAAM,WACJ,OACEioC,kBACAzC,aACE7yC,M8Fj4SR,O9Fk4SQwQ,M8Fj4SR,S9Fm4SQxQ,M8Fj4SR,U9Fk4SQwQ,M8Fj4SR,Y9Fm4SQxQ,M8Fj4SR,O9Fk4SQwQ,M8Fj4SR,S9Fm4SQxQ,M8Fj4SR,U9Fk4SQwQ,M8Fj4SR,Y9Fm4SQxQ,M8Fj4SR,S9Fk4SQwQ,M8Fj4SR,W9Fm4SQxQ,M8Fj4SR,S9Fk4SQwQ,M8Fj4SR,W9Fm4SQxQ,M8Fj4SR,O9Fk4SQwQ,M8Fj4SR,S9Fm4SQxQ,M8Fj4SR,U9Fk4SQwQ,M8Fj4SR,Y9Fm4SQxQ,M8Fj4SR,Q9Fk4SQwQ,M8Fj4SR,U9Fm4SQxQ,M8Fj4SR,O9Fk4SQwQ,M8Fj4SR,S9Fm4SQxQ,M8Fj4SR,S9Fk4SQwQ,M8Fj4SR,W9Fm4SQxQ,M8Fj4SR,Q9Fk4SQwQ,M8F/3SR,Y9Fo4SE3N,SACEgjB,UAAW,WACT,GAAI0vB,IACFxC,U8Fl4SR,G9Fm4SQC,U8Fl4SR,G9Fm4SQC,M8Fl4SR,G9Fm4SQrc,Q8Fl4SR,E9Fm4SQwc,U8Fj4SR,E9Fm4SMjiC,MAAKmkC,eAAeppC,K8Fl4S1BqpC,I9Fo4SIjC,UAAW,WACTniC,KAAKwF,M8Fl4SX,wB9Fo4SIqH,aAAc,SAAsBF,G8Fl4SxC,GAAA3I,GAAAhE,I9Fq4SMA,MAAK3G,SAASlJ,eAAe,SAAyCwc,EAAIi1B,UAAY,KAAW,WAC/F59B,EAAM7K,OAAO2E,cAAckG,EAAMmgC,e8Fp4SzCx3B,M9Fu4SIy1B,WAAY,W8Fp4ShB,GAAAj+B,GAAAnE,I9Fu4SUA,MAAKqiC,gBAAgBriC,KAAKmkC,kBAC5BnkC,KAAKqkC,sBAAsBrC,WAAW5jC,OAAO,EAAG4B,KAAKqkC,sBAAsBrC,W8Fr4SnF1nC,Q9Fs4SQ0F,KAAKmkC,eAAelmC,QAAQ,SAAUC,GACpCiG,EAAOkgC,sBAAsBrC,WAAWjnC,K8Fr4SlDmD,K9Fu4SQ8B,KAAKwF,MAAM,yBAA0BxF,KAAKqkC,sB8Fr4SlDrC,c9Fw4SIK,gBAAiB,SAAyBtkC,G8Fr4S9C,GAAAuG,GAAAtE,K9Fw4SU1B,G8Fv4SV,C9Fg5SM,QARA,EAAI++B,EAAO7wC,SAAS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2SQ61C,aAAe72B,UAAU,EAAMhf,QAAS,iBAAkBgX,QgG52SlE,WhG62SQ8+B,UAAY92B,UAAU,EAAMhf,QAAS,UAAWgX,QgG52SxD,WhG62SQ++B,kBAAoB/2B,UAAU,EAAMhf,QAAS,iBAAkBgX,QgG52SvE,WhG62SQ+8B,qBAAuB/0B,UAAU,EAAMhf,QAAS,uBAA0BZ,KAAM,SAAUY,QgG52SlG,yBhG62SQg0C,qBAAuBh1B,UAAU,EAAMhf,QAAS,uBAA0BZ,KAAM,SAAUY,QgG52SlG,yBhG62SQi0C,qBAAuBj1B,UAAU,EAAMhf,QAAS,uBAA0BZ,KAAM,SAAUY,QgG52SlG,yBhG62SQk0C,kBAAoBl1B,UAAU,EAAMhf,QAAS,yBAA4BZ,KAAM,SAAUY,QgG52SjG,2BhG62SQm0C,kBAAoBn1B,UAAU,EAAMhf,QAAS,0BAA6BZ,KAAM,SAAUY,QgG52SlG,4BhG62SQo0C,qBAAuBp1B,UAAU,EAAMhf,QAAS,8BAAiCZ,KAAM,SAAUY,QgG52SzG,gChG62SQq0C,qBAAuBr1B,UAAU,EAAMhf,QgG52S/C,6BhG62SQg2C,eAAiBh3B,UAAU,EAAMhf,QgG52SzC,sBhG62SQs0C,qBAAuBt1B,UAAU,EAAMhf,QgG32S/C,6BhG62SMixC,aACE7yC,MgG52SR,OhG62SQwQ,MgG52SR,ehG82SQxQ,MgG52SR,ahG62SQwQ,MgG52SR,ehG82SQxQ,MgG52SR,UhG62SQwQ,MgG52SR,YhG82SQxQ,MgG52SR,qBhG62SQwQ,MgG52SR,mBhG82SQxQ,MgG52SR,oBhG62SQwQ,MgG52SR,sBhG82SQxQ,MgG52SR,OhG62SQwQ,MgG52SR,ShG82SQxQ,MgG52SR,UhG62SQwQ,MgG52SR,YhG82SQxQ,MgG52SR,ShG62SQwQ,MgG52SR,WhG82SQxQ,MgG52SR,ShG62SQwQ,MgG52SR,WhG82SQxQ,MgG52SR,OhG62SQwQ,MgG52SR,ShG82SQxQ,MgG52SR,UhG62SQwQ,MgG52SR,YhG82SQxQ,MgG52SR,QhG62SQwQ,MgG52SR,UhG82SQxQ,MgG52SR,OhG62SQwQ,MgG52SR,ShG82SQxQ,MgG52SR,ShG62SQwQ,MgG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EjGmiUQ9B,eiGliUR,EjGmiUQgF,SiGliUR,GjGmiUQjD,WiGliUR,KjGmiUQC,QiGliUR,KjGmiUQC,gBiGliUR,cjGmiUQgD,ciGliUR,EjGmiUQC,IiGliUR,EjGmiUQC,UiGliUR,EjGmiUQ7G,UACA7xB,UiGliUR,GjGmiUQ6F,SACA2tB,mBiGliUR,IjGmiUQC,mBiGliUR,IjGmiUQC,mBiGliUR,IjGmiUQC,gBiGliUR,GjGmiUQC,gBiGliUR,IjGmiUQC,oBiGliUR,EjGmiUQC,mBiGliUR,QjGmiUQ2B,aiGliUR,KjGmiUQ1B,mBiGliUR,QjGmiUQ4E,gBiGliUR,EjGmiUQC,eiGliUR,GjGmiUQC,eiGliUR,GjGmiUQvC,qBACAC,sBAEF/7B,YACA65B,WiGliUN,EjGmiUMyE,qBiGliUN,EjGmiUMnJ,oBAIJjvC,SACEq4C,WAAY,SAAoBp9B,GAC9B3M,KAAK2gC,gBACHzX,UAAWvc,EiGniUnB7C,GjGoiUQ2f,OAAQ9c,EiGliUhB8c,QjGoiUMzpB,KAAK8pC,qBiGniUX,GjGqiUIE,sBAAuB,WACrBhqC,KAAK8pC,qBiGniUX,GjGqiUIG,eAAgB,SAAwBngC,GACtC,GAAIyM,GiGniUV,EjG2iUM,OAPAvW,MAAKwL,SAASjN,KAAK,SAAUqE,GAC3B,MAAIA,GAAIkH,KAAOlC,OAAOkC,KACpByM,EAAc3T,EiGniUxBoO,WACA,KAIAuF,GjGqiUI2zB,eAAgB,SAAwBv9B,EAAKqE,GiGniUjD,GAAAhN,GAAAhE,KjGsiUUgB,GACFwoB,QAASxpB,KiGriUjBwpB,QjGsiUQzG,UAAW/iB,KiGriUnB+iB,UjGsiUQmG,UAAWvc,EiGriUnB7C,GjGsiUQqgC,IiGpiURn5B,EjGsiUMhR,MAAK0D,SiGriUX,EjGsiUM1D,KAAK5G,MAAM0G,IAAI,2BAA4BkB,GAAQ/Q,KAAK,SAAUiM,GAChE8H,EAAMgqB,WiGriUd9xB,EjGsiUQ8H,EAAMklC,YAAcllC,EAAM+e,UAAY,IAAMpW,EAAI7C,GAAK,WAAqD9F,EAAMimC,eiGriUxHj5B,GAAA,IjGsiUQhN,EAAMglC,qBiGriUd,IACAvjC,Q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,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA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AA4E,QAKA7E,EAAA4O,MAAA7O,EAAA6F,EAAA,wKAA+L,MxK0qazL,SAAU7F,EAAQC,EAASC,GyK/qajCD,EAAAD,EAAAC,QAAAC,EAAA,GAAA4E,QAKA7E,EAAA4O,MAAA7O,EAAA6F,EAAA,+dAAsf,MzKwrahf,SAAU7F,EAAQC,EAASC,G0K7rajCD,EAAAD,EAAAC,QAAAC,EAAA,GAAA4E,QAKA7E,EAAA4O,MAAA7O,EAAA6F,EAAA,iMAAwN,M1KssalN,SAAU7F,EAAQC,EAASC,G2K3sajCD,EAAAD,EAAAC,QAAAC,EAAA,GAAA4E,QAKA7E,EAAA4O,MAAA7O,EAAA6F,EAAA,+CAAsE,M3Kmta5D,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEJ,SAAU7F,EAAQC,EAASC,G4KtvajC,QAAAwrD,GAAAC,GACA,MAAAzrD,GAAA0rD,EAAAD,IAEA,QAAAC,GAAAD,GACA,GAAA/tC,GAAAT,EAAAwuC,EACA,MAAA/tC,EAAA,GACA,SAAA7Y,OAAA,uBAAA4mD,EAAA,KACA,OAAA/tC,GAvQA,GAAAT,IACA0uC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,I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","file":"assets/js/app.a3fd8a3a0dcf9bc712ac.js","sourcesContent":["webpackJsonp([1,2],Array(193).concat([\n/* 193 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _vue = __webpack_require__(34);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _ace_editor = __webpack_require__(1337);\n\nvar _ace_editor2 = _interopRequireDefault(_ace_editor);\n\nvar _container = __webpack_require__(1343);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _navbar = __webpack_require__(1346);\n\nvar _navbar2 = _interopRequireDefault(_navbar);\n\nvar _version_footer = __webpack_require__(1350);\n\nvar _version_footer2 = _interopRequireDefault(_version_footer);\n\nvar _chart_container = __webpack_require__(1338);\n\nvar _chart_container2 = _interopRequireDefault(_chart_container);\n\nvar _chart_no_data = __webpack_require__(1339);\n\nvar _chart_no_data2 = _interopRequireDefault(_chart_no_data);\n\nvar _pie = __webpack_require__(1342);\n\nvar _pie2 = _interopRequireDefault(_pie);\n\nvar _line = __webpack_require__(1341);\n\nvar _line2 = _interopRequireDefault(_line);\n\nvar _column = __webpack_require__(1340);\n\nvar _column2 = _interopRequireDefault(_column);\n\nvar _timeline = __webpack_require__(1348);\n\nvar _timeline2 = _interopRequireDefault(_timeline);\n\nvar _timeline_item = __webpack_require__(1349);\n\nvar _timeline_item2 = _interopRequireDefault(_timeline_item);\n\nvar _json_content = __webpack_require__(1344);\n\nvar _json_content2 = _interopRequireDefault(_json_content);\n\nvar _json_diff = __webpack_require__(1345);\n\nvar _json_diff2 = _interopRequireDefault(_json_diff);\n\nvar _panel = __webpack_require__(1347);\n\nvar _panel2 = _interopRequireDefault(_panel);\n\nvar _index_data_source_item = __webpack_require__(1415);\n\nvar _index_data_source_item2 = _interopRequireDefault(_index_data_source_item);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_vue2.default.component('index-data-source-item', _index_data_source_item2.default);\n_vue2.default.component('Container', _container2.default);\n_vue2.default.component('Navbar', _navbar2.default);\n_vue2.default.component('Editor', _ace_editor2.default);\n_vue2.default.component('Timeline', _timeline2.default);\n_vue2.default.component('Timeline-item', _timeline_item2.default);\n_vue2.default.component('Version-footer', _version_footer2.default);\n_vue2.default.component('chart-container', _chart_container2.default);\n_vue2.default.component('chart-no-data', _chart_no_data2.default);\n_vue2.default.component('Pie', _pie2.default);\n_vue2.default.component('Column', _column2.default);\n_vue2.default.component('MyLine', _line2.default);\n_vue2.default.component('json-content-dialog', _json_content2.default);\n_vue2.default.component('json-diff', _json_diff2.default);\n_vue2.default.component('Panel', _panel2.default);\n_vue2.default.component('log-monitor', { template: '
' });\n_vue2.default.component('preheading-monitor', { template: '' });\n_vue2.default.component('cluster-manage-search', { template: '' });\n\n/***/ }),\n/* 194 */,\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar SET_LOGIN_USER = exports.SET_LOGIN_USER = 'SET_LOGIN_USER';\nvar SET_MONITOR_TIME_INTERVAL = exports.SET_MONITOR_TIME_INTERVAL = 'SET_MONITOR_TIME_INTERVAL';\nexports.default = {\n SET_LOGIN_USER: SET_LOGIN_USER,\n SET_MONITOR_TIME_INTERVAL: SET_MONITOR_TIME_INTERVAL\n};\n\n/***/ }),\n/* 196 */,\n/* 197 */,\n/* 198 */,\n/* 199 */,\n/* 200 */,\n/* 201 */,\n/* 202 */,\n/* 203 */,\n/* 204 */,\n/* 205 */,\n/* 206 */,\n/* 207 */,\n/* 208 */,\n/* 209 */,\n/* 210 */,\n/* 211 */,\n/* 212 */,\n/* 213 */,\n/* 214 */,\n/* 215 */,\n/* 216 */,\n/* 217 */,\n/* 218 */,\n/* 219 */,\n/* 220 */,\n/* 221 */,\n/* 222 */,\n/* 223 */,\n/* 224 */,\n/* 225 */,\n/* 226 */,\n/* 227 */,\n/* 228 */,\n/* 229 */,\n/* 230 */,\n/* 231 */,\n/* 232 */,\n/* 233 */,\n/* 234 */,\n/* 235 */,\n/* 236 */,\n/* 237 */,\n/* 238 */,\n/* 239 */,\n/* 240 */,\n/* 241 */,\n/* 242 */,\n/* 243 */,\n/* 244 */,\n/* 245 */,\n/* 246 */,\n/* 247 */,\n/* 248 */,\n/* 249 */,\n/* 250 */,\n/* 251 */,\n/* 252 */,\n/* 253 */,\n/* 254 */,\n/* 255 */,\n/* 256 */,\n/* 257 */,\n/* 258 */,\n/* 259 */,\n/* 260 */,\n/* 261 */,\n/* 262 */,\n/* 263 */,\n/* 264 */,\n/* 265 */,\n/* 266 */,\n/* 267 */,\n/* 268 */,\n/* 269 */,\n/* 270 */,\n/* 271 */,\n/* 272 */,\n/* 273 */,\n/* 274 */,\n/* 275 */,\n/* 276 */,\n/* 277 */,\n/* 278 */,\n/* 279 */,\n/* 280 */,\n/* 281 */,\n/* 282 */,\n/* 283 */,\n/* 284 */,\n/* 285 */,\n/* 286 */,\n/* 287 */,\n/* 288 */,\n/* 289 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _vue = __webpack_require__(34);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _moment = __webpack_require__(2);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_vue2.default.filter('formatDate', function (time) {\n var formatTime = void 0;\n if (time !== null) {\n var date = new Date(time);\n formatTime = (0, _moment2.default)(date).format('YYYY-MM-DD HH:mm:ss');\n } else {\n formatTime = '-';\n }\n return formatTime;\n});\n_vue2.default.filter('formatOnlyDate', function (time) {\n var date = new Date(time);\n return (0, _moment2.default)(date).format('MM-DD');\n});\n_vue2.default.filter('formatOnlyTime', function (time) {\n var date = new Date(time);\n return (0, _moment2.default)(date).format('HH:mm:ss');\n});\n\n/***/ }),\n/* 290 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _elementUi = __webpack_require__(282);\n\nexports.default = {\n errorMessage: function errorMessage(text) {\n _elementUi.MessageBox.alert(text, '错误信息', {\n type: 'error',\n confirmButtonText: '确定'\n });\n },\n successMessage: function successMessage(text, callback) {\n _elementUi.MessageBox.alert(text, '成功信息', {\n type: 'success',\n confirmButtonText: '确定'\n }).then(function () {\n callback();\n }).catch(function () {});\n },\n confirmMessage: function confirmMessage(text, callback) {\n _elementUi.MessageBox.confirm(text, '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(function () {\n callback();\n }).catch(function () {});\n },\n success: function success(text) {\n (0, _elementUi.Message)({\n showClose: true,\n message: text,\n type: 'success'\n });\n }\n};\n\n/***/ }),\n/* 291 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar routermapperlist = [{ name: 'login', path: '/login' }, { name: 'indexManage', path: '/index_manage' }, { name: 'indexDetail', path: '/index_detail' }, { name: 'versionManage', path: '/index_detail/version_manage' }, { name: 'templateManage', path: '/index_detail/template_manage' }, { name: 'dynamicManage', path: '/index_detail/dynamic_manage' }, { name: 'flowRecord', path: '/index_detail/flow_record' }, { name: 'cronDelete', path: '/index_detail/cron_delete' }, { name: 'routeManage', path: '/index_detail/route_manage' }, { name: 'serviceManage', path: '/index_detail/service_manage' }, { name: 'clusterManage', path: '/cluster_manage' }, { name: 'monitorOverview', path: '/cluster_monitor' }, { name: 'clusterMonitor', path: '/cluster_monitor/cluster_monitor' }, { name: 'indicesMonitor', path: '/cluster_monitor/indices_monitor' }, { name: 'indiceMonitorDetail', path: '/cluster_monitor/indice_monitor_detail' }, { name: 'nodesMonitor', path: '/cluster_monitor/nodes_monitor' }, { name: 'nodeMonitorDetail', path: '/cluster_monitor/node_monitor_detail' }, { name: 'clusterRouteManage', path: '/cluster_route_manage' }, { name: 'clusterNodeRestart', path: '/cluster_node_restart' }, { name: 'clusterDetail', path: '/cluster_detail' }, { name: 'authorityManage', path: '/authority_manage' }, { name: 'authorityManageAdministrator', path: '/authority_manage_administrator' }, { name: 'pluginManage', path: '/plugin_manage' }, { name: 'pluginUpgrade', path: '/plugin_manage/plugin_upgrade' }, { name: 'agentManage', path: '/agent_manage' }, { name: 'tokenManage', path: '/token_manage' }, { name: 'permissionManage', path: '/permission_manage' }, { name: 'userManage', path: '/permission_manage/user_manage' }];\n\nexports.default = {\n GetPath: function GetPath(name) {\n var items = routermapperlist.filter(function (x) {\n return x.name === name;\n });\n if (items !== undefined) {\n return items[0].path;\n }\n throw new Error('can not find route path ');\n }\n};\n\n/***/ }),\n/* 292 */,\n/* 293 */,\n/* 294 */,\n/* 295 */,\n/* 296 */,\n/* 297 */,\n/* 298 */,\n/* 299 */,\n/* 300 */,\n/* 301 */,\n/* 302 */,\n/* 303 */,\n/* 304 */,\n/* 305 */,\n/* 306 */,\n/* 307 */,\n/* 308 */,\n/* 309 */,\n/* 310 */,\n/* 311 */,\n/* 312 */,\n/* 313 */,\n/* 314 */,\n/* 315 */,\n/* 316 */,\n/* 317 */,\n/* 318 */,\n/* 319 */,\n/* 320 */,\n/* 321 */,\n/* 322 */,\n/* 323 */,\n/* 324 */,\n/* 325 */,\n/* 326 */,\n/* 327 */,\n/* 328 */,\n/* 329 */,\n/* 330 */,\n/* 331 */,\n/* 332 */,\n/* 333 */,\n/* 334 */,\n/* 335 */,\n/* 336 */,\n/* 337 */,\n/* 338 */,\n/* 339 */,\n/* 340 */,\n/* 341 */,\n/* 342 */,\n/* 343 */,\n/* 344 */,\n/* 345 */,\n/* 346 */,\n/* 347 */,\n/* 348 */,\n/* 349 */,\n/* 350 */,\n/* 351 */,\n/* 352 */,\n/* 353 */,\n/* 354 */,\n/* 355 */,\n/* 356 */,\n/* 357 */,\n/* 358 */,\n/* 359 */,\n/* 360 */,\n/* 361 */,\n/* 362 */,\n/* 363 */,\n/* 364 */,\n/* 365 */,\n/* 366 */,\n/* 367 */,\n/* 368 */,\n/* 369 */,\n/* 370 */,\n/* 371 */,\n/* 372 */,\n/* 373 */,\n/* 374 */,\n/* 375 */,\n/* 376 */,\n/* 377 */,\n/* 378 */,\n/* 379 */,\n/* 380 */,\n/* 381 */,\n/* 382 */,\n/* 383 */,\n/* 384 */,\n/* 385 */,\n/* 386 */,\n/* 387 */,\n/* 388 */,\n/* 389 */,\n/* 390 */,\n/* 391 */,\n/* 392 */,\n/* 393 */,\n/* 394 */,\n/* 395 */,\n/* 396 */,\n/* 397 */,\n/* 398 */,\n/* 399 */,\n/* 400 */,\n/* 401 */,\n/* 402 */,\n/* 403 */,\n/* 404 */,\n/* 405 */,\n/* 406 */,\n/* 407 */,\n/* 408 */,\n/* 409 */,\n/* 410 */,\n/* 411 */,\n/* 412 */,\n/* 413 */,\n/* 414 */,\n/* 415 */,\n/* 416 */,\n/* 417 */,\n/* 418 */,\n/* 419 */,\n/* 420 */,\n/* 421 */,\n/* 422 */,\n/* 423 */,\n/* 424 */,\n/* 425 */,\n/* 426 */,\n/* 427 */,\n/* 428 */,\n/* 429 */,\n/* 430 */,\n/* 431 */,\n/* 432 */,\n/* 433 */,\n/* 434 */,\n/* 435 */,\n/* 436 */,\n/* 437 */,\n/* 438 */,\n/* 439 */,\n/* 440 */,\n/* 441 */,\n/* 442 */,\n/* 443 */,\n/* 444 */,\n/* 445 */,\n/* 446 */,\n/* 447 */,\n/* 448 */,\n/* 449 */,\n/* 450 */,\n/* 451 */,\n/* 452 */,\n/* 453 */,\n/* 454 */,\n/* 455 */,\n/* 456 */,\n/* 457 */,\n/* 458 */,\n/* 459 */,\n/* 460 */,\n/* 461 */,\n/* 462 */,\n/* 463 */,\n/* 464 */,\n/* 465 */,\n/* 466 */,\n/* 467 */,\n/* 468 */,\n/* 469 */,\n/* 470 */,\n/* 471 */,\n/* 472 */,\n/* 473 */,\n/* 474 */,\n/* 475 */,\n/* 476 */,\n/* 477 */,\n/* 478 */,\n/* 479 */,\n/* 480 */,\n/* 481 */,\n/* 482 */,\n/* 483 */,\n/* 484 */,\n/* 485 */,\n/* 486 */,\n/* 487 */,\n/* 488 */,\n/* 489 */,\n/* 490 */,\n/* 491 */,\n/* 492 */,\n/* 493 */,\n/* 494 */,\n/* 495 */,\n/* 496 */,\n/* 497 */,\n/* 498 */,\n/* 499 */,\n/* 500 */,\n/* 501 */,\n/* 502 */,\n/* 503 */,\n/* 504 */,\n/* 505 */,\n/* 506 */,\n/* 507 */,\n/* 508 */,\n/* 509 */,\n/* 510 */,\n/* 511 */,\n/* 512 */,\n/* 513 */,\n/* 514 */,\n/* 515 */,\n/* 516 */,\n/* 517 */,\n/* 518 */,\n/* 519 */,\n/* 520 */,\n/* 521 */,\n/* 522 */,\n/* 523 */,\n/* 524 */,\n/* 525 */,\n/* 526 */,\n/* 527 */,\n/* 528 */,\n/* 529 */,\n/* 530 */,\n/* 531 */,\n/* 532 */,\n/* 533 */,\n/* 534 */,\n/* 535 */,\n/* 536 */,\n/* 537 */,\n/* 538 */,\n/* 539 */,\n/* 540 */,\n/* 541 */,\n/* 542 */,\n/* 543 */,\n/* 544 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1545)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(632),\n /* template */\n __webpack_require__(1461),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 545 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1544)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(702),\n /* template */\n __webpack_require__(1459),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 546 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1566)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(704),\n /* template */\n __webpack_require__(1491),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 547 */,\n/* 548 */,\n/* 549 */,\n/* 550 */,\n/* 551 */,\n/* 552 */,\n/* 553 */,\n/* 554 */,\n/* 555 */,\n/* 556 */,\n/* 557 */,\n/* 558 */,\n/* 559 */,\n/* 560 */,\n/* 561 */,\n/* 562 */,\n/* 563 */,\n/* 564 */,\n/* 565 */,\n/* 566 */,\n/* 567 */,\n/* 568 */,\n/* 569 */,\n/* 570 */,\n/* 571 */,\n/* 572 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _vue = __webpack_require__(34);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _diffMatchPatch = __webpack_require__(625);\n\nvar _diffMatchPatch2 = _interopRequireDefault(_diffMatchPatch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_vue2.default.directive('diff', _diffMatchPatch2.default.diff);\n_vue2.default.directive('processingDiff', _diffMatchPatch2.default.processingDiff);\n_vue2.default.directive('semanticDiff', _diffMatchPatch2.default.semanticDiff);\n_vue2.default.directive('lineDiff', _diffMatchPatch2.default.lineDiff);\n\n/***/ }),\n/* 573 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _moment = __webpack_require__(2);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n methods: {\n bytesToSize: function bytesToSize(bytes) {\n if (bytes === 0) return '0 B';\n var k = 1024;\n var sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n var i = Math.floor(Math.log(bytes) / Math.log(k));\n var j = (bytes / Math.pow(k, i)).toFixed(2);\n return j + ' ' + sizes[i];\n },\n formatDate: function formatDate(time, format) {\n var date = new Date(time);\n var formatTime = (0, _moment2.default)(date).format(format);\n return formatTime;\n }\n }\n};\n\n/***/ }),\n/* 574 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = __webpack_require__(34);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _vueRouter = __webpack_require__(1525);\n\nvar _vueRouter2 = _interopRequireDefault(_vueRouter);\n\nvar _router_mapper = __webpack_require__(291);\n\nvar _router_mapper2 = _interopRequireDefault(_router_mapper);\n\nvar _Login = __webpack_require__(544);\n\nvar _Login2 = _interopRequireDefault(_Login);\n\nvar _index_manage = __webpack_require__(1418);\n\nvar _index_manage2 = _interopRequireDefault(_index_manage);\n\nvar _index_detail = __webpack_require__(1382);\n\nvar _index_detail2 = _interopRequireDefault(_index_detail);\n\nvar _version_manage = __webpack_require__(1413);\n\nvar _version_manage2 = _interopRequireDefault(_version_manage);\n\nvar _template_manage = __webpack_require__(1407);\n\nvar _template_manage2 = _interopRequireDefault(_template_manage);\n\nvar _dynamic_manage = __webpack_require__(1376);\n\nvar _dynamic_manage2 = _interopRequireDefault(_dynamic_manage);\n\nvar _flow_record = __webpack_require__(1378);\n\nvar _flow_record2 = _interopRequireDefault(_flow_record);\n\nvar _cron_delete_manage = __webpack_require__(1375);\n\nvar _cron_delete_manage2 = _interopRequireDefault(_cron_delete_manage);\n\nvar _route_manage = __webpack_require__(1386);\n\nvar _route_manage2 = _interopRequireDefault(_route_manage);\n\nvar _service_manage = __webpack_require__(1390);\n\nvar _service_manage2 = _interopRequireDefault(_service_manage);\n\nvar _cluster_manage = __webpack_require__(1358);\n\nvar _cluster_manage2 = _interopRequireDefault(_cluster_manage);\n\nvar _overview = __webpack_require__(1373);\n\nvar _overview2 = _interopRequireDefault(_overview);\n\nvar _cluster_monitor = __webpack_require__(1367);\n\nvar _cluster_monitor2 = _interopRequireDefault(_cluster_monitor);\n\nvar _indices_monitor = __webpack_require__(1370);\n\nvar _indices_monitor2 = _interopRequireDefault(_indices_monitor);\n\nvar _indice_detail = __webpack_require__(1369);\n\nvar _indice_detail2 = _interopRequireDefault(_indice_detail);\n\nvar _nodes_monitor = __webpack_require__(1372);\n\nvar _nodes_monitor2 = _interopRequireDefault(_nodes_monitor);\n\nvar _node_detail = __webpack_require__(1371);\n\nvar _node_detail2 = _interopRequireDefault(_node_detail);\n\nvar _cluster_route_manage = __webpack_require__(1363);\n\nvar _cluster_route_manage2 = _interopRequireDefault(_cluster_route_manage);\n\nvar _cluster_node_restart = __webpack_require__(1359);\n\nvar _cluster_node_restart2 = _interopRequireDefault(_cluster_node_restart);\n\nvar _cluster_detail = __webpack_require__(1356);\n\nvar _cluster_detail2 = _interopRequireDefault(_cluster_detail);\n\nvar _authority_manage = __webpack_require__(1353);\n\nvar _authority_manage2 = _interopRequireDefault(_authority_manage);\n\nvar _authority_manage_administrator = __webpack_require__(1354);\n\nvar _authority_manage_administrator2 = _interopRequireDefault(_authority_manage_administrator);\n\nvar _plugin_manage = __webpack_require__(1423);\n\nvar _plugin_manage2 = _interopRequireDefault(_plugin_manage);\n\nvar _plugin_upgrade = __webpack_require__(1424);\n\nvar _plugin_upgrade2 = _interopRequireDefault(_plugin_upgrade);\n\nvar _agent_manage = __webpack_require__(1351);\n\nvar _agent_manage2 = _interopRequireDefault(_agent_manage);\n\nvar _token_manage = __webpack_require__(1428);\n\nvar _token_manage2 = _interopRequireDefault(_token_manage);\n\nvar _permission_manage = __webpack_require__(1419);\n\nvar _permission_manage2 = _interopRequireDefault(_permission_manage);\n\nvar _user_manage = __webpack_require__(1421);\n\nvar _user_manage2 = _interopRequireDefault(_user_manage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_vue2.default.use(_vueRouter2.default);\n\nexports.default = new _vueRouter2.default({\n routes: [{\n path: _router_mapper2.default.GetPath('indexManage'),\n name: 'index_manage',\n component: _index_manage2.default\n }, {\n path: '/',\n redirect: 'index_manage'\n }, {\n path: _router_mapper2.default.GetPath('login'),\n name: 'login',\n component: _Login2.default\n }, {\n path: _router_mapper2.default.GetPath('indexDetail'),\n component: _index_detail2.default,\n children: [{ path: '', redirect: 'version_manage' }, { name: 'version_manage', path: _router_mapper2.default.GetPath('versionManage'), component: _version_manage2.default }, { name: 'template_manage', path: _router_mapper2.default.GetPath('templateManage'), component: _template_manage2.default }, { name: 'dynamic_manage', path: _router_mapper2.default.GetPath('dynamicManage'), component: _dynamic_manage2.default }, { name: 'route_manage', path: _router_mapper2.default.GetPath('routeManage'), component: _route_manage2.default }, { name: 'service_manage', path: _router_mapper2.default.GetPath('serviceManage'), component: _service_manage2.default }, { name: 'flow_record', path: _router_mapper2.default.GetPath('flowRecord'), component: _flow_record2.default }, { name: 'cron_delete', path: _router_mapper2.default.GetPath('cronDelete'), component: _cron_delete_manage2.default }]\n }, {\n path: _router_mapper2.default.GetPath('clusterManage'),\n name: 'cluster_manage',\n component: _cluster_manage2.default\n }, {\n path: _router_mapper2.default.GetPath('monitorOverview'),\n component: _overview2.default,\n children: [{ path: '', redirect: 'cluster_monitor' }, { name: 'cluster_monitor', path: _router_mapper2.default.GetPath('clusterMonitor'), component: _cluster_monitor2.default }, { name: 'indices_monitor', path: _router_mapper2.default.GetPath('indicesMonitor'), component: _indices_monitor2.default }, { name: 'indice_monitor_detail', path: _router_mapper2.default.GetPath('indiceMonitorDetail'), component: _indice_detail2.default }, { name: 'nodes_monitor', path: _router_mapper2.default.GetPath('nodesMonitor'), component: _nodes_monitor2.default }, { name: 'node_monitor_detail', path: _router_mapper2.default.GetPath('nodeMonitorDetail'), component: _node_detail2.default }]\n }, {\n path: _router_mapper2.default.GetPath('clusterRouteManage'),\n name: 'cluster_route_manage',\n component: _cluster_route_manage2.default\n }, {\n path: _router_mapper2.default.GetPath('clusterNodeRestart'),\n name: 'cluster_node_restart',\n component: _cluster_node_restart2.default\n }, {\n path: _router_mapper2.default.GetPath('clusterDetail'),\n name: 'cluster_detail',\n component: _cluster_detail2.default\n }, {\n path: _router_mapper2.default.GetPath('authorityManage'),\n name: 'authority_manage',\n component: _authority_manage2.default\n }, {\n path: _router_mapper2.default.GetPath('authorityManageAdministrator'),\n name: 'authority_manage_administrator',\n component: _authority_manage_administrator2.default\n }, {\n path: _router_mapper2.default.GetPath('pluginManage'),\n name: 'plugin_manage',\n component: _plugin_manage2.default\n }, {\n path: _router_mapper2.default.GetPath('pluginUpgrade'),\n name: 'plugin_upgrade',\n component: _plugin_upgrade2.default\n }, {\n path: _router_mapper2.default.GetPath('agentManage'),\n name: 'agent_manage',\n component: _agent_manage2.default\n }, {\n path: _router_mapper2.default.GetPath('tokenManage'),\n name: 'token_manage',\n component: _token_manage2.default\n }, {\n path: _router_mapper2.default.GetPath('permissionManage'),\n component: _permission_manage2.default,\n children: [{ path: '', redirect: 'user_manage' }, { name: 'user_manage', path: _router_mapper2.default.GetPath('userManage'), component: _user_manage2.default }]\n }]\n});\n\n/***/ }),\n/* 575 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _defineProperty2 = __webpack_require__(331);\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _mutations, _actions;\n\nvar _vue = __webpack_require__(34);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _vuex = __webpack_require__(1586);\n\nvar _vuex2 = _interopRequireDefault(_vuex);\n\nvar _types = __webpack_require__(195);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_vue2.default.use(_vuex2.default);\n\nexports.default = new _vuex2.default.Store({\n state: {\n loginUser: '',\n monitorTimeInterval: {\n command: '30',\n from: new Date().getTime() - 30 * 60 * 1000,\n to: new Date().getTime()\n }\n },\n getters: {},\n mutations: (_mutations = {}, (0, _defineProperty3.default)(_mutations, _types.SET_LOGIN_USER, function (state, loginUser) {\n state.loginUser = loginUser;\n }), (0, _defineProperty3.default)(_mutations, _types.SET_MONITOR_TIME_INTERVAL, function (state, timeInterinfo) {\n state.monitorTimeInterval = (0, _extends3.default)({}, timeInterinfo);\n }), _mutations),\n actions: (_actions = {}, (0, _defineProperty3.default)(_actions, _types.SET_LOGIN_USER, function (_ref, loginUser) {\n var commit = _ref.commit;\n\n commit(_types.SET_LOGIN_USER, loginUser);\n }), (0, _defineProperty3.default)(_actions, _types.SET_MONITOR_TIME_INTERVAL, function (_ref2, timeInterinfo) {\n var commit = _ref2.commit;\n\n commit(_types.SET_MONITOR_TIME_INTERVAL, timeInterinfo);\n }), _actions)\n});\n\n/***/ }),\n/* 576 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _array = __webpack_require__(626);\n\nvar _array2 = _interopRequireDefault(_array);\n\nvar _request = __webpack_require__(629);\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _message = __webpack_require__(290);\n\nvar _message2 = _interopRequireDefault(_message);\n\nvar _option = __webpack_require__(628);\n\nvar _option2 = _interopRequireDefault(_option);\n\nvar _validate = __webpack_require__(630);\n\nvar _validate2 = _interopRequireDefault(_validate);\n\nvar _router_mapper = __webpack_require__(291);\n\nvar _router_mapper2 = _interopRequireDefault(_router_mapper);\n\nvar _common = __webpack_require__(627);\n\nvar _common2 = _interopRequireDefault(_common);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Utils = {\n array: _array2.default,\n http: _request2.default,\n message: _message2.default,\n option: _option2.default,\n validate: _validate2.default,\n routerMapper: _router_mapper2.default,\n common: _common2.default\n};\n\nUtils.install = function (Vue) {\n Vue.prototype.$array = _array2.default;\n Vue.prototype.$http = _request2.default;\n Vue.prototype.$message = _message2.default;\n Vue.prototype.$option = _option2.default;\n Vue.prototype.$validate = _validate2.default;\n Vue.prototype.$routermapper = _router_mapper2.default;\n Vue.prototype.$common = _common2.default;\n};\nexports.default = Utils;\n\n/***/ }),\n/* 577 */,\n/* 578 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 579 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 580 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 581 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 582 */,\n/* 583 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(631),\n /* template */\n __webpack_require__(1463),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 584 */,\n/* 585 */,\n/* 586 */,\n/* 587 */,\n/* 588 */,\n/* 589 */,\n/* 590 */,\n/* 591 */,\n/* 592 */,\n/* 593 */,\n/* 594 */,\n/* 595 */,\n/* 596 */,\n/* 597 */,\n/* 598 */,\n/* 599 */,\n/* 600 */,\n/* 601 */,\n/* 602 */,\n/* 603 */,\n/* 604 */,\n/* 605 */,\n/* 606 */,\n/* 607 */,\n/* 608 */,\n/* 609 */,\n/* 610 */,\n/* 611 */,\n/* 612 */,\n/* 613 */,\n/* 614 */,\n/* 615 */,\n/* 616 */,\n/* 617 */,\n/* 618 */,\n/* 619 */,\n/* 620 */,\n/* 621 */,\n/* 622 */,\n/* 623 */,\n/* 624 */,\n/* 625 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _getOwnPropertyNames = __webpack_require__(926);\n\nvar _getOwnPropertyNames2 = _interopRequireDefault(_getOwnPropertyNames);\n\nvar _diffMatchPatch = __webpack_require__(1049);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction factory() {\n var displayType = {\n INSDEL: 0,\n LINEDIFF: 1\n };\n function diffClass(op) {\n switch (op) {\n case _diffMatchPatch.DIFF_INSERT:\n return 'ins';\n case _diffMatchPatch.DIFF_DELETE:\n return 'del';\n case _diffMatchPatch.DIFF_EQUAL:\n return 'match';\n }\n }\n function diffSymbol(op) {\n switch (op) {\n case _diffMatchPatch.DIFF_EQUAL:\n return ' ';\n case _diffMatchPatch.DIFF_INSERT:\n return '+';\n case _diffMatchPatch.DIFF_DELETE:\n return '-';\n }\n }\n function diffTag(op) {\n switch (op) {\n case _diffMatchPatch.DIFF_EQUAL:\n return 'span';\n case _diffMatchPatch.DIFF_INSERT:\n return 'ins';\n case _diffMatchPatch.DIFF_DELETE:\n return 'del';\n }\n }\n function diffAttrName(op) {\n switch (op) {\n case _diffMatchPatch.DIFF_EQUAL:\n return 'equal';\n case _diffMatchPatch.DIFF_INSERT:\n return 'insert';\n case _diffMatchPatch.DIFF_DELETE:\n return 'delete';\n }\n }\n function isEmptyObject(o) {\n return (0, _getOwnPropertyNames2.default)(o).length === 0;\n }\n function getTagAttrs(options, op, attrs) {\n attrs = attrs || {};\n var tagOptions = {};\n if (options && options.attrs) {\n tagOptions = JSON.parse((0, _stringify2.default)(options.attrs[diffAttrName(op)] || {}));\n }\n if (isEmptyObject(tagOptions) && isEmptyObject(attrs)) {\n return '';\n }\n for (var k in attrs) {\n if (tagOptions[k]) {\n tagOptions[k] = attrs[k] + ' ' + tagOptions[k];\n } else {\n tagOptions[k] = attrs[k];\n }\n }\n var lis = [];\n for (var _k in tagOptions) {\n lis.push(_k + '=\"' + tagOptions[_k] + '\"');\n }\n return ' ' + lis.join(' ');\n }\n function getHtmlPrefix(op, display, options) {\n var retVal = '';\n switch (display) {\n case displayType.LINEDIFF:\n retVal = '
' + diffSymbol(op) + '';\n break;\n case displayType.INSDEL:\n var tag = diffTag(op);\n\n retVal = '<' + tag + getTagAttrs(options, op) + '>';\n break;\n }\n return retVal;\n }\n function getHtmlSuffix(op, display) {\n var retVal = '';\n switch (display) {\n case displayType.LINEDIFF:\n retVal = '
';\n break;\n case displayType.INSDEL:\n retVal = '';\n break;\n }\n return retVal;\n }\n function createHtmlLines(text, op, options) {\n var lines = text.split('\\n');\n for (var y = 0; y < lines.length; y++) {\n if (lines[y].length === 0) continue;\n lines[y] = getHtmlPrefix(op, displayType.LINEDIFF, options) + lines[y] + getHtmlSuffix(op, displayType.LINEDIFF);\n }\n return lines.join('');\n }\n function createHtmlFromDiffs(diffs, display, options) {\n var pattern_amp = /&/g;\n var pattern_lt = //g;\n for (var x = 0; x < diffs.length; x++) {\n var data = diffs[x][1];\n var text = data.replace(pattern_amp, '&').replace(pattern_lt, '<').replace(pattern_gt, '>');\n diffs[x][1] = text;\n }\n\n var html = [];\n for (var _x = 0; _x < diffs.length; _x++) {\n var op = diffs[_x][0];\n var _text = diffs[_x][1];\n if (display === displayType.LINEDIFF) {\n html[_x] = createHtmlLines(_text, op, options);\n } else {\n html[_x] = getHtmlPrefix(op, display, options) + _text + getHtmlSuffix(op, display);\n }\n }\n return html.join('');\n }\n function assertArgumentsIsStrings(left, right) {\n return typeof left === 'string' && typeof right === 'string';\n }\n return {\n createDiffHtml: function createDiffHtml(left, right, options) {\n if (assertArgumentsIsStrings(left, right)) {\n var _dmp = new _diffMatchPatch.diff_match_patch();\n var diffs = _dmp.diff_main(left, right);\n return createHtmlFromDiffs(diffs, displayType.INSDEL, options);\n }\n return '';\n },\n createProcessingDiffHtml: function createProcessingDiffHtml(left, right, options) {\n if (assertArgumentsIsStrings(left, right)) {\n var _dmp2 = new _diffMatchPatch.diff_match_patch();\n var diffs = _dmp2.diff_main(left, right);\n\n _dmp2.diff_cleanupEfficiency(diffs);\n return createHtmlFromDiffs(diffs, displayType.INSDEL, options);\n }\n return '';\n },\n createSemanticDiffHtml: function createSemanticDiffHtml(left, right, options) {\n if (assertArgumentsIsStrings(left, right)) {\n var _dmp3 = new _diffMatchPatch.diff_match_patch();\n var diffs = _dmp3.diff_main(left, right);\n _dmp3.diff_cleanupSemantic(diffs);\n return createHtmlFromDiffs(diffs, displayType.INSDEL, options);\n }\n return '';\n },\n createLineDiffHtml: function createLineDiffHtml(left, right, options) {\n if (assertArgumentsIsStrings(left, right)) {\n var _dmp4 = new _diffMatchPatch.diff_match_patch();\n var a = _dmp4.diff_linesToChars_(left, right);\n var diffs = _dmp4.diff_main(a.chars1, a.chars2, false);\n _dmp4.diff_charsToLines_(diffs, a.lineArray);\n return createHtmlFromDiffs(diffs, displayType.LINEDIFF, options);\n }\n return '';\n }\n };\n}\n\nvar dmp = factory();\n\nexports.default = {\n diff: function diff(el, binding) {\n var scope = binding.value;\n el.innerHTML = dmp.createDiffHtml(scope.left, scope.right, scope.options);\n },\n processingDiff: function processingDiff(el, binding) {\n var scope = binding.value;\n el.innerHTML = dmp.createProcessingDiffHtml(scope.left, scope.right, scope.options);\n },\n semanticDiff: function semanticDiff(el, binding) {\n var scope = binding.value;\n el.innerHTML = dmp.createSemanticDiffHtml(scope.left, scope.right, scope.options);\n },\n lineDiff: function lineDiff(el, binding) {\n console.log(binding);\n var scope = binding.value;\n el.innerHTML = dmp.createLineDiffHtml(scope.left, scope.right, scope.options);\n }\n};\n\n/***/ }),\n/* 626 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n removeByValue: function removeByValue(arr, val) {\n arr.forEach(function (element, index) {\n if (element === val) {\n arr.splice(index, 1);\n }\n });\n },\n isContainValue: function isContainValue(arr, val) {\n var flag = false;\n if (arr.length > 0) {\n flag = arr.some(function (element) {\n if (element === val) {\n return true;\n }\n return false;\n });\n }\n return flag;\n },\n strToArray: function strToArray(str) {\n if (str.indexOf(',') > 0) {\n var arr = str.split(',');\n return arr;\n }\n return [str];\n }\n};\n\n/***/ }),\n/* 627 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _jsonBigint = __webpack_require__(1330);\n\nvar _jsonBigint2 = _interopRequireDefault(_jsonBigint);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n JSONbigParse: function JSONbigParse(jsonString) {\n return _jsonBigint2.default.parse(jsonString);\n },\n JSONbigStringify: function JSONbigStringify(obj, replacer, space) {\n return _jsonBigint2.default.stringify(obj, replacer, space);\n },\n JSONbigStringifyFormat: function JSONbigStringifyFormat(obj) {\n return _jsonBigint2.default.stringify(obj, undefined, 2);\n }\n};\n\n/***/ }),\n/* 628 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n pluginTypes: [{\n label: 'PALLAS',\n value: 0\n }],\n versionVdpTypes: []\n};\n\n/***/ }),\n/* 629 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _axios = __webpack_require__(606);\n\nvar _axios2 = _interopRequireDefault(_axios);\n\nvar _message = __webpack_require__(290);\n\nvar _message2 = _interopRequireDefault(_message);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_axios2.default.defaults.baseURL = './pallas';\n\nvar showError = false;\n\nexports.default = {\n get: function get(url, data) {\n return this.request(url, data, 'GET');\n },\n post: function post(url, data) {\n return this.request(url, data, 'POST');\n },\n postCerebro: function postCerebro(url, data) {\n return this.requestCerebro(url, data, 'POST');\n },\n put: function put(url, data) {\n return this.request(url, data, 'PUT');\n },\n delete: function _delete(url, data) {\n return this.request(url, data, 'DELETE');\n },\n buildErrorHandler: function buildErrorHandler(msg, callback) {\n if (!showError) {\n _message2.default.errorMessage(msg);\n showError = false;\n }\n if (callback) {\n callback();\n }\n },\n request: function request(url, dataObj, methodType) {\n return new _promise2.default(function (resolve, reject) {\n var config = {\n url: url,\n method: methodType,\n cache: false\n };\n\n switch (methodType) {\n case 'GET':\n case 'DELETE':\n config.params = dataObj;\n break;\n default:\n config.data = dataObj;\n break;\n }\n _axios2.default.request(config).then(function (response) {\n if (response.status === 200) {\n if (response.data !== '') {\n if (response.data.status === 200) {\n showError = false;\n resolve(response.data.data);\n } else if (response.data.status === 401) {\n top.location.href = response.data.message;\n } else {\n _message2.default.errorMessage(response.data.message || '请求失败!');\n showError = true;\n reject();\n }\n } else {\n showError = false;\n resolve(response.data.data);\n }\n }\n }).catch(function (error) {\n var errMsg = error.response.data ? error.response.data.message || '请求失败' : '请求失败';\n _message2.default.errorMessage(errMsg);\n showError = true;\n reject();\n });\n });\n },\n requestCerebro: function requestCerebro(url, dataObj, methodType) {\n return new _promise2.default(function (resolve, reject) {\n var config = {\n url: url,\n method: methodType,\n cache: false\n };\n\n switch (methodType) {\n case 'GET':\n case 'DELETE':\n config.params = dataObj;\n break;\n default:\n config.data = dataObj;\n break;\n }\n _axios2.default.request(config).then(function (response) {\n if (response.status === 200) {\n if (response.data !== '') {\n if (response.data.status === 200) {\n showError = false;\n resolve(response.data.body);\n } else if (response.data.status === 401) {\n top.location.href = response.data.message;\n } else {\n _message2.default.errorMessage(response.data.message || '请求失败!');\n showError = true;\n reject();\n }\n } else {\n showError = false;\n resolve(response.data.body);\n }\n }\n }).catch(function (error) {\n var errMsg = error.response.data ? error.response.data.message || '请求失败' : '请求失败';\n _message2.default.errorMessage(errMsg);\n showError = true;\n reject();\n });\n });\n }\n};\n\n/***/ }),\n/* 630 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _from = __webpack_require__(223);\n\nvar _from2 = _interopRequireDefault(_from);\n\nvar _parseInt = __webpack_require__(924);\n\nvar _parseInt2 = _interopRequireDefault(_parseInt);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isIPv4 = function isIPv4(ip) {\n var re = /^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$/;\n if (re.test(ip)) {\n if (RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >= 0 && RegExp.$3 <= 255 && RegExp.$3 >= 0 && RegExp.$4 <= 255 && RegExp.$4 >= 0) {\n return true;\n }\n return false;\n }\n return false;\n};\n\nvar isPort = function isPort(str) {\n var parten = /^(\\d)+$/g;\n if (parten.test(str) && (0, _parseInt2.default)(str, 10) <= 65535 && (0, _parseInt2.default)(str, 10) >= 0) {\n return true;\n }\n return false;\n};\n\nvar isCharacterAndNumber = function isCharacterAndNumber(str, symbolArr) {\n var flag = true;\n var parten = /[^a-zA-Z0-9-_.]/g;\n if (!symbolArr) {\n if (parten.test(str)) {\n flag = false;\n }\n } else {\n var isError = symbolArr.some(function (element) {\n if (parten.test(str) || str.indexOf(element) >= 0) {\n return true;\n }\n return false;\n });\n if (isError) {\n flag = false;\n }\n }\n return flag;\n};\n\nvar isIpAndPort = function isIpAndPort(str) {\n var num = 0;\n if (str) {\n if (str.indexOf(':') <= 0) {\n num = 1;\n } else {\n var arr = str.split(':');\n if (!isIPv4(arr[0])) {\n num = 2;\n }\n if (!isPort(arr[1])) {\n num = 3;\n }\n }\n }\n return num;\n};\n\nvar isContainEnglishCapital = function isContainEnglishCapital(str) {\n var arr = (0, _from2.default)(str);\n return arr.some(function (ele) {\n if (ele.charCodeAt(0) >= 65 && ele.charCodeAt(0) <= 90) {\n return true;\n }\n return false;\n });\n};\n\nexports.default = {\n validateIp: function validateIp(rule, value, callback) {\n if (value === '') {\n callback(new Error('请输入ip地址'));\n } else {\n if (!isIPv4(value)) {\n callback(new Error('请输入正确的ip'));\n }\n callback();\n }\n },\n validatePort: function validatePort(rule, value, callback) {\n if (value === '') {\n callback(new Error('请输入端口号'));\n } else {\n if (!isPort(value)) {\n callback(new Error('请输入正确的端口号'));\n }\n callback();\n }\n },\n validateIpPort: function validateIpPort(rule, value, callback) {\n if (!value) {\n callback(new Error('请输入ip及端口号'));\n } else {\n if (value.indexOf(':') <= 0) {\n callback(new Error('请输入正确的ip端口号,以:连接'));\n } else {\n var arr = value.split(':');\n if (!isIPv4(arr[0])) {\n callback(new Error('请输入正确的ip'));\n }\n if (!isPort(arr[1])) {\n callback(new Error('请输入正确的端口号'));\n }\n }\n callback();\n }\n },\n validateMultipleIpPort: function validateMultipleIpPort(rule, value, callback) {\n if (!value) {\n callback(new Error('请输入ip及端口号'));\n } else {\n if (value.indexOf(',') <= 0) {\n if (isIpAndPort(value) !== 0) {\n callback(new Error('请输入正确的ip端口号,以:连接'));\n }\n callback();\n } else {\n var arr2 = value.split(',');\n var isError = arr2.some(function (element) {\n if (isIpAndPort(element) !== 0) {\n return true;\n }\n return false;\n });\n if (isError) {\n callback(new Error('请输入正确的ip端口号,以:连接'));\n }\n }\n callback();\n }\n },\n validateCharacterAndNumber: function validateCharacterAndNumber(rule, value, callback) {\n if (value === '') {\n callback(new Error('该内容不能为空'));\n } else {\n if (!isCharacterAndNumber(value)) {\n callback(new Error('不允许中文和特殊字符'));\n }\n callback();\n }\n },\n validateCharacterAndNumberIsExcludePointAndBar: function validateCharacterAndNumberIsExcludePointAndBar(rule, value, callback) {\n if (value === '') {\n callback(new Error('该内容不能为空'));\n } else {\n var arr = ['.', '-'];\n if (!isCharacterAndNumber(value, arr)) {\n callback(new Error('不允许输入中文和特殊字符'));\n }\n if (isContainEnglishCapital(value)) {\n callback(new Error('不允许输入英文大写'));\n }\n callback();\n }\n },\n validateArray: function validateArray(rule, value, callback) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n callback(new Error('内容为空,请选择'));\n }\n callback();\n }\n },\n validateSelect: function validateSelect(rule, value, callback) {\n if (!value) {\n callback(new Error('内容为空,请选择'));\n }\n callback();\n },\n validateTimeExpire: function validateTimeExpire(rule, value, callback) {\n if (!value) {\n callback(new Error('请选择日期时间'));\n } else {\n if (Date.parse(new Date()) > Date.parse(value)) {\n callback(new Error('日期时间已过期,请重新选择'));\n }\n callback();\n }\n },\n validateTime: function validateTime(rule, value, callback) {\n if (!value) {\n callback(new Error('请选择日期时间'));\n } else {\n callback();\n }\n }\n};\n\n/***/ }),\n/* 631 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _Login = __webpack_require__(544);\n\nvar _Login2 = _interopRequireDefault(_Login);\n\nvar _types = __webpack_require__(195);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n initialized: false,\n interval: 0\n };\n },\n\n methods: {\n loginSuccess: function loginSuccess() {\n this.init();\n },\n heartbeat: function heartbeat() {\n var _this = this;\n\n this.interval = setInterval(function () {\n _this.$http.get('/heartbeat.json').then(function () {});\n }, 600000);\n },\n getLoginUser: function getLoginUser() {\n var _this2 = this;\n\n return this.$http.get('/system/user.json').then(function (data) {\n _this2.$store.dispatch(_types.SET_LOGIN_USER, data);\n });\n },\n init: function init() {\n var _this3 = this;\n\n this.loading = true;\n _promise2.default.all([this.getLoginUser()]).then(function () {\n _this3.heartbeat();\n _this3.initialized = true;\n _this3.loading = false;\n });\n }\n },\n computed: {\n initComponent: function initComponent() {\n var resultComponent = '';\n if (this.$route.path === '/login') {\n resultComponent = 'Login';\n } else {\n resultComponent = 'Container';\n }\n return resultComponent;\n }\n },\n created: function created() {\n if (this.$route.path !== '/login') {\n this.init();\n }\n },\n destroyed: function destroyed() {\n clearInterval(this.interval);\n },\n\n components: {\n Login: _Login2.default\n }\n};\n\n/***/ }),\n/* 632 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n data: function data() {\n return {\n loading: false,\n loginInfo: {\n username: '',\n password: ''\n },\n loginErrorMsg: ''\n };\n },\n\n methods: {\n login: function login() {\n var _this = this;\n\n var params = new URLSearchParams();\n params.append('username', this.loginInfo.username);\n params.append('password', this.loginInfo.password);\n this.loading = true;\n this.$http.post('/authorization/login', params).then(function () {\n _this.$router.push({ path: '/' });\n _this.$emit('login-success');\n }).finally(function () {\n _this.loading = false;\n });\n }\n },\n created: function created() {}\n};\n\n/***/ }),\n/* 633 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _brace = __webpack_require__(930);\n\nvar _brace2 = _interopRequireDefault(_brace);\n\n__webpack_require__(933);\n\n__webpack_require__(931);\n\n__webpack_require__(932);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['editorId', 'content', 'readonly', 'mode'],\n data: function data() {\n return {\n editor: Object,\n beforeContent: ''\n };\n },\n\n watch: {\n content: function onContentChange(value) {\n if (this.beforeContent !== value) {\n this.editor.setValue(value, 1);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n var modeType = this.mode || 'json';\n\n this.editor = _brace2.default.edit(this.editorId);\n this.editor.setValue(this.content, 1);\n\n this.editor.getSession().setMode('ace/mode/' + modeType);\n this.editor.setTheme('ace/theme/monokai');\n\n this.editor.setReadOnly(this.readonly || false);\n\n this.editor.on('change', function () {\n _this.beforeContent = _this.editor.getValue();\n _this.$emit('change-content', _this.editor.getValue());\n });\n },\n destroyed: function destroyed() {\n this.editor.destroy();\n this.editor.container.remove();\n }\n};\n\n/***/ }),\n/* 634 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['title'],\n data: function data() {\n return {\n isExpand: true\n };\n },\n\n methods: {\n togglePanel: function togglePanel() {\n this.isExpand = !this.isExpand;\n }\n }\n};\n\n/***/ }),\n/* 635 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _echarts = __webpack_require__(244);\n\nvar _echarts2 = _interopRequireDefault(_echarts);\n\nvar _moment = __webpack_require__(2);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n__webpack_require__(353);\n\nexports.default = {\n props: ['id', 'optionInfo'],\n data: function data() {\n return {\n myChart: {},\n option: {\n color: ['#13CE66', '#20A0FF', '#F7BA2A', '#FF4949'],\n backgroundColor: '#373a3c',\n tooltip: {\n trigger: 'axis',\n formatter: function formatter(params) {\n var result = '' + (0, _moment2.default)(Number(params[0].name)).format('YYYY-MM-DD HH:mm:ss') + '
';\n params.forEach(function (ele) {\n result += ele.seriesName + ': ' + ele.value + '
';\n });\n return result;\n }\n },\n title: {\n text: null\n },\n grid: {\n top: '35',\n left: '1%',\n right: '2%',\n bottom: '25',\n containLabel: true\n },\n legend: {\n y: 'bottom',\n padding: [5, 10, 5, 10]\n },\n xAxis: {\n type: 'category',\n boundaryGap: false,\n data: [],\n axisLabel: {\n formatter: function formatter(value) {\n return (0, _moment2.default)(Number(value)).format('HH:mm') + '\\n' + (0, _moment2.default)(Number(value)).format('MM-DD');\n }\n }\n },\n yAxis: {\n type: 'value',\n name: '',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'solid',\n color: ['#444444']\n }\n }\n },\n series: []\n }\n };\n },\n\n watch: {\n optionInfo: {\n handler: function handler() {\n this.drawLine();\n },\n\n deep: true\n }\n },\n methods: {\n resize: function resize() {\n var _this = this;\n\n window.addEventListener('resize', function () {\n _this.myChart.resize();\n });\n },\n drawLine: function drawLine() {\n var _this2 = this;\n\n var seriesArray = this.optionInfo.seriesData.map(function (obj) {\n var rObj = (0, _extends3.default)({}, obj);\n var label = {\n normal: {\n show: true,\n position: 'top'\n }\n };\n _this2.$set(rObj, 'type', 'bar');\n _this2.$set(rObj, 'label', label);\n return rObj;\n });\n this.option.xAxis.data = this.optionInfo.xCategories;\n this.option.yAxis.name = this.optionInfo.yTitle;\n this.option.series = seriesArray;\n this.myChart = _echarts2.default.init(document.getElementById(this.id), 'dark');\n this.myChart.setOption(this.option);\n this.resize();\n }\n },\n mounted: function mounted() {}\n};\n\n/***/ }),\n/* 636 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _echarts = __webpack_require__(244);\n\nvar _echarts2 = _interopRequireDefault(_echarts);\n\nvar _moment = __webpack_require__(2);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n__webpack_require__(363);\n\nexports.default = {\n props: ['id', 'optionInfo'],\n data: function data() {\n return {\n myChart: {},\n option: {\n color: ['#13CE66', '#20A0FF', '#F7BA2A', '#FF4949'],\n backgroundColor: '#373a3c',\n title: {\n text: null\n },\n tooltip: {\n trigger: 'axis',\n formatter: function formatter(params) {\n var result = '' + (0, _moment2.default)(Number(params[0].name)).format('YYYY-MM-DD HH:mm:ss') + '
';\n params.forEach(function (ele) {\n result += ele.seriesName + ': ' + ele.value + '
';\n });\n return result;\n }\n },\n legend: {\n y: 'bottom'\n },\n grid: {\n top: '45',\n left: '3%',\n right: '3%',\n bottom: '25',\n containLabel: true\n },\n xAxis: {\n type: 'category',\n boundaryGap: false,\n data: [],\n axisLabel: {\n formatter: function formatter(value) {\n return (0, _moment2.default)(Number(value)).format('HH:mm') + '\\n' + (0, _moment2.default)(Number(value)).format('MM-DD');\n }\n }\n },\n yAxis: {\n type: 'value',\n name: '',\n splitLine: {\n show: true,\n lineStyle: {\n type: 'solid',\n color: ['#444444']\n }\n }\n },\n series: []\n }\n };\n },\n\n watch: {\n optionInfo: {\n handler: function handler() {\n this.drawLine();\n },\n\n deep: true\n }\n },\n methods: {\n resize: function resize() {\n var _this = this;\n\n window.addEventListener('resize', function () {\n _this.myChart.resize();\n });\n },\n drawLine: function drawLine() {\n var _this2 = this;\n\n var seriesArray = this.optionInfo.seriesData.map(function (obj) {\n var rObj = (0, _extends3.default)({}, obj);\n var markPoint = {\n data: [{ type: 'max', name: '最大值' }, { type: 'min', name: '最小值' }]\n };\n _this2.$set(rObj, 'type', 'line');\n _this2.$set(rObj, 'symbol', 'none');\n _this2.$set(rObj, 'smooth', false);\n _this2.$set(rObj, 'markPoint', markPoint);\n return rObj;\n });\n this.option.xAxis.data = this.optionInfo.xAxis;\n this.option.yAxis.name = this.optionInfo.yAxisName;\n this.option.series = seriesArray;\n this.myChart = _echarts2.default.init(document.getElementById(this.id), 'dark');\n this.myChart.setOption(this.option);\n this.resize();\n }\n },\n mounted: function mounted() {\n this.drawLine();\n }\n};\n\n/***/ }),\n/* 637 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _echarts = __webpack_require__(244);\n\nvar _echarts2 = _interopRequireDefault(_echarts);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n__webpack_require__(367);\n\nexports.default = {\n props: ['id', 'optionInfo'],\n data: function data() {\n return {\n myChart: {},\n option: {\n title: {\n show: false,\n text: ''\n },\n tooltip: {\n trigger: 'item',\n formatter: '{a}
{b} : {c} ({d}%)'\n },\n legend: {\n orient: 'vertical',\n left: 'left'\n },\n series: []\n }\n };\n },\n\n watch: {\n optionInfo: {\n handler: function handler() {\n this.drawLine();\n },\n\n deep: true\n }\n },\n methods: {\n resize: function resize() {\n var _this = this;\n\n window.addEventListener('resize', function () {\n _this.myChart.resize();\n });\n },\n drawLine: function drawLine() {\n this.option.series = this.optionInfo.seriesData;\n this.myChart = _echarts2.default.init(document.getElementById(this.id));\n this.myChart.setOption(this.option);\n this.resize();\n }\n },\n mounted: function mounted() {}\n};\n\n/***/ }),\n/* 638 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['title', 'content'],\n data: function data() {\n return {\n isVisible: true\n };\n },\n\n methods: {\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n }\n};\n\n/***/ }),\n/* 639 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['isOverwrite', 'jsonDiffInfo'],\n data: function data() {\n return {\n isVisible: true\n };\n },\n\n methods: {\n handleClose: function handleClose() {\n this.$emit('close-dialog');\n },\n handleOverwrite: function handleOverwrite() {\n this.$emit('overwrite-operate');\n }\n }\n};\n\n/***/ }),\n/* 640 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n data: function data() {\n return {\n serviceList: [{ index: '/index', title: '索引管理', icon: 'fa fa-search', path: this.$routermapper.GetPath('indexManage') }, { index: '/cluster', title: 'ES集群管理', icon: 'fa fa-sitemap', path: this.$routermapper.GetPath('clusterManage') }, { index: '/authority', title: '模板变更', icon: 'fa fa-check-square-o', path: this.$routermapper.GetPath('authorityManage') }, { index: '/agent', title: '代理管理', icon: 'fa fa-arrows', path: this.$routermapper.GetPath('agentManage') }, { index: '/token', title: 'Token管理', icon: 'fa fa-key', path: this.$routermapper.GetPath('tokenManage') }, { index: '/plugin', title: '插件管理', icon: 'fa fa-puzzle-piece', path: this.$routermapper.GetPath('pluginManage') }, { index: '/permission', title: '权限管理', icon: 'fa fa-user-plus', path: this.$routermapper.GetPath('permissionManage') }]\n };\n },\n\n computed: {\n activeIndex: function activeIndex() {\n return this.$route.path.split('_')[0];\n },\n loginUser: function loginUser() {\n return this.$store.state.loginUser;\n }\n }\n};\n\n/***/ }),\n/* 641 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _defineProperty2 = __webpack_require__(331);\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['type'],\n data: function data() {\n return {};\n },\n\n methods: {},\n computed: {\n panelType: function panelType() {\n var obj = (0, _defineProperty3.default)({}, 'panel-' + this.type + '-info', true);\n return obj;\n }\n }\n};\n\n/***/ }),\n/* 642 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['activeIndex'],\n data: function data() {\n return {\n versionNum: ''\n };\n },\n\n methods: {\n getVersionNumber: function getVersionNumber() {\n var _this = this;\n\n this.$http.get('/system/getVersion.json').then(function (data) {\n _this.versionNum = data;\n });\n }\n },\n created: function created() {\n this.getVersionNumber();\n },\n\n computed: {\n versionNumber: function versionNumber() {\n return 'Pallas-Console-' + this.versionNum + ' \\xA92019';\n }\n }\n};\n\n/***/ }),\n/* 643 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _entries = __webpack_require__(224);\n\nvar _entries2 = _interopRequireDefault(_entries);\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n isPrivilege: false,\n isAgentInfoVisible: false,\n multipleSelection: [],\n viewInfoTitle: '节点信息',\n viewInfo: '',\n selectedCluster: this.$route.query.cluster || '',\n clusters: [],\n selectedPool: this.$route.query.pool || '',\n poolList: [],\n agentList: [],\n currentPage: Number(this.$route.query.currentPage) || 1,\n pageSize: 10,\n total: 0,\n interval: 0\n };\n },\n\n methods: {\n heartbeat: function heartbeat() {\n var _this = this;\n\n this.interval = setInterval(function () {\n _this.getAgents();\n }, 5000);\n },\n batchUpdateRoute: function batchUpdateRoute() {\n var _this2 = this;\n\n if (this.multipleSelection.length <= 0) {\n this.$message.errorMessage('请选择要批量更新的路由!!!');\n } else {\n var selectedRouteArray = [];\n var selectedRouteNameArray = [];\n this.multipleSelection.forEach(function (element) {\n selectedRouteArray.push(element.id);\n selectedRouteNameArray.push(element.ipport);\n });\n var selectedRouteStr = selectedRouteArray.join(',');\n var selectedRouteNameStr = selectedRouteNameArray.join(' ; ');\n this.$message.confirmMessage('\\u786E\\u8BA4\\u66F4\\u65B0\\u8DEF\\u7531 ' + selectedRouteNameStr + ' \\u5417?', function () {\n _this2.loading = true;\n _this2.$http.post('/ss/remote_update.json', { ssIds: selectedRouteStr }).then(function () {\n _this2.$message.successMessage('批量更新路由成功', function () {\n _this2.refreshPage();\n });\n }).finally(function () {\n _this2.loading = false;\n });\n });\n }\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n setSelectable: function setSelectable(row) {\n if (row.healthy) {\n return true;\n }\n return false;\n },\n handleDelete: function handleDelete(row) {\n var _this3 = this;\n\n this.$message.confirmMessage('\\u786E\\u8BA4\\u5220\\u9664\\u8DEF\\u7531' + row.ipport + '\\u5417?', function () {\n _this3.loading = true;\n _this3.$http.post('/ss/delete.json', { id: row.id }).then(function () {\n _this3.$message.successMessage('删除路由成功', function () {\n _this3.refreshPage();\n });\n }).finally(function () {\n _this3.loading = false;\n });\n });\n },\n handleDeleteExpired: function handleDeleteExpired() {\n var _this4 = this;\n\n this.$message.confirmMessage('确认删除3天前的无效代理节点吗?', function () {\n _this4.loading = true;\n _this4.$http.post('/ss/delete.json', { days: 3 }).then(function () {\n _this4.$message.successMessage('删除路由成功', function () {\n _this4.refreshPage();\n });\n }).finally(function () {\n _this4.loading = false;\n });\n });\n },\n handleRemoveTraffic: function handleRemoveTraffic(row) {\n var _this5 = this;\n\n var filtered = this.agentList.filter(function (e) {\n return e.healthy && e.takeTraffic && e.cluster === row.cluster;\n });\n if (filtered.length === 1 && filtered[0].id === row.id) {\n this.$message.errorMessage('不能停用同一个集群下的唯一在线并且启用的路由服务!');\n return;\n }\n this.$message.confirmMessage('\\u786E\\u8BA4\\u8981\\u505C\\u7528' + row.ipport + '\\u8DEF\\u7531\\u670D\\u52A1\\u5417?', function () {\n _this5.loading = true;\n _this5.$http.post('/ss/traffic.json', { id: row.id, takeTraffic: false }).then(function () {\n _this5.$message.successMessage('停用成功', function () {\n _this5.refreshPage();\n });\n }).finally(function () {\n _this5.loading = false;\n });\n });\n },\n handleRecoverTraffic: function handleRecoverTraffic(row) {\n var _this6 = this;\n\n this.$message.confirmMessage('\\u786E\\u8BA4\\u8981\\u91CD\\u65B0\\u542F\\u7528' + row.ipport + '\\u8DEF\\u7531\\u670D\\u52A1\\u5417?', function () {\n _this6.loading = true;\n _this6.$http.post('/ss/traffic.json', { id: row.id, takeTraffic: true }).then(function () {\n _this6.$message.successMessage('启用成功', function () {\n _this6.refreshPage();\n });\n }).finally(function () {\n _this6.loading = false;\n });\n });\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.toPage();\n },\n updateRoute: function updateRoute(row) {\n var _this7 = this;\n\n this.$message.confirmMessage('\\u786E\\u8BA4\\u66F4\\u65B0\\u8DEF\\u7531' + row.ipport + '\\u5417?', function () {\n _this7.loading = true;\n _this7.$http.post('/ss/remote_update.json', { ssIds: row.id }).then(function () {\n _this7.$message.successMessage('更新路由成功', function () {\n _this7.refreshPage();\n });\n }).finally(function () {\n _this7.loading = false;\n });\n });\n },\n getInfo: function getInfo(row) {\n this.viewInfo = (0, _stringify2.default)(JSON.parse(row.info), undefined, 2);\n this.isAgentInfoVisible = true;\n },\n closeDialog: function closeDialog() {\n this.isAgentInfoVisible = false;\n },\n refreshPage: function refreshPage() {\n this.init();\n },\n toPage: function toPage() {\n this.$router.push({ path: this.$routermapper.GetPath('agentManage'), query: { currentPage: this.currentPage, cluster: this.selectedCluster, pool: this.selectedPool } });\n },\n getClusters: function getClusters() {\n var _this8 = this;\n\n return this.$http.post('/ss/clusters.json').then(function (data) {\n _this8.clusters = data;\n });\n },\n getPools: function getPools() {\n var _this9 = this;\n\n return this.$http.post('/ss/pools.json').then(function (data) {\n _this9.poolList = data;\n });\n },\n getAgents: function getAgents() {\n var _this10 = this;\n\n var params = {\n currentPage: this.$route.query.currentPage || 1,\n pageSize: this.pageSize,\n selectedCluster: this.selectedCluster,\n selectedPool: this.selectedPool\n };\n return this.$http.get('/ss/find.json', params).then(function (data) {\n _this10.agentList = data.list;\n _this10.total = data.total;\n _this10.isPrivilege = true;\n _this10.agentList.forEach(function (ss) {\n if (ss !== null) {\n try {\n JSON.parse(ss.info);\n } catch (err) {\n _this10.$set(ss, 'info', '{}');\n }\n }\n });\n });\n },\n init: function init() {\n var _this11 = this;\n\n this.loading = true;\n _promise2.default.all([this.getAgents(), this.getClusters(), this.getPools()]).then(function () {\n _this11.heartbeat();\n _this11.loading = false;\n });\n }\n },\n created: function created() {\n this.init();\n },\n\n watch: {\n $route: 'getAgents'\n },\n filters: {\n currentQps: function currentQps(row) {\n var gaugesStatistics = JSON.parse(row.info) ? JSON.parse(row.info).gaugesStatistics : undefined;\n var pattern = /(?=((?!\\b)\\d{3})+$)/g;\n var maxKey = '-1';\n var maxValue = 0;\n if (gaugesStatistics === undefined || !row.healthy) {\n return 'N/A';\n }\n (0, _entries2.default)(gaugesStatistics.qps).forEach(function (element) {\n if (element[0] > maxKey) {\n maxKey = element[0];\n maxValue = element[1];\n }\n });\n return maxValue.toString().replace(pattern, ',');\n },\n currentConns: function currentConns(row) {\n var gaugesStatistics = JSON.parse(row.info) ? JSON.parse(row.info).gaugesStatistics : undefined;\n var pattern = /(?=((?!\\b)\\d{3})+$)/g;\n var maxKey = '-1';\n var maxValue = 0;\n if (gaugesStatistics === undefined || !row.healthy) {\n return 'N/A';\n }\n (0, _entries2.default)(gaugesStatistics.conns).forEach(function (element) {\n if (element[0] > maxKey) {\n maxKey = element[0];\n maxValue = element[1];\n }\n });\n return maxValue.toString().replace(pattern, ',');\n },\n currentReceiveClientThrougph: function currentReceiveClientThrougph(row) {\n var gaugesStatistics = JSON.parse(row.info) ? JSON.parse(row.info).gaugesStatistics : undefined;\n var maxKey = '-1';\n var maxValue = 0;\n if (gaugesStatistics === undefined || !row.healthy) {\n return 'N/A';\n }\n (0, _entries2.default)(gaugesStatistics.reqThroughput).forEach(function (element) {\n if (element[0] > maxKey) {\n maxKey = element[0];\n maxValue = element[1];\n }\n });\n maxValue /= 1000;\n return maxValue.toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,').concat(' KB');\n },\n currentReceiveEsThrougph: function currentReceiveEsThrougph(row) {\n var gaugesStatistics = JSON.parse(row.info) ? JSON.parse(row.info).gaugesStatistics : undefined;\n var maxKey = '-1';\n var maxValue = 0;\n if (gaugesStatistics === undefined || !row.healthy) {\n return 'N/A';\n }\n (0, _entries2.default)(gaugesStatistics.respThroughput).forEach(function (element) {\n if (element[0] > maxKey) {\n maxKey = element[0];\n maxValue = element[1];\n }\n });\n maxValue /= 1000;\n return maxValue.toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,').concat(' KB');\n },\n translateState: function translateState(data) {\n var NODE_STATUS = { true: '在线', false: '离线' };\n return NODE_STATUS[data];\n }\n },\n destroyed: function destroyed() {\n clearInterval(this.interval);\n }\n};\n\n/***/ }),\n/* 644 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['approveStates', 'approveInfo'],\n data: function data() {\n return {\n loading: false,\n isVisible: true,\n rules: {\n state: [{ required: true, message: '请选择', trigger: 'blur' }],\n note: [{ required: true, message: '请输入审批描述', trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n submitSyncInfo: function submitSyncInfo() {\n var _this = this;\n\n this.$refs.approveInfo.validate(function (valid) {\n if (valid) {\n _this.loading = true;\n _this.$http.post('/approve/approve.json', _this.approveInfo).then(function () {\n _this.$message.successMessage('审批完成', function () {\n _this.$emit('approve-complete');\n });\n }).finally(function () {\n _this.loading = false;\n });\n }\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-approve-dialog');\n }\n }\n};\n\n/***/ }),\n/* 645 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n isViewDialogVisible: false,\n isAllPrivilege: false,\n jsonDiffInfo: {},\n total: 0,\n pageSize: 10,\n currentPage: Number(this.$route.query.currentPage) || 1,\n applyList: [],\n clusters: [],\n selectedCluster: this.$route.query.cluster || '',\n states: [{\n value: '0',\n label: '待审核'\n }, {\n value: '1',\n label: '已上线'\n }, {\n value: '2',\n label: '审核不通过'\n }, {\n value: '3',\n label: '未提交'\n }],\n selectedState: this.$route.query.state || '',\n conditionForSearch: this.$route.query.condition || ''\n };\n },\n\n methods: {\n handleApproveManage: function handleApproveManage() {\n this.$router.push({ path: this.$routermapper.GetPath('authorityManageAdministrator') });\n },\n handleView: function handleView(row) {\n var _this = this;\n\n this.loading = true;\n this.$http.get('/index_template/id.json?templateId=' + row.relateId).then(function (data) {\n _this.jsonDiffInfo.left = data.lastContent;\n _this.jsonDiffInfo.right = data.content;\n _this.isViewDialogVisible = true;\n }).finally(function () {\n _this.loading = false;\n });\n },\n closeViewContentDialog: function closeViewContentDialog() {\n this.isViewDialogVisible = false;\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.toPage();\n },\n refreshPage: function refreshPage() {\n this.init();\n },\n toPage: function toPage() {\n this.$router.push({ path: this.$routermapper.GetPath('authorityManage'), query: { currentPage: this.currentPage, cluster: this.selectedCluster, state: this.selectedState, condition: this.conditionForSearch } });\n },\n handleCancel: function handleCancel(row) {\n var _this2 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u53D6\\u6D88\\u5BA1\\u6279\\u6A21\\u677F' + row.templateName + '\\u5417?', function () {\n _this2.loading = true;\n _this2.$http.post('/approve/apply/cancel.json', { id: row.id }).then(function () {\n _this2.$message.successMessage('取消审批成功', function () {\n _this2.refreshPage();\n });\n }).finally(function () {\n _this2.loading = false;\n });\n });\n },\n getApplyList: function getApplyList() {\n var _this3 = this;\n\n var params = {\n currentPage: Number(this.$route.query.currentPage) || 1,\n pageSize: this.pageSize,\n state: this.$route.query.state || '',\n conditions: this.$route.query.condition || '',\n clusterId: this.$route.query.cluster || ''\n };\n return this.$http.get('/approve/apply/page.json', params).then(function (data) {\n _this3.total = data.total;\n _this3.isAllPrivilege = data.allPrivilege;\n _this3.applyList = data.list;\n });\n },\n getClusters: function getClusters() {\n var _this4 = this;\n\n return this.$http.get('/cluster/all.json').then(function (data) {\n var logicClusters = [];\n var physicalClusters = [];\n data.forEach(function (element) {\n if (element.logicalCluster) {\n logicClusters.push(element);\n } else {\n physicalClusters.push(element);\n }\n });\n _this4.clusters.push({ label: '物理集群', options: physicalClusters });\n _this4.clusters.push({ label: '逻辑集群', options: logicClusters });\n });\n },\n init: function init() {\n var _this5 = this;\n\n this.loading = true;\n _promise2.default.all([this.getApplyList(), this.getClusters()]).then(function () {\n _this5.loading = false;\n });\n }\n },\n created: function created() {\n this.init();\n },\n\n watch: {\n $route: 'init'\n },\n filters: {\n translateStat: function translateStat(data) {\n var APPROVE_STATUS = { 0: '待审核', 1: '已上线', 2: '审核不通过', 3: '未提交' };\n return APPROVE_STATUS[data];\n }\n }\n};\n\n/***/ }),\n/* 646 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _approve_dialog = __webpack_require__(1352);\n\nvar _approve_dialog2 = _interopRequireDefault(_approve_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n isViewDialogVisible: false,\n jsonDiffInfo: {},\n isApproveDialogVisible: false,\n approveStates: [{\n key: '通过',\n value: '1'\n }, {\n key: '不通过',\n value: '2'\n }],\n approveInfo: {},\n total: 0,\n pageSize: 10,\n currentPage: Number(this.$route.query.currentPage) || 1,\n approveList: [],\n states: [{\n value: '0',\n label: '待审核'\n }, {\n value: '1',\n label: '已上线'\n }, {\n value: '2',\n label: '审核不通过'\n }, {\n value: '3',\n label: '未提交'\n }],\n selectedState: this.$route.query.state || '',\n conditionForSearch: this.$route.query.condition || '',\n multipleSelection: []\n };\n },\n\n methods: {\n handleBatchApprove: function handleBatchApprove() {\n if (this.multipleSelection.length <= 0) {\n this.$message.errorMessage('请选择要审批的模板!!!');\n } else {\n var selectedApproveTemplateArray = [];\n this.multipleSelection.forEach(function (element) {\n selectedApproveTemplateArray.push(element.id);\n });\n var selectedApproveTemplateStr = selectedApproveTemplateArray.join(',');\n var setBatchApproveInfo = {\n ids: selectedApproveTemplateStr,\n state: this.approveStates[0].value,\n note: ''\n };\n this.approveInfo = JSON.parse((0, _stringify2.default)(setBatchApproveInfo));\n this.isApproveDialogVisible = true;\n }\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n handleView: function handleView(row) {\n var _this = this;\n\n this.loading = true;\n this.$http.get('/index_template/id.json?templateId=' + row.relateId).then(function (data) {\n _this.jsonDiffInfo.left = data.lastContent;\n _this.jsonDiffInfo.right = data.content;\n _this.isViewDialogVisible = true;\n }).finally(function () {\n _this.loading = false;\n });\n },\n closeViewContentDialog: function closeViewContentDialog() {\n this.isViewDialogVisible = false;\n },\n handleApprove: function handleApprove(row) {\n var setApproveInfo = {\n ids: row.id,\n state: this.approveStates[0].value,\n note: ''\n };\n this.approveInfo = JSON.parse((0, _stringify2.default)(setApproveInfo));\n this.isApproveDialogVisible = true;\n },\n approveComplete: function approveComplete() {\n this.isApproveDialogVisible = false;\n this.refreshPage();\n },\n closeApproveDialog: function closeApproveDialog() {\n this.isApproveDialogVisible = false;\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.toPage();\n },\n refreshPage: function refreshPage() {\n this.init();\n },\n toPage: function toPage() {\n this.$router.push({ path: this.$routermapper.GetPath('authorityManageAdministrator'), query: { currentPage: this.currentPage, state: this.selectedState, condition: this.conditionForSearch } });\n },\n getApproveList: function getApproveList() {\n var _this2 = this;\n\n var params = {\n currentPage: Number(this.$route.query.currentPage) || 1,\n pageSize: this.pageSize,\n state: this.$route.query.state || '',\n conditions: this.$route.query.condition || ''\n };\n return this.$http.get('/approve/approve/page.json', params).then(function (data) {\n _this2.total = data.total;\n _this2.approveList = data.list;\n });\n },\n init: function init() {\n var _this3 = this;\n\n this.loading = true;\n _promise2.default.all([this.getApproveList()]).then(function () {\n _this3.loading = false;\n });\n }\n },\n created: function created() {\n this.init();\n },\n\n components: {\n 'approve-dialog': _approve_dialog2.default\n },\n watch: {\n $route: 'init'\n },\n filters: {\n translateStat: function translateStat(data) {\n var APPROVE_STATUS = { 0: '待审核', 1: '已上线', 2: '审核不通过', 3: '未提交' };\n return APPROVE_STATUS[data];\n }\n }\n};\n\n/***/ }),\n/* 647 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['clusterInfo'],\n computed: {\n clusterUrl: function clusterUrl() {\n var http = '';\n if (this.clusterInfo.httpAddress) {\n http = this.clusterInfo.httpAddress;\n }\n return '/cerebro/#/overview?cluster=' + this.clusterInfo.clusterId + '&host=' + http;\n }\n }\n};\n\n/***/ }),\n/* 648 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cluster_dashboard = __webpack_require__(1355);\n\nvar _cluster_dashboard2 = _interopRequireDefault(_cluster_dashboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n clusterInfo: {},\n clusterId: this.$route.query.clusterId\n };\n },\n\n methods: {\n getClusterInfo: function getClusterInfo() {\n var _this = this;\n\n this.loading = true;\n this.$http.get('/cluster/id.json?clusterId=' + this.$route.query.clusterId).then(function (data) {\n _this.clusterInfo = data;\n }).finally(function () {\n _this.loading = false;\n });\n }\n },\n components: {\n 'dashboard-component': _cluster_dashboard2.default\n },\n created: function created() {\n this.getClusterInfo();\n }\n};\n\n/***/ }),\n/* 649 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['clusterOperation', 'clusterInfo', 'clusterInfoTitle', 'allPhysicals', 'allPallasSearchs'],\n data: function data() {\n return {\n loading: false,\n isClusterInfoVisible: true,\n rules: {\n clusterId: [{ validator: this.$validate.validateCharacterAndNumber, trigger: 'blur' }],\n httpAddress: [{ required: true, message: 'HTTP地址不能为空', trigger: 'change' }],\n clientAddress: [{ required: true, message: 'ES client连接地址不能为空', trigger: 'change' }],\n description: [{ required: true, message: '描述不能为空', trigger: 'change' }],\n realClustersArr: [{ validator: this.$validate.validateArray, trigger: 'blur' }],\n accessiblePs: [{ validator: this.$validate.validateArray, trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n submitClusterInfo: function submitClusterInfo() {\n var _this = this;\n\n this.$refs.clusterInfo.validate(function (valid) {\n if (valid) {\n _this.$set(_this.clusterInfo, 'realClusters', _this.clusterInfo.realClustersArr.join(','));\n _this.$set(_this.clusterInfo, 'accessiblePs', _this.clusterInfo.accessiblePs.join(','));\n if (_this.clusterOperation === 'add') {\n _this.loading = true;\n _this.$http.post('/cluster/add.json', _this.clusterInfo).then(function () {\n _this.$message.successMessage('新增集群成功', function () {\n _this.$emit('operate-close-dialog');\n });\n }).finally(function () {\n _this.loading = false;\n });\n } else {\n _this.loading = true;\n _this.$http.post('/cluster/update.json', _this.clusterInfo).then(function () {\n _this.$message.successMessage('修改集群成功', function () {\n _this.$emit('operate-close-dialog');\n });\n }).finally(function () {\n _this.loading = false;\n });\n }\n } else {\n console.log('error submit!!');\n }\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.clusterOperation === 'edit';\n }\n }\n};\n\n/***/ }),\n/* 650 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _cluster_info_dialog = __webpack_require__(1357);\n\nvar _cluster_info_dialog2 = _interopRequireDefault(_cluster_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n isAllPrivilege: false,\n isClusterInfoVisible: false,\n clusterInfoTitle: '',\n clusterOperation: '',\n currentPage: Number(this.$route.query.currentPage) || 1,\n pageSize: 10,\n clusterIdForSearch: this.$route.query.clusterId || '',\n clusterList: {},\n clusterInfo: {},\n clusterAddInfo: {\n clusterId: '',\n httpAddress: '',\n clientAddress: '',\n description: '',\n realClustersArr: [],\n logicalCluster: false,\n accessiblePs: [],\n monitorLevelModel: {\n cluster: 0,\n index: 0\n }\n },\n allPhysicals: [],\n allPallasSearchs: []\n };\n },\n\n methods: {\n handleMonitor: function handleMonitor(row) {\n this.$router.push({ path: 'cluster_monitor', query: { clusterId: row.clusterId } });\n },\n handleRouteSetting: function handleRouteSetting(row) {\n this.$router.push({ path: 'cluster_route_manage', query: { clusterId: row.clusterId } });\n },\n getPhysicalsClusterArr: function getPhysicalsClusterArr(str) {\n var _this = this;\n\n var arr = str.split(',');\n var resultArr = [];\n arr.forEach(function (ele1) {\n _this.allPhysicals.forEach(function (ele2) {\n if (ele1 === ele2.id) {\n resultArr.push(ele2);\n }\n });\n });\n return resultArr;\n },\n handleAdd: function handleAdd() {\n this.isClusterInfoVisible = true;\n this.clusterInfoTitle = '新增集群';\n this.clusterOperation = 'add';\n this.clusterInfo = JSON.parse((0, _stringify2.default)(this.clusterAddInfo));\n },\n handleEdit: function handleEdit(row) {\n var _this2 = this;\n\n this.loading = true;\n this.$http.get('/cluster/id.json?clusterId=' + row.clusterId).then(function (data) {\n var clusterEditInfo = data;\n var realClustersArr = clusterEditInfo.realClusters.split(',');\n _this2.$set(clusterEditInfo, 'realClustersArr', realClustersArr);\n var accessiblePs = clusterEditInfo.accessiblePs.split(',');\n _this2.$set(clusterEditInfo, 'accessiblePs', accessiblePs);\n _this2.clusterInfo = JSON.parse((0, _stringify2.default)(clusterEditInfo));\n _this2.clusterInfoTitle = '编辑集群';\n _this2.clusterOperation = 'edit';\n _this2.isClusterInfoVisible = true;\n }).finally(function () {\n _this2.loading = false;\n });\n },\n handleManage: function handleManage(index, row) {\n this.$router.push({ path: 'cluster_detail', query: { clusterId: row.clusterId } });\n },\n handleRestart: function handleRestart(row) {\n this.$router.push({ path: 'cluster_node_restart', query: { clusterId: row.clusterId } });\n },\n handleDelete: function handleDelete(row) {\n var _this3 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u96C6\\u7FA4' + row.clusterId + '\\u5417?', function () {\n _this3.loading = true;\n _this3.$http.post('/cluster/delete/id.json', { clusterId: row.clusterId }).then(function () {\n _this3.$message.successMessage('删除成功', function () {\n _this3.refreshPage();\n });\n }).finally(function () {\n _this3.loading = false;\n });\n });\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.toPage();\n },\n refreshPage: function refreshPage() {\n this.init();\n },\n toPage: function toPage() {\n this.$router.push({ path: this.$routermapper.GetPath('clusterManage'), query: { currentPage: this.currentPage, clusterId: this.clusterIdForSearch } });\n },\n toSpecificPage: function toSpecificPage(id) {\n if (id) {\n this.clusterIdForSearch = id;\n } else {\n this.clusterIdForSearch = '';\n }\n this.toPage();\n },\n closeDialog: function closeDialog() {\n this.isClusterInfoVisible = false;\n },\n operateCloseDialog: function operateCloseDialog() {\n this.isClusterInfoVisible = false;\n this.refreshPage();\n },\n getClusterList: function getClusterList() {\n var _this4 = this;\n\n var params = {\n clusterId: this.$route.query.clusterId || '',\n currentPage: Number(this.$route.query.currentPage) || 1,\n pageSize: this.pageSize\n };\n return this.$http.get('/cluster/page.json', params).then(function (data) {\n _this4.clusterList = data;\n _this4.isAllPrivilege = data.allPrivilege;\n });\n },\n getPhysicals: function getPhysicals() {\n var _this5 = this;\n\n return this.$http.get('/cluster/all/physicals.json').then(function (data) {\n _this5.allPhysicals = data.list.map(function (obj) {\n var rObj = {};\n rObj.id = obj.id.toString();\n rObj.clusterId = obj.clusterId;\n return rObj;\n });\n });\n },\n getAllPallasSearchs: function getAllPallasSearchs() {\n var _this6 = this;\n\n return this.$http.get('/ss/clusters.json').then(function (data) {\n _this6.allPallasSearchs = data;\n });\n },\n init: function init() {\n var _this7 = this;\n\n this.loading = true;\n _promise2.default.all([this.getClusterList(), this.getPhysicals(), this.getAllPallasSearchs()]).then(function () {\n _this7.loading = false;\n });\n }\n },\n components: {\n 'cluster-info-dialog': _cluster_info_dialog2.default\n },\n watch: {\n $route: 'init'\n },\n created: function created() {\n this.init();\n },\n\n filters: {\n clusterType: function clusterType(data) {\n var CLUSTER_TYPE = { true: '逻辑集群', false: '物理集群' };\n return CLUSTER_TYPE[data];\n }\n }\n};\n\n/***/ }),\n/* 651 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _entries = __webpack_require__(224);\n\nvar _entries2 = _interopRequireDefault(_entries);\n\nvar _moment = __webpack_require__(2);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n clusterId: this.$route.query.clusterId,\n nodeRestartList: [],\n onlyMasterMap: {\n true: '是',\n false: '否'\n },\n noteStateMap: {\n 1: '即将重启',\n 2: '正在重启',\n 3: '已启动',\n 4: '正常'\n },\n noteStateTag: {\n 1: 'info',\n 2: 'warning',\n 3: 'success',\n 4: 'success',\n 5: 'danger',\n 6: 'warning'\n },\n clusterStateTag: {\n green: 'success',\n red: 'danger',\n yellow: 'warning'\n },\n clusterHealth: '',\n clusterSettings: [],\n isEnableRestart: '',\n interval: 0\n };\n },\n\n methods: {\n resetClusterSettings: function resetClusterSettings() {\n var _this = this;\n\n this.$message.confirmMessage('确定恢复集群默认设置吗?', function () {\n _this.loading = true;\n _this.$http.get('/cluster/settings/default/reset.json?clusterName=' + _this.clusterId).then(function () {\n _this.$message.successMessage('恢复集群默认设置操作成功', function () {\n _this.getCluterSetting();\n });\n }).finally(function () {\n _this.loading = false;\n });\n });\n },\n handleRestart: function handleRestart(row) {\n var _this2 = this;\n\n var params = {\n clusterName: this.clusterId,\n nodeIp: row.nodeIp\n };\n this.$message.confirmMessage('\\u786E\\u5B9A\\u8981\\u91CD\\u542F\\u8282\\u70B9' + row.nodeName + '\\u5417? \\u6CE8\\u610F\\uFF0C\\u63D0\\u4EA4\\u91CD\\u542F\\u540E\\uFF0C\\u8BF7\\u5BC6\\u5207\\u5173\\u6CE8\\u96C6\\u7FA4\\u53CA\\u8282\\u70B9\\u72B6\\u6001\\uFF01', function () {\n _this2.loading = true;\n _this2.$http.post('/cluster/node/restart.json', params).then(function () {\n _this2.$message.successMessage('提交重启请求成功', function () {\n _this2.init();\n });\n }).finally(function () {\n _this2.loading = false;\n });\n });\n },\n getClusterState: function getClusterState() {\n var _this3 = this;\n\n this.$http.get('/cluster/state.json?clusterName=' + this.clusterId).then(function (data) {\n _this3.clusterHealth = data.status;\n _this3.isEnableRestart = data.cause;\n _this3.clusterSettings = data.settings;\n _this3.nodeRestartList = data.nodes;\n var now = (0, _moment2.default)().format('x');\n _this3.nodeRestartList.forEach(function (ele) {\n var diff = (now - ele.lastStartupTime) / 1000 / 60 / 60;\n if (diff < 1) {\n _this3.$set(ele, 'isNew', true);\n } else {\n _this3.$set(ele, 'isNew', false);\n }\n });\n });\n },\n init: function init() {\n this.getClusterState();\n },\n refreshClusterRestart: function refreshClusterRestart() {\n var _this4 = this;\n\n this.interval = setInterval(function () {\n _this4.getClusterState();\n }, 3000);\n }\n },\n destroyed: function destroyed() {\n clearInterval(this.interval);\n },\n\n computed: {\n clusterSettingsArray: function clusterSettingsArray() {\n var arr = [];\n (0, _entries2.default)(this.clusterSettings).forEach(function (ele) {\n var params = {\n key: ele[0],\n value: ele[1]\n };\n arr.push(params);\n });\n return arr;\n }\n },\n created: function created() {\n this.init();\n this.refreshClusterRestart();\n }\n};\n\n/***/ }),\n/* 652 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cluster_conditions = __webpack_require__(1362);\n\nvar _cluster_conditions2 = _interopRequireDefault(_cluster_conditions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['conditions', 'conditionInfo', 'conditionInfoTitle', 'conditionOperation', 'routingTargetGroups'],\n data: function data() {\n return {\n isVisible: true,\n rules: {\n name: [{ required: true, message: '规则名称不能为空', trigger: 'blur' }],\n sourceType: [{ required: true, message: '数据源类型不能为空', trigger: 'blur' }],\n sourceParameter: [{ required: true, message: '条件判断参数名不能为空', trigger: 'blur' }],\n condExpr: [{ required: true, message: '条件判断运算不能为空', trigger: 'blur' }],\n sourceValue: [{ required: true, message: '条件判断值不能为空', trigger: 'blur' }],\n conditionRelation: [{ required: true, message: '请选择规则关系', trigger: 'change' }]\n },\n conditionRelations: ['OR', 'AND'],\n defaultProps: {\n key: 'id',\n label: 'name'\n }\n };\n },\n\n methods: {\n handleChange: function handleChange(arr, direction, movedKeys) {\n if (direction === 'right') {\n this.changeDirection(movedKeys, 'right');\n } else {\n this.changeDirection(movedKeys, 'left');\n }\n },\n changeDirection: function changeDirection(arr, direction) {\n var _this = this;\n\n arr.forEach(function (ele1) {\n _this.routingTargetGroups.forEach(function (ele2) {\n if (ele1 === ele2.id) {\n _this.$set(ele2, 'position', direction);\n }\n });\n });\n },\n renderFunc: function renderFunc(h, option) {\n var self = this;\n var renderHtml = void 0;\n if (option.position === 'left') {\n renderHtml = h('div', [h('span', { style: { float: 'left' } }, option.name)]);\n } else {\n renderHtml = h('div', [h('span', { style: { float: 'left' } }, option.name), h('input', {\n domProps: { value: option.weight || '0' },\n class: { 'el-input__inner': true },\n style: { float: 'right', width: '50px', height: '20px', margin: '6px' },\n on: {\n input: function setInput(event) {\n self.$set(option, 'weight', event.target.value);\n self.$emit('input', event.target.value);\n }\n }\n })]);\n }\n return renderHtml;\n },\n submitInfo: function submitInfo() {\n var _this2 = this;\n\n this.$refs.conditionInfo.validate(function (valid1) {\n if (valid1) {\n var count = 0;\n if (_this2.conditionInfo.conditions.length !== 0) {\n _this2.$refs.conditions.$refs.conditionItem.forEach(function (element) {\n element.$refs.conditionItemForm.validate(function (valid2) {\n if (valid2) {\n count += 1;\n }\n });\n });\n }\n if (count === _this2.conditionInfo.conditions.length) {\n _this2.conditionInfo.targetGroups = _this2.getTargetGroupsList();\n var conditionInfoObject = _this2.setConditionInfo();\n if (_this2.targetGroupWeightValidate(conditionInfoObject.targetGroups)) {\n if (_this2.conditionOperation === 'add') {\n _this2.$emit('add-condition', conditionInfoObject);\n } else {\n _this2.$emit('edit-condition', conditionInfoObject);\n }\n }\n }\n }\n });\n },\n targetGroupWeightValidate: function targetGroupWeightValidate(arr) {\n var flag = false;\n if (arr.length !== 0) {\n var parten = /^([0-9]\\d{0,1}|100)$/;\n var error = arr.some(function (ele) {\n if (parten.test(ele.weight)) {\n return false;\n }\n return true;\n });\n if (error) {\n flag = false;\n this.$message.errorMessage('请正确输入节点集权重, 0-100整数!');\n } else {\n flag = true;\n }\n } else {\n flag = false;\n this.$message.errorMessage('请选择节点集!');\n }\n return flag;\n },\n setConditionInfo: function setConditionInfo() {\n var conditionObject = {};\n conditionObject.name = this.conditionInfo.name;\n conditionObject.targetGroups = this.conditionInfo.targetGroups;\n conditionObject.enable = this.conditionInfo.enable;\n conditionObject.conditionRelation = this.conditionInfo.conditionRelation;\n conditionObject.priority = this.conditionInfo.priority;\n conditionObject.conditions = this.conditionInfo.conditions;\n return conditionObject;\n },\n getTargetGroupsList: function getTargetGroupsList() {\n var list = this.$refs.targetGroupTransfer.targetData.map(function (obj) {\n var rObj = {};\n rObj.id = obj.id;\n rObj.weight = obj.weight;\n return rObj;\n });\n return list;\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.conditionOperation === 'edit';\n },\n alternativeConditions: function alternativeConditions() {\n if (this.conditionOperation === 'edit') {\n this.$array.removeByValue(this.conditions, this.conditionInfo.name);\n return this.conditions;\n }\n return this.conditions;\n }\n },\n components: {\n Conditions: _cluster_conditions2.default\n }\n};\n\n/***/ }),\n/* 653 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['conditionItem'],\n data: function data() {\n return {\n rules: {\n exprOp: [{ required: true, message: '请选择判断运算', trigger: 'change' }],\n paramName: [{ required: true, message: '请输入判断参数名', trigger: 'change' }],\n paramValue: [{ required: true, message: '请输入判断值', trigger: 'blur' }]\n },\n exprOps: ['=', 'ip_mask'],\n paramNames: ['X-PALLAS-SEARCH-CLIENT-IP', 'X-PALLAS-SEARCH-TEMPLATE-ID']\n };\n }\n};\n\n/***/ }),\n/* 654 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _cluster_condition_item = __webpack_require__(1361);\n\nvar _cluster_condition_item2 = _interopRequireDefault(_cluster_condition_item);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['conditions'],\n data: function data() {\n return {\n conditionRelateInfo: {\n paramType: 'header',\n exprOp: '',\n paramName: '',\n paramValue: ''\n }\n };\n },\n\n methods: {\n addConditionRelate: function addConditionRelate() {\n var conditionRelate = JSON.parse((0, _stringify2.default)(this.conditionRelateInfo));\n this.conditions.push(conditionRelate);\n },\n deleteConditionRelate: function deleteConditionRelate(item) {\n this.$array.removeByValue(this.conditions, item);\n }\n },\n components: {\n 'condition-item': _cluster_condition_item2.default\n }\n};\n\n/***/ }),\n/* 655 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _values = __webpack_require__(329);\n\nvar _values2 = _interopRequireDefault(_values);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _cluster_target_group = __webpack_require__(1364);\n\nvar _cluster_target_group2 = _interopRequireDefault(_cluster_target_group);\n\nvar _cluster_condition_info_dialog = __webpack_require__(1360);\n\nvar _cluster_condition_info_dialog2 = _interopRequireDefault(_cluster_condition_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n privilege: false,\n clusterId: this.$route.query.clusterId,\n isConditionInfoVisible: false,\n conditionInfo: {},\n conditionInfoTitle: '',\n conditionOperation: '',\n selectedCluster: '',\n indexNameForSearch: '',\n conditions: [],\n rulesList: [],\n routingTargetGroupsList: {},\n initTargetGroups: [],\n routingTargetGroups: []\n };\n },\n\n methods: {\n sortTargetGroups: function sortTargetGroups(arr) {\n arr.sort(function (a, b) {\n if (a.weight < b.weight) {\n return 1;\n }\n if (a.weight > b.weight) {\n return -1;\n }\n return 0;\n });\n },\n handleAdd: function handleAdd() {\n this.isConditionInfoVisible = true;\n this.conditionInfoTitle = '创建规则';\n this.conditionOperation = 'add';\n this.routingTargetGroups = JSON.parse((0, _stringify2.default)(this.initTargetGroups));\n var conditionAddInfo = {\n name: '',\n targetGroups: [],\n targetGroupsId: [],\n enable: false,\n conditions: [],\n conditionRelation: 'AND',\n priority: ''\n };\n this.conditionInfo = JSON.parse((0, _stringify2.default)(conditionAddInfo));\n },\n addCondition: function addCondition(item) {\n var addRulesList = JSON.parse((0, _stringify2.default)(this.rulesList));\n if (item.priority === '') {\n addRulesList.push(item);\n } else {\n addRulesList.some(function (element, index) {\n if (element.name === item.priority) {\n addRulesList.splice(index, 0, item);\n return true;\n }\n return false;\n });\n }\n this.updateConditionRequest(addRulesList);\n },\n closeConditionDialog: function closeConditionDialog() {\n this.isConditionInfoVisible = false;\n },\n handleEdit: function handleEdit(row) {\n var _this = this;\n\n this.isConditionInfoVisible = true;\n this.conditionInfoTitle = '编辑规则';\n this.conditionOperation = 'edit';\n this.routingTargetGroups = JSON.parse((0, _stringify2.default)(this.initTargetGroups));\n var targetGroupsId = [];\n row.targetGroups.forEach(function (ele1) {\n targetGroupsId.push(ele1.id);\n _this.routingTargetGroups.forEach(function (ele2) {\n if (ele1.id === ele2.id) {\n _this.$set(ele2, 'weight', ele1.weight);\n _this.$set(ele2, 'position', 'right');\n }\n });\n });\n var conditionEditInfo = {\n name: row.name,\n targetGroups: row.targetGroups,\n targetGroupsId: targetGroupsId,\n enable: row.enable,\n conditionRelation: row.conditionRelation,\n priority: '',\n conditions: row.conditions\n };\n this.conditionInfo = JSON.parse((0, _stringify2.default)(conditionEditInfo));\n },\n editCondition: function editCondition(item) {\n var editRulesList = JSON.parse((0, _stringify2.default)(this.rulesList));\n var editConditionIndex = void 0;\n editRulesList.some(function (element, index) {\n if (element.name === item.name) {\n editConditionIndex = index;\n return true;\n }\n return false;\n });\n if (item.priority === '') {\n editRulesList.splice(editConditionIndex, 1, item);\n } else {\n editRulesList.splice(editConditionIndex, 1);\n editRulesList.some(function (element, index) {\n if (element.name === item.priority) {\n editRulesList.splice(index, 0, item);\n return true;\n }\n return false;\n });\n }\n this.updateConditionRequest(editRulesList);\n },\n updateConditionRequest: function updateConditionRequest(rulesList) {\n var _this2 = this;\n\n var params = {\n clusterId: this.clusterId,\n rules: rulesList\n };\n this.loading = true;\n this.$http.post('/cluster/routing/rule/update.json', params).then(function () {\n _this2.$message.successMessage('操作成功', function () {\n _this2.isConditionInfoVisible = false;\n _this2.getRoutingList();\n });\n }).finally(function () {\n _this2.loading = false;\n });\n },\n handleDelete: function handleDelete(row, index) {\n var _this3 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u89C4\\u5219' + row.name + '\\u5417?', function () {\n var deleteRulesList = JSON.parse((0, _stringify2.default)(_this3.rulesList));\n deleteRulesList.splice(index, 1);\n _this3.updateConditionRequest(deleteRulesList);\n });\n },\n getRoutingList: function getRoutingList() {\n var _this4 = this;\n\n var params = {\n clusterId: this.clusterId\n };\n this.loading = true;\n this.$http.get('/cluster/routing/rule/list.json', params).then(function (data) {\n _this4.rulesList = data.data.rules;\n _this4.rulesList.forEach(function (ele) {\n _this4.sortTargetGroups(ele.targetGroups);\n });\n var conditionList = [];\n data.data.rules.forEach(function (element) {\n conditionList.push(element.name);\n });\n _this4.conditions = conditionList;\n _this4.routingTargetGroupsList = data.data.routingTargetGroups;\n _this4.initTargetGroups = (0, _values2.default)(data.data.routingTargetGroups).map(function (obj) {\n var rObj = {};\n rObj.id = obj.id;\n rObj.name = obj.name;\n rObj.weight = 1;\n rObj.position = 'left';\n return rObj;\n });\n _this4.privilege = data.privilege;\n }).finally(function () {\n _this4.loading = false;\n });\n }\n },\n created: function created() {\n this.getRoutingList();\n },\n\n filters: {\n translateEnable: function translateEnable(data) {\n var IS_ENABLED = { true: '是', false: '否' };\n return IS_ENABLED[data];\n }\n },\n components: {\n 'target-group': _cluster_target_group2.default,\n 'condition-info-dialog': _cluster_condition_info_dialog2.default\n }\n};\n\n/***/ }),\n/* 656 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _cluster_target_group_item = __webpack_require__(1366);\n\nvar _cluster_target_group_item2 = _interopRequireDefault(_cluster_target_group_item);\n\nvar _cluster_target_group_info_dialog = __webpack_require__(1365);\n\nvar _cluster_target_group_info_dialog2 = _interopRequireDefault(_cluster_target_group_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['privilege', 'rulesList', 'clusterId', 'routingTargetGroupsList'],\n data: function data() {\n return {\n loading: false,\n istargetGroupInfoVisible: false,\n targetGroupInfo: {},\n targetGroupInfoTitle: '',\n targetGroupTree: [],\n targetGroupTreeNoChildren: [],\n selectedShowTreeInfo: 'name'\n };\n },\n\n methods: {\n changeShowTreeInfo: function changeShowTreeInfo(val) {\n this.selectedShowTreeInfo = val;\n },\n handleAdd: function handleAdd() {\n this.istargetGroupInfoVisible = true;\n this.targetGroupInfoTitle = '创建节点集';\n var targetGroupAddInfo = {\n clusterId: this.clusterId,\n name: '',\n clusterLevel: 0,\n nodes: [],\n clusters: []\n };\n this.targetGroupInfo = JSON.parse((0, _stringify2.default)(targetGroupAddInfo));\n },\n saveOperation: function saveOperation(info) {\n var _this = this;\n\n this.$set(info, 'clusterId', this.clusterId);\n this.loading = true;\n this.$http.post('/cluster/routing/target_group/update.json', info).then(function () {\n _this.$emit('get-routing-list');\n }).finally(function () {\n _this.loading = false;\n });\n },\n deleteOperation: function deleteOperation(id) {\n var _this2 = this;\n\n var flag = false;\n this.rulesList.forEach(function (ele) {\n ele.targetGroups.some(function (ele2) {\n if (ele2.id === id) {\n flag = true;\n }\n return flag;\n });\n });\n if (!flag) {\n this.loading = true;\n this.$http.post('/index/routing/target_group/delete.json', { groupId: id }).then(function () {\n _this2.$emit('get-routing-list');\n }).finally(function () {\n _this2.loading = false;\n });\n } else {\n this.$message.errorMessage('此节点集正在使用中,不能删除!');\n }\n },\n operationSuccess: function operationSuccess() {\n this.istargetGroupInfoVisible = false;\n this.$emit('get-routing-list');\n },\n closeTargetGroupDialog: function closeTargetGroupDialog() {\n this.istargetGroupInfoVisible = false;\n },\n getTargetGroupTree: function getTargetGroupTree() {\n var _this3 = this;\n\n var params = {\n clusterId: this.clusterId\n };\n this.loading = true;\n this.$http.get('/cluster/routing/target_group/list.json', params).then(function (data) {\n _this3.targetGroupTree = data.tree.map(function (obj) {\n var rObj = {};\n rObj.cluster = obj.cluster;\n rObj.address = obj.address;\n rObj.name = obj.name;\n rObj.disabled = true;\n if (obj.children.length > 0) {\n rObj.children = _this3.setTargetGroupChildrenDisabled(obj.children);\n }\n return rObj;\n });\n _this3.targetGroupTreeNoChildren = data.tree.map(function (obj) {\n var rObj = {};\n rObj.cluster = obj.cluster;\n rObj.address = obj.address;\n rObj.name = obj.name;\n rObj.disabled = true;\n return rObj;\n });\n }).finally(function () {\n _this3.loading = false;\n });\n },\n setTargetGroupChildrenDisabled: function setTargetGroupChildrenDisabled(arr) {\n var disabledTree = arr.map(function (obj) {\n var rObj = {};\n rObj.cluster = obj.cluster;\n rObj.address = obj.address;\n rObj.name = obj.name;\n rObj.state = obj.state;\n rObj.weight = obj.weight;\n rObj.disabled = true;\n return rObj;\n });\n return disabledTree;\n }\n },\n components: {\n 'target-group-info-dialog': _cluster_target_group_info_dialog2.default,\n 'target-group-item': _cluster_target_group_item2.default\n },\n created: function created() {\n this.getTargetGroupTree();\n }\n};\n\n/***/ }),\n/* 657 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['rulesList', 'targetGroupInfo', 'targetGroupInfoTitle'],\n data: function data() {\n return {\n loading: false,\n isVisible: true,\n rules: {\n name: [{ required: true, message: '节点集名称不能为空', trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n submitInfo: function submitInfo() {\n var _this = this;\n\n this.$refs.targetGroupInfo.validate(function (valid) {\n if (valid) {\n _this.targetGroupRequest(_this.targetGroupInfo);\n }\n });\n },\n targetGroupRequest: function targetGroupRequest(info) {\n var _this2 = this;\n\n this.loading = true;\n this.$http.post('/cluster/routing/target_group/update.json', info).then(function () {\n _this2.$message.successMessage('操作成功', function () {\n _this2.$emit('operation-success');\n });\n }).finally(function () {\n _this2.loading = false;\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n }\n};\n\n/***/ }),\n/* 658 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['privilege', 'targetGroupItemInfo', 'targetGroupTree', 'targetGroupTreeNoChildren', 'selectedShowTreeInfo'],\n data: function data() {\n return {\n name: this.targetGroupItemInfo.name,\n isDefaultExpand: true,\n defaultProps: {\n children: 'children',\n label: 'name',\n disabled: 'disabled'\n },\n attrs: [{\n label: '普通级别',\n value: 0\n }, {\n label: '集群级别',\n value: 1\n }, {\n label: '分片动态绑定',\n value: 2\n }],\n editable: false\n };\n },\n\n methods: {\n checkChange: function checkChange(data, isChecked) {\n if (this.targetGroupItemInfo.clusterLevel !== 0) {\n if (isChecked) {\n var arr = [];\n arr.push(data.name);\n this.$refs.mytree.setCheckedKeys(arr);\n }\n }\n },\n handleSave: function handleSave() {\n this.targetGroupItemInfo.name = this.name;\n var targetGroupInfo = JSON.parse((0, _stringify2.default)(this.targetGroupItemInfo));\n if (this.targetGroupItemInfo.clusterLevel === 0) {\n this.getTargetGroupNodes(targetGroupInfo.nodes);\n if (targetGroupInfo.nodes.length > 0) {\n var diff = targetGroupInfo.nodes.some(function (ele) {\n if (ele.cluster !== targetGroupInfo.nodes[0].cluster) {\n return true;\n }\n return false;\n });\n if (diff) {\n this.$message.errorMessage('只能选择某个集群下的节点,请重新选择!');\n } else {\n this.saveInfo(targetGroupInfo);\n }\n }\n } else {\n this.getTargetGroupNodes(targetGroupInfo.clusters);\n this.saveInfo(targetGroupInfo);\n }\n },\n saveInfo: function saveInfo(info) {\n var _this = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u4FDD\\u5B58\\u8282\\u70B9\\u96C6' + this.name + '\\u5417?', function () {\n _this.editable = false;\n _this.$emit('save-operation', info);\n });\n },\n handleEdit: function handleEdit() {\n this.editable = true;\n this.setTreeStatus(this.targetGroupTreeNoChildren, false);\n this.setTreeStatus(this.targetGroupTree, false);\n },\n handleCancel: function handleCancel() {\n this.name = this.targetGroupItemInfo.name;\n if (this.targetGroupItemInfo.clusterLevel === 0) {\n this.$refs.mytree.setCheckedKeys(this.targetGroupItemInfo.nodes);\n } else {\n this.$refs.mytree.setCheckedKeys(this.targetGroupItemInfo.clusters);\n }\n this.editable = false;\n this.setTreeStatus(this.targetGroupTreeNoChildren, true);\n this.setTreeStatus(this.targetGroupTree, true);\n },\n setTreeStatus: function setTreeStatus(arr, boolean) {\n var _this2 = this;\n\n arr.forEach(function (ele) {\n _this2.$set(ele, 'disabled', boolean);\n if (ele.children) {\n ele.children.forEach(function (ele2) {\n _this2.$set(ele2, 'disabled', boolean);\n });\n }\n });\n },\n getTargetGroupNodes: function getTargetGroupNodes(list) {\n list.splice(0, list.length);\n this.$refs.mytree.getCheckedNodes().forEach(function (element) {\n if (!element.children) {\n list.push(element);\n }\n });\n },\n handleDelete: function handleDelete() {\n var _this3 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u8282\\u70B9\\u96C6' + this.targetGroupItemInfo.name + '\\u5417?', function () {\n _this3.$emit('delete-operation', _this3.targetGroupItemInfo.id);\n });\n },\n getNodesName: function getNodesName(clusterName) {\n var arr = [];\n this.targetGroupTree.forEach(function (ele) {\n if (ele.name === clusterName) {\n if (ele.children) {\n ele.children.forEach(function (ele2) {\n arr.push(ele2.name);\n });\n }\n }\n });\n return arr;\n },\n getShardNodes: function getShardNodes(clusterName) {\n var _this4 = this;\n\n var arr = [];\n this.targetGroupTree.forEach(function (ele) {\n if (ele.children) {\n ele.children.forEach(function (ele2) {\n if (_this4.targetGroupItemInfo.nodes) {\n _this4.targetGroupItemInfo.nodes.forEach(function (ele3) {\n if (ele2.cluster === clusterName && ele3 === ele2.address) {\n arr.push(ele2.name);\n }\n });\n }\n });\n }\n });\n return arr;\n },\n renderContent: function renderContent(h, _ref) {\n var data = _ref.data;\n\n if (this.targetGroupItemInfo.clusterLevel === 1) {\n return h('span', [h('el-popover', { props: { placement: 'right', trigger: 'hover' } }, [h('div', this.getNodesName(data.name).map(function (item) {\n return h('div', item);\n })), h('span', { slot: 'reference', style: { 'font-size': '14px', 'margin-right': '5px' } }, this.selectedShowTreeInfo === 'name' ? data.name : data.address)])]);\n } else if (this.targetGroupItemInfo.clusterLevel === 0) {\n return h('span', [h('span', { style: { 'font-size': '14px', 'margin-right': '5px' } }, this.selectedShowTreeInfo === 'name' ? data.name : data.address), h('span', { class: { 'el-tag': data.state === 1, 'el-tag--danger': data.state === 1 } }, data.state === 1 ? '离线' : '')]);\n }\n return h('span', [h('el-popover', { props: { placement: 'right', trigger: 'hover', disabled: data.cluster !== this.targetGroupItemInfo.clusters[0] } }, [h('div', this.getShardNodes(data.name).map(function (item) {\n return h('div', item);\n })), h('span', { slot: 'reference', style: { 'font-size': '14px', 'margin-right': '5px' } }, this.selectedShowTreeInfo === 'name' ? data.name : data.address)])]);\n }\n },\n computed: {\n myTree: function myTree() {\n if (this.targetGroupItemInfo.clusterLevel === 1 || this.targetGroupItemInfo.clusterLevel === 2) {\n return this.targetGroupTreeNoChildren;\n }\n return this.targetGroupTree;\n },\n treeCheckedKeys: function treeCheckedKeys() {\n if (this.targetGroupItemInfo.clusterLevel === 1 || this.targetGroupItemInfo.clusterLevel === 2) {\n return this.targetGroupItemInfo.clusters;\n }\n return this.targetGroupItemInfo.nodes;\n }\n }\n};\n\n/***/ }),\n/* 659 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n\n loading: false,\n gaugeMetricData: [],\n indexingRateInfo: {},\n searchRateInfo: {},\n searchLatencyInfo: {},\n indexingLatencyInfo: {}\n\n };\n },\n\n methods: {\n getIndexingRate: function getIndexingRate(indexingRateResp, unit) {\n var optionInfo = {\n xAxis: indexingRateResp.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'Indexing Rate', data: indexingRateResp.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.indexingRateInfo = optionInfo;\n },\n getSearchRate: function getSearchRate(searchRateResp, unit) {\n var optionInfo = {\n xAxis: searchRateResp.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'Search Rate', data: searchRateResp.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.searchRateInfo = optionInfo;\n },\n getSearchLatency: function getSearchLatency(searchLatencyResp, unit) {\n var optionInfo = {\n xAxis: searchLatencyResp.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'Search Latency', data: searchLatencyResp.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.searchLatencyInfo = optionInfo;\n },\n getIndexingLatency: function getIndexingLatency(indexingLatencyResp, unit) {\n var optionInfo = {\n xAxis: indexingLatencyResp.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'Indexing Latency', data: indexingLatencyResp.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.indexingLatencyInfo = optionInfo;\n },\n getClusterMonitor: function getClusterMonitor() {\n var _this = this;\n\n var params = (0, _extends3.default)({}, this.timeInterval, {\n clusterName: this.clusterId\n });\n this.$http.post('/monitor/cluster.json', params).then(function (data) {\n if (data) {\n _this.gaugeMetricData = [data.gaugeMetric];\n _this.getIndexingRate(data.indexingRate.metricModel, data.indexingRate.unit);\n _this.getSearchRate(data.searchRate.metricModel, data.searchRate.unit);\n _this.getIndexingLatency(data.indexingLatency.metricModel, data.indexingLatency.unit);\n _this.getSearchLatency(data.searchLatency.metricModel, data.searchLatency.unit);\n }\n });\n }\n },\n computed: {\n timeInterval: function timeInterval() {\n return this.$store.state.monitorTimeInterval;\n },\n clusterId: function clusterId() {\n return this.$route.query.clusterId;\n }\n },\n created: function created() {\n this.getClusterMonitor();\n },\n\n watch: {\n '$store.state.monitorTimeInterval': function interval(val) {\n console.log(val);\n this.getClusterMonitor();\n }\n }\n};\n\n/***/ }),\n/* 660 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: [],\n data: function data() {\n return {\n visible: true,\n formInfo: {\n timeRange: ''\n },\n rules: {\n timeRange: [{ validator: this.validateTimeRange, trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n validateTimeRange: function validateTimeRange(rule, value, callback) {\n if (!value || (0, _stringify2.default)(value) === '[null,null]') {\n callback(new Error('请选择时间范围'));\n } else {\n if (Date.parse(value[1]) - Date.parse(value[0]) > 7 * 24 * 60 * 60 * 1000) {\n callback(new Error('时间范围不能大于7天'));\n }\n callback();\n }\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n },\n handleSubmit: function handleSubmit() {\n var _this = this;\n\n this.$refs.formInfo.validate(function (valid) {\n if (valid) {\n var params = {\n command: 'custom',\n from: Date.parse(_this.formInfo.timeRange[0]),\n to: Date.parse(_this.formInfo.timeRange[1])\n };\n _this.$emit('set-custom-time', params);\n }\n });\n }\n }\n};\n\n/***/ }),\n/* 661 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n gaugeMetricData: [],\n indexMemoryInfo: {},\n indexDiskInfo: {},\n segmentCountInfo: {},\n documentCountInfo: {},\n indexSearchRateInfo: {},\n indexSearchLatencyInfo: {}\n };\n },\n\n methods: {\n getIndexMemory: function getIndexMemory(lucencTotal, terms, unit) {\n var optionInfo = {\n xAxis: lucencTotal.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'index memory lucenc total', data: lucencTotal.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'index memory terms', data: terms.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.indexMemoryInfo = optionInfo;\n },\n getIndexDisk: function getIndexDisk(total, primary, unit) {\n var optionInfo = {\n xAxis: total.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'disk-total', data: total.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'disk-primary', data: primary.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.indexDiskInfo = optionInfo;\n },\n getSegmentCount: function getSegmentCount(total, primary, unit) {\n var optionInfo = {\n xAxis: total.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'segment-primary', data: primary.map(function (e) {\n return e.y;\n }) }, { name: 'segment-total', data: total.map(function (e) {\n return e.y;\n }) }],\n yAxisName: unit || '个'\n };\n this.segmentCountInfo = optionInfo;\n },\n getDocumentCount: function getDocumentCount(total, primary, unit) {\n var optionInfo = {\n xAxis: total.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'document-primary', data: primary.map(function (e) {\n return e.y;\n }) }, { name: 'document-total', data: total.map(function (e) {\n return e.y;\n }) }],\n yAxisName: unit || '个'\n };\n this.documentCountInfo = optionInfo;\n },\n getIndexSerachRate: function getIndexSerachRate(indexingRate, searchRate, unit) {\n var optionInfo = {\n xAxis: indexingRate.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'indexing', data: indexingRate.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'search', data: searchRate.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.indexSearchRateInfo = optionInfo;\n },\n getIndexSearchLatency: function getIndexSearchLatency(indexingLatency, searchLatency, unit) {\n var optionInfo = {\n xAxis: indexingLatency.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'indexing', data: indexingLatency.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'search', data: searchLatency.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.indexSearchLatencyInfo = optionInfo;\n },\n getIndexMonitor: function getIndexMonitor() {\n var _this = this;\n\n var params = (0, _extends3.default)({\n clusterName: this.clusterId,\n indexName: this.indice\n }, this.timeInterval);\n this.$http.post('/monitor/index.json', params).then(function (data) {\n if (data) {\n _this.gaugeMetricData = [data.gaugeMetric];\n _this.getIndexMemory(data.index_memory_lucenc_total_in_byte.metricModel, data.index_memory_terms_in_byte.metricModel, data.index_memory_lucenc_total_in_byte.unit);\n _this.getIndexDisk(data.index_disk_total.metricModel, data.index_disk_primary.metricModel, data.index_disk_total.unit);\n _this.getSegmentCount(data.segmentCount.metricModel, data.primarySegmentCount.metricModel, data.segmentCount.unit);\n _this.getDocumentCount(data.documentCount.metricModel, data.primaryDocumentCount.metricModel, data.documentCount.unit);\n _this.getIndexSerachRate(data.indexingRate.metricModel, data.searchRate.metricModel, data.searchRate.unit);\n _this.getIndexSearchLatency(data.indexingLatency.metricModel, data.searchLatency.metricModel, data.searchLatency.unit);\n }\n });\n }\n },\n computed: {\n timeInterval: function timeInterval() {\n return this.$store.state.monitorTimeInterval;\n },\n clusterId: function clusterId() {\n return this.$route.query.clusterId;\n },\n indice: function indice() {\n return this.$route.query.indice;\n }\n },\n created: function created() {\n this.getIndexMonitor();\n },\n\n watch: {\n '$store.state.monitorTimeInterval': function interval(val) {\n console.log(val);\n this.getIndexMonitor();\n }\n }\n};\n\n/***/ }),\n/* 662 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: [],\n data: function data() {\n return {\n loading: false,\n indiceForSearch: '',\n indicesList: [],\n indices: []\n };\n },\n\n methods: {\n indicesFilter: function indicesFilter() {\n var _this = this;\n\n var filtered = this.indices.slice();\n filtered = filtered.filter(function (e) {\n return e.indexName.indexOf(_this.indiceForSearch) > -1;\n });\n this.indicesList = filtered;\n },\n getIndices: function getIndices() {\n var _this2 = this;\n\n var params = (0, _extends3.default)({\n clusterName: this.clusterId\n }, this.timeInterval);\n return this.$http.post('/monitor/indices/info.json', params).then(function (data) {\n if (data) {\n _this2.indices = data;\n _this2.indicesNum = data.length;\n _this2.indicesFilter();\n }\n });\n },\n init: function init() {\n var _this3 = this;\n\n this.loading = true;\n _promise2.default.all([this.getIndices()]).then().finally(function () {\n _this3.loading = false;\n });\n }\n },\n computed: {\n timeInterval: function timeInterval() {\n return this.$store.state.monitorTimeInterval;\n },\n clusterId: function clusterId() {\n return this.$route.query.clusterId;\n }\n },\n created: function created() {\n this.init();\n },\n\n watch: {\n '$store.state.monitorTimeInterval': function interval(val) {\n console.log(val);\n this.getNodeMonitor();\n }\n }\n};\n\n/***/ }),\n/* 663 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n gaugeMetricData: [],\n gcCountInfo: {},\n gcDurationInfo: {},\n jvmHeapInfo: {},\n cpuPercentInfo: {},\n indexMemoryInfo: {},\n segmentCountInfo: {},\n threadpoolQueueInfo: {},\n threadpoolRejectInfo: {},\n threadpoolThreadsInfo: {},\n httpOpenCurrentInfo: {},\n indexSearchRateInfo: {},\n indexSearchLatencyInfo: {},\n systemLoadInfo: {}\n };\n },\n\n methods: {\n getgcCount: function getgcCount(gcCountOld, gcCountYoung, unit) {\n var optionInfo = {\n xAxis: gcCountOld.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'gc Count Old', data: gcCountOld.map(function (e) {\n return e.y;\n }) }, { name: 'gc Count Young', data: gcCountYoung.map(function (e) {\n return e.y;\n }) }],\n yAxisName: unit || '个'\n };\n this.gcCountInfo = optionInfo;\n },\n getgcDuration: function getgcDuration(gcDurationOld, gcDurationYoung, unit) {\n var optionInfo = {\n xAxis: gcDurationOld.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'gc Duration Old', data: gcDurationOld.map(function (e) {\n return e.y;\n }) }, { name: 'gc Duration Young', data: gcDurationYoung.map(function (e) {\n return e.y;\n }) }],\n yAxisName: unit || '个'\n };\n this.gcDurationInfo = optionInfo;\n },\n getJVMHeap: function getJVMHeap(jvmHeapMax, jvmHeapUsed, unit) {\n var optionInfo = {\n xAxis: jvmHeapMax.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'jvm heap max', data: jvmHeapMax.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'jvm heap used', data: jvmHeapUsed.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.jvmHeapInfo = optionInfo;\n },\n getCpuPercent: function getCpuPercent(cpuNodePercent, cpuProcessPerent, unit) {\n var optionInfo = {\n xAxis: cpuNodePercent.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'cpu node percent', data: cpuNodePercent.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'cpu process percent', data: cpuProcessPerent.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.cpuPercentInfo = optionInfo;\n },\n getIndexMemory: function getIndexMemory(indexMemoryLucencTotal, indexMemoryTerms, unit) {\n var optionInfo = {\n xAxis: indexMemoryLucencTotal.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'index memory Lucenc total', data: indexMemoryLucencTotal.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'index memory terms', data: indexMemoryTerms.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.indexMemoryInfo = optionInfo;\n },\n getTheadPoolQueue: function getTheadPoolQueue(search, indexing, bulk, unit) {\n var optionInfo = {\n xAxis: search.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'queue-search', data: search.map(function (e) {\n return e.y;\n }) }, { name: 'queue-indexing', data: indexing.map(function (e) {\n return e.y;\n }) }, { name: 'queue-bulk', data: bulk.map(function (e) {\n return e.y;\n }) }],\n yAxisName: unit || '个'\n };\n this.threadpoolQueueInfo = optionInfo;\n },\n getThreadPoolReject: function getThreadPoolReject(search, indexing, bulk, unit) {\n var optionInfo = {\n xAxis: search.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'reject-search', data: search.map(function (e) {\n return e.y;\n }) }, { name: 'reject-indexing', data: indexing.map(function (e) {\n return e.y;\n }) }, { name: 'reject-bulk', data: bulk.map(function (e) {\n return e.y;\n }) }],\n yAxisName: unit || '个'\n };\n this.threadpoolRejectInfo = optionInfo;\n },\n getThreadPoolThreads: function getThreadPoolThreads(search, indexing, bulk, unit) {\n var optionInfo = {\n xAxis: search.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'threads-search', data: search.map(function (e) {\n return e.y;\n }) }, { name: 'threads-indexing', data: indexing.map(function (e) {\n return e.y;\n }) }, { name: 'threads-bulk', data: bulk.map(function (e) {\n return e.y;\n }) }],\n yAxisName: unit || '个'\n };\n this.threadpoolThreadsInfo = optionInfo;\n },\n getSegmentCount: function getSegmentCount(segmentCount, unit) {\n var optionInfo = {\n xAxis: segmentCount.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'segment count', data: segmentCount.map(function (e) {\n return e.y;\n }) }],\n yAxisName: unit || '个'\n };\n this.segmentCountInfo = optionInfo;\n },\n getHttpOpenCount: function getHttpOpenCount(httpOpenCurrent, unit) {\n var optionInfo = {\n xAxis: httpOpenCurrent.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'http open current', data: httpOpenCurrent.map(function (e) {\n return e.y;\n }) }],\n yAxisName: unit || '个'\n };\n this.httpOpenCurrentInfo = optionInfo;\n },\n getIndexSerachRate: function getIndexSerachRate(indexingRate, searchRate, unit) {\n var optionInfo = {\n xAxis: indexingRate.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'indexing', data: indexingRate.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'search', data: searchRate.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.indexSearchRateInfo = optionInfo;\n },\n getIndexSearchLatency: function getIndexSearchLatency(indexingLatency, searchLatency, unit) {\n var optionInfo = {\n xAxis: indexingLatency.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'indexing', data: indexingLatency.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'search', data: searchLatency.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit || '个'\n };\n this.indexSearchLatencyInfo = optionInfo;\n },\n getSystemLoad: function getSystemLoad(systemLoad1m, unit) {\n var optionInfo = {\n xAxis: systemLoad1m.map(function (e) {\n return e.x;\n }),\n seriesData: [{ name: 'system load 1m', data: systemLoad1m.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: unit\n };\n this.systemLoadInfo = optionInfo;\n },\n getNodeMonitor: function getNodeMonitor() {\n var _this = this;\n\n var params = (0, _extends3.default)({\n clusterName: this.clusterId,\n nodeName: this.node\n }, this.timeInterval);\n this.$http.post('/monitor/node.json', params).then(function (data) {\n if (data) {\n _this.gaugeMetricData = [data.gaugeMetric];\n _this.getgcCount(data.gcCountOld.metricModel, data.gcCountYoung.metricModel, data.gcCountOld.unit);\n _this.getgcDuration(data.gc_duration_old_ms.metricModel, data.gc_duration_young_ms.metricModel, data.gc_duration_old_ms.unit);\n _this.getJVMHeap(data.jvm_heap_max_byte.metricModel, data.jvm_heap_used_byte.metricModel, data.jvm_heap_max_byte.unit);\n _this.getCpuPercent(data.cpuNodePercent.metricModel, data.cpuProcessPerent.metricModel, data.cpuNodePercent.unit);\n _this.getIndexMemory(data.index_memory_lucenc_total_byte.metricModel, data.index_memory_terms_bytes.metricModel, data.index_memory_lucenc_total_byte.unit);\n _this.getTheadPoolQueue(data.searchThreadpoolQueue.metricModel, data.indexThreadpoolQueue.metricModel, data.bulkThreadpoolQueue.metricModel, data.searchThreadpoolQueue.unit);\n _this.getThreadPoolThreads(data.searchThreadpoolThreads.metricModel, data.indexThreadpoolThreads.metricModel, data.bulkThreadpoolThreads.metricModel, data.searchThreadpoolThreads.unit);\n _this.getThreadPoolReject(data.searchThreadpoolReject.metricModel, data.indexThreadpoolReject.metricModel, data.bulkThreadpoolReject.metricModel, data.searchThreadpoolReject.unit);\n _this.getSegmentCount(data.segmentCount.metricModel, data.segmentCount.unit);\n _this.getHttpOpenCount(data.httpOpenCurrent.metricModel, data.httpOpenCurrent.unit);\n _this.getIndexSerachRate(data.indexingRate.metricModel, data.searchRate.metricModel, data.searchRate.unit);\n _this.getIndexSearchLatency(data.indexingLatency.metricModel, data.searchLatency.metricModel, data.searchLatency.unit);\n _this.getSystemLoad(data.systemLoad_1m.metricModel, data.systemLoad_1m.unit);\n }\n });\n }\n },\n computed: {\n timeInterval: function timeInterval() {\n return this.$store.state.monitorTimeInterval;\n },\n clusterId: function clusterId() {\n return this.$route.query.clusterId;\n },\n node: function node() {\n return this.$route.query.node;\n }\n },\n created: function created() {\n this.getNodeMonitor();\n },\n\n watch: {\n '$store.state.monitorTimeInterval': function interval(val) {\n console.log(val);\n this.getNodeMonitor();\n }\n }\n};\n\n/***/ }),\n/* 664 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: [],\n data: function data() {\n return {\n loading: false,\n nodeForSearch: '',\n nodesList: [],\n nodes: []\n };\n },\n\n methods: {\n nodesFilter: function nodesFilter() {\n var _this = this;\n\n var filtered = this.nodes.slice();\n filtered = filtered.filter(function (e) {\n return e.nodeName.indexOf(_this.nodeForSearch) > -1;\n });\n this.nodesList = filtered;\n },\n getNodes: function getNodes() {\n var _this2 = this;\n\n var params = (0, _extends3.default)({\n clusterName: this.clusterId\n }, this.timeInterval);\n return this.$http.post('/monitor/nodes/info.json', params).then(function (data) {\n if (data) {\n _this2.nodes = data;\n _this2.nodesNum = data.length;\n _this2.nodesFilter();\n }\n });\n },\n init: function init() {\n var _this3 = this;\n\n this.loading = true;\n _promise2.default.all([this.getNodes()]).then().finally(function () {\n _this3.loading = false;\n });\n }\n },\n computed: {\n clusterId: function clusterId() {\n return this.$route.query.clusterId;\n },\n timeInterval: function timeInterval() {\n return this.$store.state.monitorTimeInterval;\n }\n },\n created: function created() {\n this.init();\n },\n\n watch: {\n '$store.state.monitorTimeInterval': function interval(val) {\n console.log(val);\n this.getNodes();\n }\n }\n};\n\n/***/ }),\n/* 665 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _types = __webpack_require__(195);\n\nvar _custom_time_dialog = __webpack_require__(1368);\n\nvar _custom_time_dialog2 = _interopRequireDefault(_custom_time_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n components: {\n 'custom-time-dialog': _custom_time_dialog2.default\n },\n data: function data() {\n return {\n loading: false,\n activeTab: 'cluster_monitor',\n nodesNum: 0,\n indicesNum: 0,\n periodTimeMap: {\n 30: '最近30分钟',\n 60: '最近1小时',\n 180: '最近3小时',\n 360: '最近6小时',\n 720: '最近12小时',\n 1440: '最近24小时',\n 4320: '最近3天',\n 10080: '最近7天',\n custom: '自定义时间'\n },\n customTimeVisible: false\n };\n },\n\n methods: {\n handleCommand: function handleCommand(command) {\n if (command !== 'custom') {\n var params = {\n command: command,\n from: new Date().getTime() - Number(command) * 60 * 1000,\n to: new Date().getTime()\n };\n this.$store.dispatch(_types.SET_MONITOR_TIME_INTERVAL, params);\n } else {\n this.customTimeVisible = true;\n }\n },\n setCustomTime: function setCustomTime(params) {\n this.$store.dispatch(_types.SET_MONITOR_TIME_INTERVAL, params);\n this.closeCustomTimeDialog();\n },\n closeCustomTimeDialog: function closeCustomTimeDialog() {\n this.customTimeVisible = false;\n },\n onTabClick: function onTabClick() {\n this.$router.push({\n name: this.activeTab,\n query: {\n clusterId: this.clusterId\n }\n });\n },\n getActiveTab: function getActiveTab() {\n var str = this.$route.name;\n if (str) {\n if (str === 'indice_monitor_detail') {\n this.activeTab = 'indices_monitor';\n } else if (str === 'node_monitor_detail') {\n this.activeTab = 'nodes_monitor';\n } else {\n this.activeTab = str;\n }\n }\n },\n getIndicesNum: function getIndicesNum() {\n var _this = this;\n\n var params = (0, _extends3.default)({\n clusterName: this.clusterId,\n nodeName: this.node\n }, this.timeInterval);\n return this.$http.post('/monitor/indices/count.json', params).then(function (data) {\n if (data) {\n _this.indicesNum = data;\n }\n });\n },\n getNodesNum: function getNodesNum() {\n var _this2 = this;\n\n var params = (0, _extends3.default)({\n clusterName: this.clusterId,\n nodeName: this.node\n }, this.timeInterval);\n return this.$http.post('/monitor/nodes/count.json', params).then(function (data) {\n if (data) {\n _this2.nodesNum = data;\n }\n });\n },\n init: function init() {\n var _this3 = this;\n\n this.loading = true;\n _promise2.default.all([this.getIndicesNum(), this.getNodesNum()]).then().finally(function () {\n _this3.loading = false;\n });\n }\n },\n computed: {\n timeInterval: function timeInterval() {\n return this.$store.state.monitorTimeInterval;\n },\n clusterId: function clusterId() {\n return this.$route.query.clusterId;\n },\n indice: function indice() {\n return this.$route.query.indice;\n },\n node: function node() {\n return this.$route.query.node;\n },\n breadcrumbs: function breadcrumbs() {\n var result = [];\n if (this.$route.name === 'cluster_monitor') {\n result.push({ name: '集群' });\n } else if (this.$route.name === 'indices_monitor') {\n result.push({ name: '索引' });\n } else if (this.$route.name === 'indice_monitor_detail') {\n result.push({ name: '索引', route: { name: 'indices_monitor', query: { clusterId: this.clusterId } } });\n result.push({ name: this.indice });\n } else if (this.$route.name === 'nodes_monitor') {\n result.push({ name: '节点' });\n } else if (this.$route.name === 'node_monitor_detail') {\n result.push({ name: '节点', route: { name: 'nodes_monitor', query: { clusterId: this.clusterId } } });\n result.push({ name: this.node });\n }\n return result;\n }\n },\n created: function created() {\n this.getActiveTab();\n this.init();\n },\n\n watch: {\n $route: 'getActiveTab',\n '$store.state.monitorTimeInterval': function interval(val) {\n console.log(val);\n this.getIndicesNum();\n this.getNodesNum();\n }\n }\n};\n\n/***/ }),\n/* 666 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['indexId', 'crondeleteInfo', 'crondeleteOperation', 'crondeleteTitle'],\n data: function data() {\n return {\n loading: false,\n isCronDeleteVisible: true,\n rules: {\n cron: [{ required: true, message: '请参照saturn的cron格式', trigger: 'blur' }],\n versionId: [{ validator: this.$validate.validateSelect, trigger: 'blur' }],\n scrollSize: [{ required: true, message: 'scrollSize不能为空' }, { type: 'number', message: 'scrollSize值必须为数字值' }],\n dsl: [{ required: true, message: '请输入delete by query的查询dsl', trigger: 'blur' }]\n },\n versionIdList: [],\n showImportObject: {\n show: false\n }\n };\n },\n\n methods: {\n initVersionIdList: function initVersionIdList() {\n var _this = this;\n\n var params = {\n currentPage: 1,\n pageSize: 100,\n indexId: this.indexId\n };\n this.loading = true;\n this.$http.get('/index/version/page.json', params).then(function (data) {\n if (data.list.length > 0) {\n data.list.forEach(function (element) {\n var item = {};\n if (element.isUsed === true) {\n item = { label: element.id + '(\\u5F53\\u524D\\u542F\\u7528\\u7248\\u672C)', value: element.id };\n } else {\n item = { label: element.id, value: element.id };\n }\n _this.versionIdList.push(item);\n });\n }\n }).finally(function () {\n _this.loading = false;\n });\n },\n submitUpsert: function submitUpsert() {\n var _this2 = this;\n\n this.$refs.crondeleteInfo.validate(function (valid) {\n if (valid) {\n var successMsg = _this2.crondeleteOperation === 'edit' ? '修改成功' : '新增成功';\n _this2.loading = true;\n _this2.$http.post('/crondelete/upsert.json', _this2.crondeleteInfo).then(function () {\n _this2.$message.successMessage(successMsg, function () {\n _this2.$emit('operate-close-dialog');\n });\n }).finally(function () {\n _this2.loading = false;\n });\n }\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n },\n computed: {},\n components: {},\n created: function created() {\n this.initVersionIdList();\n }\n};\n\n/***/ }),\n/* 667 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _cron_delete_dialog = __webpack_require__(1374);\n\nvar _cron_delete_dialog2 = _interopRequireDefault(_cron_delete_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n indexId: this.$route.query.indexId,\n indexName: this.$route.query.indexName,\n isAllPrivilege: false,\n showDsl: false,\n isCronDeleteVisible: false,\n crondeleteOperation: '',\n crondeleteTitle: '',\n viewInfoTitle: '',\n viewInfo: '',\n cronDeleteList: [],\n crondeleteInfo: {},\n crondeleteAddInfo: {\n versionId: null,\n cron: '',\n dsl: '',\n scrollSize: 1000,\n id: ''\n }\n };\n },\n\n methods: {\n getCronDeleteList: function getCronDeleteList() {\n var _this = this;\n\n var params = {\n indexId: this.indexId\n };\n this.loading = true;\n this.$http.get('/crondelete/find_by_index.json?indexId=' + params.indexId).then(function (data) {\n _this.isAllPrivilege = data.allPrivilege;\n _this.cronDeleteList = data.list;\n }).finally(function () {\n _this.loading = false;\n });\n },\n getDsl: function getDsl(row) {\n this.viewInfo = (0, _stringify2.default)(JSON.parse(row.dsl), undefined, 2);\n this.showDsl = true;\n this.viewInfoTitle = 'delete_by_query dsl';\n },\n executeSearchDsl: function executeSearchDsl(row) {\n var _this2 = this;\n\n var params = {\n id: row.id\n };\n this.loading = true;\n this.$http.get('/crondelete/query_dsl.json?id=' + params.id).then(function (data) {\n _this2.viewInfo = (0, _stringify2.default)(JSON.parse(data), undefined, 2);\n _this2.showDsl = true;\n _this2.viewInfoTitle = 'dsl查询结果';\n }).finally(function () {\n _this2.loading = false;\n });\n },\n closeDialog: function closeDialog() {\n this.showDsl = false;\n this.isCronDeleteVisible = false;\n },\n operateCloseDialog: function operateCloseDialog() {\n this.isCronDeleteVisible = false;\n this.refreshPage();\n },\n refreshPage: function refreshPage() {\n this.getCronDeleteList();\n },\n handleAdd: function handleAdd() {\n this.isCronDeleteVisible = true;\n this.crondeleteTitle = '新增';\n this.crondeleteOperation = 'add';\n this.crondeleteInfo = JSON.parse((0, _stringify2.default)(this.crondeleteAddInfo));\n },\n handleEdit: function handleEdit(row) {\n this.isCronDeleteVisible = true;\n this.crondeleteTitle = '修改';\n this.crondeleteOperation = 'edit';\n this.crondeleteInfo = row;\n },\n handleRunAtOnce: function handleRunAtOnce(row) {\n var _this3 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u7ACB\\u523B\\u6267\\u884C\\u4F5C\\u4E1A' + this.indexName + '_' + this.indexId + '_crondelete_' + row.id + '\\u5417? ', function () {\n _this3.loading = true;\n _this3.$http.post('/crondelete/run.json', { id: row.id }).then(function () {\n _this3.$message.successMessage('\\u5DF2\\u901A\\u77E5saturn\\u6267\\u884C\\uFF0C\\u8BF7\\u524D\\u5F80saturn\\u67E5\\u770B\\u4F5C\\u4E1A\\uFF1A' + _this3.indexName + '_' + _this3.indexId + '_crondelete_' + row.id + ' \\u7684\\u6267\\u884C\\u7ED3\\u679C', function () {\n _this3.getCronDeleteList();\n });\n }).finally(function () {\n _this3.loading = false;\n });\n });\n },\n handleDelete: function handleDelete(row) {\n var _this4 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664' + row.id + '\\u5417?', function () {\n _this4.loading = true;\n _this4.$http.post('/crondelete/delete.json', { id: row.id }).then(function () {\n _this4.$message.successMessage('删除成功', function () {\n _this4.getCronDeleteList();\n });\n }).finally(function () {\n _this4.loading = false;\n });\n });\n },\n handleDisableAndDeleteJob: function handleDisableAndDeleteJob(row) {\n var _this5 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u7981\\u7528' + row.id + '\\u5417?', function () {\n _this5.loading = true;\n _this5.$http.post('/crondelete/disable_and_delete_job.json', { id: row.id }).then(function () {\n _this5.$message.successMessage('禁用成功', function () {\n _this5.getCronDeleteList();\n });\n }).finally(function () {\n _this5.loading = false;\n });\n });\n },\n handleCreateAndEnableJob: function handleCreateAndEnableJob(row) {\n var _this6 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u542F\\u7528' + row.id + '\\u5417?', function () {\n _this6.loading = true;\n _this6.$http.post('/crondelete/create_and_enable_job.json', { id: row.id }).then(function () {\n _this6.$message.successMessage('启用成功', function () {\n _this6.getCronDeleteList();\n });\n }).finally(function () {\n _this6.loading = false;\n });\n });\n }\n },\n filters: {\n translateIsUsed: function translateIsUsed(data) {\n var IS_ENABLED = { true: '是', false: '否' };\n return IS_ENABLED[data];\n }\n },\n components: {\n 'crondelete-dialog': _cron_delete_dialog2.default\n },\n created: function created() {\n this.getCronDeleteList();\n }\n};\n\n/***/ }),\n/* 668 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _dynamic_manage_dialog = __webpack_require__(1377);\n\nvar _dynamic_manage_dialog2 = _interopRequireDefault(_dynamic_manage_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n indexId: this.$route.query.indexId,\n pageSize: 10,\n currentPage: 1,\n operationData: {},\n operationList: [],\n selectedType: '',\n filterVersion: '',\n timeRange: '',\n typeList: [{\n value: '索引事件'\n }, {\n value: '版本事件'\n }, {\n value: '同步事件'\n }, {\n value: '模板事件'\n }],\n dynamicOperation: '',\n dynamicInfoTitle: '',\n isDynamicInfoVisible: false,\n isChartVisible: false,\n dynamicInfo: {},\n indexSearchRateInfo: {},\n indexSearchLatencyInfo: {},\n dynamicDeleteInfo: {\n indexId: this.$route.query.indexId,\n indexName: this.$route.query.indexName,\n filterVersion: '',\n selectedType: '',\n eventName: '',\n timeRange: 90\n },\n chartList: [],\n versionIdList: []\n };\n },\n\n methods: {\n initVersionIdList: function initVersionIdList() {\n var _this = this;\n\n var params = {\n currentPage: 1,\n pageSize: 100,\n indexId: this.indexId\n };\n this.loading = true;\n this.$http.get('/index/version/page.json', params).then(function (data) {\n if (data.list.length > 0) {\n data.list.forEach(function (element) {\n var item = {};\n if (element.isUsed === true) {\n item = { label: element.id + '(\\u5F53\\u524D\\u542F\\u7528\\u7248\\u672C)', value: element.id };\n } else {\n item = { label: element.id, value: element.id };\n }\n _this.versionIdList.push(item);\n });\n }\n }).finally(function () {\n _this.loading = false;\n });\n },\n getClusterMetricChart: function getClusterMetricChart(metricData) {\n var indexingRate = metricData.metric.indexingRate.metricModel;\n console.log(indexingRate);\n var clusterName = metricData.clusterName;\n var searchRate = metricData.metric.searchRate.metricModel;\n var rateOption = {\n xAxis: indexingRate.map(function (e) {\n return e.x;\n }),\n name: clusterName,\n seriesData: [{ name: 'indexing', data: indexingRate.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'search', data: searchRate.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: searchRate.unit || '个'\n };\n var indexingLatency = metricData.metric.indexingLatency.metricModel;\n var searchLatency = metricData.metric.searchLatency.metricModel;\n var latencyOption = {\n xAxis: indexingLatency.map(function (e) {\n return e.x;\n }),\n name: clusterName,\n seriesData: [{ name: 'indexing', data: indexingLatency.map(function (e) {\n return e.y.toFixed(2);\n }) }, { name: 'search', data: searchLatency.map(function (e) {\n return e.y.toFixed(2);\n }) }],\n yAxisName: searchLatency.unit || '个'\n };\n var chartGroup = {\n rate: rateOption,\n latency: latencyOption\n };\n console.log(chartGroup);\n this.chartList.push(chartGroup);\n },\n getOperationList: function getOperationList() {\n var _this2 = this;\n\n if ((0, _stringify2.default)(this.timeRange) === '[null,null]') {\n this.timeRange = '';\n }\n var params = {\n currentPage: this.currentPage,\n pageSize: this.pageSize,\n indexId: this.indexId,\n selectedType: this.selectedType,\n filterVersion: this.filterVersion,\n timeRange: this.timeRange\n };\n\n return this.$http.post('/index/dynamic/page.json', params).then(function (data) {\n _this2.operationData = data;\n _this2.operationList = data.list.map(function (obj) {\n var rObj = {};\n rObj.id = obj.id;\n rObj.eventType = obj.eventType;\n rObj.eventName = obj.eventName;\n rObj.eventDetail = obj.eventDetail;\n rObj.endTime = obj.endTime;\n rObj.operationTime = obj.operationTime;\n rObj.operator = obj.operator;\n rObj.versionId = obj.versionId;\n if (obj.eventDetail.length > 500) {\n rObj.isFold = true;\n rObj.isShowIcon = true;\n } else {\n rObj.isFold = false;\n rObj.isShowIcon = false;\n }\n return rObj;\n });\n if (data.metric) {\n data.metric.forEach(function (metricData) {\n _this2.getClusterMetricChart(metricData);\n });\n _this2.isChartVisible = true;\n }\n });\n },\n handleDelete: function handleDelete() {\n this.isDynamicInfoVisible = true;\n this.dynamicOperation = 'delete';\n this.dynamicInfoTitle = '删除数据(3月前)';\n this.dynamicInfo = JSON.parse((0, _stringify2.default)(this.dynamicDeleteInfo));\n },\n closeDialog: function closeDialog() {\n this.isDynamicInfoVisible = false;\n },\n operateCloseDialog: function operateCloseDialog() {\n this.isDynamicInfoVisible = false;\n this.init();\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.init();\n },\n init: function init() {\n var _this3 = this;\n\n this.loading = true;\n _promise2.default.all([this.getOperationList()]).then(function () {\n _this3.loading = false;\n });\n }\n },\n components: {\n 'dynamic-info-dialog': _dynamic_manage_dialog2.default\n },\n created: function created() {\n this.init();\n this.initVersionIdList();\n }\n};\n\n/***/ }),\n/* 669 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['dynamicOperation', 'dynamicInfo', 'dynamicInfoTitle', 'typeList', 'versionIdList'],\n data: function data() {\n return {\n indexEventList: [{\n value: '创建索引'\n }, {\n value: '更新索引'\n }],\n versionEventList: [{\n value: '创建版本'\n }, {\n value: '更新版本'\n }, {\n value: '启用版本'\n }, {\n value: '删除版本'\n }],\n versionSyncEventList: [{\n value: '开始同步'\n }, {\n value: '结束同步'\n }, {\n value: '全量'\n }, {\n value: '增量'\n }, {\n value: '对账'\n }],\n templateEventList: [{\n value: '新建模板'\n }, {\n value: '编辑模板'\n }, {\n value: '导入模板'\n }, {\n value: '删除模板'\n }],\n loading: false,\n isDynamicInfoVisible: true,\n rules: {}\n };\n },\n\n methods: {\n deleteDynamicInfo: function deleteDynamicInfo() {\n var _this = this;\n\n this.$refs.dynamicInfo.validate(function (valid) {\n if (valid) {\n if (_this.dynamicOperation === 'delete') {\n _this.loading = true;\n _this.$http.post('/index/dynamic/delete.json', _this.dynamicInfo).then(function () {\n _this.$message.successMessage('删除成功', function () {\n _this.$emit('operate-close-dialog');\n });\n }).finally(function () {\n _this.loading = false;\n });\n }\n } else {\n console.log('error submit!!');\n }\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n }\n\n};\n\n/***/ }),\n/* 670 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _flow_record_export = __webpack_require__(1381);\n\nvar _flow_record_export2 = _interopRequireDefault(_flow_record_export);\n\nvar _flow_record_config = __webpack_require__(1380);\n\nvar _flow_record_config2 = _interopRequireDefault(_flow_record_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n components: {\n 'flow-record-export': _flow_record_export2.default,\n 'flow-record-config': _flow_record_config2.default\n },\n data: function data() {\n return {\n activeNames: ['1', '2'],\n flowRecordExportParams: {}\n };\n },\n\n methods: {\n getFlowExport: function getFlowExport(params) {\n this.flowRecordExportParams = JSON.parse((0, _stringify2.default)(params));\n }\n }\n};\n\n/***/ }),\n/* 671 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['configOperation', 'configInfo', 'configInfoTitle', 'allPhysicals', 'templates'],\n data: function data() {\n return {\n loading: false,\n isconfigInfoVisible: true,\n rules: {\n templateId: [{ validator: this.$validate.validateSelect, trigger: 'change' }],\n startTime: [{ validator: this.$validate.validateTime, trigger: 'change' }],\n endTime: [{ validator: this.$validate.validateTimeExpire, trigger: 'change' }],\n sampleRate: [{ required: true, message: '抽样系数不能为空', trigger: 'blur' }],\n limit: [{ required: true, message: '采集数量不能为空', trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n submitconfigInfo: function submitconfigInfo() {\n var _this = this;\n\n this.$refs.configInfo.validate(function (valid) {\n if (valid) {\n if (_this.configOperation === 'add') {\n _this.loading = true;\n _this.$http.post('/record/flow_record_config/add.json', _this.configInfo).then(function () {\n _this.$message.successMessage('新增规则成功', function () {\n _this.$emit('operate-close-dialog');\n });\n }).finally(function () {\n _this.loading = false;\n });\n } else {\n _this.loading = true;\n _this.$http.post('/record/flow_record_config/edit.json', _this.configInfo).then(function () {\n _this.$message.successMessage('修改规则成功', function () {\n _this.$emit('operate-close-dialog');\n });\n }).finally(function () {\n _this.loading = false;\n });\n }\n }\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.configOperation === 'edit';\n }\n }\n};\n\n/***/ }),\n/* 672 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _config_info_dialog = __webpack_require__(1379);\n\nvar _config_info_dialog2 = _interopRequireDefault(_config_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n indexId: this.$route.query.indexId,\n loading: false,\n activeName: 'first',\n flowRecordConfigList: [],\n indexName: this.$route.query.indexName,\n isMetaDataNull: false,\n pageSize: 10,\n configOperation: '',\n configInfoTitle: '',\n total: 0,\n currentPage: 1,\n configInfo: {},\n templates: [],\n isConfigInfoVisible: false,\n isAllPrivilege: false\n };\n },\n\n methods: {\n cellClick: function cellClick(row) {\n var params = {\n configId: row.id,\n indexId: row.indexId\n };\n this.$emit('get-flow-export', params);\n },\n init: function init() {\n this.getFlowRecordConfigList(1);\n this.getTemplateByIndex();\n },\n changePage: function changePage(currentPage) {\n this.getFlowRecordConfigList(currentPage);\n },\n getTemplateByIndex: function getTemplateByIndex() {\n var _this = this;\n\n var params = {\n indexId: this.$route.query.indexId\n };\n this.$http.get('/record/index_template/list.json?indexId=' + params.indexId).then(function (data) {\n _this.templates = data;\n });\n },\n handleAdd: function handleAdd() {\n this.isConfigInfoVisible = true;\n this.configInfoTitle = '新增规则';\n this.configOperation = 'add';\n var configAddInfo = {\n templateId: '',\n startTime: '',\n endTime: '',\n indexId: this.$route.query.indexId\n };\n this.configInfo = JSON.parse((0, _stringify2.default)(configAddInfo));\n },\n handleDelete: function handleDelete(row) {\n var _this2 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u89C4\\u5219' + row.id + '\\u5417\\uFF0C\\u5220\\u9664\\u4F1A\\u540C\\u65F6\\u505C\\u6B62\\u6B64\\u89C4\\u5219\\u76F8\\u5173\\u6B63\\u5728\\u91C7\\u96C6\\u7684\\u4F5C\\u4E1A?', function () {\n _this2.loading = true;\n _this2.$http.post('/record/flow_record_config/delete.json', { indexId: _this2.indexId, configId: row.id }).then(function () {\n _this2.$message.successMessage('删除规则成功', function () {\n _this2.getFlowRecordConfigList(1);\n });\n }).finally(function () {\n _this2.loading = false;\n });\n });\n },\n handleEdit: function handleEdit(row) {\n var _this3 = this;\n\n this.loading = true;\n this.$http.get('/record/flow_record_config/id.json?configId=' + row.id).then(function (data) {\n var configEditData = data;\n _this3.isConfigInfoVisible = true;\n _this3.configInfoTitle = '编辑规则';\n _this3.configOperation = 'edit';\n var configEditInfo = {\n id: row.id,\n templateId: configEditData.templateId,\n startTime: configEditData.startTime,\n endTime: configEditData.endTime,\n indexId: _this3.$route.query.indexId,\n sampleRate: (0, _stringify2.default)(configEditData.sampleRate),\n limit: (0, _stringify2.default)(configEditData.limit),\n note: configEditData.note || ''\n };\n _this3.configInfo = JSON.parse((0, _stringify2.default)(configEditInfo));\n }).finally(function () {\n _this3.loading = false;\n });\n },\n enableConfig: function enableConfig(row) {\n var _this4 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u542F\\u7528\\u89C4\\u5219' + row.id + '\\u5417?', function () {\n _this4.loading = true;\n _this4.$http.post('/record/flow_record_config/enable.json', { indexId: _this4.indexId, configId: row.id }).then(function () {\n _this4.$message.successMessage('启用规则成功', function () {\n _this4.getFlowRecordConfigList(1);\n });\n }).finally(function () {\n _this4.loading = false;\n });\n });\n },\n disableConfig: function disableConfig(row) {\n var _this5 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u7981\\u7528\\u89C4\\u5219' + row.id + '\\u5417\\uFF0C\\u7981\\u7528\\u4F1A\\u540C\\u65F6\\u505C\\u6B62\\u6B64\\u89C4\\u5219\\u76F8\\u5173\\u6B63\\u5728\\u91C7\\u96C6\\u7684\\u4F5C\\u4E1A?', function () {\n _this5.loading = true;\n _this5.$http.post('/record/flow_record_config/disable.json', { indexId: _this5.indexId, configId: row.id }).then(function () {\n _this5.$message.successMessage('禁用规则成功', function () {\n _this5.getFlowRecordConfigList(1);\n });\n }).finally(function () {\n _this5.loading = false;\n });\n });\n },\n getFlowRecordConfigList: function getFlowRecordConfigList(_currentPage) {\n var _this6 = this;\n\n var params = {\n currentPage: _currentPage,\n pageSize: this.pageSize,\n indexId: this.$route.query.indexId || ''\n };\n this.loading = true;\n this.$http.get('/record/flow_record_config/page.json', params).then(function (data) {\n _this6.flowRecordConfigList = data.list;\n _this6.total = data.total;\n _this6.isAllPrivilege = data.allPrivilege;\n }).finally(function () {\n _this6.loading = false;\n });\n },\n closeDialog: function closeDialog() {\n this.isConfigInfoVisible = false;\n },\n operateCloseDialog: function operateCloseDialog() {\n this.isConfigInfoVisible = false;\n this.getFlowRecordConfigList(1);\n }\n },\n filters: {\n translateIsEnable: function translateIsEnable(data) {\n var IS_ENABLE = { true: '已启用', false: '待启用' };\n return IS_ENABLE[data];\n }\n },\n components: {\n 'config-info-dialog': _config_info_dialog2.default\n },\n created: function created() {\n this.init();\n },\n\n watch: {\n $route: 'getFlowRecordConfigList'\n }\n};\n\n/***/ }),\n/* 673 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['flowRecordExportParams'],\n data: function data() {\n return {\n loading: false,\n flowRecordList: [],\n indexId: this.$route.query.indexId,\n indexName: this.$route.query.indexName,\n flowRecordStateMap: {\n 0: '就绪',\n 1: '正在采集',\n 2: '已完成',\n 3: '已终止',\n 4: '已结束'\n },\n isAllPrivilege: false,\n pageSize: 10,\n total: 0,\n currentPage: 0\n };\n },\n\n methods: {\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.getFlowRecordList(currentPage);\n },\n getFlowRecordList: function getFlowRecordList(_currentPage) {\n var _this = this;\n\n var params = (0, _extends3.default)({}, this.flowRecordExportParams, {\n currentPage: _currentPage,\n pageSize: this.pageSize\n });\n this.loading = true;\n this.$http.get('/record/flow_record/page_by_config.json', params).then(function (data) {\n _this.flowRecordList = data.list;\n _this.isAllPrivilege = data.allPrivilege;\n _this.total = data.total;\n }).finally(function () {\n _this.loading = false;\n });\n },\n stopRecord: function stopRecord(row) {\n var _this2 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u505C\\u6B62\\u91C7\\u96C6' + row.id + '\\u5417\\uFF0C\\u505C\\u6B62\\u4F1A\\u540C\\u65F6\\u7981\\u7528\\u76F8\\u5173\\u89C4\\u5219?', function () {\n _this2.loading = true;\n _this2.$http.post('/record/flow_record/stop.json', { indexId: _this2.indexId, recordId: row.id }).then(function () {\n _this2.$message.successMessage('停止采集成功', function () {\n _this2.getFlowRecordList(1);\n });\n }).finally(function () {\n _this2.loading = false;\n });\n });\n },\n handleDelete: function handleDelete(row) {\n var _this3 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u8981\\u5220\\u9664\\u91C7\\u96C6\\u6570\\u636E' + row.id + '\\u5417\\uFF0C\\u5220\\u9664\\u5C06\\u6E05\\u9664\\u76F8\\u5173\\u8BB0\\u5F55\\u6570\\u636E?', function () {\n _this3.loading = true;\n _this3.$http.post('/record/flow_record/delete.json', { indexId: _this3.indexId, recordId: row.id }).then(function () {\n _this3.$message.successMessage('删除采集数据成功', function () {\n _this3.getFlowRecordList(1);\n });\n }).finally(function () {\n _this3.loading = false;\n });\n });\n },\n refreshList: function refreshList() {\n var _this4 = this;\n\n this.interval = setInterval(function () {\n _this4.getFlowRecordList(1);\n }, 3000);\n },\n exportFlow: function exportFlow(row) {\n window.location.href = '/pallas/record/flow_record/export.json?recordId=' + row.id;\n }\n },\n filters: {\n translateIsEnable: function translateIsEnable(data) {\n var IS_ENABLE = { true: '是', false: '否' };\n return IS_ENABLE[data];\n }\n },\n components: {},\n watch: {\n flowRecordExportParams: {\n handler: function handler() {\n this.getFlowRecordList(1);\n },\n\n deep: true\n }\n }\n};\n\n/***/ }),\n/* 674 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n data: function data() {\n return {\n indexId: this.$route.query.indexId,\n indexName: this.$route.query.indexName,\n activeTab: 'version_manage'\n };\n },\n\n methods: {\n onTabClick: function onTabClick() {\n this.$router.push({\n name: this.activeTab,\n query: {\n indexId: this.$route.query.indexId,\n indexName: this.$route.query.indexName\n }\n });\n },\n getActiveTab: function getActiveTab() {\n var str = this.$route.name;\n if (str) {\n this.activeTab = str;\n }\n }\n },\n created: function created() {\n this.activeTab = this.$route.name;\n },\n\n watch: {\n $route: 'getActiveTab'\n }\n};\n\n/***/ }),\n/* 675 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _conditions = __webpack_require__(1385);\n\nvar _conditions2 = _interopRequireDefault(_conditions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['conditions', 'conditionInfo', 'conditionInfoTitle', 'conditionOperation', 'routingTargetGroups'],\n data: function data() {\n return {\n isVisible: true,\n rules: {\n name: [{ required: true, message: '规则名称不能为空', trigger: 'blur' }],\n sourceType: [{ required: true, message: '数据源类型不能为空', trigger: 'blur' }],\n sourceParameter: [{ required: true, message: '条件判断参数名不能为空', trigger: 'blur' }],\n condExpr: [{ required: true, message: '条件判断运算不能为空', trigger: 'blur' }],\n sourceValue: [{ required: true, message: '条件判断值不能为空', trigger: 'blur' }],\n conditionRelation: [{ required: true, message: '请选择规则关系', trigger: 'change' }],\n preference: [{ validator: this.validatePreference, trigger: 'blur' }]\n },\n preferenceList: ['_primary', '_primary_first', '_replica', '_replica_first', '_only_local', '_local', '_prefer_nodes:abc,xyz', '_shards:98,99'],\n conditionRelations: ['OR', 'AND'],\n defaultProps: {\n key: 'id',\n label: 'name'\n }\n };\n },\n\n methods: {\n validatePreference: function validatePreference(rule, value, callback) {\n if (value === '_prefer_nodes:abc,xyz') {\n callback(new Error('abc,xyz 请编辑文本填写真实节点内容'));\n } else if (value === '_shards:98,99') {\n callback(new Error('请编辑文本填写真实的分片'));\n }\n callback();\n },\n handleChange: function handleChange(arr, direction, movedKeys) {\n if (direction === 'right') {\n this.changeDirection(movedKeys, 'right');\n } else {\n this.changeDirection(movedKeys, 'left');\n }\n },\n changeDirection: function changeDirection(arr, direction) {\n var _this = this;\n\n arr.forEach(function (ele1) {\n _this.routingTargetGroups.forEach(function (ele2) {\n if (ele1 === ele2.id) {\n _this.$set(ele2, 'position', direction);\n }\n });\n });\n },\n renderFunc: function renderFunc(h, option) {\n var self = this;\n var renderHtml = void 0;\n if (option.position === 'left') {\n renderHtml = h('div', [h('span', { style: { float: 'left' } }, option.name)]);\n } else {\n renderHtml = h('div', [h('span', { style: { float: 'left' } }, option.name), h('input', {\n domProps: { value: option.weight || '0' },\n class: { 'el-input__inner': true },\n style: { float: 'right', width: '50px', height: '20px', margin: '6px' },\n on: {\n input: function setInput(event) {\n self.$set(option, 'weight', event.target.value);\n self.$emit('input', event.target.value);\n }\n }\n })]);\n }\n return renderHtml;\n },\n submitInfo: function submitInfo() {\n var _this2 = this;\n\n this.$refs.conditionInfo.validate(function (valid1) {\n if (valid1) {\n var count = 0;\n if (_this2.conditionInfo.conditions.length !== 0) {\n _this2.$refs.conditions.$refs.conditionItem.forEach(function (element) {\n element.$refs.conditionItemForm.validate(function (valid2) {\n if (valid2) {\n count += 1;\n }\n });\n });\n }\n if (count === _this2.conditionInfo.conditions.length) {\n _this2.conditionInfo.targetGroups = _this2.getTargetGroupsList();\n var conditionInfoObject = _this2.setConditionInfo();\n if (_this2.targetGroupWeightValidate(conditionInfoObject.targetGroups)) {\n if (_this2.conditionOperation === 'add') {\n _this2.$emit('add-condition', conditionInfoObject);\n } else {\n _this2.$emit('edit-condition', conditionInfoObject);\n }\n }\n }\n }\n });\n },\n targetGroupWeightValidate: function targetGroupWeightValidate(arr) {\n var flag = false;\n if (arr.length !== 0) {\n var parten = /^([0-9]\\d{0,1}|100)$/;\n var error = arr.some(function (ele) {\n if (parten.test(ele.weight)) {\n return false;\n }\n return true;\n });\n if (error) {\n flag = false;\n this.$message.errorMessage('请正确输入节点集权重, 0-100整数!');\n } else {\n flag = true;\n }\n } else {\n flag = false;\n this.$message.errorMessage('请选择节点集!');\n }\n return flag;\n },\n setConditionInfo: function setConditionInfo() {\n var conditionObject = {};\n conditionObject.name = this.conditionInfo.name;\n conditionObject.targetGroups = this.conditionInfo.targetGroups;\n conditionObject.enable = this.conditionInfo.enable;\n conditionObject.conditionRelation = this.conditionInfo.conditionRelation;\n conditionObject.priority = this.conditionInfo.priority;\n conditionObject.conditions = this.conditionInfo.conditions;\n conditionObject.preference = this.conditionInfo.preference;\n return conditionObject;\n },\n getTargetGroupsList: function getTargetGroupsList() {\n var list = this.$refs.targetGroupTransfer.targetData.map(function (obj) {\n var rObj = {};\n rObj.id = obj.id;\n rObj.weight = obj.weight;\n return rObj;\n });\n return list;\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.conditionOperation === 'edit';\n },\n alternativeConditions: function alternativeConditions() {\n if (this.conditionOperation === 'edit') {\n this.$array.removeByValue(this.conditions, this.conditionInfo.name);\n return this.conditions;\n }\n return this.conditions;\n }\n },\n components: {\n Conditions: _conditions2.default\n }\n};\n\n/***/ }),\n/* 676 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['conditionItem'],\n data: function data() {\n return {\n rules: {\n exprOp: [{ required: true, message: '请选择判断运算', trigger: 'change' }],\n paramName: [{ required: true, message: '请输入判断参数名', trigger: 'change' }],\n paramValue: [{ required: true, message: '请输入判断值', trigger: 'blur' }]\n },\n exprOps: ['=', 'ip_mask'],\n paramNames: ['X-PALLAS-SEARCH-CLIENT-IP', 'X-PALLAS-SEARCH-TEMPLATE-ID']\n };\n }\n};\n\n/***/ }),\n/* 677 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _condition_item = __webpack_require__(1384);\n\nvar _condition_item2 = _interopRequireDefault(_condition_item);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['conditions'],\n data: function data() {\n return {\n conditionRelateInfo: {\n paramType: 'header',\n exprOp: '',\n paramName: '',\n paramValue: ''\n }\n };\n },\n\n methods: {\n addConditionRelate: function addConditionRelate() {\n var conditionRelate = JSON.parse((0, _stringify2.default)(this.conditionRelateInfo));\n this.conditions.push(conditionRelate);\n },\n deleteConditionRelate: function deleteConditionRelate(item) {\n this.$array.removeByValue(this.conditions, item);\n }\n },\n components: {\n 'condition-item': _condition_item2.default\n }\n};\n\n/***/ }),\n/* 678 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _values = __webpack_require__(329);\n\nvar _values2 = _interopRequireDefault(_values);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _target_group = __webpack_require__(1387);\n\nvar _target_group2 = _interopRequireDefault(_target_group);\n\nvar _condition_info_dialog = __webpack_require__(1383);\n\nvar _condition_info_dialog2 = _interopRequireDefault(_condition_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n privilege: false,\n indexId: this.$route.query.indexId,\n indexName: this.$route.query.indexName,\n isConditionInfoVisible: false,\n conditionInfo: {},\n conditionInfoTitle: '',\n conditionOperation: '',\n selectedCluster: '',\n indexNameForSearch: '',\n conditions: [],\n rulesList: [],\n routingTargetGroupsList: {},\n initTargetGroups: [],\n routingTargetGroups: []\n };\n },\n\n methods: {\n sortTargetGroups: function sortTargetGroups(arr) {\n arr.sort(function (a, b) {\n if (a.weight < b.weight) {\n return 1;\n }\n if (a.weight > b.weight) {\n return -1;\n }\n return 0;\n });\n },\n handleAdd: function handleAdd() {\n this.isConditionInfoVisible = true;\n this.conditionInfoTitle = '创建规则';\n this.conditionOperation = 'add';\n this.routingTargetGroups = JSON.parse((0, _stringify2.default)(this.initTargetGroups));\n var conditionAddInfo = {\n name: '',\n targetGroups: [],\n targetGroupsId: [],\n preference: '',\n enable: false,\n conditions: [],\n conditionRelation: 'AND',\n priority: ''\n };\n this.conditionInfo = JSON.parse((0, _stringify2.default)(conditionAddInfo));\n },\n addCondition: function addCondition(item) {\n var addRulesList = JSON.parse((0, _stringify2.default)(this.rulesList));\n if (item.priority === '') {\n addRulesList.push(item);\n } else {\n addRulesList.some(function (element, index) {\n if (element.name === item.priority) {\n addRulesList.splice(index, 0, item);\n return true;\n }\n return false;\n });\n }\n this.updateConditionRequest(addRulesList);\n },\n closeConditionDialog: function closeConditionDialog() {\n this.isConditionInfoVisible = false;\n },\n handleEdit: function handleEdit(row) {\n var _this = this;\n\n this.isConditionInfoVisible = true;\n this.conditionInfoTitle = '编辑规则';\n this.conditionOperation = 'edit';\n this.routingTargetGroups = JSON.parse((0, _stringify2.default)(this.initTargetGroups));\n var targetGroupsId = [];\n row.targetGroups.forEach(function (ele1) {\n targetGroupsId.push(ele1.id);\n _this.routingTargetGroups.forEach(function (ele2) {\n if (ele1.id === ele2.id) {\n _this.$set(ele2, 'weight', ele1.weight);\n _this.$set(ele2, 'position', 'right');\n }\n });\n });\n var conditionEditInfo = {\n name: row.name,\n targetGroups: row.targetGroups,\n targetGroupsId: targetGroupsId,\n preference: row.preference || '',\n enable: row.enable,\n conditionRelation: row.conditionRelation,\n priority: '',\n conditions: row.conditions\n };\n this.conditionInfo = JSON.parse((0, _stringify2.default)(conditionEditInfo));\n },\n editCondition: function editCondition(item) {\n var editRulesList = JSON.parse((0, _stringify2.default)(this.rulesList));\n var editConditionIndex = void 0;\n editRulesList.some(function (element, index) {\n if (element.name === item.name) {\n editConditionIndex = index;\n return true;\n }\n return false;\n });\n if (item.priority === '') {\n editRulesList.splice(editConditionIndex, 1, item);\n } else {\n editRulesList.splice(editConditionIndex, 1);\n editRulesList.some(function (element, index) {\n if (element.name === item.priority) {\n editRulesList.splice(index, 0, item);\n return true;\n }\n return false;\n });\n }\n this.updateConditionRequest(editRulesList);\n },\n updateConditionRequest: function updateConditionRequest(rulesList) {\n var _this2 = this;\n\n var params = {\n indexId: this.indexId,\n indexName: this.indexName,\n rules: rulesList\n };\n this.loading = true;\n this.$http.post('/index/routing/rule/update.json', params).then(function () {\n _this2.$message.successMessage('操作成功', function () {\n _this2.isConditionInfoVisible = false;\n _this2.getRoutingList();\n });\n }).finally(function () {\n _this2.loading = false;\n });\n },\n handleDelete: function handleDelete(row, index) {\n var _this3 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u89C4\\u5219' + row.name + '\\u5417?', function () {\n var deleteRulesList = JSON.parse((0, _stringify2.default)(_this3.rulesList));\n deleteRulesList.splice(index, 1);\n _this3.updateConditionRequest(deleteRulesList);\n });\n },\n getRoutingList: function getRoutingList() {\n var _this4 = this;\n\n var params = {\n indexId: this.indexId,\n indexName: this.indexName\n };\n this.loading = true;\n this.$http.post('/index/routing/list.json', params).then(function (data) {\n _this4.rulesList = data.data.rules;\n _this4.rulesList.forEach(function (ele) {\n _this4.sortTargetGroups(ele.targetGroups);\n });\n var conditionList = [];\n data.data.rules.forEach(function (element) {\n conditionList.push(element.name);\n });\n _this4.conditions = conditionList;\n _this4.routingTargetGroupsList = data.data.routingTargetGroups;\n _this4.initTargetGroups = (0, _values2.default)(data.data.routingTargetGroups).map(function (obj) {\n var rObj = {};\n rObj.id = obj.id;\n rObj.name = obj.name;\n rObj.weight = 1;\n rObj.position = 'left';\n return rObj;\n });\n _this4.privilege = data.privilege;\n }).finally(function () {\n _this4.loading = false;\n });\n }\n },\n created: function created() {\n this.getRoutingList();\n },\n\n filters: {\n translateEnable: function translateEnable(data) {\n var IS_ENABLED = { true: '是', false: '否' };\n return IS_ENABLED[data];\n }\n },\n components: {\n 'target-group': _target_group2.default,\n 'condition-info-dialog': _condition_info_dialog2.default\n }\n};\n\n/***/ }),\n/* 679 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _target_group_item = __webpack_require__(1389);\n\nvar _target_group_item2 = _interopRequireDefault(_target_group_item);\n\nvar _target_group_info_dialog = __webpack_require__(1388);\n\nvar _target_group_info_dialog2 = _interopRequireDefault(_target_group_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['privilege', 'rulesList', 'indexId', 'indexName', 'routingTargetGroupsList'],\n data: function data() {\n return {\n loading: false,\n istargetGroupInfoVisible: false,\n targetGroupInfo: {},\n targetGroupInfoTitle: '',\n targetGroupTree: [],\n targetGroupTreeNoChildren: [],\n selectedShowTreeInfo: 'name'\n };\n },\n\n methods: {\n changeShowTreeInfo: function changeShowTreeInfo(val) {\n this.selectedShowTreeInfo = val;\n },\n handleAdd: function handleAdd() {\n this.istargetGroupInfoVisible = true;\n this.targetGroupInfoTitle = '创建节点集';\n var targetGroupAddInfo = {\n indexId: this.indexId,\n indexName: this.indexName,\n name: '',\n clusterLevel: 0,\n nodes: [],\n clusters: []\n };\n this.targetGroupInfo = JSON.parse((0, _stringify2.default)(targetGroupAddInfo));\n },\n saveOperation: function saveOperation(info) {\n var _this = this;\n\n this.$set(info, 'indexName', this.indexName);\n this.$set(info, 'indexId', this.indexId);\n this.loading = true;\n this.$http.post('/index/routing/target_group/update.json', info).then(function () {\n _this.$emit('get-routing-list');\n }).finally(function () {\n _this.loading = false;\n });\n },\n deleteOperation: function deleteOperation(id) {\n var _this2 = this;\n\n var flag = false;\n this.rulesList.forEach(function (ele) {\n ele.targetGroups.some(function (ele2) {\n if (ele2.id === id) {\n flag = true;\n }\n return flag;\n });\n });\n if (!flag) {\n this.loading = true;\n this.$http.post('/index/routing/target_group/delete.json', { groupId: id }).then(function () {\n _this2.$emit('get-routing-list');\n }).finally(function () {\n _this2.loading = false;\n });\n } else {\n this.$message.errorMessage('此节点集正在使用中,不能删除!');\n }\n },\n operationSuccess: function operationSuccess() {\n this.istargetGroupInfoVisible = false;\n this.$emit('get-routing-list');\n },\n closeTargetGroupDialog: function closeTargetGroupDialog() {\n this.istargetGroupInfoVisible = false;\n },\n getTargetGroupTree: function getTargetGroupTree() {\n var _this3 = this;\n\n var params = {\n indexId: this.indexId,\n indexName: this.indexName\n };\n this.loading = true;\n this.$http.post('/index/routing/target_group/list.json', params).then(function (data) {\n _this3.targetGroupTree = data.map(function (obj) {\n var rObj = {};\n rObj.cluster = obj.cluster;\n rObj.address = obj.address;\n rObj.name = obj.name;\n rObj.disabled = true;\n if (obj.children.length > 0) {\n rObj.children = _this3.setTargetGroupChildrenDisabled(obj.children);\n }\n return rObj;\n });\n _this3.targetGroupTreeNoChildren = data.map(function (obj) {\n var rObj = {};\n rObj.cluster = obj.cluster;\n rObj.address = obj.address;\n rObj.name = obj.name;\n rObj.disabled = true;\n return rObj;\n });\n }).finally(function () {\n _this3.loading = false;\n });\n },\n setTargetGroupChildrenDisabled: function setTargetGroupChildrenDisabled(arr) {\n var disabledTree = arr.map(function (obj) {\n var rObj = {};\n rObj.cluster = obj.cluster;\n rObj.address = obj.address;\n rObj.name = obj.name;\n rObj.state = obj.state;\n rObj.weight = obj.weight;\n rObj.disabled = true;\n return rObj;\n });\n return disabledTree;\n }\n },\n components: {\n 'target-group-info-dialog': _target_group_info_dialog2.default,\n 'target-group-item': _target_group_item2.default\n },\n created: function created() {\n this.getTargetGroupTree();\n }\n};\n\n/***/ }),\n/* 680 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['rulesList', 'targetGroupInfo', 'targetGroupInfoTitle'],\n data: function data() {\n return {\n loading: false,\n isVisible: true,\n rules: {\n name: [{ required: true, message: '节点集名称不能为空', trigger: 'blur' }]\n },\n attrs: [{\n label: '普通级别',\n value: 0\n }, {\n label: '集群级别',\n value: 1\n }, {\n label: '集群级别(主分片优先)',\n value: 3\n }, {\n label: '集群级别(复制分片优先)',\n value: 4\n }, {\n label: '分片动态绑定',\n value: 2\n }, {\n label: '动态分组',\n value: 5\n }]\n };\n },\n\n methods: {\n submitInfo: function submitInfo() {\n var _this = this;\n\n this.$refs.targetGroupInfo.validate(function (valid) {\n if (valid) {\n _this.targetGroupRequest(_this.targetGroupInfo);\n }\n });\n },\n targetGroupRequest: function targetGroupRequest(info) {\n var _this2 = this;\n\n this.loading = true;\n this.$http.post('/index/routing/target_group/update.json', info).then(function () {\n _this2.$message.successMessage('操作成功', function () {\n _this2.$emit('operation-success');\n });\n }).finally(function () {\n _this2.loading = false;\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n }\n};\n\n/***/ }),\n/* 681 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['privilege', 'targetGroupItemInfo', 'targetGroupTree', 'targetGroupTreeNoChildren', 'selectedShowTreeInfo'],\n data: function data() {\n return {\n name: this.targetGroupItemInfo.name,\n isDefaultExpand: true,\n defaultProps: {\n children: 'children',\n label: 'name',\n disabled: 'disabled'\n },\n attrs: [{\n label: '普通级别',\n value: 0\n }, {\n label: '集群级别',\n value: 1\n }, {\n label: '集群级别(主分片优先)',\n value: 3\n }, {\n label: '集群级别(复制分片优先)',\n value: 4\n }, {\n label: '分片动态绑定',\n value: 2\n }, {\n label: '动态分组',\n value: 5\n }],\n editable: false\n };\n },\n\n methods: {\n checkChange: function checkChange(data, isChecked) {\n if (this.targetGroupItemInfo.clusterLevel !== 0) {\n if (isChecked) {\n var arr = [];\n arr.push(data.name);\n this.$refs.mytree.setCheckedKeys(arr);\n }\n }\n },\n handleSave: function handleSave() {\n this.targetGroupItemInfo.name = this.name;\n var targetGroupInfo = JSON.parse((0, _stringify2.default)(this.targetGroupItemInfo));\n if (this.targetGroupItemInfo.clusterLevel === 0) {\n this.getTargetGroupNodes(targetGroupInfo.nodes);\n if (targetGroupInfo.nodes.length > 0) {\n var diff = targetGroupInfo.nodes.some(function (ele) {\n if (ele.cluster !== targetGroupInfo.nodes[0].cluster) {\n return true;\n }\n return false;\n });\n if (diff) {\n this.$message.errorMessage('只能选择某个集群下的节点,请重新选择!');\n } else {\n this.saveInfo(targetGroupInfo);\n }\n }\n } else {\n this.getTargetGroupNodes(targetGroupInfo.clusters);\n this.saveInfo(targetGroupInfo);\n }\n },\n saveInfo: function saveInfo(info) {\n var _this = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u4FDD\\u5B58\\u8282\\u70B9\\u96C6' + this.name + '\\u5417?', function () {\n _this.editable = false;\n _this.$emit('save-operation', info);\n });\n },\n handleEdit: function handleEdit() {\n this.editable = true;\n this.setTreeStatus(this.targetGroupTreeNoChildren, false);\n this.setTreeStatus(this.targetGroupTree, false);\n },\n handleCancel: function handleCancel() {\n this.name = this.targetGroupItemInfo.name;\n if (this.targetGroupItemInfo.clusterLevel === 0) {\n this.$refs.mytree.setCheckedKeys(this.targetGroupItemInfo.nodes);\n } else {\n this.$refs.mytree.setCheckedKeys(this.targetGroupItemInfo.clusters);\n }\n this.editable = false;\n this.setTreeStatus(this.targetGroupTreeNoChildren, true);\n this.setTreeStatus(this.targetGroupTree, true);\n },\n setTreeStatus: function setTreeStatus(arr, boolean) {\n var _this2 = this;\n\n arr.forEach(function (ele) {\n _this2.$set(ele, 'disabled', boolean);\n if (ele.children) {\n ele.children.forEach(function (ele2) {\n _this2.$set(ele2, 'disabled', boolean);\n });\n }\n });\n },\n getTargetGroupNodes: function getTargetGroupNodes(list) {\n list.splice(0, list.length);\n this.$refs.mytree.getCheckedNodes().forEach(function (element) {\n if (!element.children) {\n list.push(element);\n }\n });\n },\n handleDelete: function handleDelete() {\n var _this3 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u8282\\u70B9\\u96C6' + this.targetGroupItemInfo.name + '\\u5417?', function () {\n _this3.$emit('delete-operation', _this3.targetGroupItemInfo.id);\n });\n },\n getNodesName: function getNodesName(clusterName) {\n var arr = [];\n this.targetGroupTree.forEach(function (ele) {\n if (ele.name === clusterName) {\n if (ele.children) {\n ele.children.forEach(function (ele2) {\n arr.push(ele2.name);\n });\n }\n }\n });\n return arr;\n },\n getShardNodes: function getShardNodes(clusterName) {\n var _this4 = this;\n\n var arr = [];\n this.targetGroupTree.forEach(function (ele) {\n if (ele.children) {\n ele.children.forEach(function (ele2) {\n if (_this4.targetGroupItemInfo.nodes) {\n _this4.targetGroupItemInfo.nodes.forEach(function (ele3) {\n if (ele2.cluster === clusterName && ele3 === ele2.address) {\n arr.push(ele2.name);\n }\n });\n }\n });\n }\n });\n return arr;\n },\n renderContent: function renderContent(h, _ref) {\n var data = _ref.data;\n\n if (this.targetGroupItemInfo.clusterLevel === 1 || this.targetGroupItemInfo.clusterLevel === 3 || this.targetGroupItemInfo.clusterLevel === 4) {\n return h('span', [h('el-popover', { props: { placement: 'right', trigger: 'hover' } }, [h('div', this.getNodesName(data.name).map(function (item) {\n return h('div', item);\n })), h('span', { slot: 'reference', style: { 'font-size': '14px', 'margin-right': '5px' } }, this.selectedShowTreeInfo === 'name' ? data.name : data.address)])]);\n } else if (this.targetGroupItemInfo.clusterLevel === 0) {\n return h('span', [h('span', { style: { 'font-size': '14px', 'margin-right': '5px' } }, this.selectedShowTreeInfo === 'name' ? data.name : data.address), h('span', { class: { 'el-tag': data.state === 1, 'el-tag--danger': data.state === 1 } }, data.state === 1 ? '离线' : '')]);\n } else if (this.targetGroupItemInfo.clusterLevel === 5) {\n return h('span', [h('el-popover', { props: { placement: 'right', trigger: 'hover', disabled: data.cluster !== this.targetGroupItemInfo.clusters[0] } }, [h('div', this.targetGroupItemInfo.nodes.map(function (item) {\n return h('div', item);\n })), h('span', { slot: 'reference', style: { 'font-size': '14px', 'margin-right': '5px' } }, this.selectedShowTreeInfo === 'name' ? data.name : data.address)])]);\n }\n return h('span', [h('el-popover', { props: { placement: 'right', trigger: 'hover', disabled: data.cluster !== this.targetGroupItemInfo.clusters[0] } }, [h('div', this.getShardNodes(data.name).map(function (item) {\n return h('div', item);\n })), h('span', { slot: 'reference', style: { 'font-size': '14px', 'margin-right': '5px' } }, this.selectedShowTreeInfo === 'name' ? data.name : data.address)])]);\n }\n },\n computed: {\n myTree: function myTree() {\n if (this.targetGroupItemInfo.clusterLevel !== 0) {\n return this.targetGroupTreeNoChildren;\n }\n return this.targetGroupTree;\n },\n treeCheckedKeys: function treeCheckedKeys() {\n if (this.targetGroupItemInfo.clusterLevel !== 0) {\n return this.targetGroupItemInfo.clusters;\n }\n return this.targetGroupItemInfo.nodes;\n }\n }\n};\n\n/***/ }),\n/* 682 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _timeout_retry_manage = __webpack_require__(1392);\n\nvar _timeout_retry_manage2 = _interopRequireDefault(_timeout_retry_manage);\n\nvar _throttling_manage = __webpack_require__(1391);\n\nvar _throttling_manage2 = _interopRequireDefault(_throttling_manage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n components: {\n 'timeout-retry-manage': _timeout_retry_manage2.default,\n 'throttling-manage': _throttling_manage2.default\n },\n data: function data() {\n return {\n loading: false,\n indexId: this.$route.query.indexId,\n tabActive: 'timeout_retry',\n templateList: [],\n allPrivilege: false\n };\n },\n\n methods: {\n getTemplateList: function getTemplateList() {\n var _this = this;\n\n this.loading = true;\n this.$http.get('/index_template/list.json?indexId=' + this.indexId).then(function (data) {\n _this.templateList = data.list;\n _this.allPrivilege = data.allPrivilege;\n }).finally(function () {\n _this.loading = false;\n });\n }\n },\n created: function created() {\n this.getTemplateList();\n }\n};\n\n/***/ }),\n/* 683 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['templateList', 'allPrivilege'],\n data: function data() {\n return {\n loading: false,\n indexId: this.$route.query.indexId\n };\n },\n\n methods: {\n handleUpdate: function handleUpdate(row) {\n var _this = this;\n\n var params = {\n indexId: this.indexId,\n templateName: row.templateName,\n threshold: row.threshold,\n maxBurstSecs: row.maxBurstSecs\n };\n this.loading = true;\n this.$http.post('/index_template/update.json', params).then(function () {\n _this.$message.successMessage('更新成功', function () {\n _this.$emit('refresh-template');\n });\n }).finally(function () {\n _this.loading = false;\n });\n }\n }\n};\n\n/***/ }),\n/* 684 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['templateList', 'allPrivilege'],\n data: function data() {\n return {\n loading: false,\n indexId: this.$route.query.indexId,\n indexConfigInfo: {},\n activeNames: ['1', '2']\n };\n },\n\n methods: {\n getIndexConfigInfo: function getIndexConfigInfo() {\n var _this = this;\n\n this.loading = true;\n this.$http.get('/index/id.json?indexId=' + this.indexId).then(function (data) {\n _this.indexConfigInfo = (0, _extends3.default)({}, data, {\n slowerThan: data.slowerThan == null ? '200' : data.slowerThan\n });\n }).finally(function () {\n _this.loading = false;\n });\n },\n handleUpdate: function handleUpdate() {\n var _this2 = this;\n\n var params = {\n indexId: this.indexId,\n timeout: this.indexConfigInfo.timeout,\n retry: this.indexConfigInfo.retry,\n slowerThan: this.indexConfigInfo.slowerThan\n };\n this.loading = true;\n this.$http.post('/index/update/timeout_retry.json', params).then(function () {\n _this2.$message.successMessage('索引配置更新成功', function () {\n _this2.getIndexConfigInfo();\n });\n }).finally(function () {\n _this2.loading = false;\n });\n },\n handleTemplateUpdate: function handleTemplateUpdate(row) {\n var _this3 = this;\n\n var params = {\n indexId: this.indexId,\n templateName: row.templateName,\n timeout: row.timeout,\n retry: row.retry\n };\n this.loading = true;\n this.$http.post('/index_template/update.json', params).then(function () {\n _this3.$message.successMessage('模板配置更新成功', function () {\n _this3.$emit('refresh-template');\n });\n }).finally(function () {\n _this3.loading = false;\n });\n }\n },\n created: function created() {\n this.getIndexConfigInfo();\n }\n};\n\n/***/ }),\n/* 685 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['templateAddInfo'],\n data: function data() {\n return {\n loading: false,\n isTemplateAddVisible: true,\n rules: {\n templateName: [{ required: true, message: '请输入模板名称', trigger: 'blur' }],\n type: [{ required: true, message: '请输入类型', trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n submitInfo: function submitInfo() {\n var _this = this;\n\n this.$refs.templateAddInfo.validate(function (valid) {\n if (valid) {\n _this.loading = true;\n _this.$http.post('/index_template/add.json', _this.templateAddInfo).then(function () {\n _this.$message.successMessage('新增模板成功', function () {\n _this.$emit('submit-close-dialog', _this.templateAddInfo.templateName);\n });\n }).finally(function () {\n _this.loading = false;\n });\n }\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n this.$refs.templateAddInfo.resetFields();\n }\n }\n};\n\n/***/ }),\n/* 686 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['indexId', 'modifiedTemplateList'],\n data: function data() {\n return {\n batchSubmitInfo: {\n approveInfo: ''\n },\n rules: {\n approveInfo: [{ required: true, message: '请输入描述', trigger: 'blur' }]\n },\n isBatchSubmitVisible: true,\n templateSelected: [],\n batchSubmitList: []\n };\n },\n\n methods: {\n closeDialog: function closeDialog() {\n this.$emit('close-batch-submit-dialog');\n },\n submitTemplate: function submitTemplate() {\n var _this = this;\n\n if (this.templateSelected.length <= 0) {\n this.$message.errorMessage('请选择要提交审批的模板!');\n return;\n }\n var tplIds = this.templateSelected.join(',');\n this.$refs.batchSubmitInfo.validate(function (valid) {\n if (valid) {\n var dataParams = {\n indexId: _this.indexId,\n templateIds: tplIds,\n historyDesc: _this.batchSubmitInfo.approveInfo\n };\n _this.$http.post('/index_template/batch/approve.json', dataParams).then(function () {\n _this.$message.successMessage('提交成功,请在模板变更中查看模板审批状态', function () {\n _this.$emit('close-batch-submit-dialog');\n });\n }).finally(function () {});\n }\n });\n }\n },\n created: function created() {\n var arr = JSON.parse((0, _stringify2.default)(this.modifiedTemplateList));\n this.batchSubmitList = arr.map(function (obj) {\n var rObj = {};\n rObj.key = obj.id;\n rObj.label = obj.templateName;\n return rObj;\n });\n }\n};\n\n/***/ }),\n/* 687 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['profileData'],\n data: function data() {\n return {\n defaultProps: {\n children: 'children',\n label: 'type'\n }\n };\n },\n\n methods: {\n renderContent: function renderContent(h, _ref) {\n var data = _ref.data;\n\n return h('span', [h('span', { class: { 'profile-tree-type': true } }, data.type), h('span', { class: { 'profile-tree-desc': true }, attrs: { title: data.description } }, data.description.length > 30 ? data.description.substring(0, 30) + '...' : data.description), h('span', { class: { 'pull-right': true, 'profile-tree-time': true } }, Number(data.time.replace(/([0-9]+\\.[0-9]*)ms/, '$1')).toFixed(3) + 'ms')]);\n }\n }\n};\n\n/***/ }),\n/* 688 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['indexId', 'templateInfo'],\n data: function data() {\n return {\n loading: false,\n indexInfo: {}\n };\n },\n\n methods: {\n getIndexInfo: function getIndexInfo() {\n var _this = this;\n\n this.loading = true;\n this.$http.get('/index/id.json?indexId=' + this.indexId).then(function (data) {\n _this.indexInfo = JSON.parse((0, _stringify2.default)(data));\n }).finally(function () {\n _this.loading = false;\n });\n },\n handleUpdate: function handleUpdate() {\n var _this2 = this;\n\n var params = {\n indexId: this.indexId,\n templateName: this.templateInfo.templateName,\n timeout: this.templateInfo.timeout,\n retry: this.templateInfo.retry\n };\n this.loading = true;\n this.$http.post('/index_template/update.json', params).then(function () {\n _this2.$message.successMessage('更新成功');\n }).finally(function () {\n _this2.loading = false;\n });\n }\n },\n created: function created() {\n this.getIndexInfo();\n }\n};\n\n/***/ }),\n/* 689 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['metadataList'],\n data: function data() {\n return {\n loading: false,\n visible: true,\n data: {\n from: { isChecked: false, value: '0' },\n size: { isChecked: false, value: '100' },\n sort: { isChecked: false, isVariable: true },\n source: { isChecked: false, isVariable: true }\n },\n templateContent: {},\n metadatas: [],\n queryBody: ''\n };\n },\n\n methods: {\n handleExecute: function handleExecute() {\n var _this = this;\n\n this.queryBody = '';\n var obj = {};\n if (this.data.from.isChecked) {\n this.$set(obj, 'from', '<%{{from}}{{^from}}' + this.data.from.value + '{{/from}}%>');\n }\n if (this.data.size.isChecked) {\n this.$set(obj, 'size', '<%{{size}}{{^size}}' + this.data.size.value + '{{/size}}%>');\n }\n if (this.data.sort.isChecked) {\n if (this.data.sort.isVariable) {\n this.$set(obj, '<%{{#sort}}<--', 'TAG-->');\n this.$set(obj, 'sort', '<%{{#toJson}}sort.list{{/toJson}}%>');\n this.$set(obj, '<%{{/sort}}<--', 'TAG-->');\n } else {\n this.$set(obj, 'sort', [{ id: 'desc' }]);\n }\n }\n if (this.data.source.isChecked) {\n if (this.data.source.isVariable) {\n this.$set(obj, '<%{{#source_fields}}<--', 'TAG-->');\n this.$set(obj, '_source', '<%{{#toJson}}source_fields.list{{/toJson}}%>');\n this.$set(obj, '<%{{/source_fields}}<--', 'TAG-->');\n } else {\n this.$set(obj, '_source', ['id', 'update_time']);\n }\n }\n var isQuery = this.metadatas.some(function (ele) {\n return ele.queryWay;\n });\n if (isQuery) {\n this.$set(obj, 'query', { bool: { filter: ['QUERY-BODY'] } });\n var resultArray = this.metadatas.filter(function (e) {\n return e.queryWay !== '';\n });\n resultArray.forEach(function (ele, index) {\n var frontSpace = '{}\\n ';\n var endNewline = '\\n';\n if (index > 0) {\n frontSpace = ' ';\n }\n if (index === resultArray.length - 1) {\n endNewline = '';\n }\n switch (ele.queryWay) {\n case 'term':\n _this.queryBody += frontSpace + '{{#' + ele.dbFieldName + '}}\\n' + ' ,{\\n' + (' \"term\":{\"' + ele.dbFieldName + '\":\"{{' + ele.dbFieldName + '}}\"}\\n') + ' }\\n' + (' {{/' + ele.dbFieldName + '}}' + endNewline);\n break;\n case 'multiTerm':\n _this.queryBody += frontSpace + '{{#' + ele.dbFieldName + '}}\\n' + ' ,{\\n' + (' \"terms\":{ \"' + ele.dbFieldName + '\":{{#toJson}}' + ele.dbFieldName + '.list{{/toJson}} }\\n') + ' }\\n' + (' {{/' + ele.dbFieldName + '}}' + endNewline);\n break;\n case 'range':\n _this.queryBody += frontSpace + '{{#' + ele.dbFieldName + '_min}}\\n' + ' ,{\\n' + ' \"range\": {\\n' + (' \"' + ele.dbFieldName + '\": {\\n') + (' \"from\": \"{{' + ele.dbFieldName + '_min}}\",\\n') + (' \"to\": \"{{' + ele.dbFieldName + '_max}}\"\\n') + ' }\\n' + ' }\\n' + ' }\\n' + (' {{/' + ele.dbFieldName + '_min}}' + endNewline);\n break;\n case 'script':\n _this.queryBody += frontSpace + '{{#' + ele.dbFieldName + '}}\\n' + ' ,{\\n' + ' \"script\": {\\n' + ' \"script\": {\\n' + ' \"lang\": \"painless\",\\n' + (' \"inline\": \"return doc[\\'' + ele.dbFieldName + '\\'].value > 0\"\\n') + ' }\\n' + ' }\\n' + ' }\\n' + (' {{/' + ele.dbFieldName + '}' + endNewline);\n break;\n default:\n break;\n }\n });\n }\n var expr1 = /\"<%/g;\n var expr2 = /%>\"/g;\n var expr3 = /<--\": \"TAG-->\",|<--\": \"TAG-->\"/g;\n var expr4 = /\"QUERY-BODY\"/g;\n this.templateContent = (0, _stringify2.default)(obj, undefined, 2);\n this.templateContent = this.templateContent.replace(expr1, '').replace(expr2, '').replace(expr3, '').replace(expr4, this.queryBody);\n },\n handleClose: function handleClose() {\n this.$emit('close-dialog');\n },\n handleSave: function handleSave() {\n this.$emit('cover-content', this.templateContent);\n }\n },\n created: function created() {\n this.metadatas = this.metadataList.map(function (obj) {\n var rObj = (0, _extends3.default)({}, obj);\n rObj.queryWay = '';\n return rObj;\n });\n }\n};\n\n/***/ }),\n/* 690 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _entries = __webpack_require__(224);\n\nvar _entries2 = _interopRequireDefault(_entries);\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\n__webpack_require__(193);\n\nvar _profile_content = __webpack_require__(1395);\n\nvar _profile_content2 = _interopRequireDefault(_profile_content);\n\nvar _template_test = __webpack_require__(1401);\n\nvar _template_test2 = _interopRequireDefault(_template_test);\n\nvar _service_governance = __webpack_require__(1396);\n\nvar _service_governance2 = _interopRequireDefault(_service_governance);\n\nvar _template_save_edit_dialog = __webpack_require__(1400);\n\nvar _template_save_edit_dialog2 = _interopRequireDefault(_template_save_edit_dialog);\n\nvar _template_config_dialog = __webpack_require__(1397);\n\nvar _template_config_dialog2 = _interopRequireDefault(_template_config_dialog);\n\nvar _template_insert_dialog = __webpack_require__(1399);\n\nvar _template_insert_dialog2 = _interopRequireDefault(_template_insert_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['indexId', 'indexName', 'metadataList', 'clusters', 'isAllPrivilege', 'templateInfo', 'macroList', 'temPanelHeight'],\n data: function data() {\n return {\n loading: false,\n clusterId: this.clusters[0].id,\n activeTab: 'edit',\n selectedMacro: '',\n resultContent: '',\n explainContent: '',\n apiContent: {},\n paramsInfo: [],\n historyVersionList: [],\n isShowHistoryVersion: false,\n isVersionContentVisible: false,\n versionDiffInfo: {},\n datasourceList: {},\n datasourceId: '',\n sql: '',\n isEditSaveVisible: false,\n isTemplateConfigVisible: false,\n isTemplateInsertVisible: false,\n profileData: {\n profile: {\n shards: []\n }\n },\n isProfileVisible: false\n };\n },\n\n methods: {\n copySuccess: function copySuccess() {\n this.$message.success('已复制内容到剪贴板!');\n },\n copyError: function copyError(e) {\n this.$message.errorMessage('\\u590D\\u5236appSecret\\u5931\\u8D25\\uFF01' + e);\n },\n queryProfile: function queryProfile() {\n var _this = this;\n\n var params = {\n indexId: this.indexId,\n templateName: this.templateInfo.templateName,\n params: this.templateInfo.params,\n clusterId: this.clusterId,\n profile: true\n };\n this.loading = true;\n this.$http.post('/index_template/debug.json', params).then(function (data) {\n if (data.substring(2, 7) === 'error') {\n _this.resultContent = (0, _stringify2.default)(JSON.parse(data), undefined, 2);\n } else {\n var resultData = JSON.parse(data);\n _this.profileData.profile.shards = resultData.profile.shards.map(function (obj) {\n var rObj = (0, _extends3.default)({}, obj);\n var totalNum = obj.searches[0].query.reduce(function (accumulator, currentValue) {\n return accumulator + Number(currentValue.time.replace(/([0-9]+\\.[0-9]*)ms/, '$1'));\n }, 0);\n rObj.totalTime = totalNum.toFixed(3);\n return rObj;\n });\n _this.profileData.profile.shards.sort(function (a, b) {\n return Number(b.totalTime) - Number(a.totalTime);\n });\n _this.isProfileVisible = true;\n }\n }).finally(function () {\n _this.loading = false;\n });\n },\n insertTemplate: function insertTemplate() {\n this.isTemplateInsertVisible = true;\n },\n insertTemplateContent: function insertTemplateContent(content) {\n this.$refs.aceEditor1.editor.insert(content);\n this.closeTemplateInsertDialog();\n },\n closeTemplateInsertDialog: function closeTemplateInsertDialog() {\n this.isTemplateInsertVisible = false;\n },\n setCustomTemplate: function setCustomTemplate() {\n this.isTemplateConfigVisible = true;\n },\n coverConfigTemplate: function coverConfigTemplate(data) {\n this.templateInfo.content = data;\n this.closeTemplateConfigDialog();\n },\n closeTemplateConfigDialog: function closeTemplateConfigDialog() {\n this.isTemplateConfigVisible = false;\n },\n initSql: function initSql(dsId) {\n var tb = this.datasourceList[dsId].split('/')[2];\n this.sql = 'select * from ' + tb;\n },\n tabClick: function tabClick() {\n var _this2 = this;\n\n if (this.activeTab === 'api') {\n var params = {\n indexId: this.indexId,\n templateName: this.templateInfo.templateName\n };\n this.loading = true;\n this.$http.post('/index_template/genapi.json', params).then(function (data) {\n _this2.apiContent = data;\n }).finally(function () {\n _this2.loading = false;\n });\n } else if (this.activeTab === 'test') {\n var _params = {\n indexId: this.indexId,\n templateName: this.templateInfo.templateName\n };\n this.loading = true;\n this.$http.post('/index_template/performance_script/param.json', _params).then(function (data) {\n _this2.paramsInfo = data.map(function (obj) {\n var rObj = {};\n rObj.paramName = obj.paramName;\n rObj.include = false;\n rObj.valueType = '1';\n rObj.value = '';\n return rObj;\n });\n }).finally(function () {\n _this2.loading = false;\n });\n }\n },\n insertMacro: function insertMacro() {\n if (this.selectedMacro) {\n this.$refs.aceEditor1.editor.insert(this.insertContent);\n }\n },\n changeEditContent: function changeEditContent(val) {\n if (this.templateInfo.content !== val) {\n this.templateInfo.content = val;\n }\n },\n changeDebugContent: function changeDebugContent(val) {\n if (this.templateInfo.params !== val) {\n this.templateInfo.params = val;\n }\n },\n changeSqlContent: function changeSqlContent(val) {\n if (this.sql !== val) {\n this.sql = val;\n }\n },\n handleExecute: function handleExecute() {\n var _this3 = this;\n\n var dataParams = {\n indexId: this.indexId,\n sql: this.sql,\n datasourceId: this.datasourceId\n };\n this.loading = true;\n this.$http.post('/index_template/execute.json', dataParams).then(function (data) {\n try {\n _this3.explainContent = (0, _stringify2.default)(data, undefined, 2);\n } catch (e) {\n _this3.explainContent = '\\u89E3\\u6790\\u9519\\u8BEF: ' + data.result;\n }\n }).finally(function () {\n _this3.loading = false;\n });\n },\n handleResetParams: function handleResetParams() {\n this.templateInfo.params = (0, _stringify2.default)(JSON.parse(this.templateInfo.resetParams), undefined, 2);\n },\n handleFormatParams: function handleFormatParams() {\n var p = JSON.parse(this.templateInfo.params);\n if (p.params && p.params !== null) {\n this.templateInfo.params = (0, _stringify2.default)(p.params, undefined, 2);\n } else {\n this.templateInfo.params = (0, _stringify2.default)(p, undefined, 2);\n }\n },\n handleExplain: function handleExplain() {\n var _this4 = this;\n\n var dataParams = {\n sql: this.sql,\n clusterId: this.clusterId\n };\n this.loading = true;\n this.$http.post('/index_template/explain.json', dataParams).then(function (data) {\n try {\n _this4.explainContent = (0, _stringify2.default)(JSON.parse(data), undefined, 2);\n } catch (e) {\n _this4.explainContent = '\\u89E3\\u6790\\u9519\\u8BEF: ' + data.result;\n }\n }).finally(function () {\n _this4.loading = false;\n });\n },\n handleDelete: function handleDelete() {\n var _this5 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u6A21\\u677F' + this.templateInfo.templateName + '\\u5417?', function () {\n var params = {\n indexId: _this5.indexId,\n indexName: _this5.indexName,\n templateId: _this5.templateInfo.id,\n templateName: _this5.templateInfo.templateName\n };\n _this5.loading = true;\n _this5.$http.post('/index_template/delete.json', params).then(function () {\n _this5.$message.successMessage('删除成功', function () {\n _this5.$emit('close-delete');\n });\n }).finally(function () {\n _this5.loading = false;\n });\n });\n },\n handleSave: function handleSave() {\n var _this6 = this;\n\n var params = {\n indexId: this.indexId,\n templateName: this.templateInfo.templateName,\n content: this.templateInfo.content,\n params: this.templateInfo.params\n };\n this.loading = true;\n this.$http.post('/index_template/update.json', params).then(function () {\n _this6.$message.successMessage('保存成功', function () {\n _this6.$emit('close-edit');\n });\n }).finally(function () {\n _this6.loading = false;\n });\n },\n handleApprove: function handleApprove() {\n this.isEditSaveVisible = true;\n },\n closeEditSaveDialog: function closeEditSaveDialog() {\n this.isEditSaveVisible = false;\n },\n editSaveSuccess: function editSaveSuccess() {\n this.isEditSaveVisible = false;\n this.$emit('close-edit');\n this.getHistoryList();\n },\n handleRender: function handleRender() {\n var _this7 = this;\n\n var dataParams = {\n indexId: this.indexId,\n templateName: this.templateInfo.templateName,\n params: this.templateInfo.params,\n clusterId: this.clusterId\n };\n this.loading = true;\n this.$http.post('/index_template/render.json', dataParams).then(function (data) {\n try {\n _this7.resultContent = _this7.$common.JSONbigStringifyFormat(_this7.$common.JSONbigParse(data));\n } catch (e) {\n _this7.resultContent = '\\u89E3\\u6790\\u9519\\u8BEF: ' + data;\n }\n }).finally(function () {\n _this7.isProfileVisible = false;\n _this7.loading = false;\n });\n },\n handleDebug: function handleDebug() {\n var _this8 = this;\n\n var dataParams = {\n indexId: this.indexId,\n templateName: this.templateInfo.templateName,\n params: this.templateInfo.params,\n clusterId: this.clusterId\n };\n this.loading = true;\n this.$http.post('/index_template/debug.json', dataParams).then(function (data) {\n _this8.resultContent = _this8.$common.JSONbigStringifyFormat(_this8.$common.JSONbigParse(data));\n }).finally(function () {\n _this8.isProfileVisible = false;\n _this8.loading = false;\n });\n },\n handleHistoryVersion: function handleHistoryVersion() {\n this.isShowHistoryVersion = !this.isShowHistoryVersion;\n if (this.isShowHistoryVersion) {\n this.getHistoryList();\n }\n },\n handleVersionDialog: function handleVersionDialog(row) {\n this.isVersionContentVisible = true;\n this.versionDiffInfo.left = row.content;\n this.versionDiffInfo.right = this.templateInfo.content;\n },\n closeVersionContentDialog: function closeVersionContentDialog() {\n this.isVersionContentVisible = false;\n },\n overwriteVersion: function overwriteVersion() {\n this.templateInfo.content = this.versionDiffInfo.left;\n this.isVersionContentVisible = false;\n },\n getHistoryList: function getHistoryList() {\n var _this9 = this;\n\n this.loading = true;\n this.$http.get('/index_template/hislist.json?templateId=' + this.templateInfo.id).then(function (data) {\n _this9.historyVersionList = data;\n }).finally(function () {\n _this9.loading = false;\n });\n },\n getDataSourceList: function getDataSourceList() {\n var _this10 = this;\n\n return this.$http.post('/index/loadDbList.json', { indexId: this.indexId }).then(function (data) {\n if (data) {\n _this10.datasourceList = data;\n if (_this10.datasourceList.length !== 0) {\n _this10.datasourceId = (0, _entries2.default)(data)[0][0];\n }\n }\n });\n },\n init: function init() {\n var _this11 = this;\n\n this.loading = true;\n _promise2.default.all([this.getDataSourceList()]).then(function () {}).finally(function () {\n _this11.loading = false;\n });\n }\n },\n components: {\n 'template-test': _template_test2.default,\n 'profile-content': _profile_content2.default,\n 'template-save-edit-dialog': _template_save_edit_dialog2.default,\n 'service-governance': _service_governance2.default,\n 'template-config-dialog': _template_config_dialog2.default,\n 'template-insert-dialog': _template_insert_dialog2.default\n },\n created: function created() {\n this.init();\n },\n\n computed: {\n insertContent: function insertContent() {\n return '##__' + this.selectedMacro + '__##';\n },\n eidtorId: function eidtorId() {\n return this.templateInfo.templateName + '_edit';\n },\n debugId: function debugId() {\n return this.templateInfo.templateName + '_debug';\n },\n isMacroVisible: function isMacroVisible() {\n return this.templateInfo.type === 0;\n },\n historyVersionBtn: function historyVersionBtn() {\n return this.isShowHistoryVersion ? '隐藏历史版本' : '历史版本';\n },\n isEditOperate: function isEditOperate() {\n return this.activeTab === 'edit';\n },\n templateType: function templateType() {\n if (this.templateInfo.type === 0) {\n return '宏';\n }\n return '模板';\n }\n }\n};\n\n/***/ }),\n/* 691 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['metadataList'],\n data: function data() {\n return {\n loading: false,\n visible: true,\n info: {\n field: 'from',\n from: 0,\n size: 100,\n sort: true,\n source: true\n },\n metadatas: [],\n resultContent: ''\n };\n },\n\n methods: {\n handleInsert: function handleInsert() {\n var _this = this;\n\n this.$refs.info.validate(function (valid) {\n if (valid) {\n if (_this.info.field === 'from') {\n _this.resultContent = '\"from\": {{from}}{{^from}}' + _this.info.from + '{{/from}},';\n _this.insertContent();\n } else if (_this.info.field === 'size') {\n _this.resultContent = '\"size\": {{size}}{{^size}}' + _this.info.size + '{{/size}},';\n _this.insertContent();\n } else if (_this.info.field === 'sort') {\n if (_this.info.sort) {\n _this.resultContent = '{{#sort}}\\n \"sort\": {{#toJson}}sort.list{{/toJson}},\\n {{/sort}}';\n } else {\n _this.resultContent = '\"sort\": [{\"id\":\"desc\"}],';\n }\n _this.insertContent();\n } else if (_this.info.field === 'source') {\n if (_this.info.source) {\n _this.resultContent = '{{#source_fields}}\\n \"_source\": {{#toJson}}source_fields.list{{/toJson}},\\n {{/source_fields}}';\n } else {\n _this.resultContent = '\"_source\": [{\"id\",\"update_time\"}],';\n }\n _this.insertContent();\n } else {\n var isQuery = _this.metadatas.some(function (ele) {\n return ele.queryWay;\n });\n if (isQuery) {\n var resultArray = _this.metadatas.filter(function (e) {\n return e.queryWay !== '';\n });\n resultArray.forEach(function (ele, index) {\n var frontSpace = '';\n var endNewline = '\\n';\n if (index > 0) {\n frontSpace = ' ';\n }\n if (index === resultArray.length - 1) {\n endNewline = '';\n }\n switch (ele.queryWay) {\n case 'term':\n _this.resultContent += frontSpace + '{{#' + ele.dbFieldName + '}}\\n' + ' ,{\\n' + (' \"term\":{\"' + ele.dbFieldName + '\":\"{{' + ele.dbFieldName + '}}\"}\\n') + ' }\\n' + (' {{/' + ele.dbFieldName + '}}' + endNewline);\n break;\n case 'multiTerm':\n _this.resultContent += frontSpace + '{{#' + ele.dbFieldName + '}}\\n' + ' ,{\\n' + (' \"terms\":{ \"' + ele.dbFieldName + '\":{{#toJson}}' + ele.dbFieldName + '.list{{/toJson}} }\\n') + ' }\\n' + (' {{/' + ele.dbFieldName + '}}' + endNewline);\n break;\n case 'range':\n _this.resultContent += frontSpace + '{{#' + ele.dbFieldName + '_min}}\\n' + ' ,{\\n' + ' \"range\": {\\n' + (' \"' + ele.dbFieldName + '\": {\\n') + (' \"from\": \"{{' + ele.dbFieldName + '_min}}\",\\n') + (' \"to\": \"{{' + ele.dbFieldName + '_max}}\"\\n') + ' }\\n' + ' }\\n' + ' }\\n' + (' {{/' + ele.dbFieldName + '_min}}' + endNewline);\n break;\n case 'script':\n _this.resultContent += frontSpace + '{{#' + ele.dbFieldName + '}}\\n' + ' ,{\\n' + ' \"script\": {\\n' + ' \"script\": {\\n' + ' \"lang\": \"painless\",\\n' + (' \"inline\": \"return doc[\\'' + ele.dbFieldName + '\\'].value > 0\"\\n') + ' }\\n' + ' }\\n' + ' }\\n' + (' {{/' + ele.dbFieldName + '}' + endNewline);\n break;\n default:\n break;\n }\n });\n _this.insertContent();\n } else {\n _this.$message.errorMessage('还未选择任何query字段,请勾选!');\n }\n }\n }\n });\n },\n insertContent: function insertContent() {\n this.$emit('insert-template-content', this.resultContent);\n },\n handleClose: function handleClose() {\n this.$emit('close-dialog');\n }\n },\n created: function created() {\n this.metadatas = this.metadataList.map(function (obj) {\n var rObj = (0, _extends3.default)({}, obj);\n rObj.queryWay = '';\n return rObj;\n });\n }\n};\n\n/***/ }),\n/* 692 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['indexId', 'templateInfo'],\n data: function data() {\n return {\n loading: false,\n isEditSaveVisible: true,\n editSaveInfo: {\n historyDesc: ''\n },\n rules: {\n historyDesc: [{ required: true, message: '请输入描述', trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n handleSubmit: function handleSubmit() {\n var _this = this;\n\n this.$refs.editSaveInfo.validate(function (valid) {\n if (valid) {\n var dataParams = {\n indexId: _this.indexId,\n templateName: _this.templateInfo.templateName,\n content: _this.templateInfo.content,\n params: _this.templateInfo.params,\n historyDesc: _this.editSaveInfo.historyDesc\n };\n _this.loading = true;\n _this.$http.post('/index_template/approve.json', dataParams).then(function () {\n _this.$message.successMessage('提交成功,请在模板变更中查看模板审批状态', function () {\n _this.$emit('edit-save-success');\n });\n }).finally(function () {\n _this.loading = false;\n });\n }\n });\n },\n handleClose: function handleClose() {\n this.$emit('close-edit-save-dialog');\n }\n }\n};\n\n/***/ }),\n/* 693 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _template_test_data_source = __webpack_require__(1402);\n\nvar _template_test_data_source2 = _interopRequireDefault(_template_test_data_source);\n\nvar _template_test_upload = __webpack_require__(1404);\n\nvar _template_test_upload2 = _interopRequireDefault(_template_test_upload);\n\nvar _template_test_params = __webpack_require__(1403);\n\nvar _template_test_params2 = _interopRequireDefault(_template_test_params);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['indexId', 'templateName', 'paramsInfo', 'temPanelHeight'],\n data: function data() {\n return {\n addDataSource: [{\n paramNameDef: '',\n indexId: this.indexId,\n templateName: this.templateName\n }],\n dataSource: []\n };\n },\n\n methods: {\n templateTestUploadSuccess: function templateTestUploadSuccess(data) {\n this.dataSource.push(data);\n }\n },\n components: {\n 'template-test-data-source': _template_test_data_source2.default,\n 'template-test-upload': _template_test_upload2.default,\n 'template-test-params': _template_test_params2.default\n }\n};\n\n/***/ }),\n/* 694 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['indexId', 'templateName', 'dataSource'],\n data: function data() {\n return {\n loading: false\n };\n },\n\n methods: {\n handleSave: function handleSave(row) {\n var _this = this;\n\n if (row.editParamNameDef) {\n if (row.editParamNameDef.indexOf(',') <= 0) {\n var dataParams = {\n indexId: this.indexId,\n templateName: this.templateName,\n fileName: row.fileName,\n paramNameDef: row.editParamNameDef\n };\n this.loading = true;\n this.$http.post('/index_template/performance_script/update.json', dataParams).then(function () {\n _this.$message.successMessage('保存成功', function () {\n _this.$set(row, 'paramNameDef', row.editParamNameDef);\n _this.$set(row, 'editParamNameDef', '');\n });\n }).finally(function () {\n _this.loading = false;\n });\n } else {\n this.$message.errorMessage('请用;符号分隔参数');\n }\n } else {\n this.$message.errorMessage('参数不能为空!');\n }\n },\n handleDelete: function handleDelete(row) {\n var _this2 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u6587\\u4EF6' + row.fileName + '\\u5417?', function () {\n var dataParams = {\n indexId: _this2.indexId,\n templateName: _this2.templateName,\n fileName: row.fileName\n };\n _this2.loading = true;\n _this2.$http.post('/index_template/performance_script/delete.json', dataParams).then(function () {\n _this2.$message.successMessage('删除成功', function () {\n _this2.$array.removeByValue(_this2.dataSource, row);\n });\n }).finally(function () {\n _this2.loading = false;\n });\n });\n }\n }\n};\n\n/***/ }),\n/* 695 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['indexId', 'templateName', 'paramsInfo', 'dataSource', 'temPanelHeight'],\n data: function data() {\n return {};\n },\n\n methods: {\n valueTypeChange: function valueTypeChange(row) {\n this.$set(row, 'value', '');\n },\n handleGen: function handleGen() {\n var _this = this;\n\n var arr = [];\n this.paramsInfo.forEach(function (element) {\n if (element.include) {\n arr.push(element);\n }\n });\n\n var isError = arr.some(function (element) {\n if (!element.value) {\n _this.$message.errorMessage('数据源参数映射不能为空!');\n return true;\n }\n return false;\n });\n\n if (arr.length) {\n if (!isError) {\n var dataParams = {\n indexId: this.indexId,\n templateName: this.templateName,\n params: arr\n };\n var dataParamsJson = encodeURIComponent((0, _stringify2.default)(dataParams));\n window.location.href = '/pallas/index_template/performance_script/gen.json?params=' + dataParamsJson;\n }\n } else {\n this.$message.errorMessage('请至少选择一个参数!');\n }\n }\n },\n computed: {\n paramValues: function paramValues() {\n var _this2 = this;\n\n var arr = [];\n this.dataSource.forEach(function (element1) {\n if (element1.paramNameDef.indexOf(';') <= 0) {\n arr.push(element1.paramNameDef);\n } else {\n var arr1 = element1.paramNameDef.split(';');\n arr1.forEach(function (element2) {\n arr.push(element2);\n });\n }\n });\n this.paramsInfo.forEach(function (element2) {\n if (element2.valueType === '2') {\n var isFind = arr.some(function (elm) {\n if (elm === element2.value) {\n return true;\n }\n return false;\n });\n if (!isFind) {\n _this2.$set(element2, 'value', '');\n }\n }\n });\n return arr;\n }\n }\n};\n\n/***/ }),\n/* 696 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['addDataSource', 'dataSource'],\n data: function data() {\n return {};\n },\n\n methods: {\n handleUpload: function handleUpload() {\n this.$refs.upload.clearFiles();\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleError: function handleError(err) {\n this.$message.errorMessage('\\u4E0A\\u4F20\\u5931\\u8D25: ' + err);\n },\n handleRemove: function handleRemove() {\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleAdd: function handleAdd(row) {\n var _this = this;\n\n if (row.paramNameDef && this.$refs.upload.uploadFiles.length) {\n if (row.paramNameDef.indexOf(',') <= 0) {\n if (row.paramNameDef.indexOf(';') <= 0) {\n if (this.$array.isContainValue(this.paramValues, row.paramNameDef)) {\n this.$message.errorMessage('不允许相同参数名');\n } else {\n this.$refs.upload.submit();\n }\n } else {\n var arr = row.paramNameDef.split(';');\n var isError = arr.some(function (element) {\n if (_this.$array.isContainValue(_this.paramValues, element)) {\n _this.$message.errorMessage('不允许相同参数名');\n return true;\n }\n return false;\n });\n if (!isError) {\n this.$refs.upload.submit();\n }\n }\n } else {\n this.$message.errorMessage('请用;符号分隔参数');\n }\n } else {\n this.$message.errorMessage('参数和文件不能为空');\n }\n },\n handleSuccess: function handleSuccess(response, file) {\n var _this2 = this;\n\n if (response.status === 200) {\n this.$message.confirmMessage('上传成功!', function () {\n var dataSourceRowInfo = {};\n dataSourceRowInfo.paramNameDef = JSON.parse((0, _stringify2.default)(_this2.addDataSource[0].paramNameDef));\n dataSourceRowInfo.fileName = JSON.parse((0, _stringify2.default)(file.name));\n _this2.$emit('template-test-upload-success', dataSourceRowInfo);\n\n _this2.$refs.upload.clearFiles();\n _this2.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n _this2.addDataSource[0].paramNameDef = '';\n });\n } else {\n this.$message.errorMessage(response.description);\n }\n }\n },\n computed: {\n paramValues: function paramValues() {\n var arr = [];\n this.dataSource.forEach(function (element1) {\n if (element1.paramNameDef.indexOf(';') <= 0) {\n arr.push(element1.paramNameDef);\n } else {\n var arr1 = element1.paramNameDef.split(';');\n arr1.forEach(function (element2) {\n arr.push(element2);\n });\n }\n });\n return arr;\n }\n }\n};\n\n/***/ }),\n/* 697 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['indexId', 'templateList'],\n data: function data() {\n return {\n isTemplateExportVisible: true,\n templateSelected: [],\n exportTemplateList: []\n };\n },\n\n methods: {\n closeDialog: function closeDialog() {\n this.$emit('close-export-dialog');\n },\n sumbitExportTemplate: function sumbitExportTemplate() {\n if (this.templateSelected.length > 0) {\n var templateIds = this.templateSelected.join(',');\n window.location.href = '/pallas/index_template/export.json?indexId=' + this.indexId + '&templateIds=' + templateIds;\n } else {\n this.$message.errorMessage('请选择要导出的模板!');\n }\n }\n },\n created: function created() {\n var arr = JSON.parse((0, _stringify2.default)(this.templateList));\n this.exportTemplateList = arr.map(function (obj) {\n var rObj = {};\n rObj.key = obj.id;\n rObj.label = obj.templateName;\n return rObj;\n });\n }\n};\n\n/***/ }),\n/* 698 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['indexId', 'templateImportTitle', 'templateImportUrl'],\n data: function data() {\n return {\n loading: false,\n isTemplateImportVisible: true,\n importWay: 'localUpload',\n rules: {\n updateDesc: [{ required: true, message: '请输入变更描述', trigger: 'blur' }]\n },\n templateSelected: [],\n importTemplateList: [],\n fileList: [],\n importInfo: {\n updateDesc: ''\n },\n indexSelected: '',\n indexAllList: []\n };\n },\n\n methods: {\n indexChange: function indexChange() {\n this.templateSelected = [];\n this.getTemplateList();\n },\n getTemplateList: function getTemplateList() {\n var _this = this;\n\n this.loading = true;\n this.$http.get('/index_template/list.json?indexId=' + this.indexSelected).then(function (data) {\n _this.importTemplateList = data.list;\n }).finally(function () {\n _this.loading = false;\n });\n },\n handleUpload: function handleUpload() {\n this.$refs.upload.clearFiles();\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleRemove: function handleRemove() {\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleError: function handleError(err) {\n this.$message.errorMessage('\\u4E0A\\u4F20\\u5931\\u8D25: ' + err);\n },\n handleSuccess: function handleSuccess(response) {\n var _this2 = this;\n\n if (response.status === 200) {\n this.$message.successMessage('导入模板成功!', function () {\n _this2.$emit('close-submit-dialog');\n });\n } else {\n this.$message.errorMessage(response.description);\n }\n },\n submitImportTemplate: function submitImportTemplate() {\n var _this3 = this;\n\n if (this.importWay === 'localUpload') {\n this.$refs.importInfo.validate(function (valid) {\n if (valid) {\n _this3.$refs.upload.submit();\n }\n });\n } else {\n console.log(this.templateSelected);\n if (this.templateSelected.length === 0) {\n this.$message.errorMessage('已选模板为空!请选择模板!');\n } else {\n this.indexTemplateImport();\n }\n }\n },\n indexTemplateImport: function indexTemplateImport() {\n var _this4 = this;\n\n var arr = this.importTemplateList.filter(function (e) {\n return _this4.templateSelected.indexOf(e.id) > -1;\n });\n var templateResult = arr.map(function (e) {\n return { id: e.id, templateName: e.templateName };\n });\n var params = {\n indexId: this.indexId,\n templateInfos: templateResult\n };\n this.loading = true;\n this.$http.post('/index_template/index/import.json', params).then(function (data) {\n if (data.length === 0) {\n _this4.$message.successMessage('导入模板成功', function () {\n _this4.$emit('close-submit-dialog');\n });\n } else {\n _this4.$message.errorMessage('\\u6A21\\u677F ' + data.join(',') + ' \\u5BFC\\u5165\\u5931\\u8D25');\n }\n }).finally(function () {\n _this4.loading = false;\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n if (this.importWay === 'localUpload') {\n this.$refs.upload.clearFiles();\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n }\n },\n getAllIndexList: function getAllIndexList() {\n var _this5 = this;\n\n return this.$http.get('/index/all.json').then(function (data) {\n _this5.indexAllList = data.filter(function (a) {\n return a.id !== Number(_this5.indexId);\n });\n });\n }\n },\n created: function created() {\n this.getAllIndexList();\n }\n};\n\n/***/ }),\n/* 699 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _keys = __webpack_require__(130);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\n__webpack_require__(193);\n\nvar _template_add_dialog = __webpack_require__(1393);\n\nvar _template_add_dialog2 = _interopRequireDefault(_template_add_dialog);\n\nvar _template_import_dialog = __webpack_require__(1406);\n\nvar _template_import_dialog2 = _interopRequireDefault(_template_import_dialog);\n\nvar _template_edit = __webpack_require__(1398);\n\nvar _template_edit2 = _interopRequireDefault(_template_edit);\n\nvar _template_export_dialog = __webpack_require__(1405);\n\nvar _template_export_dialog2 = _interopRequireDefault(_template_export_dialog);\n\nvar _template_batch_submit_dialog = __webpack_require__(1394);\n\nvar _template_batch_submit_dialog2 = _interopRequireDefault(_template_batch_submit_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n indexId: this.$route.query.indexId,\n indexName: this.$route.query.indexName,\n isAllPrivilege: false,\n templateInfo: {},\n templateList: [],\n modifiedTemplateList: [],\n isEditable: false,\n isTemplateAddVisible: false,\n isTemplateImportVisible: false,\n templateImportTitle: '',\n templateImportUrl: '',\n isExprotTemplateVisible: false,\n isBatchSubmitVisible: false,\n tempList: [],\n macroList: [],\n treeData: [{\n id: 'temp',\n label: '模板',\n children: []\n }, {\n id: 'macro',\n label: '宏',\n children: []\n }],\n templateAddInfo: {\n indexId: '',\n templateName: '',\n type: '1',\n description: ''\n },\n defaultProps: {\n children: 'children',\n label: 'label'\n },\n clusters: [],\n metadataList: [],\n temPanelHeight: {\n height: document.body.clientHeight - 210\n }\n };\n },\n\n methods: {\n exportTemplate: function exportTemplate() {\n this.isExprotTemplateVisible = true;\n },\n batchSubmitTemplate: function batchSubmitTemplate() {\n this.isBatchSubmitVisible = true;\n },\n closeExportDialog: function closeExportDialog() {\n this.isExprotTemplateVisible = false;\n },\n closeBatchSubmitDialog: function closeBatchSubmitDialog() {\n this.isBatchSubmitVisible = false;\n },\n importTemplate: function importTemplate() {\n this.isTemplateImportVisible = true;\n this.templateImportTitle = '导入模板';\n this.templateImportUrl = '/pallas/index_template/import.json?indexId=' + this.indexId;\n },\n addTemplate: function addTemplate() {\n this.isTemplateAddVisible = true;\n this.templateAddInfo.indexId = this.indexId;\n },\n handleNodeClick: function handleNodeClick(data) {\n if (!data.children) {\n this.isEditable = true;\n this.templateInfo = data;\n this.templateInfo.content = data.content || '';\n this.templateInfo.params = data.params || '';\n }\n },\n closeDelete: function closeDelete() {\n this.init();\n this.isEditable = false;\n },\n closeEdit: function closeEdit() {\n this.init();\n },\n closeDialog: function closeDialog() {\n this.isTemplateAddVisible = false;\n },\n closeImportDialog: function closeImportDialog() {\n this.isTemplateImportVisible = false;\n },\n closeSubmitImportDialog: function closeSubmitImportDialog() {\n this.isTemplateImportVisible = false;\n this.init();\n },\n handleCallback: function handleCallback(data) {\n var _this = this;\n\n this.templateList = data.list;\n var modifiedArr = [];\n data.list.forEach(function (element) {\n if (element.newer && element.type === 1 && !element.approving) {\n modifiedArr.push(element);\n }\n });\n this.modifiedTemplateList = modifiedArr;\n this.isAllPrivilege = data.allPrivilege;\n var array = JSON.parse((0, _stringify2.default)(data.list));\n var tempArr = [];\n var macroArr = [];\n array.forEach(function (element) {\n if (element.newer && element.type === 1) {\n var approvedLabel = _this.$createElement('span', null, [_this.$createElement('b', { style: { color: 'red' } }, '新 '), _this.$createElement('span', null, element.templateName)]);\n _this.$set(element, 'label', approvedLabel);\n } else {\n _this.$set(element, 'label', element.templateName);\n }\n if (element.type === 1) {\n tempArr.push(element);\n } else {\n macroArr.push(element);\n }\n });\n this.treeData[0].children = tempArr;\n this.treeData[1].children = macroArr;\n this.tempList = tempArr;\n this.macroList = macroArr;\n },\n getTemplateList: function getTemplateList() {\n var _this2 = this;\n\n return this.$http.get('/index_template/list.json?indexId=' + this.indexId).then(function (data) {\n _this2.handleCallback(data);\n });\n },\n submitCloseDialog: function submitCloseDialog(val) {\n var _this3 = this;\n\n this.isTemplateAddVisible = false;\n this.loading = true;\n this.$http.get('/index_template/list.json?indexId=' + this.indexId).then(function (data) {\n _this3.handleCallback(data);\n _this3.isEditable = true;\n (0, _keys2.default)(_this3.templateList).forEach(function (element, index) {\n if (_this3.templateList[index].templateName === val) {\n _this3.templateInfo = _this3.templateList[index];\n _this3.templateInfo.content = data.content || '';\n _this3.templateInfo.params = data.params || '';\n _this3.templateInfo.resultContent = '';\n }\n });\n }).finally(function () {\n _this3.loading = false;\n });\n },\n getClusters: function getClusters() {\n var _this4 = this;\n\n return this.$http.post('/index/version/metadata.json', { indexId: this.indexId }).then(function (data) {\n _this4.clusters = data.clusters;\n _this4.metadataList = data.list;\n });\n },\n init: function init() {\n var _this5 = this;\n\n this.loading = true;\n _promise2.default.all([this.getTemplateList(), this.getClusters()]).then(function () {\n _this5.loading = false;\n });\n }\n },\n components: {\n 'template-add-dialog': _template_add_dialog2.default,\n 'template-import-dialog': _template_import_dialog2.default,\n 'template-edit': _template_edit2.default,\n 'template-export-dialog': _template_export_dialog2.default,\n 'template-batch-submit-dialog': _template_batch_submit_dialog2.default\n },\n mounted: function mounted() {\n this.temPanelHeight = document.body.clientHeight - 210;\n var that = this;\n window.onresize = function temp() {\n that.temPanelHeight = document.body.clientHeight - 210;\n };\n },\n created: function created() {\n this.init();\n }\n};\n\n/***/ }),\n/* 700 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['preheadingInfo'],\n data: function data() {\n return {\n loading: false,\n visible: true,\n formInfo: {\n rampupTarget: '',\n endTime: '',\n sampleRate: 100\n },\n rampupInfo: {\n rampupTarget: '',\n state: '',\n beginTime: '',\n endTime: '',\n sampleRate: 100\n },\n rampupStatusMap: {\n doing: '正在预热',\n finish: '预热完成',\n stop: '预热终止'\n },\n rampupStatusTypeMap: {\n doing: 'text-warning',\n finish: 'text-success',\n stop: 'text-danger'\n },\n rules: {\n endTime: [{ validator: this.$validate.validateTimeExpire, trigger: 'change' }]\n }\n };\n },\n created: function created() {\n this.init();\n },\n\n methods: {\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n },\n init: function init() {\n var _this = this;\n\n this.loading = true;\n this.$http.get('/version/rampup/id.json?versionId=' + this.preheadingInfo.versionId).then(function (data) {\n _this.rampupInfo = data;\n }).finally(function () {\n _this.loading = false;\n });\n },\n handleStop: function handleStop() {\n var _this2 = this;\n\n this.$message.confirmMessage('确定停止预热吗?', function () {\n _this2.loading = true;\n _this2.$http.get('/version/rampup/stop.json?versionId=' + _this2.preheadingInfo.versionId).then(function () {\n _this2.$message.successMessage('停止预热成功', function () {\n _this2.init();\n });\n }).finally(function () {\n _this2.loading = false;\n });\n });\n },\n startRampup: function startRampup() {\n var _this3 = this;\n\n if (!this.formInfo.rampupTarget && !this.formInfo.endTime) {\n this.$message.errorMessage('请填写预热条数或截止时间!');\n } else if (this.formInfo.rampupTarget && this.formInfo.endTime) {\n this.$message.errorMessage('预热条数与截止时间二选一!');\n } else {\n var params = (0, _extends3.default)({\n versionId: this.preheadingInfo.versionId\n }, this.formInfo);\n this.loading = true;\n this.$http.get('/version/rampup/start.json?', params).then(function () {\n _this3.$message.successMessage('开启预热成功', function () {\n _this3.init();\n });\n }).finally(function () {\n _this3.loading = false;\n });\n }\n }\n }\n};\n\n/***/ }),\n/* 701 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _keys = __webpack_require__(130);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _schema_copy_to_dialog = __webpack_require__(545);\n\nvar _schema_copy_to_dialog2 = _interopRequireDefault(_schema_copy_to_dialog);\n\nvar _schema_multi_field_dialog = __webpack_require__(546);\n\nvar _schema_multi_field_dialog2 = _interopRequireDefault(_schema_multi_field_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n components: {\n 'schema-copy-to-dialog': _schema_copy_to_dialog2.default,\n 'schema-multi-field-dialog': _schema_multi_field_dialog2.default\n },\n props: ['isSchemaChildVisible', 'schemaChildInfo', 'versionOperation', 'schemaParentFieldName', 'versionInfo'],\n data: function data() {\n return {\n childInfo: [],\n schemaExtInfo: {},\n validCopyToFields: [],\n isCopyToFieldsVisible: false,\n isSchemaMultiFieldsVisible: false,\n initDynamic: false,\n fieldTypes: [{\n value: 'text',\n label: 'text'\n }, {\n value: 'keyword',\n label: 'keyword'\n }, {\n value: 'date',\n label: 'date'\n }, {\n value: 'boolean',\n label: 'boolean'\n }, {\n value: 'object',\n label: 'object'\n }, {\n value: 'nested',\n label: 'nested'\n }, {\n value: 'long',\n label: 'long'\n }, {\n value: 'integer',\n label: 'integer'\n }, {\n value: 'short',\n label: 'short'\n }, {\n value: 'byte',\n label: 'byte'\n }, {\n value: 'double',\n label: 'double'\n }, {\n value: 'float',\n label: 'float'\n }]\n };\n },\n\n methods: {\n handleAdd: function handleAdd() {\n var addChildInfo = {\n fieldName: '',\n fieldType: '',\n multi: '',\n copyTo: [],\n multiField: [],\n search: false,\n docValue: false,\n store: false\n };\n this.childInfo.push(addChildInfo);\n },\n cancelBtn: function cancelBtn() {\n this.$emit('close-schema-dialog');\n },\n handleDelete: function handleDelete(row) {\n var _this = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u5B57\\u6BB5' + row.fieldName + '\\u5417?', function () {\n _this.$array.removeByValue(_this.childInfo, row);\n });\n },\n confirmBtn: function confirmBtn() {\n var _this2 = this;\n\n if (this.checkChildInput(this.childInfo)) {\n this.schemaChildInfo.children.splice(0, this.schemaChildInfo.children.length);\n this.childInfo.forEach(function (element) {\n _this2.schemaChildInfo.children.push(element);\n });\n if (this.schemaChildInfo.children.length === 0) {\n this.schemaChildInfo.dynamic = false;\n } else {\n this.schemaChildInfo.dynamic = this.initDynamic;\n }\n this.$emit('add-schema-child', this.schemaChildInfo.children);\n }\n },\n checkChildInput: function checkChildInput(arr) {\n var _this3 = this;\n\n var flag = true;\n (0, _keys2.default)(arr).forEach(function (element, index) {\n if (arr[index].fieldName === '') {\n _this3.$message.errorMessage('字段名不能为空');\n flag = false;\n } else {\n flag = true;\n }\n });\n return flag;\n },\n openDialog: function openDialog() {\n var _this4 = this;\n\n this.childInfo = JSON.parse((0, _stringify2.default)(this.schemaChildInfo.children));\n (0, _keys2.default)(this.childInfo).forEach(function (element, index) {\n _this4.childInfo[index].multiField = _this4.childInfo[index].multiField || [];\n });\n this.initDynamic = this.schemaChildInfo.dynamic;\n },\n checkArrayNotEmpty: function checkArrayNotEmpty(arr) {\n return arr && arr.length > 0;\n },\n viewSchemaMultiFields: function viewSchemaMultiFields(row) {\n this.isSchemaMultiFieldsVisible = true;\n this.schemaExtInfo = row;\n },\n viewSchemaCopyTo: function viewSchemaCopyTo(row) {\n var _this5 = this;\n\n this.schemaExtInfo = row;\n this.validCopyToFields = [];\n this.versionInfo.schema.forEach(function (el) {\n if (el.dbFieldType === 'N/A') {\n if (el.fieldType === 'nested') {\n if (el.fieldName === _this5.schemaChildInfo.fieldName) return;\n _this5.getNestedFieldName(el, '', _this5.validCopyToFields);\n return;\n }\n _this5.validCopyToFields.push(el.fieldName);\n }\n });\n\n this.childInfo.forEach(function (el) {\n if (el.fieldType === 'nested') {\n _this5.getNestedFieldName(el, _this5.schemaChildInfo.fieldName, _this5.validCopyToFields);\n return;\n }\n _this5.validCopyToFields.push(_this5.schemaChildInfo.fieldName + '.' + el.fieldName);\n });\n this.copyToListFilter(this.validCopyToFields, this.schemaChildInfo.fieldName + '.' + row.fieldName);\n this.isCopyToFieldsVisible = true;\n },\n getNestedFieldName: function getNestedFieldName(field, parentFieldName, fieldArr) {\n var _this6 = this;\n\n if (field.fieldType !== 'nested') {\n fieldArr.push('' + parentFieldName + field.fieldName);\n return;\n }\n field.children.forEach(function (child) {\n if (child.fieldType === 'nested') {\n _this6.getNestedFieldName(child, '' + parentFieldName + field.fieldName + '.', fieldArr);\n } else {\n fieldArr.push('' + parentFieldName + field.fieldName + '.' + child.fieldName);\n }\n });\n },\n copyToListFilter: function copyToListFilter(fieldArr, fieldName) {\n var index = fieldArr.indexOf(fieldName);\n if (index >= 0) {\n fieldArr.splice(index, 1);\n }\n },\n closeSchemaCopyToDialog: function closeSchemaCopyToDialog() {\n this.isCopyToFieldsVisible = false;\n },\n closeSchemaMultiFieldsDialog: function closeSchemaMultiFieldsDialog() {\n this.isSchemaMultiFieldsVisible = false;\n },\n addSchemaCopyTo: function addSchemaCopyTo(array) {\n console.log((0, _stringify2.default)(array));\n this.isCopyToFieldsVisible = false;\n },\n addSchemaMultiFields: function addSchemaMultiFields(array) {\n console.log((0, _stringify2.default)(array));\n this.isSchemaMultiFieldsVisible = false;\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.versionOperation === 'view';\n },\n childTitle: function childTitle() {\n var title = this.schemaChildInfo.fieldName + '\\u5B50\\u5B57\\u6BB5';\n return title;\n }\n }\n};\n\n/***/ }),\n/* 702 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['isCopyToFieldsVisible', 'schemaCopyToInfo', 'copyToList', 'schemaParentFieldName'],\n data: function data() {\n return {\n copyToFieldList: [],\n copyToFieldSelected: []\n };\n },\n\n methods: {\n closeDialog: function closeDialog() {\n this.$emit('close-schema-dialog');\n },\n sumbitCopyToField: function sumbitCopyToField() {\n var _this = this;\n\n if (this.copyToFieldSelected.length > 0) {\n this.schemaCopyToInfo.copyTo = [];\n this.copyToFieldSelected.forEach(function (element) {\n _this.schemaCopyToInfo.copyTo.push(element);\n });\n this.$emit('add-schema-copy-to', this.schemaCopyToInfo.copyTo);\n } else {\n this.$message.errorMessage('请选择要复制的域!');\n }\n },\n initSelectList: function initSelectList() {\n this.copyToFieldSelected = [];\n var arr = JSON.parse((0, _stringify2.default)(this.copyToList));\n this.copyToFieldList = arr.map(function (obj) {\n var rObj = {};\n rObj.key = obj;\n rObj.label = obj;\n return rObj;\n });\n }\n }\n};\n\n/***/ }),\n/* 703 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['schemaImportTitle', 'schemaImportUrl'],\n data: function data() {\n return {\n isSchemaImportVisible: true,\n fileList: []\n };\n },\n\n methods: {\n cancelBtn: function cancelBtn() {\n this.$emit('close-dialog');\n },\n handleUpload: function handleUpload() {\n this.$refs.upload.clearFiles();\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleRemove: function handleRemove() {\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleError: function handleError(err) {\n this.$message.errorMessage('\\u4E0A\\u4F20\\u5931\\u8D25: ' + err);\n },\n handleSuccess: function handleSuccess(response) {\n var arr = response.schema.map(function (obj) {\n var rObj = {};\n rObj.dbFieldType = obj.dbFieldType;\n rObj.fieldName = obj.fieldName;\n rObj.fieldType = obj.fieldType;\n rObj.multi = obj.multi;\n rObj.search = obj.search;\n rObj.docValue = obj.docValue;\n rObj.children = obj.children || [];\n rObj.multiField = obj.multiField || [];\n rObj.copyTo = obj.copyTo || [];\n rObj.store = obj.store;\n return rObj;\n });\n this.$emit('schema-import-success', arr);\n },\n submitImportSchema: function submitImportSchema() {\n console.log(this.schemaImportUrl);\n this.$refs.upload.submit();\n },\n handleClose: function handleClose() {\n this.$emit('close-schema-import-dialog');\n }\n }\n};\n\n/***/ }),\n/* 704 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _keys = __webpack_require__(130);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['isSchemaMultiFieldsVisible', 'schemaMultiFieldsInfo', 'versionOperation', 'schemaParentFieldName'],\n data: function data() {\n return {\n multiFieldInfo: [],\n fieldTypes: [{\n value: 'text',\n label: 'text'\n }, {\n value: 'keyword',\n label: 'keyword'\n }, {\n value: 'date',\n label: 'date'\n }, {\n value: 'boolean',\n label: 'boolean'\n }, {\n value: 'object',\n label: 'object'\n }, {\n value: 'nested',\n label: 'nested'\n }, {\n value: 'long',\n label: 'long'\n }, {\n value: 'integer',\n label: 'integer'\n }, {\n value: 'short',\n label: 'short'\n }, {\n value: 'byte',\n label: 'byte'\n }, {\n value: 'double',\n label: 'double'\n }, {\n value: 'float',\n label: 'float'\n }]\n };\n },\n\n methods: {\n handleAdd: function handleAdd() {\n var addMultiFieldInfo = {\n fieldName: '',\n fieldType: '',\n multi: '',\n search: false,\n docValue: false\n };\n this.multiFieldInfo.push(addMultiFieldInfo);\n },\n cancelBtn: function cancelBtn() {\n this.$emit('close-schema-dialog');\n },\n handleDelete: function handleDelete(row) {\n var _this = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u5B57\\u6BB5' + row.fieldName + '\\u5417?', function () {\n _this.$array.removeByValue(_this.multiFieldInfo, row);\n });\n },\n confirmBtn: function confirmBtn() {\n var _this2 = this;\n\n if (this.checkChildInput(this.multiFieldInfo)) {\n this.schemaMultiFieldsInfo.multiField.splice(0, this.schemaMultiFieldsInfo.multiField.length);\n this.multiFieldInfo.forEach(function (element) {\n _this2.schemaMultiFieldsInfo.multiField.push(element);\n });\n this.$emit('add-schema-multi-field', this.schemaMultiFieldsInfo.multiField);\n }\n },\n checkChildInput: function checkChildInput(arr) {\n var _this3 = this;\n\n var flag = true;\n (0, _keys2.default)(arr).forEach(function (element, index) {\n if (arr[index].fieldName === '') {\n _this3.$message.errorMessage('字段名不能为空');\n flag = false;\n } else {\n flag = true;\n }\n });\n return flag;\n },\n openDialog: function openDialog() {\n this.multiFieldInfo = JSON.parse((0, _stringify2.default)(this.schemaMultiFieldsInfo.multiField));\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.versionOperation === 'view';\n },\n childTitle: function childTitle() {\n var title = this.schemaMultiFieldsInfo.fieldName + ' subFields';\n return title;\n }\n }\n};\n\n/***/ }),\n/* 705 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['versionOperation', 'versionInfo', 'versionInfoTitle', 'clusters', 'isLogical'],\n data: function data() {\n return {\n loading: false,\n isVersionInfoVisible: true,\n rules: {\n replicationNum: [{ required: true, message: '复制数量不能为空' }, { type: 'number', message: '复制数量必须为数字值' }],\n indexSlowThreshold: [{ required: true, message: 'Index Slow Log不能为空' }, { type: 'number', message: 'Index Slow Log必须为数字值' }],\n fetchSlowThreshold: [{ required: true, message: 'Fetch Slow Log不能为空' }, { type: 'number', message: 'Fetch Slow Log必须为数字值' }],\n querySlowThreshold: [{ required: true, message: 'Query Slow Log不能为空' }, { type: 'number', message: 'Query Slow Log必须为数字值' }],\n refreshInterval: [{ required: true, message: 'refresh_interval不能为空' }, { type: 'number', message: 'refresh_interval必须为数字值' }],\n maxResultWindow: [{ required: true, message: 'max_result_window不能为空' }, { type: 'number', message: 'max_result_window必须为数字值' }],\n totalShardsPerNode: [{ required: true, message: 'total_shards_per_node不能为空' }, { type: 'number', message: 'total_shards_per_node必须为数字值' }],\n flushThresholdSize: [{ required: true, message: 'flush_threshold_size不能为空' }],\n translogDurability: [{ required: true, message: 'translog_durability不能为空' }]\n }\n };\n },\n\n methods: {\n getLogicClusterAllocationNodes: function getLogicClusterAllocationNodes() {\n var _this = this;\n\n var result = [];\n this.clusterArray.forEach(function (ele) {\n var obj = {\n cluster: ele,\n nodes: _this.versionInfo.nodes.filter(function (e) {\n return ele === e.parent;\n }).map(function (v) {\n return v.name;\n })\n };\n result.push(obj);\n });\n var str = '';\n result.forEach(function (element) {\n str += element.cluster + ':' + element.nodes.join() + ';';\n });\n return str;\n },\n submitVersionInfo: function submitVersionInfo() {\n var _this2 = this;\n\n this.$refs.versionInfo.validate(function (valid) {\n if (valid) {\n if (_this2.isLogical) {\n _this2.$set(_this2.versionInfo, 'allocationNodes', _this2.getLogicClusterAllocationNodes());\n } else {\n _this2.$set(_this2.versionInfo, 'allocationNodes', _this2.versionInfo.nodes.join(','));\n }\n _this2.loading = true;\n _this2.$http.post('/index/version/dynamic_update.json', _this2.versionInfo).then(function () {\n _this2.$message.successMessage('编辑版本成功', function () {\n _this2.$emit('template-operate-success');\n });\n }).finally(function () {\n _this2.loading = false;\n });\n }\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n this.$refs.versionInfo.resetFields();\n }\n },\n computed: {\n clusterArray: function clusterArray() {\n var arr = this.clusters.map(function (e) {\n return e.clusterId;\n });\n return arr;\n },\n clusterNodes: function clusterNodes() {\n var _this3 = this;\n\n var arr = [];\n this.clusters.forEach(function (ele) {\n if (ele.id === _this3.versionInfo.clusterId) {\n arr = ele.nodes;\n }\n });\n return arr;\n },\n clusterGroups: function clusterGroups() {\n var result = this.clusters.map(function (obj) {\n var rObj = (0, _extends3.default)({}, obj);\n rObj.nodes = obj.nodes.map(function (obj2) {\n var rObj2 = (0, _extends3.default)({}, obj2);\n rObj2.parent = obj.clusterId;\n return rObj2;\n });\n return rObj;\n });\n return result;\n }\n }\n};\n\n/***/ }),\n/* 706 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _set = __webpack_require__(330);\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _from = __webpack_require__(223);\n\nvar _from2 = _interopRequireDefault(_from);\n\nvar _schema_child_dialog = __webpack_require__(1409);\n\nvar _schema_child_dialog2 = _interopRequireDefault(_schema_child_dialog);\n\nvar _schema_multi_field_dialog = __webpack_require__(546);\n\nvar _schema_multi_field_dialog2 = _interopRequireDefault(_schema_multi_field_dialog);\n\nvar _schema_copy_to_dialog = __webpack_require__(545);\n\nvar _schema_copy_to_dialog2 = _interopRequireDefault(_schema_copy_to_dialog);\n\nvar _schema_import_dialog = __webpack_require__(1410);\n\nvar _schema_import_dialog2 = _interopRequireDefault(_schema_import_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n components: {\n 'schema-child-dialog': _schema_child_dialog2.default,\n 'schema-multi-field-dialog': _schema_multi_field_dialog2.default,\n 'schema-copy-to-dialog': _schema_copy_to_dialog2.default,\n 'schema-import-dialog': _schema_import_dialog2.default\n },\n props: ['versionOperation', 'versionInfo', 'versionInfoTitle', 'isMetaDataNull', 'clusters', 'isLogical'],\n data: function data() {\n return {\n loading: false,\n isVersionInfoVisible: true,\n isSchemaImportVisible: false,\n schemaImportTitle: '',\n schemaImportUrl: '',\n isSchemaChildVisible: false,\n isSchemaMultiFieldsVisible: false,\n isCopyToFieldsVisible: false,\n schemaExtInfo: {},\n validCopyToFields: [],\n schemaParentFieldName: '',\n rules: {\n shardNum: [{ required: true, message: '分片数量不能为空' }, { type: 'number', message: '分片数量必须为数字值' }],\n replicationNum: [{ required: true, message: '复制数量不能为空' }, { type: 'number', message: '复制数量必须为数字值' }],\n routingKey: [{ required: true, message: '请选择Routing Key', trigger: 'change' }],\n idField: [{ required: true, message: '请选择Id列名', trigger: 'change' }],\n updateTimeField: [{ required: true, message: '请选择Update Time', trigger: 'change' }],\n indexSlowThreshold: [{ required: true, message: 'Index Slow Log不能为空' }, { type: 'number', message: 'Index Slow Log必须为数字值' }],\n fetchSlowThreshold: [{ required: true, message: 'Fetch Slow Log不能为空' }, { type: 'number', message: 'Fetch Slow Log必须为数字值' }],\n querySlowThreshold: [{ required: true, message: 'Query Slow Log不能为空' }, { type: 'number', message: 'Query Slow Log必须为数字值' }],\n refreshInterval: [{ required: true, message: 'refresh_interval不能为空' }, { type: 'number', message: 'refresh_interval必须为数字值' }],\n maxResultWindow: [{ required: true, message: 'max_result_window不能为空' }, { type: 'number', message: 'max_result_window必须为数字值' }],\n totalShardsPerNode: [{ required: true, message: 'total_shards_per_node不能为空' }, { type: 'number', message: 'total_shards_per_node必须为数字值' }],\n flushThresholdSize: [{ required: true, message: 'flush_threshold_size不能为空' }],\n syncInterval: [{ required: true, message: 'sync_interval不能为空' }],\n translogDurability: [{ required: true, message: 'translog_durability不能为空' }]\n },\n fieldTypes: [{\n value: 'text',\n label: 'text(标准分词)'\n }, {\n value: 'text_ngram',\n label: 'text(逐字分词)'\n }, {\n value: 'keyword',\n label: 'keyword'\n }, {\n value: 'keyword_normalized',\n label: 'keyword(全大写处理)'\n }, {\n value: 'keyword_as_number',\n label: 'keyword as number'\n }, {\n value: 'date',\n label: 'date'\n }, {\n value: 'boolean',\n label: 'boolean'\n }, {\n value: 'object',\n label: 'object'\n }, {\n value: 'nested',\n label: 'nested'\n }, {\n value: 'long',\n label: 'long'\n }, {\n value: 'integer',\n label: 'integer'\n }, {\n value: 'short',\n label: 'short'\n }, {\n value: 'byte',\n label: 'byte'\n }, {\n value: 'double',\n label: 'double'\n }, {\n value: 'float',\n label: 'float'\n }]\n };\n },\n\n methods: {\n renderDocValueHeader: function renderDocValueHeader(h) {\n return h('span', [h('span', { slot: 'reference', style: { 'font-size': '14px', 'margin-right': '5px' } }, '是否启用doc value'), h('el-popover', { props: { placement: 'top', trigger: 'hover' } }, [h('div', '是否需要用到 Sort,Aggs,Script 查询'), h('i', { slot: 'reference', class: { fa: true, 'fa-question-circle': true } })])]);\n },\n clusterChange: function clusterChange() {\n this.versionInfo.nodes = [];\n },\n fieldTypeChange: function fieldTypeChange(row) {\n if (row.fieldType === 'text') {\n this.$set(row, 'docValue', false);\n } else if (row.fieldType === 'nested') {\n this.$set(row, 'search', false);\n this.$set(row, 'docValue', false);\n this.$set(row, 'multi', true);\n }\n },\n importSchema: function importSchema() {\n this.isSchemaImportVisible = true;\n this.schemaImportTitle = '导入schema';\n this.schemaImportUrl = '/pallas/index/version/schema_import.json?indexId=' + this.versionInfo.indexId;\n },\n closeSchemaImportDialog: function closeSchemaImportDialog() {\n this.isSchemaImportVisible = false;\n },\n schemaImportSuccess: function schemaImportSuccess(data) {\n var _this = this;\n\n data.forEach(function (element1) {\n _this.versionInfo.schema.forEach(function (element2, index2) {\n if (element1.fieldName === element2.fieldName) {\n _this.versionInfo.schema.splice(index2, 1);\n }\n });\n });\n data.forEach(function (ele) {\n _this.versionInfo.schema.push(ele);\n });\n this.isSchemaImportVisible = false;\n },\n exportSchema: function exportSchema() {\n window.location.href = '/pallas/index/version/schema_export.json?versionId=' + this.versionInfo.versionId;\n },\n getLogicClusterAllocationNodes: function getLogicClusterAllocationNodes() {\n var _this2 = this;\n\n var result = [];\n this.clusterArray.forEach(function (ele) {\n var obj = {\n cluster: ele,\n nodes: _this2.versionInfo.nodes.filter(function (e) {\n return ele === e.parent;\n }).map(function (v) {\n return v.name;\n })\n };\n result.push(obj);\n });\n var str = '';\n result.forEach(function (element) {\n str += element.cluster + ':' + element.nodes.join() + ';';\n });\n return str;\n },\n submitVersionInfo: function submitVersionInfo() {\n var _this3 = this;\n\n this.$refs.versionInfo.validate(function (valid) {\n if (valid) {\n if (_this3.isSchemaSelectSearch() && !_this3.isSchemaSelectError()) {\n if (_this3.isLogical) {\n _this3.$set(_this3.versionInfo, 'allocationNodes', _this3.getLogicClusterAllocationNodes());\n } else {\n _this3.$set(_this3.versionInfo, 'allocationNodes', _this3.versionInfo.nodes.join(','));\n }\n if (_this3.versionInfo.sourceIncludesArr) {\n _this3.$set(_this3.versionInfo, 'sourceIncludes', _this3.versionInfo.sourceIncludesArr.join(','));\n }\n if (_this3.versionInfo.sourceExcludesArr) {\n _this3.$set(_this3.versionInfo, 'sourceExcludes', _this3.versionInfo.sourceExcludesArr.join(','));\n }\n if (_this3.versionOperation === 'add' || _this3.versionOperation === 'copy') {\n _this3.loading = true;\n _this3.$http.post('/index/version/add.json', _this3.versionInfo).then(function () {\n _this3.$message.successMessage('保存版本成功', function () {\n _this3.$emit('template-operate-success');\n });\n }).finally(function () {\n _this3.loading = false;\n });\n } else if (_this3.versionOperation === 'edit') {\n _this3.loading = true;\n _this3.$http.post('/index/version/update.json', _this3.versionInfo).then(function () {\n _this3.$message.successMessage('编辑版本成功', function () {\n _this3.$emit('template-operate-success');\n });\n }).finally(function () {\n _this3.loading = false;\n });\n }\n }\n }\n });\n },\n isSchemaSelectError: function isSchemaSelectError() {\n var _this4 = this;\n\n return this.versionInfo.schema.some(function (element) {\n if (element.fieldName === '') {\n _this4.$message.errorMessage('字段名不允许为空!');\n return true;\n }\n if (element.fieldName === _this4.versionInfo.updateTimeField && element.fieldType !== 'date') {\n _this4.$message.errorMessage('Update Time\\u5217\\u540D ' + element.fieldName + ' \\u7684ES\\u7C7B\\u578B\\u5FC5\\u987B\\u4E3Adate\\uFF01');\n return true;\n }\n return false;\n });\n },\n isSchemaSelectSearch: function isSchemaSelectSearch() {\n var _this5 = this;\n\n var flag = true;\n var errorArray = [];\n var fieldTypeNestedErrorArray = [];\n this.versionInfo.schema.forEach(function (element) {\n if (!element.search || !element.docValue) {\n if (_this5.versionInfo.routingKey === element.fieldName) {\n errorArray.push(_this5.versionInfo.routingKey);\n }\n if (_this5.versionInfo.idField === element.fieldName) {\n errorArray.push(_this5.versionInfo.idField);\n }\n if (_this5.versionInfo.updateTimeField === element.fieldName) {\n errorArray.push(_this5.versionInfo.updateTimeField);\n }\n }\n if (element.fieldType === 'nested' && !element.multi) {\n fieldTypeNestedErrorArray.push(element);\n }\n });\n if (errorArray.length > 0) {\n this.$message.errorMessage((0, _from2.default)(new _set2.default(errorArray)).join(', ') + '\\u67E5\\u8BE2\\u5173\\u952E\\u5B57\\u3001\\u6392\\u5E8F\\u6216\\u805A\\u5408\\u5FC5\\u987B\\u540C\\u65F6\\u9009\\u4E2D');\n flag = false;\n }\n if (fieldTypeNestedErrorArray.length > 0) {\n this.$message.errorMessage(fieldTypeNestedErrorArray.map(function (v) {\n return v.fieldName;\n }).join(', ') + '\\u7684ES\\u7C7B\\u578B\\u4E3Anested\\uFF0C\\u8BF7\\u9009\\u4E3A\\u591A\\u503C');\n flag = false;\n }\n return flag;\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n this.$refs.versionInfo.resetFields();\n },\n closeSchemaDialog: function closeSchemaDialog() {\n this.isSchemaChildVisible = false;\n },\n closeSchemaMultiFieldsDialog: function closeSchemaMultiFieldsDialog() {\n this.isSchemaMultiFieldsVisible = false;\n },\n closeSchemaCopyToDialog: function closeSchemaCopyToDialog() {\n this.isCopyToFieldsVisible = false;\n },\n viewSchemaChildren: function viewSchemaChildren(row) {\n if (row.fieldType !== 'nested' && row.fieldType !== 'object') {\n this.$message.errorMessage('ES类型必须为nested或者object');\n return;\n }\n this.isSchemaChildVisible = true;\n this.schemaExtInfo = row;\n },\n viewSchemaMultiFields: function viewSchemaMultiFields(row) {\n this.isSchemaMultiFieldsVisible = true;\n this.schemaExtInfo = row;\n },\n viewSchemaCopyTo: function viewSchemaCopyTo(row) {\n var _this6 = this;\n\n this.schemaExtInfo = row;\n this.validCopyToFields = [];\n this.versionInfo.schema.forEach(function (el) {\n if (el.dbFieldType === 'N/A' || el.dbFieldType === null) {\n if (el.fieldType === 'nested') {\n _this6.getNestedFieldName(el, '', _this6.validCopyToFields);\n return;\n }\n _this6.validCopyToFields.push(el.fieldName);\n }\n });\n this.copyToListFilter(this.validCopyToFields, row.fieldName);\n this.isCopyToFieldsVisible = true;\n },\n getNestedFieldName: function getNestedFieldName(field, parentFieldName, fieldArr) {\n var _this7 = this;\n\n if (field.fieldType !== 'nested') {\n fieldArr.push('' + parentFieldName + field.fieldName);\n return;\n }\n field.children.forEach(function (child) {\n if (child.fieldType === 'nested') {\n _this7.getNestedFieldName(child, '' + parentFieldName + field.fieldName + '.', fieldArr);\n } else {\n fieldArr.push('' + parentFieldName + field.fieldName + '.' + child.fieldName);\n }\n });\n },\n copyToListFilter: function copyToListFilter(fieldArr, fieldName) {\n var index = fieldArr.indexOf(fieldName);\n if (index >= 0) {\n fieldArr.splice(index, 1);\n }\n },\n addSchemaChild: function addSchemaChild() {\n this.isSchemaChildVisible = false;\n },\n addSchemaMultiFields: function addSchemaMultiFields(array) {\n console.log((0, _stringify2.default)(array));\n this.isSchemaMultiFieldsVisible = false;\n },\n addSchemaCopyTo: function addSchemaCopyTo(array) {\n console.log((0, _stringify2.default)(array));\n this.isCopyToFieldsVisible = false;\n },\n deleteField: function deleteField(row) {\n var _this8 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u5B57\\u6BB5' + row.fieldName + '\\u5417?', function () {\n _this8.$array.removeByValue(_this8.versionInfo.schema, row);\n });\n },\n addField: function addField(index) {\n var newRow = {\n fieldName: '',\n dbFieldType: 'N/A',\n docValue: false,\n fieldType: 'keyword',\n multi: false,\n children: [],\n multiField: [],\n copyTo: [],\n search: false,\n isNew: true,\n dynamic: false,\n store: false\n };\n this.versionInfo.schema.splice(index + 1, 0, newRow);\n }\n },\n computed: {\n clusterArray: function clusterArray() {\n var arr = this.clusters.map(function (e) {\n return e.clusterId;\n });\n return arr;\n },\n isEditable: function isEditable() {\n return this.versionOperation === 'view';\n },\n routingKeyWidth: function routingKeyWidth() {\n var num = void 0;\n if (this.isMetaDataNull) {\n num = 12;\n } else {\n num = 8;\n }\n return num;\n },\n allSourceFields: function allSourceFields() {\n var _this9 = this;\n\n var sourceFields = [];\n this.versionInfo.schema.forEach(function (el) {\n if (el.fieldType === 'nested') {\n _this9.getNestedFieldName(el, '', sourceFields);\n return;\n }\n sourceFields.push(el.fieldName);\n });\n return sourceFields;\n },\n clusterNodes: function clusterNodes() {\n var _this10 = this;\n\n var arr = [];\n this.clusters.forEach(function (ele) {\n if (ele.id === _this10.versionInfo.clusterId) {\n arr = ele.nodes;\n }\n });\n return arr;\n },\n clusterGroups: function clusterGroups() {\n var result = this.clusters.map(function (obj) {\n var rObj = (0, _extends3.default)({}, obj);\n rObj.nodes = obj.nodes.map(function (obj2) {\n var rObj2 = (0, _extends3.default)({}, obj2);\n rObj2.parent = obj.clusterId;\n return rObj2;\n });\n return rObj;\n });\n return result;\n }\n }\n};\n\n/***/ }),\n/* 707 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _keys = __webpack_require__(130);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _version_info_dialog = __webpack_require__(1412);\n\nvar _version_info_dialog2 = _interopRequireDefault(_version_info_dialog);\n\nvar _version_dynamic_info_dialog = __webpack_require__(1411);\n\nvar _version_dynamic_info_dialog2 = _interopRequireDefault(_version_dynamic_info_dialog);\n\nvar _preheading_dialog = __webpack_require__(1408);\n\nvar _preheading_dialog2 = _interopRequireDefault(_preheading_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n components: {\n 'version-info-dialog': _version_info_dialog2.default,\n 'version-dynamic-info-dialog': _version_dynamic_info_dialog2.default,\n 'preheading-dialog': _preheading_dialog2.default\n },\n data: function data() {\n return {\n loading: false,\n indexId: this.$route.query.indexId,\n indexName: this.$route.query.indexName,\n isMetaDataNull: false,\n isAllPrivilege: false,\n isVersionInfoVisible: false,\n isVersionDynamicInfoVisible: false,\n versionInfoTitle: '',\n versionOperation: '',\n isStartSyncVisible: false,\n isViewConfigVisible: false,\n isStartFullImportVisible: false,\n configInfo: '',\n configTitle: '',\n pageSize: 10,\n currentPage: 1,\n versionData: {},\n versionList: [],\n versionInfo: {},\n versionGetInfo: {},\n versionAddInfo: {\n indexId: '',\n shardNum: 1,\n replicationNum: 1,\n vdpQueue: '',\n routingKey: 'id',\n idField: 'id',\n updateTimeField: 'update_time',\n filterFields: false,\n vdp: 1,\n checkSum: false,\n schema: [],\n clusterId: '',\n nodes: [],\n indexSlowThreshold: 200,\n fetchSlowThreshold: 200,\n querySlowThreshold: 200,\n refreshInterval: 60,\n maxResultWindow: 10000,\n totalShardsPerNode: -1,\n flushThresholdSize: '512mb',\n syncInterval: '5s',\n translogDurability: 'async',\n sourceDisabled: false,\n sourceIncludes: '',\n sourceExcludes: '',\n sourceIncludesArr: [],\n sourceExcludesArr: []\n },\n clusters: [],\n isLogical: false,\n isPreheadingVisible: false,\n preheadingInfo: {}\n };\n },\n\n methods: {\n preheading: function preheading(row) {\n this.preheadingInfo = {\n versionId: row.id,\n isUsed: row.isUsed\n };\n this.isPreheadingVisible = true;\n },\n closePreheadingDialog: function closePreheadingDialog() {\n this.isPreheadingVisible = false;\n },\n getClusterName: function getClusterName(id) {\n var clusterName = '';\n this.clusters.some(function (ele) {\n if (ele.id === Number(id)) {\n clusterName = ele.clusterId;\n return true;\n }\n return false;\n });\n return clusterName;\n },\n viewConfigInfo: function viewConfigInfo(row, clusterId) {\n var _this = this;\n\n var params = {\n indexId: this.indexId,\n indexName: this.indexName,\n versionId: row.id,\n cid: clusterId\n };\n this.loading = true;\n this.$http.get('/index/version/info.json', params).then(function (data) {\n _this.configInfo = data;\n _this.configTitle = _this.indexName + '_' + row.id + '\\u914D\\u7F6E\\u4FE1\\u606F\\uFF08\\u96C6\\u7FA4\\uFF1A' + _this.getClusterName(clusterId) + '\\uFF09';\n _this.isViewConfigVisible = true;\n }).finally(function () {\n _this.loading = false;\n });\n },\n retrieve: function retrieve(row, clusterId) {\n var _this2 = this;\n\n var params = {\n indexId: this.indexId,\n indexName: this.indexName,\n versionId: row.id,\n cid: clusterId\n };\n this.loading = true;\n this.$http.get('/index/version/retrieve.json', params).then(function (data) {\n _this2.configInfo = data;\n _this2.configTitle = _this2.indexName + '_' + row.id + '\\u7D22\\u5F15\\u6570\\u636E\\uFF08\\u96C6\\u7FA4\\uFF1A' + _this2.getClusterName(clusterId) + '\\uFF09';\n _this2.isViewConfigVisible = true;\n }).finally(function () {\n _this2.loading = false;\n });\n },\n closeViewConfigDialog: function closeViewConfigDialog() {\n this.isViewConfigVisible = false;\n },\n createIndex: function createIndex(row) {\n var _this3 = this;\n\n this.loading = true;\n this.$http.post('/index/version/create_index.json', { indexId: this.indexId, versionId: row.id }).then(function () {\n _this3.$message.successMessage('生成索引成功', function () {\n _this3.getVersionList();\n });\n }).finally(function () {\n _this3.loading = false;\n });\n },\n enableVersion: function enableVersion(row) {\n var _this4 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u542F\\u7528\\u7248\\u672C' + row.id + '\\u5417?', function () {\n _this4.loading = true;\n _this4.$http.post('/index/version/enable.json', { indexId: _this4.indexId, versionId: row.id }).then(function () {\n _this4.$message.successMessage('启用版本成功', function () {\n _this4.getVersionList();\n });\n }).finally(function () {\n _this4.loading = false;\n });\n });\n },\n handleAdd: function handleAdd() {\n this.isVersionInfoVisible = true;\n this.versionInfoTitle = '新增版本';\n this.versionOperation = 'add';\n this.versionAddInfo.indexId = this.indexId;\n this.versionAddInfo.clusterId = this.clusters[0].id;\n this.versionInfo = JSON.parse((0, _stringify2.default)(this.versionAddInfo));\n },\n triggerDialog: function triggerDialog(row, operation) {\n var _this5 = this;\n\n this.loading = true;\n this.$http.get('/index/version/id.json?versionId=' + row.id).then(function (data) {\n _this5.versionGetInfo = data;\n (0, _keys2.default)(_this5.versionGetInfo.schema).forEach(function (element, index) {\n _this5.versionGetInfo.schema[index].children = _this5.versionGetInfo.schema[index].children || [];\n _this5.versionGetInfo.schema[index].multiField = _this5.versionGetInfo.schema[index].multiField || [];\n _this5.versionGetInfo.schema[index].copyTo = _this5.versionGetInfo.schema[index].copyTo || [];\n _this5.versionGetInfo.versionId = row.id;\n });\n _this5.$set(_this5.versionGetInfo, 'versionId', _this5.versionGetInfo.id);\n _this5.$set(_this5.versionGetInfo, 'clusterId', _this5.clusters[0].id);\n if (_this5.isLogical) {\n _this5.$set(_this5.versionGetInfo, 'nodes', _this5.getLogicClusterNodesArray(_this5.versionGetInfo.allocationNodes));\n } else {\n _this5.$set(_this5.versionGetInfo, 'nodes', _this5.getNodesArray(_this5.versionGetInfo.allocationNodes));\n }\n _this5.versionGetInfo.sourceIncludesArr = [];\n _this5.versionGetInfo.sourceExcludesArr = [];\n if (_this5.versionGetInfo.sourceIncludes && _this5.versionGetInfo.sourceIncludes.length > 0) {\n _this5.$set(_this5.versionGetInfo, 'sourceIncludesArr', _this5.getNodesArray(_this5.versionGetInfo.sourceIncludes));\n }\n if (_this5.versionGetInfo.sourceExcludes && _this5.versionGetInfo.sourceExcludes.length > 0) {\n _this5.$set(_this5.versionGetInfo, 'sourceExcludesArr', _this5.getNodesArray(_this5.versionGetInfo.sourceExcludes));\n }\n _this5.versionInfo = JSON.parse((0, _stringify2.default)(_this5.versionGetInfo));\n if (operation === 'dynamic_edit') {\n _this5.versionInfoTitle = '编辑版本动态配置';\n _this5.isVersionDynamicInfoVisible = true;\n _this5.versionOperation = operation;\n var clusterName = _this5.getClusterName(_this5.$array.strToArray(row.realClusterIds)[0]);\n _this5.$http.get('/cluster/id.json?clusterId=' + clusterName).then(function (clusterData) {\n if (clusterData) {\n var hostParam = 'http://' + _this5.$array.strToArray(clusterData.httpAddress)[0];\n var indexParam = _this5.indexName + '_' + row.id;\n _this5.$http.postCerebro('/cerebro/commons/get_index_settings', { host: hostParam, index: indexParam }).then(function (settings) {\n var settingData = settings;\n var settingInfo = settingData[indexParam].settings.index;\n _this5.versionInfo.replicationNum = +settingInfo.number_of_replicas;\n _this5.versionInfo.indexSlowThreshold = +settingInfo.indexing.slowlog.threshold.index.info.replace('ms', '');\n _this5.versionInfo.fetchSlowThreshold = +settingInfo.search.slowlog.threshold.fetch.info.replace('ms', '');\n _this5.versionInfo.querySlowThreshold = +settingInfo.search.slowlog.threshold.query.info.replace('ms', '');\n _this5.versionInfo.refreshInterval = +settingInfo.refresh_interval.replace('s', '');\n _this5.versionInfo.maxResultWindow = +settingInfo.max_result_window;\n _this5.versionInfo.totalShardsPerNode = +settingInfo.routing.allocation.total_shards_per_node;\n _this5.versionInfo.flushThresholdSize = settingInfo.translog.flush_threshold_size;\n _this5.versionInfo.syncInterval = settingInfo.translog.sync_interval;\n _this5.versionInfo.translogDurability = settingInfo.translog.durability;\n });\n }\n });\n return;\n }\n if (operation === 'edit') {\n _this5.versionInfoTitle = '编辑版本';\n } else if (operation === 'copy') {\n _this5.versionInfoTitle = '\\u590D\\u5236\\u7248\\u672C(From ' + row.id + ')';\n } else {\n _this5.versionInfoTitle = '查看版本';\n }\n _this5.versionOperation = operation;\n _this5.isVersionInfoVisible = true;\n }).finally(function () {\n _this5.loading = false;\n });\n },\n copyVersion: function copyVersion(row, operation) {\n var _this6 = this;\n\n this.loading = true;\n this.$http.post('/index/version/copy.json', {\n versionId: row.id,\n indexId: this.indexId\n }).then(function (data) {\n _this6.versionGetInfo = data;\n (0, _keys2.default)(_this6.versionGetInfo.schema).forEach(function (element, index) {\n _this6.versionGetInfo.schema[index].children = _this6.versionGetInfo.schema[index].children || [];\n _this6.versionGetInfo.schema[index].multiField = _this6.versionGetInfo.schema[index].multiField || [];\n _this6.versionGetInfo.schema[index].copyTo = _this6.versionGetInfo.schema[index].copyTo || [];\n _this6.versionGetInfo.versionId = row.id;\n });\n _this6.$set(_this6.versionGetInfo, 'versionId', _this6.versionGetInfo.id);\n _this6.$set(_this6.versionGetInfo, 'clusterId', _this6.clusters[0].id);\n if (_this6.isLogical) {\n _this6.$set(_this6.versionGetInfo, 'nodes', _this6.getLogicClusterNodesArray(_this6.versionGetInfo.allocationNodes));\n } else {\n _this6.$set(_this6.versionGetInfo, 'nodes', _this6.getNodesArray(_this6.versionGetInfo.allocationNodes));\n }\n _this6.versionGetInfo.sourceIncludesArr = [];\n _this6.versionGetInfo.sourceExcludesArr = [];\n if (_this6.versionGetInfo.sourceIncludes && _this6.versionGetInfo.sourceIncludes.length > 0) {\n _this6.$set(_this6.versionGetInfo, 'sourceIncludesArr', _this6.getNodesArray(_this6.versionGetInfo.sourceIncludes));\n }\n if (_this6.versionGetInfo.sourceExcludes && _this6.versionGetInfo.sourceExcludes.length > 0) {\n _this6.$set(_this6.versionGetInfo, 'sourceExcludesArr', _this6.getNodesArray(_this6.versionGetInfo.sourceExcludes));\n }\n _this6.versionInfo = JSON.parse((0, _stringify2.default)(_this6.versionGetInfo));\n _this6.versionInfoTitle = '\\u590D\\u5236\\u7248\\u672C(From ' + row.id + ')';\n _this6.versionOperation = operation;\n _this6.isVersionInfoVisible = true;\n }).finally(function () {\n _this6.loading = false;\n });\n },\n getNodesArray: function getNodesArray(nodesStr) {\n var arr = [];\n if (nodesStr !== '') {\n if (nodesStr.indexOf(',') > 0) {\n arr = nodesStr.split(',');\n } else {\n arr = [nodesStr];\n }\n }\n return arr;\n },\n getLogicClusterNodesArray: function getLogicClusterNodesArray(nodesStr) {\n var resultArray = [];\n if (nodesStr.indexOf(';') > -1) {\n var clusterArr = nodesStr.split(';');\n if (clusterArr) {\n clusterArr.forEach(function (ele) {\n if (ele) {\n var cluster = ele.split(':')[0];\n var nodeStr = ele.split(':')[1];\n if (nodeStr) {\n nodeStr.split(',').forEach(function (ele2) {\n var params = {\n parent: cluster,\n name: ele2\n };\n resultArray.push(params);\n });\n }\n }\n });\n }\n }\n return resultArray;\n },\n handleDelete: function handleDelete(row) {\n var _this7 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u7248\\u672C' + row.id + '\\u5417?', function () {\n _this7.loading = true;\n _this7.$http.post('/index/version/delete/id.json', { indexId: _this7.indexId, versionId: row.id }).then(function () {\n _this7.$message.successMessage('删除成功', function () {\n _this7.getVersionList();\n });\n }).finally(function () {\n _this7.loading = false;\n });\n });\n },\n closeDialog: function closeDialog() {\n this.isVersionInfoVisible = false;\n },\n closeDynamicDialog: function closeDynamicDialog() {\n this.isVersionDynamicInfoVisible = false;\n },\n templateOperateSuccess: function templateOperateSuccess() {\n this.isVersionInfoVisible = false;\n this.getVersionList();\n },\n dynamicUpdateOperateSuccess: function dynamicUpdateOperateSuccess() {\n this.isVersionDynamicInfoVisible = false;\n this.getVersionList();\n },\n getSchemaMetaData: function getSchemaMetaData() {\n var _this8 = this;\n\n this.loading = true;\n this.$http.post('/index/version/metadata.json', { indexId: this.indexId }).then(function (data) {\n _this8.clusters = data.clusters;\n _this8.isLogical = data.isLogical;\n if (data.list === null || data.list.length === 0) {\n _this8.versionAddInfo.schema = [];\n _this8.isMetaDataNull = true;\n } else {\n _this8.isMetaDataNull = false;\n _this8.versionAddInfo.schema = data.list.map(function (obj) {\n var rObj = {};\n rObj.dbFieldType = obj.dbFieldType;\n rObj.fieldName = obj.dbFieldName;\n switch (rObj.dbFieldType) {\n case 'TINYINT':\n case 'SMALLINT':\n rObj.fieldType = 'keyword_as_number';\n break;\n case 'INTEGER':\n rObj.fieldType = 'integer';\n break;\n case 'BIGINT':\n rObj.fieldType = 'long';\n break;\n case 'DATE':\n case 'TIMESTAMP':\n rObj.fieldType = 'date';\n break;\n case 'DOUBLE':\n case 'DECIMAL':\n rObj.fieldType = 'double';\n break;\n default:\n rObj.fieldType = 'keyword';\n break;\n }\n rObj.multi = false;\n switch (rObj.fieldName) {\n case 'id':\n case 'update_time':\n rObj.search = true;\n rObj.docValue = true;\n break;\n default:\n rObj.search = false;\n rObj.docValue = false;\n break;\n }\n rObj.children = [];\n rObj.multiField = [];\n rObj.copyTo = [];\n return rObj;\n });\n }\n }).finally(function () {\n _this8.loading = false;\n });\n },\n getVersionList: function getVersionList() {\n var _this9 = this;\n\n var params = {\n currentPage: this.currentPage,\n pageSize: this.pageSize,\n indexId: this.indexId\n };\n this.loading = true;\n this.$http.get('/index/version/page.json', params).then(function (data) {\n _this9.versionData = data;\n _this9.isAllPrivilege = data.allPrivilege;\n _this9.versionList = data.list.map(function (obj) {\n var rObj = (0, _extends3.default)({}, obj);\n return rObj;\n });\n var versionIdList = [];\n if (_this9.versionList.length > 0) {\n _this9.versionList.forEach(function (element) {\n versionIdList.push(element.id);\n });\n _this9.$http.post('/index/version/count.json', { indexName: _this9.indexName, indexId: _this9.indexId, versionIds: versionIdList }).then(function (countList) {\n _this9.versionList.forEach(function (ele) {\n var result = countList.filter(function (e) {\n return e.vid === ele.id;\n });\n var countResult = [];\n if (result[0].data.length > 0) {\n _this9.$array.strToArray(ele.realClusterIds).forEach(function (ele2) {\n var count = result[0].data.filter(function (v) {\n return v.cid === Number(ele2);\n }).map(function (m) {\n return m.count;\n })[0];\n countResult.push(count);\n });\n }\n _this9.$set(ele, 'count', countResult);\n });\n });\n }\n }).finally(function () {\n _this9.loading = false;\n });\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.getVersionList();\n },\n stopSync: function stopSync(row) {\n var _this10 = this;\n\n var isUsedStopMsg = this.$createElement('span', null, [this.$createElement('p', null, '\\u786E\\u5B9A\\u5220\\u9664\\u8BE5\\u7248\\u672C' + row.id + '\\u7684\\u7D22\\u5F15\\u5417?'), this.$createElement('p', null, '注意此操作会同时停用该版本!')]);\n var msg = row.isUsed ? isUsedStopMsg : '\\u786E\\u5B9A\\u5220\\u9664\\u8BE5\\u7248\\u672C' + row.id + '\\u7684\\u7D22\\u5F15\\u5417?';\n this.$message.confirmMessage(msg, function () {\n _this10.loading = true;\n _this10.$http.post('/index/version/disable.json', { indexId: _this10.indexId, versionId: row.id }).then(function () {\n _this10.$message.successMessage('删除索引成功', function () {\n _this10.getVersionList();\n });\n }).finally(function () {\n _this10.loading = false;\n });\n });\n }\n },\n filters: {\n translateIsUsed: function translateIsUsed(data) {\n var IS_ENABLED = { true: '是', false: '否' };\n return IS_ENABLED[data];\n }\n },\n created: function created() {\n this.getVersionList();\n this.getSchemaMetaData();\n }\n};\n\n/***/ }),\n/* 708 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n data: function data() {\n return {\n isDsImportVisible: true,\n fileList: []\n };\n },\n\n methods: {\n cancelBtn: function cancelBtn() {\n this.$emit('close-dialog');\n },\n handleUpload: function handleUpload() {\n this.$refs.upload.clearFiles();\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleRemove: function handleRemove() {\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleError: function handleError(err) {\n this.$message.errorMessage('\\u4E0A\\u4F20\\u5931\\u8D25: ' + err);\n },\n handleSuccess: function handleSuccess(response) {\n this.$emit('ds-import-success', response);\n },\n submitImportDs: function submitImportDs() {\n this.$refs.upload.submit();\n },\n handleClose: function handleClose() {\n this.$emit('close-ds-import-dialog');\n }\n }\n};\n\n/***/ }),\n/* 709 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['dataSource', 'indexOperation'],\n data: function data() {\n return {\n rules: {\n ip: [{ required: true, message: '请输入数据库地址', trigger: 'blur' }, { validator: this.dbnameValidate, trigger: 'blur' }],\n port: [{ validator: this.$validate.validatePort, trigger: 'blur' }, { validator: this.dbnameValidate, trigger: 'blur' }],\n username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],\n password: [{ required: true, message: '请输入密码', trigger: 'blur' }],\n dbname: [{ required: true, message: '请输入数据库名', trigger: 'blur' }, { validator: this.dbnameValidate, trigger: 'blur' }],\n tableName: [{ required: true, message: '请输入数据库表', trigger: 'blur' }, { validator: this.dbnameValidate, trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n dbnameValidate: function dbnameValidate(rule, value, callback) {\n this.$emit('db-validate', this.dataSource, callback.bind(this));\n }\n }\n};\n\n/***/ }),\n/* 710 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['dataSources', 'showImportObject', 'indexId', 'indexOperation'],\n data: function data() {\n return {\n dataSourceInfo: {\n ip: '',\n port: '',\n username: '',\n password: '',\n dbname: '',\n tableName: '',\n isGeneratePwd: true\n }\n };\n },\n\n methods: {\n dbValidate: function dbValidate(dataSource, callback) {\n var arr = this.dataSources.filter(function (ele) {\n return ele.dbname === dataSource.dbname && ele.tableName === dataSource.tableName && ele.ip === dataSource.ip && ele.port === dataSource.port;\n });\n if (arr.length > 1) {\n callback(new Error('存在相同数据源,请重新填写'));\n } else {\n callback();\n }\n },\n importDs: function importDs() {\n this.showImportObject.show = true;\n },\n exportDs: function exportDs() {\n window.location.href = '/pallas/ds/export.json?indexId=' + this.indexId;\n },\n addDataSource: function addDataSource() {\n var dataSource = JSON.parse((0, _stringify2.default)(this.dataSourceInfo));\n this.dataSources.push(dataSource);\n },\n deleteDataSource: function deleteDataSource(item) {\n this.$array.removeByValue(this.dataSources, item);\n }\n }\n};\n\n/***/ }),\n/* 711 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _index_data_sources = __webpack_require__(1416);\n\nvar _index_data_sources2 = _interopRequireDefault(_index_data_sources);\n\nvar _datasource_import_dialog = __webpack_require__(1414);\n\nvar _datasource_import_dialog2 = _interopRequireDefault(_datasource_import_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['indexOperation', 'indexInfo', 'indexInfoTitle', 'clusters'],\n data: function data() {\n return {\n loading: false,\n isIndexInfoVisible: true,\n rules: {\n indexName: [{ validator: this.$validate.validateCharacterAndNumberIsExcludePointAndBar, trigger: 'blur' }],\n clusterId: [{ required: true, message: '请选择所属集群', trigger: 'change' }]\n },\n showImportObject: {\n show: false\n }\n };\n },\n\n methods: {\n submitIndexInfo: function submitIndexInfo() {\n var _this = this;\n\n this.$refs.indexInfo.validate(function (valid1) {\n if (valid1) {\n var count = 0;\n if (_this.indexInfo.dataSourceList.length > 0) {\n _this.$refs.dataSources.$refs.dataSourceItem.forEach(function (element) {\n element.$refs.dataSource.validate(function (valid2) {\n if (valid2) {\n count += 1;\n }\n });\n });\n }\n if (count === _this.indexInfo.dataSourceList.length) {\n if (_this.indexOperation === 'add') {\n _this.loading = true;\n _this.$http.post('/index/add.json', _this.indexInfo).then(function (response) {\n if (response) {\n _this.$message.confirmMessage(response, function () {\n _this.indexInfo.confirm = true;\n _this.$http.post('/index/add.json', _this.indexInfo).then(function () {\n _this.$message.successMessage('新增索引成功', function () {\n _this.$emit('operate-close-dialog');\n });\n });\n });\n } else {\n _this.$message.successMessage('新增索引成功', function () {\n _this.$emit('operate-close-dialog');\n });\n }\n }).finally(function () {\n _this.loading = false;\n });\n } else {\n _this.loading = true;\n _this.$http.post('/index/update.json', _this.indexInfo).then(function (response) {\n if (response && response.indexOf('成功') < 0) {\n _this.$message.confirmMessage(response, function () {\n _this.indexInfo.confirm = true;\n _this.$http.post('/index/update.json', _this.indexInfo).then(function () {\n _this.$message.successMessage('更新索引成功', function () {\n _this.$emit('operate-close-dialog');\n });\n });\n });\n } else {\n _this.$message.successMessage('更新索引成功', function () {\n _this.$emit('operate-close-dialog');\n });\n }\n }).finally(function () {\n _this.loading = false;\n });\n }\n }\n }\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n this.$refs.indexInfo.resetFields();\n },\n closeDsImportDialog: function closeDsImportDialog() {\n this.showImportObject.show = false;\n },\n dsImportSuccess: function dsImportSuccess(data) {\n var _this2 = this;\n\n console.log('dsImportSuccess', data);\n var dsList = data.split(/[\\r\\n]/);\n this.indexInfo.dataSourceList = [];\n dsList.forEach(function (element) {\n var ds = element.split(/\\s+/);\n if (ds.length === 6) {\n var oneDataSource = {\n ip: ds[0],\n port: ds[1],\n username: ds[2],\n password: ds[3],\n dbname: ds[4],\n tableName: ds[5],\n isGeneratePwd: false\n };\n _this2.indexInfo.dataSourceList.push(oneDataSource);\n }\n });\n this.showImportObject.show = false;\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.indexOperation === 'edit';\n }\n },\n components: {\n 'index-data-sources': _index_data_sources2.default,\n 'datasource-import-dialog': _datasource_import_dialog2.default\n }\n};\n\n/***/ }),\n/* 712 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\n__webpack_require__(289);\n\nvar _index_info_dialog = __webpack_require__(1417);\n\nvar _index_info_dialog2 = _interopRequireDefault(_index_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n isAllPrivilege: false,\n isIndexInfoVisible: false,\n indexInfoTitle: '',\n indexOperation: '',\n\n indexList: {},\n\n clusters: [],\n selectedCluster: this.$route.query.cluster || '',\n indexNameForSearch: this.$route.query.indexName || '',\n currentPage: Number(this.$route.query.currentPage) || 1,\n pageSize: 10,\n indexInfo: {},\n indexAddInfo: {\n indexName: '',\n clusterId: '',\n description: '',\n confirm: false,\n dataSourceList: [{\n ip: '',\n port: '',\n username: '',\n password: '',\n dbname: '',\n tableName: '',\n isGeneratePwd: true\n }]\n }\n };\n },\n\n methods: {\n handleDelete: function handleDelete(row) {\n var _this = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u7D22\\u5F15' + row.indexName + '(id=' + row.id + ')\\u5417?', function () {\n _this.loading = true;\n _this.$http.post('/index/delete/id.json', { indexId: row.id }).then(function () {\n _this.$message.successMessage('删除成功', function () {\n _this.refreshPage();\n });\n }).finally(function () {\n _this.loading = false;\n });\n });\n },\n handleAdd: function handleAdd() {\n this.isIndexInfoVisible = true;\n this.indexInfoTitle = '新增索引';\n this.indexOperation = 'add';\n this.indexInfo = JSON.parse((0, _stringify2.default)(this.indexAddInfo));\n },\n handleEdit: function handleEdit(row) {\n var _this2 = this;\n\n this.loading = true;\n this.$http.get('/index/id.json?indexId=' + row.id).then(function (data) {\n var indexEditData = data;\n var indexEditInfo = {\n indexId: indexEditData.id,\n clusterId: indexEditData.clusterName,\n description: indexEditData.description,\n dataSourceList: indexEditData.dataSourceList,\n indexName: indexEditData.indexName\n };\n _this2.indexInfo = JSON.parse((0, _stringify2.default)(indexEditInfo));\n _this2.isIndexInfoVisible = true;\n _this2.indexInfoTitle = '编辑索引';\n _this2.indexOperation = 'edit';\n }).finally(function () {\n _this2.loading = false;\n });\n },\n handleManage: function handleManage(index, row) {\n this.$router.push({ path: 'index_detail', query: { indexId: row.id, indexName: row.indexName } });\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.toPage();\n },\n refreshPage: function refreshPage() {\n this.init();\n },\n toPage: function toPage() {\n this.$router.push({ path: this.$routermapper.GetPath('indexManage'), query: { currentPage: this.currentPage, cluster: this.selectedCluster, indexName: this.indexNameForSearch } });\n },\n closeDialog: function closeDialog() {\n this.isIndexInfoVisible = false;\n },\n operateCloseDialog: function operateCloseDialog() {\n this.isIndexInfoVisible = false;\n this.refreshPage();\n },\n getIndexList: function getIndexList() {\n var _this3 = this;\n\n var params = {\n currentPage: this.$route.query.currentPage || 1,\n pageSize: this.pageSize,\n indexName: this.$route.query.indexName || '',\n clusterId: this.$route.query.cluster || ''\n };\n return this.$http.get('/index/page.json', params).then(function (data) {\n _this3.indexList = data;\n _this3.isAllPrivilege = data.allPrivilege;\n });\n },\n getClusters: function getClusters() {\n var _this4 = this;\n\n this.clusters = [];\n return this.$http.get('/cluster/all.json').then(function (data) {\n var logicClusters = [];\n var physicalClusters = [];\n data.forEach(function (element) {\n if (element.logicalCluster) {\n logicClusters.push(element);\n } else {\n physicalClusters.push(element);\n }\n });\n _this4.clusters.push({ label: '物理集群', options: physicalClusters });\n _this4.clusters.push({ label: '逻辑集群', options: logicClusters });\n });\n },\n init: function init() {\n var _this5 = this;\n\n this.loading = true;\n _promise2.default.all([this.getIndexList(), this.getClusters()]).then(function () {\n _this5.loading = false;\n });\n }\n },\n components: {\n 'index-info-dialog': _index_info_dialog2.default\n },\n created: function created() {\n this.init();\n },\n\n watch: {\n $route: 'init'\n }\n};\n\n/***/ }),\n/* 713 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n data: function data() {\n return {\n activeTab: 'user_manage'\n };\n },\n\n methods: {\n onTabClick: function onTabClick() {\n this.$router.push({\n name: this.activeTab\n });\n },\n getActiveTab: function getActiveTab() {\n var str = this.$route.name;\n if (str) {\n this.activeTab = str;\n }\n }\n },\n created: function created() {\n this.activeTab = this.$route.name;\n },\n\n watch: {\n $route: 'getActiveTab'\n }\n};\n\n/***/ }),\n/* 714 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['userInfo', 'userOperation', 'rolesList'],\n data: function data() {\n return {\n isVisible: true,\n loading: false,\n rules: {\n username: [{ required: true, message: '请输入登录名', trigger: 'blur' }],\n realName: [{ required: true, message: '请输入用户名', trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n handleSubmit: function handleSubmit() {\n var _this = this;\n\n this.$refs.userInfo.validate(function (valid) {\n if (valid) {\n _this.userInfoRequest();\n }\n });\n },\n userInfoRequest: function userInfoRequest() {\n var _this2 = this;\n\n this.loading = true;\n this.$http.post('/authorization/user/update.json', this.userInfo).then(function () {\n _this2.$message.successMessage(_this2.userInfoTitle + '\\u6210\\u529F', function () {\n _this2.$emit('user-info-success');\n });\n }).finally(function () {\n _this2.loading = false;\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.userOperation === 'add';\n },\n userInfoTitle: function userInfoTitle() {\n return this.isEditable ? '新增用户' : '编辑用户';\n }\n }\n};\n\n/***/ }),\n/* 715 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _extends2 = __webpack_require__(25);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _user_info_dialog = __webpack_require__(1420);\n\nvar _user_info_dialog2 = _interopRequireDefault(_user_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n components: {\n 'user-info-dialog': _user_info_dialog2.default\n },\n data: function data() {\n return {\n loading: false,\n userList: [],\n rolesList: [],\n pageSize: 10,\n currentPage: 1,\n total: 3,\n allPrivilege: true,\n formSearch: {\n keywords: ''\n },\n isUserInfoVisible: false,\n userInfo: {},\n userOperation: ''\n };\n },\n\n computed: {\n loginUser: function loginUser() {\n return this.$store.state.loginUser;\n }\n },\n methods: {\n getUserList: function getUserList() {\n var _this = this;\n\n var params = {\n currentPage: 1,\n pageSize: this.pageSize,\n keywords: this.formSearch.keywords\n };\n return this.$http.get('/authorization/user/page.json', params).then(function (data) {\n _this.userList = data.list;\n _this.allPrivilege = data.allPrivilege;\n _this.total = data.total;\n });\n },\n handleAdd: function handleAdd() {\n var userAddInfo = {\n username: '',\n realName: '',\n password: '',\n email: '',\n roleNames: []\n };\n this.userOperation = 'add';\n this.userInfo = JSON.parse((0, _stringify2.default)(userAddInfo));\n this.isUserInfoVisible = true;\n },\n handleEdit: function handleEdit(row) {\n this.userOperation = 'edit';\n this.userInfo = (0, _extends3.default)({}, row, {\n roleNames: row.roles.map(function (v) {\n return v.roleName;\n })\n });\n this.isUserInfoVisible = true;\n },\n userInfoSuccess: function userInfoSuccess() {\n this.init();\n this.closeDialog();\n },\n closeDialog: function closeDialog() {\n this.isUserInfoVisible = false;\n },\n handleDelete: function handleDelete(row) {\n var _this2 = this;\n\n this.$message.confirmMessage('\\u786E\\u5B9A\\u5220\\u9664\\u7528\\u6237 ' + row.username + ' \\u5417?', function () {\n _this2.loading = true;\n _this2.$http.get('authorization/user/delete/' + row.id + '.json').then(function () {\n _this2.$message.successMessage('删除用户成功', function () {\n _this2.init();\n });\n }).finally(function () {\n _this2.loading = false;\n });\n });\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.init();\n },\n getRolesList: function getRolesList() {\n var _this3 = this;\n\n return this.$http.get('/authorization/role/page.json').then(function (data) {\n _this3.rolesList = data.list;\n });\n },\n init: function init() {\n var _this4 = this;\n\n this.loading = true;\n _promise2.default.all([this.getUserList(), this.getRolesList()]).then(function () {\n _this4.loading = false;\n });\n }\n },\n created: function created() {\n this.init();\n }\n};\n\n/***/ }),\n/* 716 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['pluginInfo', 'pluginInfoTitle', 'pluginInfoOperation'],\n data: function data() {\n return {\n loading: false,\n isVisible: true,\n rules: {\n clusterId: [{ required: true, message: '请选择集群', trigger: 'change' }],\n pluginName: [{ required: true, message: '请输入插件名称', trigger: 'blur' }],\n pluginVersion: [{ required: true, message: '请输入插件版本', trigger: 'blur' }],\n packagePath: [{ required: true, message: '请上传文件获取包路径', trigger: 'blur' }],\n note: [{ required: true, message: '请输入变更描述', trigger: 'blur' }]\n },\n clusters: []\n };\n },\n\n methods: {\n handleSubmit: function handleSubmit() {\n var _this = this;\n\n this.$refs.pluginInfo.validate(function (valid) {\n if (valid) {\n _this.loading = true;\n _this.$http.post('/plugin/upgrade/add.json', _this.pluginInfo).then(function () {\n _this.$message.successMessage('操作成功', function () {\n _this.$emit('operate-close-dialog');\n });\n }).finally(function () {\n _this.loading = false;\n });\n }\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n },\n getClusters: function getClusters() {\n var _this2 = this;\n\n this.loading = true;\n this.$http.get('/cluster/all.json').then(function (data) {\n data.forEach(function (ele) {\n if (!ele.logicalCluster) {\n _this2.clusters.push(ele);\n }\n });\n }).finally(function () {\n _this2.loading = false;\n });\n },\n handleUpload: function handleUpload() {\n this.$refs.upload.clearFiles();\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleRemove: function handleRemove() {\n this.$refs.upload.$refs['upload-inner'].$refs.input.value = '';\n },\n handleError: function handleError(err) {\n this.$message.errorMessage('\\u4E0A\\u4F20\\u5931\\u8D25: ' + err);\n },\n handleSuccess: function handleSuccess(response) {\n if (response.status === 200) {\n this.pluginInfo.packagePath = response.data;\n } else {\n this.$message.errorMessage(response.data.message);\n }\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.pluginInfoOperation === 'upgrade';\n },\n uploadData: function uploadData() {\n var data = {\n clusterId: this.pluginInfo.clusterId,\n pluginName: this.pluginInfo.pluginName,\n pluginVersion: this.pluginInfo.pluginVersion\n };\n return data;\n },\n enableUpload: function enableUpload() {\n if (this.pluginInfo.clusterId === '' || this.pluginInfo.pluginName === '' || this.pluginInfo.pluginVersion === '') {\n return false;\n }\n return true;\n }\n },\n created: function created() {\n this.getClusters();\n }\n};\n\n/***/ }),\n/* 717 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _set = __webpack_require__(330);\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _from = __webpack_require__(223);\n\nvar _from2 = _interopRequireDefault(_from);\n\n__webpack_require__(289);\n\nvar _plugin_info_dialog = __webpack_require__(1422);\n\nvar _plugin_info_dialog2 = _interopRequireDefault(_plugin_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n isPluginInfoDialogVisible: false,\n pluginInfo: {},\n pluginInfoTitle: '',\n pluginInfoOperation: '',\n pluginNameForSearch: this.$route.query.pluginName || '',\n pluginRuntimeList: [],\n pageSize: 10,\n total: 0,\n currentPage: Number(this.$route.query.currentPage) || 1,\n isAllPrivilege: false,\n pluginTypeMap: {\n 0: 'PALLAS',\n 1: 'ES'\n }\n };\n },\n\n methods: {\n getNodesOfVersion: function getNodesOfVersion(arr, item) {\n var nodes = [];\n arr.forEach(function (element) {\n if (element.pluginVersion === item) {\n nodes.push(element.nodeIp);\n }\n });\n return nodes;\n },\n getPluginVersion: function getPluginVersion(arr) {\n var pluginVersions = [];\n arr.forEach(function (element) {\n if (element.pluginVersion !== '') {\n pluginVersions.push(element.pluginVersion);\n }\n });\n return (0, _from2.default)(new _set2.default(pluginVersions));\n },\n handleAdd: function handleAdd() {\n this.isPluginInfoDialogVisible = true;\n this.pluginInfoTitle = '新建插件';\n this.pluginInfoOperation = 'add';\n var pluginAddInfo = { clusterId: '', pluginName: '', pluginVersion: '', pluginType: 0, note: '', packagePath: '' };\n this.pluginInfo = JSON.parse((0, _stringify2.default)(pluginAddInfo));\n },\n handleRemove: function handleRemove(row) {\n var _this = this;\n\n var params = {\n pluginUpgradeId: row.id,\n clusterId: row.clusterId,\n pluginName: row.pluginName,\n pluginVersion: row.nodeStates[0].pluginVersion || ''\n };\n this.$message.confirmMessage('\\u786E\\u5B9A\\u79FB\\u9664\\u63D2\\u4EF6' + row.pluginName + '\\u5417? \\u8BF7\\u6CE8\\u610F\\uFF0C\\u786E\\u5B9A\\u540E\\u4F1A\\u9A6C\\u4E0A\\u79FB\\u9664\\u63D2\\u4EF6\\uFF01', function () {\n _this.loading = true;\n _this.$http.post('/plugin/remove.json', params).then(function () {\n _this.$message.successMessage('提交移除请求成功并等待后台执行,请稍后刷新页面', function () {\n _this.refreshPage();\n });\n }).finally(function () {\n _this.loading = false;\n });\n });\n },\n handleUpgrade: function handleUpgrade(row) {\n this.isPluginInfoDialogVisible = true;\n this.pluginInfoTitle = row.pluginName + '\\u63D2\\u4EF6\\u5347\\u7EA7';\n this.pluginInfoOperation = 'upgrade';\n var pluginEditInfo = {\n clusterId: row.clusterId,\n pluginName: row.pluginName,\n pluginVersion: '',\n pluginType: 0,\n note: '',\n packagePath: ''\n };\n this.pluginInfo = JSON.parse((0, _stringify2.default)(pluginEditInfo));\n },\n closeDialog: function closeDialog() {\n this.isPluginInfoDialogVisible = false;\n },\n operateCloseDialog: function operateCloseDialog() {\n var _this2 = this;\n\n this.isPluginInfoDialogVisible = false;\n this.$message.successMessage('新增插件成功,等待审核,请稍后刷新页面', function () {\n _this2.refreshPage();\n });\n },\n getPluginRuntimeList: function getPluginRuntimeList() {\n var _this3 = this;\n\n var params = {\n currentPage: Number(this.$route.query.currentPage) || 1,\n pageSize: this.pageSize,\n pluginName: encodeURIComponent(this.$route.query.pluginName || '')\n };\n return this.$http.get('/plugin/runtime/list.json', params).then(function (data) {\n _this3.pluginRuntimeList = data.list;\n _this3.isAllPrivilege = data.allPrivilege;\n _this3.total = data.total;\n });\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.toPage();\n },\n refreshPage: function refreshPage() {\n this.init();\n },\n toPage: function toPage() {\n this.$router.push({ path: this.$routermapper.GetPath('pluginManage'), query: { currentPage: this.currentPage, pluginName: this.pluginNameForSearch } });\n },\n init: function init() {\n var _this4 = this;\n\n this.loading = true;\n _promise2.default.all([this.getPluginRuntimeList()]).then(function () {\n _this4.loading = false;\n });\n }\n },\n created: function created() {\n this.init();\n },\n\n watch: {\n $route: 'init'\n },\n components: {\n 'plugin-info-dialog': _plugin_info_dialog2.default\n }\n};\n\n/***/ }),\n/* 718 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n pluginUpgradeList: [],\n pageSize: 10,\n total: 0,\n currentPage: Number(this.$route.query.currentPage) || 1,\n isAllPrivilege: false,\n pluginTypeMap: {\n 0: 'PALLAS',\n 1: 'ES'\n }\n };\n },\n\n computed: {\n pluginName: function pluginName() {\n return this.$route.query.pluginName;\n }\n },\n methods: {\n getPluginUpgradeList: function getPluginUpgradeList() {\n var _this = this;\n\n var params = {\n currentPage: Number(this.$route.query.currentPage) || 1,\n pageSize: this.pageSize,\n pluginName: encodeURIComponent(this.pluginName || '')\n };\n return this.$http.get('/plugin/upgrade/list.json', params).then(function (data) {\n _this.pluginUpgradeList = data.list;\n _this.isAllPrivilege = data.allPrivilege;\n _this.total = data.total;\n });\n },\n handlePlugin: function handlePlugin(row, operation, text) {\n var _this2 = this;\n\n var params = {\n pluginUpgradeId: row.id,\n action: operation\n };\n this.$message.confirmMessage('\\u786E\\u5B9A' + text + '\\u63D2\\u4EF6' + row.pluginName + '\\u5417?', function () {\n _this2.loading = true;\n _this2.$http.post('/plugin/upgrade/action.json', params).then(function () {\n _this2.$message.successMessage('操作成功', function () {\n _this2.refreshPage();\n });\n }).finally(function () {\n _this2.loading = false;\n });\n });\n },\n handleRollback: function handleRollback(row) {\n var _this3 = this;\n\n var params = {\n clusterId: row.clusterId,\n pluginName: row.pluginName,\n pluginVersion: row.pluginVersion,\n pluginType: row.pluginType,\n note: row.note,\n packagePath: row.packagePath\n };\n this.$message.confirmMessage('\\u786E\\u5B9A\\u56DE\\u6EDA\\u63D2\\u4EF6' + row.pluginName + '\\u5417?', function () {\n _this3.loading = true;\n _this3.$http.post('/plugin/upgrade/add.json', params).then(function () {\n _this3.$message.successMessage('操作成功,已创建新工单', function () {\n _this3.refreshPage();\n });\n }).finally(function () {\n _this3.loading = false;\n });\n });\n },\n changePage: function changePage(currentPage) {\n this.currentPage = currentPage;\n this.toPage();\n },\n refreshPage: function refreshPage() {\n this.init();\n },\n toPage: function toPage() {\n this.$router.push({ path: this.$routermapper.GetPath('pluginUpgrade'), query: { currentPage: this.currentPage, pluginName: this.pluginName } });\n },\n init: function init() {\n var _this4 = this;\n\n this.loading = true;\n _promise2.default.all([this.getPluginUpgradeList()]).then(function () {\n _this4.loading = false;\n });\n }\n },\n created: function created() {\n this.init();\n },\n\n watch: {\n $route: 'init'\n },\n filters: {\n translateStat: function translateStat(data) {\n var NODE_STATUS = { 0: '创建', 1: '待审批', 2: '审批不通过', 3: '取消', 4: '标记完成', 5: '下载中', 51: '下载完成', 6: '升级中', 61: '升级完成', 7: '插件已移除' };\n return NODE_STATUS[data];\n }\n }\n};\n\n/***/ }),\n/* 719 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _keys = __webpack_require__(130);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _assign = __webpack_require__(328);\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _token_index = __webpack_require__(1426);\n\nvar _token_index2 = _interopRequireDefault(_token_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['tokenInfo', 'tokenHeight'],\n data: function data() {\n return {\n loading: false,\n clusterList: [],\n psClusterList: [],\n clusterList2update: [],\n tokenClusterInfo: {}\n };\n },\n\n computed: {\n clusterPoolHeight: function clusterPoolHeight() {\n return { height: this.tokenHeight.height * (3 / 5) - 48 };\n },\n clusterTokenHeight: function clusterTokenHeight() {\n return { height: this.tokenHeight.height * (2 / 5) };\n },\n clusterIndexHeight: function clusterIndexHeight() {\n return { height: this.tokenHeight.height };\n }\n },\n methods: {\n updateTokenCluster: function updateTokenCluster() {\n var _this = this;\n\n var clusterParams = {\n id: this.tokenClusterInfo.id,\n name: this.tokenClusterInfo.name\n };\n if (this.tokenClusterInfo.clusterPrivilege === '') {\n this.$set(clusterParams, 'privileges', {});\n } else {\n this.$set(clusterParams, 'privileges', { ClusterAll: [this.tokenClusterInfo.clusterPrivilege] });\n }\n if (this.tokenClusterInfo.myIndexPrivilegeArr.length === 0) {\n this.$set(clusterParams, 'indexPrivileges', []);\n } else {\n this.tokenClusterInfo.myIndexPrivilegeArr.forEach(function (ele) {\n if (ele.indexPrivilege === '') {\n _this.$set(ele, 'privileges', {});\n } else {\n _this.$set(ele, 'privileges', { IndexAll: [ele.indexPrivilege] });\n }\n });\n this.$set(clusterParams, 'indexPrivileges', this.tokenClusterInfo.myIndexPrivilegeArr);\n }\n if (this.tokenClusterInfo.pools.length === 0) {\n this.$set(clusterParams, 'pools', []);\n } else {\n this.tokenClusterInfo.pools.forEach(function (ele) {\n (0, _assign2.default)(ele, { aliasName: '' });\n });\n this.$set(clusterParams, 'pools', this.tokenClusterInfo.pools);\n }\n this.clusterList.some(function (ele, index) {\n if (ele.id === clusterParams.id) {\n _this.clusterList[index] = clusterParams;\n }\n return false;\n });\n this.clusterList2update[0] = clusterParams;\n this.updateTokenRequest();\n },\n updateTokenRequest: function updateTokenRequest() {\n var _this2 = this;\n\n var params = {\n id: this.tokenInfo.id,\n authorizationItems: this.clusterList2update\n };\n this.loading = true;\n this.$http.post('/token/token_privilege/update.json', params).then(function () {\n _this2.getTokenDetail();\n }).finally(function () {\n _this2.loading = false;\n });\n },\n handleNodeClick: function handleNodeClick(data) {\n var _this3 = this;\n\n var tokenClusterData = {\n id: data.id,\n name: data.name\n };\n if ((0, _keys2.default)(data.privileges).length === 0) {\n this.$set(tokenClusterData, 'clusterPrivilege', '');\n } else {\n this.$set(tokenClusterData, 'clusterPrivilege', data.privileges.ClusterAll[0]);\n }\n if (data.indexPrivileges.length > 0) {\n data.indexPrivileges.forEach(function (ele) {\n if ((0, _keys2.default)(ele.privileges).length === 0) {\n _this3.$set(ele, 'indexPrivilege', '');\n } else {\n _this3.$set(ele, 'indexPrivilege', ele.privileges.IndexAll[0]);\n }\n });\n }\n if ((0, _keys2.default)(data.pools).length === 0) {\n this.$set(tokenClusterData, 'pools', []);\n } else {\n this.$set(tokenClusterData, 'pools', data.pools);\n }\n this.$set(tokenClusterData, 'serverPools', data.serverPools);\n this.$set(tokenClusterData, 'myIndexPrivilegeArr', data.indexPrivileges);\n this.psClusterList = this.getPsServerPoolJsonTree(data.serverPools, data.pools);\n var checkedPools = [];\n tokenClusterData.pools.forEach(function (ele) {\n checkedPools.push(_this3.genPsNodeKey(ele));\n });\n this.$set(tokenClusterData, 'checkedPools', checkedPools);\n this.tokenClusterInfo = JSON.parse((0, _stringify2.default)(tokenClusterData));\n },\n getTokenDetail: function getTokenDetail() {\n var _this4 = this;\n\n if (this.tokenInfo.id) {\n this.loading = true;\n this.$http.get('/token/token_privileges.json?id=' + this.tokenInfo.id).then(function (data) {\n _this4.clusterList = data;\n _this4.sortTokenCluster();\n if ((0, _keys2.default)(data).length >= 0) {\n _this4.handleNodeClick(data[0]);\n }\n }).finally(function () {\n _this4.loading = false;\n });\n }\n },\n sortTokenCluster: function sortTokenCluster() {\n var _this5 = this;\n\n this.clusterList.sort(function (a, b) {\n var subA = _this5.isIndexPrivilege(a) ? 1 : 0;\n var subB = _this5.isIndexPrivilege(b) ? 1 : 0;\n if ((0, _keys2.default)(a.privileges).length + subA > (0, _keys2.default)(b.privileges).length + subB) {\n return -1;\n }\n if ((0, _keys2.default)(a.privileges).length + subA < (0, _keys2.default)(b.privileges).length + subB) {\n return 1;\n }\n return 0;\n });\n },\n isIndexPrivilege: function isIndexPrivilege(item) {\n var flag = false;\n flag = item.indexPrivileges.some(function (ele) {\n if ((0, _keys2.default)(ele.privileges).length !== 0) {\n return true;\n }\n return false;\n });\n return flag;\n },\n renderCluster: function renderCluster(h, _ref) {\n var data = _ref.data;\n\n var statusMap = '';\n if ((0, _keys2.default)(data.privileges).length !== 0 || this.isIndexPrivilege(data)) {\n statusMap = '已授权';\n }\n var renderHtml = h('span', [h('span', { style: { float: 'left', 'margin-left': '10px', 'font-size': '14px' } }, data.name), h('span', { style: { float: 'right', color: '#32cd32', 'margin-right': '10px', 'font-size': '12px' } }, statusMap)]);\n return renderHtml;\n },\n renderPsCluster: function renderPsCluster(h, _ref2) {\n var data = _ref2.data;\n\n var renderHtml = '';\n if (data.aliasName) {\n renderHtml = h('span', [h('el-popover', { props: { content: '\\u4EE3\\u7406\\u8282\\u70B9\\u96C6 ' + data.name + ' \\u56E0\\u4E3A\\u4E0B\\u7EBF\\u6216\\u8005\\u5220\\u9664\\u8BE5\\u4EE3\\u7406\\u7B49\\u539F\\u56E0\\u5DF2\\u7ECF\\u65E0\\u6CD5\\u8BBF\\u95EE', trigger: 'hover', placement: 'right', disabled: !data.offline } }, [h('span', { slot: 'reference', style: { 'margin-left': '10px', 'font-size': '14px' }, attrs: { class: '' + this.renderPoolOffline(data.offline) } }, data.name)]), h('el-popover', { props: { content: data.aliasName, trigger: 'hover' } }, [h('span', { slot: 'reference', style: { 'margin-left': '5px', color: 'gray', 'font-size': '14px' } }, '( ' + data.aliasName + ' )')])]);\n } else {\n renderHtml = h('span', [h('el-popover', { props: { content: '\\u4EE3\\u7406\\u8282\\u70B9\\u96C6 ' + data.name + ' \\u56E0\\u4E3A\\u4E0B\\u7EBF\\u6216\\u8005\\u5220\\u9664\\u8BE5\\u4EE3\\u7406\\u7B49\\u539F\\u56E0\\u5DF2\\u7ECF\\u65E0\\u6CD5\\u8BBF\\u95EE', trigger: 'hover', placement: 'right', disabled: !data.offline } }, [h('span', { slot: 'reference', style: { 'margin-left': '10px', 'font-size': '14px' }, attrs: { class: '' + this.renderPoolOffline(data.offline) } }, data.name)])]);\n }\n return renderHtml;\n },\n handlePsNodeClick: function handlePsNodeClick() {\n if ((0, _keys2.default)(this.tokenClusterInfo).length === 0) {\n this.$set(this.tokenClusterInfo, 'pools', []);\n } else {\n this.$set(this.tokenClusterInfo, 'pools', this.$refs.psPoolTree.getCheckedNodes());\n }\n },\n getPsServerPoolJsonTree: function getPsServerPoolJsonTree(serverPools, pools) {\n var _this6 = this;\n\n var groups = {};\n serverPools.forEach(function (ele) {\n var group = ele.psClusterName;\n var newEle = (0, _assign2.default)({}, ele, { id: _this6.genPsNodeKey(ele) });\n groups[group] = groups[group] || [];\n groups[group].push(newEle);\n });\n pools.forEach(function (ele) {\n var theSame = false;\n var group = ele.psClusterName;\n groups[group] = groups[group] || [];\n groups[group].forEach(function (e) {\n if (e.id === _this6.genPsNodeKey(ele)) {\n theSame = true;\n }\n });\n if (!theSame) {\n var newEle = (0, _assign2.default)({}, ele, { id: _this6.genPsNodeKey(ele), offline: true });\n groups[group].push(newEle);\n }\n });\n var tree = [];\n (0, _keys2.default)(groups).forEach(function (key) {\n var node = {\n name: key,\n children: groups[key],\n disabled: true\n };\n tree.push(node);\n });\n return tree;\n },\n genPsNodeKey: function genPsNodeKey(ele) {\n return ele.name + ':' + ele.psClusterName;\n },\n renderPoolOffline: function renderPoolOffline(status) {\n return status ? 'pool-offline' : '';\n }\n },\n created: function created() {\n this.getTokenDetail();\n },\n\n components: {\n 'token-index': _token_index2.default\n }\n};\n\n/***/ }),\n/* 720 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['tokenClusterInfo', 'clusterTreeHeight'],\n data: function data() {\n return {};\n },\n\n methods: {\n handleUpdate: function handleUpdate() {\n var _this = this;\n\n this.$message.confirmMessage('确定更新授权吗?', function () {\n _this.$emit('update-token-cluster');\n });\n },\n handleReset: function handleReset() {\n var _this2 = this;\n\n if (this.tokenClusterInfo.clusterPrivilege !== '') {\n this.tokenClusterInfo.clusterPrivilege = '';\n }\n if (this.tokenClusterInfo.myIndexPrivilegeArr.length > 0) {\n this.tokenClusterInfo.myIndexPrivilegeArr.forEach(function (ele, index) {\n if (ele.indexPrivilege !== '') {\n _this2.tokenClusterInfo.myIndexPrivilegeArr[index].indexPrivilege = '';\n }\n });\n }\n }\n }\n};\n\n/***/ }),\n/* 721 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['tokenInfo', 'tokenInfoTitle', 'tokenInfoOperate'],\n data: function data() {\n return {\n loading: false,\n isVisible: true,\n rules: {\n title: [{ required: true, message: '请输入Token标题', trigger: 'blur' }]\n }\n };\n },\n\n methods: {\n reGenerate: function reGenerate() {\n var _this = this;\n\n this.loading = true;\n this.$http.post('/token/security/token.json').then(function (data) {\n _this.tokenInfo.clientToken = data;\n }).finally(function () {\n _this.loading = false;\n });\n },\n submitInfo: function submitInfo() {\n var _this2 = this;\n\n this.$refs.tokenInfo.validate(function (valid) {\n if (valid) {\n _this2.tokenRequest('/token/insert.json');\n }\n });\n },\n tokenRequest: function tokenRequest(url) {\n var _this3 = this;\n\n this.loading = true;\n this.$http.post(url, this.tokenInfo).then(function () {\n var resp = {\n operation: _this3.tokenInfoOperate,\n clientToken: _this3.tokenInfo.clientToken,\n title: _this3.tokenInfo.title\n };\n _this3.$emit('token-info-success', resp);\n }).finally(function () {\n _this3.loading = false;\n });\n },\n closeDialog: function closeDialog() {\n this.$emit('close-dialog');\n }\n },\n computed: {\n isEditable: function isEditable() {\n return this.tokenInfoOperate === 'add';\n }\n }\n};\n\n/***/ }),\n/* 722 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(32);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _stringify = __webpack_require__(11);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _token_detail = __webpack_require__(1425);\n\nvar _token_detail2 = _interopRequireDefault(_token_detail);\n\nvar _token_info_dialog = __webpack_require__(1427);\n\nvar _token_info_dialog2 = _interopRequireDefault(_token_info_dialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n data: function data() {\n return {\n loading: false,\n isPrivilege: false,\n isTokenInfoVisible: false,\n isSelectToken: false,\n tokenInfo: {},\n tokenInfoTitle: '',\n tokenInfoOperate: '',\n tokenForSearch: '',\n tokenSelectInfo: {},\n tokenList: [],\n statusMap: {\n true: '启用',\n false: '禁用'\n },\n initTokenList: [],\n tokenHeight: {\n height: document.body.clientHeight - 225\n }\n };\n },\n\n computed: {\n tokenErrorHeight: function tokenErrorHeight() {\n return { height: this.tokenHeight.height + 92, 'line-height': this.tokenHeight.height + 92 + 'px' };\n }\n },\n mounted: function mounted() {\n this.tokenHeight = { height: document.body.clientHeight - 225 };\n var that = this;\n window.onresize = function temp() {\n that.tokenHeight = { height: document.body.clientHeight - 225 };\n };\n },\n\n methods: {\n handleSearch: function handleSearch() {\n var _this = this;\n\n var filtered = this.initTokenList;\n filtered = filtered.filter(function (e) {\n if (typeof e.clientToken === 'string') {\n var isRight = e.clientToken.toLowerCase().indexOf(_this.tokenForSearch.toLowerCase()) > -1 || e.title.toLowerCase().indexOf(_this.tokenForSearch.toLowerCase()) > -1 || e.id.toString().indexOf(_this.tokenForSearch.toLowerCase()) > -1;\n return isRight;\n }\n return e.clientToken === _this.tokenForSearch;\n });\n this.tokenList = filtered;\n },\n handleAdd: function handleAdd() {\n var tokenAddInfo = {\n title: '',\n clientToken: '',\n enabled: true\n };\n this.tokenInfo = JSON.parse((0, _stringify2.default)(tokenAddInfo));\n this.tokenInfoTitle = '新建Token';\n this.tokenInfoOperate = 'add';\n this.isTokenInfoVisible = true;\n },\n closeTokenInfoDialog: function closeTokenInfoDialog() {\n this.isTokenInfoVisible = false;\n },\n tokenInfoSuccess: function tokenInfoSuccess(resp) {\n if (resp.operation === 'edit') {\n this.tokenSelectInfo.clientToken = resp.clientToken;\n this.tokenSelectInfo.title = resp.title;\n }\n this.isTokenInfoVisible = false;\n this.init();\n },\n handleEdit: function handleEdit(row) {\n var tokenEditInfo = {\n id: row.id,\n title: row.title,\n clientToken: row.clientToken,\n enabled: row.enabled\n };\n this.tokenInfo = JSON.parse((0, _stringify2.default)(tokenEditInfo));\n this.tokenInfoTitle = '编辑Token';\n this.tokenInfoOperate = 'edit';\n this.isTokenInfoVisible = true;\n },\n handleTokenClick: function handleTokenClick(row) {\n this.isSelectToken = true;\n this.tokenSelectInfo = JSON.parse((0, _stringify2.default)(row));\n },\n getDataList: function getDataList() {\n var _this2 = this;\n\n return this.$http.get('/token/list.json').then(function (data) {\n _this2.tokenList = data;\n _this2.initTokenList = data;\n _this2.isPrivilege = true;\n });\n },\n init: function init() {\n var _this3 = this;\n\n this.loading = true;\n _promise2.default.all([this.getDataList()]).then(function () {\n _this3.loading = false;\n });\n }\n },\n created: function created() {\n this.init();\n },\n\n components: {\n 'token-detail': _token_detail2.default,\n 'token-info-dialog': _token_info_dialog2.default\n }\n};\n\n/***/ }),\n/* 723 */,\n/* 724 */,\n/* 725 */,\n/* 726 */,\n/* 727 */,\n/* 728 */,\n/* 729 */,\n/* 730 */,\n/* 731 */,\n/* 732 */,\n/* 733 */,\n/* 734 */,\n/* 735 */,\n/* 736 */,\n/* 737 */,\n/* 738 */,\n/* 739 */,\n/* 740 */,\n/* 741 */,\n/* 742 */,\n/* 743 */,\n/* 744 */,\n/* 745 */,\n/* 746 */,\n/* 747 */,\n/* 748 */,\n/* 749 */,\n/* 750 */,\n/* 751 */,\n/* 752 */,\n/* 753 */,\n/* 754 */,\n/* 755 */,\n/* 756 */,\n/* 757 */,\n/* 758 */,\n/* 759 */,\n/* 760 */,\n/* 761 */,\n/* 762 */,\n/* 763 */,\n/* 764 */,\n/* 765 */,\n/* 766 */,\n/* 767 */,\n/* 768 */,\n/* 769 */,\n/* 770 */,\n/* 771 */,\n/* 772 */,\n/* 773 */,\n/* 774 */,\n/* 775 */,\n/* 776 */,\n/* 777 */,\n/* 778 */,\n/* 779 */,\n/* 780 */,\n/* 781 */,\n/* 782 */,\n/* 783 */,\n/* 784 */,\n/* 785 */,\n/* 786 */,\n/* 787 */,\n/* 788 */,\n/* 789 */,\n/* 790 */,\n/* 791 */,\n/* 792 */,\n/* 793 */,\n/* 794 */,\n/* 795 */,\n/* 796 */,\n/* 797 */,\n/* 798 */,\n/* 799 */,\n/* 800 */,\n/* 801 */,\n/* 802 */,\n/* 803 */,\n/* 804 */,\n/* 805 */,\n/* 806 */,\n/* 807 */,\n/* 808 */,\n/* 809 */,\n/* 810 */,\n/* 811 */,\n/* 812 */,\n/* 813 */,\n/* 814 */,\n/* 815 */,\n/* 816 */,\n/* 817 */,\n/* 818 */,\n/* 819 */,\n/* 820 */,\n/* 821 */,\n/* 822 */,\n/* 823 */,\n/* 824 */,\n/* 825 */,\n/* 826 */,\n/* 827 */,\n/* 828 */,\n/* 829 */,\n/* 830 */,\n/* 831 */,\n/* 832 */,\n/* 833 */,\n/* 834 */,\n/* 835 */,\n/* 836 */,\n/* 837 */,\n/* 838 */,\n/* 839 */,\n/* 840 */,\n/* 841 */,\n/* 842 */,\n/* 843 */,\n/* 844 */,\n/* 845 */,\n/* 846 */,\n/* 847 */,\n/* 848 */,\n/* 849 */,\n/* 850 */,\n/* 851 */,\n/* 852 */,\n/* 853 */,\n/* 854 */,\n/* 855 */,\n/* 856 */,\n/* 857 */,\n/* 858 */,\n/* 859 */,\n/* 860 */,\n/* 861 */,\n/* 862 */,\n/* 863 */,\n/* 864 */,\n/* 865 */,\n/* 866 */,\n/* 867 */,\n/* 868 */,\n/* 869 */,\n/* 870 */,\n/* 871 */,\n/* 872 */,\n/* 873 */,\n/* 874 */,\n/* 875 */,\n/* 876 */,\n/* 877 */,\n/* 878 */,\n/* 879 */,\n/* 880 */,\n/* 881 */,\n/* 882 */,\n/* 883 */,\n/* 884 */,\n/* 885 */,\n/* 886 */,\n/* 887 */,\n/* 888 */,\n/* 889 */,\n/* 890 */,\n/* 891 */,\n/* 892 */,\n/* 893 */,\n/* 894 */,\n/* 895 */,\n/* 896 */,\n/* 897 */,\n/* 898 */,\n/* 899 */,\n/* 900 */,\n/* 901 */,\n/* 902 */,\n/* 903 */,\n/* 904 */,\n/* 905 */,\n/* 906 */,\n/* 907 */,\n/* 908 */,\n/* 909 */,\n/* 910 */,\n/* 911 */,\n/* 912 */,\n/* 913 */,\n/* 914 */,\n/* 915 */,\n/* 916 */,\n/* 917 */,\n/* 918 */,\n/* 919 */,\n/* 920 */,\n/* 921 */,\n/* 922 */,\n/* 923 */,\n/* 924 */,\n/* 925 */,\n/* 926 */,\n/* 927 */,\n/* 928 */,\n/* 929 */,\n/* 930 */,\n/* 931 */,\n/* 932 */,\n/* 933 */,\n/* 934 */,\n/* 935 */,\n/* 936 */,\n/* 937 */,\n/* 938 */,\n/* 939 */,\n/* 940 */,\n/* 941 */,\n/* 942 */,\n/* 943 */,\n/* 944 */,\n/* 945 */,\n/* 946 */,\n/* 947 */,\n/* 948 */,\n/* 949 */,\n/* 950 */,\n/* 951 */,\n/* 952 */,\n/* 953 */,\n/* 954 */,\n/* 955 */,\n/* 956 */,\n/* 957 */,\n/* 958 */,\n/* 959 */,\n/* 960 */,\n/* 961 */,\n/* 962 */,\n/* 963 */,\n/* 964 */,\n/* 965 */,\n/* 966 */,\n/* 967 */,\n/* 968 */,\n/* 969 */,\n/* 970 */,\n/* 971 */,\n/* 972 */,\n/* 973 */,\n/* 974 */,\n/* 975 */,\n/* 976 */,\n/* 977 */,\n/* 978 */,\n/* 979 */,\n/* 980 */,\n/* 981 */,\n/* 982 */,\n/* 983 */,\n/* 984 */,\n/* 985 */,\n/* 986 */,\n/* 987 */,\n/* 988 */,\n/* 989 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".target-group-transfer .el-transfer-panel{min-width:43%}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 990 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".template-config[data-v-03f7eaf3]{height:500px;margin:15px;color:#fff}.template-config-content .title[data-v-03f7eaf3]{font-weight:700;font-size:16px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 991 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".chart-no-data{line-height:300px;text-align:center;color:red}.chart-no-data i{margin-right:10px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 992 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 993 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".panel[data-v-07add241]{background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-default-info[data-v-07add241]{background-color:#3d3d3d;padding-top:10px;padding-bottom:5px;border:1px solid #262626;opacity:.8}.panel-danger-info[data-v-07add241]{background-color:#c00;padding-top:10px;padding-bottom:5px;text-decoration:none;opacity:.8}.panel-danger-info[data-v-07add241]:hover{background-color:red}.panel-warning-info[data-v-07add241]{background-color:#f80;padding-top:10px;padding-bottom:5px;text-decoration:none;opacity:.8}.panel-success-info[data-v-07add241]{background-color:#67c23a;padding-top:10px;padding-bottom:5px;text-decoration:none;opacity:.8}.panel-content-title[data-v-07add241]{text-align:center;color:#fff;font-size:15px;word-wrap:break-word;word-break:normal}.panel-content-body[data-v-07add241]{text-align:center;color:#fff;font-size:22px;padding-top:5px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 994 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".token-index{margin-top:3px}.token-index .el-radio-button--small .el-radio-button__inner{padding:3px 5px}.el-table th,.token-index .el-table td{height:36px}.token-index .el-table th>.cell{line-height:36px}.el-table th>div,.token-index .el-table .cell{padding-top:0;padding-bottom:0}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 995 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".label-title{height:30px;line-height:30px;margin-bottom:5px;padding-left:5px;background-color:#333}.label-title .span-title{color:#eee;font-size:15px;margin-right:5px}.label-content{margin:10px 15px 20px}.label-content span{color:#eee}.version-info-dialog .el-dialog__body{padding:10px 5px 10px 0}.version-info-dialog .el-dialog__footer{padding:10px 20px 0 0}.version-info-dialog .el-form-item,.version-info-dialog form{margin-bottom:0}.red{color:red}.version-info-dialog .el-button--text{color:#eee}.el-button--text:hover,.version-info-dialog .el-button--text:focus{color:gray}.version-info-dialog .el-checkbox{color:#eee}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 996 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".batch-submit-template{margin:10px}.batch-submit-template .el-transfer-panel{width:250px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 997 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".edit-save-span{color:#fff;font-size:15px;font-weight:bolder;padding:15px 40px}.edit-save-span i{color:red}.edit-save-span span{color:#32cd32}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 998 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".export-template{margin:10px}.export-template .el-transfer-panel{width:250px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 999 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".panel-container[data-v-22a7638e]{border:1px solid gray;margin-bottom:20px}.panel-container .panel-header[data-v-22a7638e]{color:#eee;background-color:#373a3c;border-bottom:1px solid gray;height:35px;line-height:35px;padding:0 10px}.panel-container .panel-header i[data-v-22a7638e]{height:35px;line-height:35px}.panel-container .panel-body[data-v-22a7638e]{background-color:#373a3c}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1000 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1001 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".condition-add[data-v-254d07b9]{margin:10px 5px}.condition-add .warning i[data-v-254d07b9]{color:red}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1002 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".plugin-version .el-button+.el-button{margin-left:0}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1003 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".target-group-transfer .el-transfer-panel{min-width:43%}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1004 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1005 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".condition-add[data-v-2eb1c088]{margin:10px 5px}.condition-add .warning i[data-v-2eb1c088]{color:red}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1006 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".clusters-select{width:100%}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1007 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".copy-to-field{margin:10px}.copy-to-field .el-transfer-panel{width:250px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1008 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".login-box{margin:15% auto;width:400px;border:1px solid gray;border-radius:6px}.login-box .login-header{color:#eee;padding:10px;border-bottom:1px solid gray}.login-box .login-body{padding:20px 40px}.login-box .login-body .el-row{margin-bottom:20px}.login-box .login-body .el-row:last-child{margin-bottom:0}.login-box .login-body .msg-error{position:relative;background:#ffebeb;color:#e4393c;border:1px solid #faccc6;line-height:15px;font-size:13px;padding:3px 10px;margin-bottom:10px}.login-box .login-body .msg-error i{margin-right:5px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1009 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".template_content{display:table;width:100%}.template_tree{padding-right:30px;display:table-cell;width:245px}.template-warning{text-align:center;color:red;font-size:larger;font-weight:bolder;display:table-cell;vertical-align:middle}.template-warning i{padding-right:10px}.template-body{display:table-cell}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1010 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".template-test-upload .el-table--enable-row-hover .el-table__body tr:hover>td{background-color:transparent}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1011 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1012 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".target-group-item{margin-right:5px}.condition-table+.condition-table{border-top:1px solid gray}.condition-table span{white-space:nowrap}.route-tag{margin-bottom:5px}.route-weight{color:#7fffd4;font-size:12px;margin-left:3px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1013 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".index-timeout-retry[data-v-4ac0cba8]{margin:10px 0 20px;font-size:15px}.index-timeout-retry span[data-v-4ac0cba8]{color:#32cd32}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1014 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1015 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".template-content .template-title{color:#fff;line-height:30px}.template-content .template-title .template-name{color:#32cd32;font-weight:700;margin-right:15px}.template-content .template-title .template-approving{color:red;margin-left:10px;font-weight:400}.template-content .template-title .template-approving a{color:red}.template-content .template-title .template-approving a:hover{color:rgba(255,0,0,.7)}.result-content .el-textarea__inner{background-color:#272822}.api-content{padding:5px;background-color:#222;color:#fff}.no-border{border:none}.debug-title{width:100%;margin-bottom:5px;height:30px;line-height:30px}.template-edit-content{height:650px;width:100%;overflow-y:auto;float:left}.template-edit-and-version-content{height:650px;width:62%;float:left}.template-history-version-content{position:relative;width:38%;float:left}.template-history-version-content table{font-size:10px}.template-history-version-content .el-table .cell{line-height:normal}.template-history-version-content .el-table tr:hover{cursor:pointer}.render-cluster{margin-left:15px}.render-cluster>span{font-size:16px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1016 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".target-group-item{margin-right:5px}.condition-table+.condition-table{border-top:1px solid gray}.condition-table span{white-space:nowrap}.route-tag{margin-bottom:5px}.route-weight{color:#7fffd4;font-size:12px;margin-left:3px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1017 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".schema-content{margin-bottom:10px}.nested-input{width:50%}.schema-info-dialog .el-dialog__footer{padding:10px 20px 15px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1018 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1019 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1020 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".profile-template .el-collapse-item__header{padding-left:5px;background-color:#272822}.profile-template .el-collapse-item__content{padding:0 1px}.profile-tree .profile-tree-th{color:#aaa;font-size:xx-small;background-color:#272822}.profile-tree .el-tree{border:none;color:#eee;background-color:#272822}.profile-tree-type{font-size:14px;margin-right:10px}.profile-tree-desc{font-size:10px;color:#bbb;font-style:italic}.profile-tree-time{margin-right:10px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1021 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".clusters-select{width:100%}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1022 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".cluster_restart_setting[data-v-66714b9d],.cluster_restart_tab[data-v-66714b9d]{margin-bottom:10px}.cluster_restart_setting .el-button--text[data-v-66714b9d]:focus,.cluster_restart_setting .el-button--text[data-v-66714b9d]:hover{color:#fff}.cluster_restart_setting .el-table .cell[data-v-66714b9d],.el-table th>div[data-v-66714b9d]{padding-top:0;padding-bottom:0}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1023 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".template-import-upload{margin:0 20px 20px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1024 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".monitor-top{margin-bottom:10px}.monitor-top .el-table .cell,.monitor-top .el-table th>div{padding-top:0;padding-bottom:0}.monitor-top .el-table td,.monitor-top .el-table th.is-leaf{border-bottom:none}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1025 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".my-container[data-v-6ba933be]{height:100%}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1026 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".token-name-span{color:#32cd32;font-weight:700;margin-right:10px}.token-cluster{margin-top:5px;overflow:auto}.token-index,.token-pool{margin-top:5px}.title-span{font-size:14px;margin-right:10px}.token-cluster-tree{margin-top:10px;position:relative;overflow:auto}.pool-offline{text-decoration:line-through;color:#ff4949}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1027 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".plugin-upload{margin-left:50px}.plugin-upload-tooltip.el-tooltip__popper.is-dark{background:#333}.plugin-upload-warning{margin-left:50px;color:red}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1028 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1029 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".schema-content{margin-bottom:10px}.schema-info-dialog .el-dialog__footer{padding:10px 20px 15px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1030 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".data-source-content{margin:-10px 0 10px}.data-source-add{padding:5px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1031 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".template-test{margin:0 10px}.template-test .template-test-content{margin:0 0 10px}.template-test .template-test-content .template-test-tips{margin-top:5px;color:red;font-size:13px}.template-test .template-test-content .template-test-head{background-color:gray;height:25px;border-radius:4px;padding-left:5px;font-size:15px}.template-test-popper{background-color:#222;border:none}.template-test-popper .popper-button{float:left;padding:5px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1032 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".target-group-item[data-v-7ef147c0]{margin-bottom:15px}.target-group-item[data-v-7ef147c0]:hover{box-shadow:0 1px 20px #d1dbe5}.target-group-item .target-group-header[data-v-7ef147c0]{padding:10px;border:1px solid gray;height:25px;background-color:#373a3c}.target-group-item .target-group-header .title[data-v-7ef147c0]{background-color:#13ce66;border-radius:4px;padding:5px 10px}.target-group-item .target-group-content .el-tree[data-v-7ef147c0]{border:1px solid gray}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1033 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".ins,.match,.text-diff span,ins{color:#fff}.ins,ins{background:#0a3}.del,del{color:#fff;background:#980000}.noselect{user-select:none}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1034 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".footer{position:fixed;bottom:0;width:100%}.footer p{text-align:center;color:hsla(0,0%,75%,.5);margin-top:0;margin-bottom:0;font-size:13px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1035 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".label-title{height:30px;line-height:30px;margin-bottom:5px;padding-left:5px;background-color:#333}.label-title .span-title{color:#eee;font-size:15px;margin-right:5px}.label-content{margin:10px 15px 20px}.label-content span{color:#eee}.version-info-dialog .el-dialog__body{padding:10px 5px 10px 0}.version-info-dialog .el-dialog__footer{padding:10px 20px 0 0}.version-info-dialog .el-form-item,.version-info-dialog form{margin-bottom:0}.red{color:red}.version-info-dialog .el-button--text{color:#eee}.el-button--text:hover,.version-info-dialog .el-button--text:focus{color:gray}.version-info-dialog .el-checkbox{color:#eee}.source-setting{padding:10px 10px 10px 6px;border:1px solid gray}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1036 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".template-insert-dialog .el-dialog--small{width:auto;min-width:700px}.template-insert{margin:15px;color:#fff}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1037 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".target-group-item[data-v-aeee314e]{margin-bottom:15px}.target-group-item[data-v-aeee314e]:hover{box-shadow:0 1px 20px #d1dbe5}.target-group-item .target-group-header[data-v-aeee314e]{padding:10px;border:1px solid gray;height:25px}.target-group-item .target-group-header .title[data-v-aeee314e]{background-color:#13ce66;border-radius:4px;padding:5px 10px}.target-group-item .target-group-content .el-tree[data-v-aeee314e]{height:200px;overflow:auto;border:1px solid gray}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1038 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".token-table .el-table--enable-row-transition .el-table__body td{text-align:left}.token-warning{text-align:center;color:red;font-size:larger;font-weight:bolder;vertical-align:middle}.token-warning i{padding-right:10px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1039 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".ace_scrollbar-h::-webkit-scrollbar,.ace_scrollbar-v::-webkit-scrollbar{width:8px;height:8px;border-radius:8px}.ace_scrollbar-h::-webkit-scrollbar-thumb,.ace_scrollbar-v::-webkit-scrollbar-thumb{border-radius:8px;background-color:hsla(220,4%,58%,.5)}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1040 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".navbar{width:100%;display:table}.navbar-title{display:table-cell;background-color:#373a3c;color:#fff;height:60px;line-height:60px;font-weight:700;width:260px}.navbar-title span img{float:left;padding:10px 10px 0 25px}.navbar-content{display:table-cell;vertical-align:middle}.navbar-content ul{background-color:#373a3c;border-radius:0}.logout-a-link{text-decoration:initial}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1041 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".my-table-expand{font-size:0;padding-left:100px}.my-table-expand label{width:90px;color:#99a9bf}.my-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:33.3333333%;text-align:left}.data-source-text{margin-right:8px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1042 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".tm-body{background:#373a3c none repeat scroll 0 0;border-radius:4px;margin-left:5px;margin-right:5px}.tm-body:after{bottom:0;content:\\\"\\\";display:block;height:65%;left:146px;position:absolute;width:3px;z-index:0}.tm-items{list-style:outside none none;margin:0;padding:0;position:relative;font-size:14px}.tm-items:before{background-color:#eee;bottom:0;content:\\\" \\\";left:127px;position:absolute;top:0;width:3px}.tm-items>li{margin:30px 0;min-height:65px;padding:0 0 0 190px;position:relative;z-index:1}.tm-items>li .tm-icon{background-color:#373a3c;border-color:#08c;border-radius:126px;color:#ccc;font-size:22px;height:25px;left:66px;line-height:25px;margin-left:50px;margin-top:-17px;padding-top:5px;position:absolute;text-align:center;top:50%;width:25px;z-index:2}.tm-items>li .tm-datetime{left:0;margin-left:3px;text-align:right}.tm-items>li .tm-datetime,.tm-items>li .tm-item{height:48px;margin-top:-17px;padding-top:5px;position:absolute;top:50%;width:100px;z-index:3}.tm-items>li .tm-item{color:#ccc;font-weight:700;left:150px;text-align:left}.tm-items>li .tm-timeline-box{left:140px;line-height:29px;margin-left:-30px;margin-top:-20px;position:absolute;text-align:center;top:50%;width:120px;z-index:2}.tm-items>li .tm-timeline-box .tm-timeline{background-color:#428bca;padding-left:2px;text-align:left}.tm-items>li .tm-ratio{line-height:29px;text-align:left}.tm-items>li .tm-box{background:#222 none repeat scroll 0 0;border:1px solid #222;border-radius:6px;margin-left:80px;margin-right:5px;min-height:65px;padding:10px 20px;position:relative}.tm-items>li .tm-box:after{border:none;border-color:transparent #222 transparent transparent;border-image:none;border-style:solid;border-width:8px;content:\\\" \\\";height:0;margin-top:-8px;pointer-events:none;position:absolute;right:100%;top:50%;width:0;z-index:2}.tm-items>li .tm-box .tm-meta{margin:20px 0 0}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1043 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1044 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".target-group[data-v-ed9f792e]{margin-top:10px}.target-group-null[data-v-ed9f792e]{text-align:center;border:1px solid gray;padding:10px;font-size:14px;color:#5e7382}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1045 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".content{margin:0 20px 20px}.dynamic-pagination{padding-right:5px}.operation-content a{cursor:pointer}.operation-content .operation-content-fold{height:21px;overflow:hidden}.operation-content .operation-content-unfold{height:auto}.empty-operation{position:relative;text-align:center;height:60px;border:1px solid gray;margin-top:20px;line-height:60px;color:#5e7382;font-size:14px}.bg-purple-dark{background:#222}.grid-content{line-height:36px;border-radius:4px;min-height:36px}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1046 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".target-group[data-v-eee0a37c]{margin-top:10px}.target-group-null[data-v-eee0a37c]{text-align:center;border:1px solid gray;padding:10px;font-size:14px;color:#5e7382;background-color:#373a3c}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1047 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(6)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".page-tab .el-tabs{background-color:#373a3c}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 1048 */,\n/* 1049 */,\n/* 1050 */,\n/* 1051 */,\n/* 1052 */,\n/* 1053 */,\n/* 1054 */,\n/* 1055 */,\n/* 1056 */,\n/* 1057 */,\n/* 1058 */,\n/* 1059 */,\n/* 1060 */,\n/* 1061 */,\n/* 1062 */,\n/* 1063 */,\n/* 1064 */,\n/* 1065 */,\n/* 1066 */,\n/* 1067 */,\n/* 1068 */,\n/* 1069 */,\n/* 1070 */,\n/* 1071 */,\n/* 1072 */,\n/* 1073 */,\n/* 1074 */,\n/* 1075 */,\n/* 1076 */,\n/* 1077 */,\n/* 1078 */,\n/* 1079 */,\n/* 1080 */,\n/* 1081 */,\n/* 1082 */,\n/* 1083 */,\n/* 1084 */,\n/* 1085 */,\n/* 1086 */,\n/* 1087 */,\n/* 1088 */,\n/* 1089 */,\n/* 1090 */,\n/* 1091 */,\n/* 1092 */,\n/* 1093 */,\n/* 1094 */,\n/* 1095 */,\n/* 1096 */,\n/* 1097 */,\n/* 1098 */,\n/* 1099 */,\n/* 1100 */,\n/* 1101 */,\n/* 1102 */,\n/* 1103 */,\n/* 1104 */,\n/* 1105 */,\n/* 1106 */,\n/* 1107 */,\n/* 1108 */,\n/* 1109 */,\n/* 1110 */,\n/* 1111 */,\n/* 1112 */,\n/* 1113 */,\n/* 1114 */,\n/* 1115 */,\n/* 1116 */,\n/* 1117 */,\n/* 1118 */,\n/* 1119 */,\n/* 1120 */,\n/* 1121 */,\n/* 1122 */,\n/* 1123 */,\n/* 1124 */,\n/* 1125 */,\n/* 1126 */,\n/* 1127 */,\n/* 1128 */,\n/* 1129 */,\n/* 1130 */,\n/* 1131 */,\n/* 1132 */,\n/* 1133 */,\n/* 1134 */,\n/* 1135 */,\n/* 1136 */,\n/* 1137 */,\n/* 1138 */,\n/* 1139 */,\n/* 1140 */,\n/* 1141 */,\n/* 1142 */,\n/* 1143 */,\n/* 1144 */,\n/* 1145 */,\n/* 1146 */,\n/* 1147 */,\n/* 1148 */,\n/* 1149 */,\n/* 1150 */,\n/* 1151 */,\n/* 1152 */,\n/* 1153 */,\n/* 1154 */,\n/* 1155 */,\n/* 1156 */,\n/* 1157 */,\n/* 1158 */,\n/* 1159 */,\n/* 1160 */,\n/* 1161 */,\n/* 1162 */,\n/* 1163 */,\n/* 1164 */,\n/* 1165 */,\n/* 1166 */,\n/* 1167 */,\n/* 1168 */,\n/* 1169 */,\n/* 1170 */,\n/* 1171 */,\n/* 1172 */,\n/* 1173 */,\n/* 1174 */,\n/* 1175 */,\n/* 1176 */,\n/* 1177 */,\n/* 1178 */,\n/* 1179 */,\n/* 1180 */,\n/* 1181 */,\n/* 1182 */,\n/* 1183 */,\n/* 1184 */,\n/* 1185 */,\n/* 1186 */,\n/* 1187 */,\n/* 1188 */,\n/* 1189 */,\n/* 1190 */,\n/* 1191 */,\n/* 1192 */,\n/* 1193 */,\n/* 1194 */,\n/* 1195 */,\n/* 1196 */,\n/* 1197 */,\n/* 1198 */,\n/* 1199 */,\n/* 1200 */,\n/* 1201 */,\n/* 1202 */,\n/* 1203 */,\n/* 1204 */,\n/* 1205 */,\n/* 1206 */,\n/* 1207 */,\n/* 1208 */,\n/* 1209 */,\n/* 1210 */,\n/* 1211 */,\n/* 1212 */,\n/* 1213 */,\n/* 1214 */,\n/* 1215 */,\n/* 1216 */,\n/* 1217 */,\n/* 1218 */,\n/* 1219 */,\n/* 1220 */,\n/* 1221 */,\n/* 1222 */,\n/* 1223 */,\n/* 1224 */,\n/* 1225 */,\n/* 1226 */,\n/* 1227 */,\n/* 1228 */,\n/* 1229 */,\n/* 1230 */,\n/* 1231 */,\n/* 1232 */,\n/* 1233 */,\n/* 1234 */,\n/* 1235 */,\n/* 1236 */,\n/* 1237 */,\n/* 1238 */,\n/* 1239 */,\n/* 1240 */,\n/* 1241 */,\n/* 1242 */,\n/* 1243 */,\n/* 1244 */,\n/* 1245 */,\n/* 1246 */,\n/* 1247 */,\n/* 1248 */,\n/* 1249 */,\n/* 1250 */,\n/* 1251 */,\n/* 1252 */,\n/* 1253 */,\n/* 1254 */,\n/* 1255 */,\n/* 1256 */,\n/* 1257 */,\n/* 1258 */,\n/* 1259 */,\n/* 1260 */,\n/* 1261 */,\n/* 1262 */,\n/* 1263 */,\n/* 1264 */,\n/* 1265 */,\n/* 1266 */,\n/* 1267 */,\n/* 1268 */,\n/* 1269 */,\n/* 1270 */,\n/* 1271 */,\n/* 1272 */,\n/* 1273 */,\n/* 1274 */,\n/* 1275 */,\n/* 1276 */,\n/* 1277 */,\n/* 1278 */,\n/* 1279 */,\n/* 1280 */,\n/* 1281 */,\n/* 1282 */,\n/* 1283 */,\n/* 1284 */,\n/* 1285 */,\n/* 1286 */,\n/* 1287 */,\n/* 1288 */,\n/* 1289 */,\n/* 1290 */,\n/* 1291 */,\n/* 1292 */,\n/* 1293 */,\n/* 1294 */,\n/* 1295 */,\n/* 1296 */,\n/* 1297 */,\n/* 1298 */,\n/* 1299 */,\n/* 1300 */,\n/* 1301 */,\n/* 1302 */,\n/* 1303 */,\n/* 1304 */,\n/* 1305 */,\n/* 1306 */,\n/* 1307 */,\n/* 1308 */,\n/* 1309 */,\n/* 1310 */,\n/* 1311 */,\n/* 1312 */,\n/* 1313 */,\n/* 1314 */,\n/* 1315 */,\n/* 1316 */,\n/* 1317 */,\n/* 1318 */,\n/* 1319 */,\n/* 1320 */,\n/* 1321 */,\n/* 1322 */,\n/* 1323 */,\n/* 1324 */,\n/* 1325 */,\n/* 1326 */,\n/* 1327 */,\n/* 1328 */,\n/* 1329 */,\n/* 1330 */,\n/* 1331 */,\n/* 1332 */,\n/* 1333 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./af\": 416,\n\t\"./af.js\": 416,\n\t\"./ar\": 423,\n\t\"./ar-dz\": 417,\n\t\"./ar-dz.js\": 417,\n\t\"./ar-kw\": 418,\n\t\"./ar-kw.js\": 418,\n\t\"./ar-ly\": 419,\n\t\"./ar-ly.js\": 419,\n\t\"./ar-ma\": 420,\n\t\"./ar-ma.js\": 420,\n\t\"./ar-sa\": 421,\n\t\"./ar-sa.js\": 421,\n\t\"./ar-tn\": 422,\n\t\"./ar-tn.js\": 422,\n\t\"./ar.js\": 423,\n\t\"./az\": 424,\n\t\"./az.js\": 424,\n\t\"./be\": 425,\n\t\"./be.js\": 425,\n\t\"./bg\": 426,\n\t\"./bg.js\": 426,\n\t\"./bm\": 427,\n\t\"./bm.js\": 427,\n\t\"./bn\": 428,\n\t\"./bn.js\": 428,\n\t\"./bo\": 429,\n\t\"./bo.js\": 429,\n\t\"./br\": 430,\n\t\"./br.js\": 430,\n\t\"./bs\": 431,\n\t\"./bs.js\": 431,\n\t\"./ca\": 432,\n\t\"./ca.js\": 432,\n\t\"./cs\": 433,\n\t\"./cs.js\": 433,\n\t\"./cv\": 434,\n\t\"./cv.js\": 434,\n\t\"./cy\": 435,\n\t\"./cy.js\": 435,\n\t\"./da\": 436,\n\t\"./da.js\": 436,\n\t\"./de\": 439,\n\t\"./de-at\": 437,\n\t\"./de-at.js\": 437,\n\t\"./de-ch\": 438,\n\t\"./de-ch.js\": 438,\n\t\"./de.js\": 439,\n\t\"./dv\": 440,\n\t\"./dv.js\": 440,\n\t\"./el\": 441,\n\t\"./el.js\": 441,\n\t\"./en-SG\": 442,\n\t\"./en-SG.js\": 442,\n\t\"./en-au\": 443,\n\t\"./en-au.js\": 443,\n\t\"./en-ca\": 444,\n\t\"./en-ca.js\": 444,\n\t\"./en-gb\": 445,\n\t\"./en-gb.js\": 445,\n\t\"./en-ie\": 446,\n\t\"./en-ie.js\": 446,\n\t\"./en-il\": 447,\n\t\"./en-il.js\": 447,\n\t\"./en-nz\": 448,\n\t\"./en-nz.js\": 448,\n\t\"./eo\": 449,\n\t\"./eo.js\": 449,\n\t\"./es\": 452,\n\t\"./es-do\": 450,\n\t\"./es-do.js\": 450,\n\t\"./es-us\": 451,\n\t\"./es-us.js\": 451,\n\t\"./es.js\": 452,\n\t\"./et\": 453,\n\t\"./et.js\": 453,\n\t\"./eu\": 454,\n\t\"./eu.js\": 454,\n\t\"./fa\": 455,\n\t\"./fa.js\": 455,\n\t\"./fi\": 456,\n\t\"./fi.js\": 456,\n\t\"./fo\": 457,\n\t\"./fo.js\": 457,\n\t\"./fr\": 460,\n\t\"./fr-ca\": 458,\n\t\"./fr-ca.js\": 458,\n\t\"./fr-ch\": 459,\n\t\"./fr-ch.js\": 459,\n\t\"./fr.js\": 460,\n\t\"./fy\": 461,\n\t\"./fy.js\": 461,\n\t\"./ga\": 462,\n\t\"./ga.js\": 462,\n\t\"./gd\": 463,\n\t\"./gd.js\": 463,\n\t\"./gl\": 464,\n\t\"./gl.js\": 464,\n\t\"./gom-latn\": 465,\n\t\"./gom-latn.js\": 465,\n\t\"./gu\": 466,\n\t\"./gu.js\": 466,\n\t\"./he\": 467,\n\t\"./he.js\": 467,\n\t\"./hi\": 468,\n\t\"./hi.js\": 468,\n\t\"./hr\": 469,\n\t\"./hr.js\": 469,\n\t\"./hu\": 470,\n\t\"./hu.js\": 470,\n\t\"./hy-am\": 471,\n\t\"./hy-am.js\": 471,\n\t\"./id\": 472,\n\t\"./id.js\": 472,\n\t\"./is\": 473,\n\t\"./is.js\": 473,\n\t\"./it\": 475,\n\t\"./it-ch\": 474,\n\t\"./it-ch.js\": 474,\n\t\"./it.js\": 475,\n\t\"./ja\": 476,\n\t\"./ja.js\": 476,\n\t\"./jv\": 477,\n\t\"./jv.js\": 477,\n\t\"./ka\": 478,\n\t\"./ka.js\": 478,\n\t\"./kk\": 479,\n\t\"./kk.js\": 479,\n\t\"./km\": 480,\n\t\"./km.js\": 480,\n\t\"./kn\": 481,\n\t\"./kn.js\": 481,\n\t\"./ko\": 482,\n\t\"./ko.js\": 482,\n\t\"./ku\": 483,\n\t\"./ku.js\": 483,\n\t\"./ky\": 484,\n\t\"./ky.js\": 484,\n\t\"./lb\": 485,\n\t\"./lb.js\": 485,\n\t\"./lo\": 486,\n\t\"./lo.js\": 486,\n\t\"./lt\": 487,\n\t\"./lt.js\": 487,\n\t\"./lv\": 488,\n\t\"./lv.js\": 488,\n\t\"./me\": 489,\n\t\"./me.js\": 489,\n\t\"./mi\": 490,\n\t\"./mi.js\": 490,\n\t\"./mk\": 491,\n\t\"./mk.js\": 491,\n\t\"./ml\": 492,\n\t\"./ml.js\": 492,\n\t\"./mn\": 493,\n\t\"./mn.js\": 493,\n\t\"./mr\": 494,\n\t\"./mr.js\": 494,\n\t\"./ms\": 496,\n\t\"./ms-my\": 495,\n\t\"./ms-my.js\": 495,\n\t\"./ms.js\": 496,\n\t\"./mt\": 497,\n\t\"./mt.js\": 497,\n\t\"./my\": 498,\n\t\"./my.js\": 498,\n\t\"./nb\": 499,\n\t\"./nb.js\": 499,\n\t\"./ne\": 500,\n\t\"./ne.js\": 500,\n\t\"./nl\": 502,\n\t\"./nl-be\": 501,\n\t\"./nl-be.js\": 501,\n\t\"./nl.js\": 502,\n\t\"./nn\": 503,\n\t\"./nn.js\": 503,\n\t\"./pa-in\": 504,\n\t\"./pa-in.js\": 504,\n\t\"./pl\": 505,\n\t\"./pl.js\": 505,\n\t\"./pt\": 507,\n\t\"./pt-br\": 506,\n\t\"./pt-br.js\": 506,\n\t\"./pt.js\": 507,\n\t\"./ro\": 508,\n\t\"./ro.js\": 508,\n\t\"./ru\": 509,\n\t\"./ru.js\": 509,\n\t\"./sd\": 510,\n\t\"./sd.js\": 510,\n\t\"./se\": 511,\n\t\"./se.js\": 511,\n\t\"./si\": 512,\n\t\"./si.js\": 512,\n\t\"./sk\": 513,\n\t\"./sk.js\": 513,\n\t\"./sl\": 514,\n\t\"./sl.js\": 514,\n\t\"./sq\": 515,\n\t\"./sq.js\": 515,\n\t\"./sr\": 517,\n\t\"./sr-cyrl\": 516,\n\t\"./sr-cyrl.js\": 516,\n\t\"./sr.js\": 517,\n\t\"./ss\": 518,\n\t\"./ss.js\": 518,\n\t\"./sv\": 519,\n\t\"./sv.js\": 519,\n\t\"./sw\": 520,\n\t\"./sw.js\": 520,\n\t\"./ta\": 521,\n\t\"./ta.js\": 521,\n\t\"./te\": 522,\n\t\"./te.js\": 522,\n\t\"./tet\": 523,\n\t\"./tet.js\": 523,\n\t\"./tg\": 524,\n\t\"./tg.js\": 524,\n\t\"./th\": 525,\n\t\"./th.js\": 525,\n\t\"./tl-ph\": 526,\n\t\"./tl-ph.js\": 526,\n\t\"./tlh\": 527,\n\t\"./tlh.js\": 527,\n\t\"./tr\": 528,\n\t\"./tr.js\": 528,\n\t\"./tzl\": 529,\n\t\"./tzl.js\": 529,\n\t\"./tzm\": 531,\n\t\"./tzm-latn\": 530,\n\t\"./tzm-latn.js\": 530,\n\t\"./tzm.js\": 531,\n\t\"./ug-cn\": 532,\n\t\"./ug-cn.js\": 532,\n\t\"./uk\": 533,\n\t\"./uk.js\": 533,\n\t\"./ur\": 534,\n\t\"./ur.js\": 534,\n\t\"./uz\": 536,\n\t\"./uz-latn\": 535,\n\t\"./uz-latn.js\": 535,\n\t\"./uz.js\": 536,\n\t\"./vi\": 537,\n\t\"./vi.js\": 537,\n\t\"./x-pseudo\": 538,\n\t\"./x-pseudo.js\": 538,\n\t\"./yo\": 539,\n\t\"./yo.js\": 539,\n\t\"./zh-cn\": 540,\n\t\"./zh-cn.js\": 540,\n\t\"./zh-hk\": 541,\n\t\"./zh-hk.js\": 541,\n\t\"./zh-tw\": 542,\n\t\"./zh-tw.js\": 542\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1333;\n\n\n/***/ }),\n/* 1334 */,\n/* 1335 */,\n/* 1336 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADcklEQVRYR+1XXVLaUBT+Tqi8lsICandAwgLUFYgrEGYapm/qCoorKL51ks6IK1BWIC7AhK5AXQBp+qrlns69EAohITeh03E68AjnnO+73/mF8Mo/9Mr5YUtw0wz93wpW/E+7BiaHELRLxHUG6lIxAkbMNILBjwKlQWh+fSyqZCEFK36rYqB8QoyuDjAzesJ4Pg/Nfqhjv2iTm2DN7xwzc49AlTxgDA5B6Aame5HHLxfB6n2nS4TPeQDitsw4DxqOlvKzctGDq/l2C0yXetYZVsTtsen2dWJpKVjxP+6X2LhNCsjgJzD1hSGGofltKOsTeFM3hCEbRir+NslvQuJA2meR1CJY9ToPBOyuBuPBhF5aacWvmkmUT5PKgoHHwHI+bEyw5neaYFxn1VLFs/cMmo4ZwRiFlnsX+VS9Tp+A4xUyhKOx6dysI5mpYFJwBr4HlqPIyFlY4sklQPvLQDycUKkdzcCaZ98AdBizGYwtt1mYoExRics/4gEmZHyQwCqFXPaT0w/INAp6NmUJVHy7XmLyV2M9v1s3HxMVVOliaoLQjIPLpggsV9Vj9d7uEdHJOgWY+SJouKfK3rMfCfR+0V4+AoybWZMN4rGWCMpXGoxLAqn0JXctrgLLac0A/XW20obBo8ByTZ0HSVtBaIemO4qw5wTlKDGYrrM2xOKgrXkdzupC+fvYchSOzqCXG0cQH0UjSDmm1UeKhvPCrnn2EKC9tSleaKjUbk4IEM1JRbDm2berXZiWYv2UqRQv12BmSUSoUWlQkRUWvW7axTujeOEvgDwJeqmv6+K1JULcpjyy/wnGw7HlHkzLQ83B/mqq+W5CpdZ8DqYM/IzyuKKqZ2vLvjQeGL2g4ZxF36kmm+5fCEOMkvZs3mzJEUS6nZg4cpj7QcNt63RyZJOXJFXvO2HaxaEDrA5Rdc3wVTS/pnuZ9sFogXkYf4QuSWb8pOQdqUNN34YTlNbD5YFUUJ5DX/ThilnGSWoNbcYZTbtQPBSDzecVkZyt1NusrSWPkmgF/RMV8zyHGWdBw+nNd7FeTeSB2MSW78aWq+7LhWNBnuc73azzaRNYHV+5GoXx0o1uxJV7cHbV9NPWlw5IERt5ZwriVnzAp578C//OYqd8Efh0H3moAr9GaVd15n+Sv0snf7QtwfyaLXtsFdwquKkCm/r/Bsz2yXeA+vMzAAAAAElFTkSuQmCC\"\n\n/***/ }),\n/* 1337 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1576)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(633),\n /* template */\n __webpack_require__(1510),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1338 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1536)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(634),\n /* template */\n __webpack_require__(1447),\n /* scopeId */\n \"data-v-22a7638e\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1339 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1528)\n\nvar Component = __webpack_require__(4)(\n /* script */\n null,\n /* template */\n __webpack_require__(1432),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1340 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(635),\n /* template */\n __webpack_require__(1482),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1341 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1551)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(636),\n /* template */\n __webpack_require__(1471),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1342 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1580)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(637),\n /* template */\n __webpack_require__(1519),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1343 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1562)\n\nvar Component = __webpack_require__(4)(\n /* script */\n null,\n /* template */\n __webpack_require__(1485),\n /* scopeId */\n \"data-v-6ba933be\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1344 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(638),\n /* template */\n __webpack_require__(1460),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1345 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1570)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(639),\n /* template */\n __webpack_require__(1498),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1346 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1577)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(640),\n /* template */\n __webpack_require__(1512),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1347 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1530)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(641),\n /* template */\n __webpack_require__(1434),\n /* scopeId */\n \"data-v-07add241\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1348 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1579)\n\nvar Component = __webpack_require__(4)(\n /* script */\n null,\n /* template */\n __webpack_require__(1515),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1349 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n null,\n /* template */\n __webpack_require__(1487),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1350 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1571)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(642),\n /* template */\n __webpack_require__(1499),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1351 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(643),\n /* template */\n __webpack_require__(1517),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1352 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1537)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(644),\n /* template */\n __webpack_require__(1449),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1353 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(645),\n /* template */\n __webpack_require__(1439),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1354 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(646),\n /* template */\n __webpack_require__(1448),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1355 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(647),\n /* template */\n __webpack_require__(1440),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1356 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(648),\n /* template */\n __webpack_require__(1505),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1357 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(649),\n /* template */\n __webpack_require__(1452),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1358 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(650),\n /* template */\n __webpack_require__(1435),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1359 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1559)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(651),\n /* template */\n __webpack_require__(1481),\n /* scopeId */\n \"data-v-66714b9d\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1360 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1540)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(652),\n /* template */\n __webpack_require__(1453),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1361 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(653),\n /* template */\n __webpack_require__(1438),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1362 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1538)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(654),\n /* template */\n __webpack_require__(1450),\n /* scopeId */\n \"data-v-254d07b9\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1363 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1553)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(655),\n /* template */\n __webpack_require__(1475),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1364 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1583)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(656),\n /* template */\n __webpack_require__(1522),\n /* scopeId */\n \"data-v-eee0a37c\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1365 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(657),\n /* template */\n __webpack_require__(1474),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1366 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1569)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(658),\n /* template */\n __webpack_require__(1495),\n /* scopeId */\n \"data-v-7ef147c0\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1367 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1561)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(659),\n /* template */\n __webpack_require__(1484),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1368 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(660),\n /* template */\n __webpack_require__(1441),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1369 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(661),\n /* template */\n __webpack_require__(1509),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1370 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(662),\n /* template */\n __webpack_require__(1513),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1371 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(663),\n /* template */\n __webpack_require__(1457),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1372 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(664),\n /* template */\n __webpack_require__(1507),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1373 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(665),\n /* template */\n __webpack_require__(1511),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1374 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1543)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(666),\n /* template */\n __webpack_require__(1456),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1375 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(667),\n /* template */\n __webpack_require__(1500),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1376 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1582)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(668),\n /* template */\n __webpack_require__(1521),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1377 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(669),\n /* template */\n __webpack_require__(1458),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1378 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(670),\n /* template */\n __webpack_require__(1466),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1379 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(671),\n /* template */\n __webpack_require__(1524),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1380 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(672),\n /* template */\n __webpack_require__(1497),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1381 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(673),\n /* template */\n __webpack_require__(1516),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1382 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1584)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(674),\n /* template */\n __webpack_require__(1523),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1383 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1526)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(675),\n /* template */\n __webpack_require__(1430),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1384 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(676),\n /* template */\n __webpack_require__(1462),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1385 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1542)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(677),\n /* template */\n __webpack_require__(1455),\n /* scopeId */\n \"data-v-2eb1c088\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1386 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1549)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(678),\n /* template */\n __webpack_require__(1469),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1387 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1581)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(679),\n /* template */\n __webpack_require__(1520),\n /* scopeId */\n \"data-v-ed9f792e\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1388 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(680),\n /* template */\n __webpack_require__(1429),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1389 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1574)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(681),\n /* template */\n __webpack_require__(1504),\n /* scopeId */\n \"data-v-aeee314e\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1390 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(682),\n /* template */\n __webpack_require__(1465),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1391 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1529)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(683),\n /* template */\n __webpack_require__(1433),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1392 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(684),\n /* template */\n __webpack_require__(1501),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1393 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1548)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(685),\n /* template */\n __webpack_require__(1468),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1394 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1533)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(686),\n /* template */\n __webpack_require__(1443),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1395 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1557)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(687),\n /* template */\n __webpack_require__(1479),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1396 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1550)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(688),\n /* template */\n __webpack_require__(1470),\n /* scopeId */\n \"data-v-4ac0cba8\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1397 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1527)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(689),\n /* template */\n __webpack_require__(1431),\n /* scopeId */\n \"data-v-03f7eaf3\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1398 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1552)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(690),\n /* template */\n __webpack_require__(1473),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1399 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1573)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(691),\n /* template */\n __webpack_require__(1503),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1400 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1534)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(692),\n /* template */\n __webpack_require__(1444),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1401 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1568)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(693),\n /* template */\n __webpack_require__(1494),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1402 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(694),\n /* template */\n __webpack_require__(1496),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1403 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(695),\n /* template */\n __webpack_require__(1508),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1404 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1547)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(696),\n /* template */\n __webpack_require__(1467),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1405 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1535)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(697),\n /* template */\n __webpack_require__(1445),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1406 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1560)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(698),\n /* template */\n __webpack_require__(1483),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1407 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1546)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(699),\n /* template */\n __webpack_require__(1464),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1408 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1565)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(700),\n /* template */\n __webpack_require__(1490),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1409 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1554)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(701),\n /* template */\n __webpack_require__(1476),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1410 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(703),\n /* template */\n __webpack_require__(1493),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1411 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1532)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(705),\n /* template */\n __webpack_require__(1437),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1412 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1572)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(706),\n /* template */\n __webpack_require__(1502),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1413 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(707),\n /* template */\n __webpack_require__(1472),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1414 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(708),\n /* template */\n __webpack_require__(1518),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1415 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1556)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(709),\n /* template */\n __webpack_require__(1478),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1416 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1567)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(710),\n /* template */\n __webpack_require__(1492),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1417 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1558)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(711),\n /* template */\n __webpack_require__(1480),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1418 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1578)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(712),\n /* template */\n __webpack_require__(1514),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1419 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(713),\n /* template */\n __webpack_require__(1488),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1420 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(714),\n /* template */\n __webpack_require__(1446),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1421 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(715),\n /* template */\n __webpack_require__(1442),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1422 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1564)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(716),\n /* template */\n __webpack_require__(1489),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1423 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1539)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(717),\n /* template */\n __webpack_require__(1451),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1424 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1541)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(718),\n /* template */\n __webpack_require__(1454),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1425 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1563)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(719),\n /* template */\n __webpack_require__(1486),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1426 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1531)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(720),\n /* template */\n __webpack_require__(1436),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1427 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1555)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(721),\n /* template */\n __webpack_require__(1477),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1428 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(1575)\n\nvar Component = __webpack_require__(4)(\n /* script */\n __webpack_require__(722),\n /* template */\n __webpack_require__(1506),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 1429 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.targetGroupInfoTitle,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"targetGroupInfo\",\n attrs: {\n \"model\": _vm.targetGroupInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"130px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"节点集名称\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.targetGroupInfo.name),\n callback: function($$v) {\n _vm.$set(_vm.targetGroupInfo, \"name\", $$v)\n },\n expression: \"targetGroupInfo.name\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"clusterLevel\",\n \"label\": \"节点集属性\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.targetGroupInfo.clusterLevel),\n callback: function($$v) {\n _vm.$set(_vm.targetGroupInfo, \"clusterLevel\", $$v)\n },\n expression: \"targetGroupInfo.clusterLevel\"\n }\n }, _vm._l((_vm.attrs), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1430 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": _vm.conditionInfoTitle,\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"conditionInfo\",\n attrs: {\n \"model\": _vm.conditionInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 30\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"规则名称\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.conditionInfo.name),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"name\", $$v)\n },\n expression: \"conditionInfo.name\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"优先级\",\n \"prop\": \"priority\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"placeholder\": \"优先于选中规则\"\n },\n model: {\n value: (_vm.conditionInfo.priority),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"priority\", $$v)\n },\n expression: \"conditionInfo.priority\"\n }\n }, _vm._l((_vm.alternativeConditions), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"Preference\",\n \"prop\": \"preference\"\n }\n }, [_c('el-select', {\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n model: {\n value: (_vm.conditionInfo.preference),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"preference\", $$v)\n },\n expression: \"conditionInfo.preference\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"无\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.preferenceList), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n })], 2), _vm._v(\" \"), _c('span', {\n staticClass: \"warning\"\n }, [_c('el-tooltip', {\n staticClass: \"item\",\n attrs: {\n \"effect\": \"dark\",\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [_vm._v(\"具体参考Elasticsearch关于Preference相关文档\\n \"), _c('br'), _vm._v(\"示例:\\n \"), _c('br'), _vm._v(\"_primary:只选择primary分片查询\\n \"), _c('br'), _vm._v(\"_primary_first:优先选择primary分片查询\\n \"), _c('br'), _vm._v(\"_replica:只选择replica分片查询\\n \"), _c('br'), _vm._v(\"_replica_first:优先选择replica分片查询\\n \"), _c('br'), _vm._v(\"_only_local:只查询本地节点\\n \"), _c('br'), _vm._v(\"_local:优先查询本地节点\\n \"), _c('br'), _vm._v(\"_prefer_nodes:abc,xyz:优先查询节点id为abc和xyz的节点\\n \"), _c('br'), _vm._v(\"_shards:2,3:只查询第2,3组分片\\n \")]), _vm._v(\" \"), _c('i', {\n staticClass: \"fa fa-info-circle\"\n })])], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"是否启用\",\n \"prop\": \"enable\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n model: {\n value: (_vm.conditionInfo.enable),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"enable\", $$v)\n },\n expression: \"conditionInfo.enable\"\n }\n })], 1)]), _vm._v(\" \"), (_vm.conditionInfo.conditions.length > 1) ? _c('el-form-item', {\n attrs: {\n \"prop\": \"conditionRelation\",\n \"label\": \"条件关系\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.conditionInfo.conditionRelation),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"conditionRelation\", $$v)\n },\n expression: \"conditionInfo.conditionRelation\"\n }\n }, _vm._l((_vm.conditionRelations), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)]) : _vm._e()], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 14\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"\",\n \"label\": \"\",\n \"label-width\": \"0px\"\n }\n }, [_c('div', {\n staticClass: \"target-group-transfer\"\n }, [_c('el-transfer', {\n ref: \"targetGroupTransfer\",\n attrs: {\n \"render-content\": _vm.renderFunc,\n \"titles\": ['所有节点集', '应用'],\n \"data\": _vm.routingTargetGroups,\n \"props\": _vm.defaultProps\n },\n on: {\n \"change\": _vm.handleChange\n },\n model: {\n value: (_vm.conditionInfo.targetGroupsId),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"targetGroupsId\", $$v)\n },\n expression: \"conditionInfo.targetGroupsId\"\n }\n })], 1)])], 1)], 1)], 1), _vm._v(\" \"), _c('conditions', {\n ref: \"conditions\",\n attrs: {\n \"conditions\": _vm.conditionInfo.conditions\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1431 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"新模板向导\",\n \"size\": \"large\",\n \"before-close\": _vm.handleClose,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.visible),\n callback: function($$v) {\n _vm.visible = $$v\n },\n expression: \"visible\"\n }\n }, [_c('div', {\n staticClass: \"template-config\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 30\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('div', {\n staticClass: \"template-config-content\"\n }, [_c('div', {\n staticClass: \"title\"\n }, [_c('span', [_vm._v(\"模板选项\")]), _c('a', {\n staticStyle: {\n \"margin-left\": \"10px\",\n \"font-size\": \"13px\",\n \"font-weight\": \"normal\",\n \"color\": \"dodgerblue\"\n },\n attrs: {\n \"target\": \"_blank\",\n \"href\": \"https://vipshop.github.io/pallas/#/zh-cn/1.x/Console%E6%A8%A1%E5%9D%97/%E6%A8%A1%E6%9D%BF%E7%AE%A1%E7%90%86/template\"\n }\n }, [_vm._v(\"Mustache语法 \"), _c('i', {\n staticClass: \"fa fa-external-link\",\n attrs: {\n \"aria-hidden\": \"true\"\n }\n })]), _vm._v(\" \"), _c('el-button', {\n staticClass: \"pull-right\",\n attrs: {\n \"type\": \"success\",\n \"size\": \"mini\"\n },\n on: {\n \"click\": _vm.handleExecute\n }\n }, [_c('i', {\n staticClass: \"fa fa-caret-square-o-right\"\n }), _vm._v(\"预览\")])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"15px\"\n }\n }, [_c('el-form', {\n attrs: {\n \"label-width\": \"0\",\n \"label-position\": \"left\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', [_c('el-checkbox', {\n model: {\n value: (_vm.data.from.isChecked),\n callback: function($$v) {\n _vm.$set(_vm.data.from, \"isChecked\", $$v)\n },\n expression: \"data.from.isChecked\"\n }\n }, [_vm._v(\"from\\n \"), _c('el-input', {\n model: {\n value: (_vm.data.from.value),\n callback: function($$v) {\n _vm.$set(_vm.data.from, \"value\", $$v)\n },\n expression: \"data.from.value\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', [_c('el-checkbox', {\n staticStyle: {\n \"margin-left\": \"5px\"\n },\n model: {\n value: (_vm.data.size.isChecked),\n callback: function($$v) {\n _vm.$set(_vm.data.size, \"isChecked\", $$v)\n },\n expression: \"data.size.isChecked\"\n }\n }, [_vm._v(\"size\\n \"), _c('el-input', {\n model: {\n value: (_vm.data.size.value),\n callback: function($$v) {\n _vm.$set(_vm.data.size, \"value\", $$v)\n },\n expression: \"data.size.value\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 30\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', [_c('el-checkbox', {\n model: {\n value: (_vm.data.sort.isChecked),\n callback: function($$v) {\n _vm.$set(_vm.data.sort, \"isChecked\", $$v)\n },\n expression: \"data.sort.isChecked\"\n }\n }, [_vm._v(\"sort\\n \"), _c('el-switch', {\n attrs: {\n \"on-text\": \"变量\",\n \"off-text\": \"静态\"\n },\n model: {\n value: (_vm.data.sort.isVariable),\n callback: function($$v) {\n _vm.$set(_vm.data.sort, \"isVariable\", $$v)\n },\n expression: \"data.sort.isVariable\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', [_c('el-checkbox', {\n model: {\n value: (_vm.data.source.isChecked),\n callback: function($$v) {\n _vm.$set(_vm.data.source, \"isChecked\", $$v)\n },\n expression: \"data.source.isChecked\"\n }\n }, [_vm._v(\"source\\n \"), _c('el-switch', {\n attrs: {\n \"on-text\": \"变量\",\n \"off-text\": \"静态\"\n },\n model: {\n value: (_vm.data.source.isVariable),\n callback: function($$v) {\n _vm.$set(_vm.data.source, \"isVariable\", $$v)\n },\n expression: \"data.source.isVariable\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-bottom\": \"5px\"\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"query配置\")])]), _vm._v(\" \"), _c('el-table', {\n attrs: {\n \"border\": \"\",\n \"data\": _vm.metadatas,\n \"max-height\": 320\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"dbFieldName\",\n \"label\": \"字段名\",\n \"width\": \"180\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"查询类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"不选\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"term\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"term\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"multiTerm\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"terms\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"range\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"range\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"script\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"script\")])]\n }\n }])\n })], 1)], 1)], 1)])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('div', {\n staticClass: \"template-config-content\"\n }, [_c('div', {\n staticClass: \"title\"\n }, [_vm._v(\"模板展示\")]), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"height\": \"450px\"\n }\n }, [_c('el-scrollbar', [_c('pre', [_vm._v(_vm._s(_vm.templateContent))])])], 1)])])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), (JSON.stringify(_vm.templateContent) !== '{}') ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.handleSave\n }\n }, [_vm._v(\"生成模板\")]) : _vm._e()], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1432 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _vm._m(0)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"chart-no-data\"\n }, [_c('i', {\n staticClass: \"el-icon-loading\"\n }), _vm._v(\"数据加载中...\")])\n}]}\n\n/***/ }),\n/* 1433 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"template_content\"\n }, [_vm._m(0), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.templateList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"模板名称\",\n \"show-overflow-tooltip\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.templateName))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"单台PS最大QPS(0表示不限流)\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input-number', {\n attrs: {\n \"min\": 0,\n \"max\": 100000\n },\n model: {\n value: (scope.row.threshold),\n callback: function($$v) {\n _vm.$set(scope.row, \"threshold\", $$v)\n },\n expression: \"scope.row.threshold\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最大预存流量秒数(限流器参数)\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input-number', {\n attrs: {\n \"min\": 1,\n \"max\": 5\n },\n model: {\n value: (scope.row.maxBurstSecs),\n callback: function($$v) {\n _vm.$set(scope.row, \"maxBurstSecs\", $$v)\n },\n expression: \"scope.row.maxBurstSecs\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"120px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"disabled\": !_vm.allPrivilege,\n \"title\": !_vm.allPrivilege ? '权限不足' : ''\n },\n on: {\n \"click\": function($event) {\n return _vm.handleUpdate(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"更新\\n \")])]\n }\n }])\n })], 1)], 1)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticStyle: {\n \"padding-bottom\": \"10px\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-th-list\"\n }), _vm._v(\"模板限流配置\")])\n}]}\n\n/***/ }),\n/* 1434 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"panel\",\n class: _vm.panelType\n }, [_c('div', {\n staticClass: \"panel-content-title\"\n }, [_vm._t(\"title\")], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"panel-content-body\"\n }, [_vm._t(\"content\")], 2)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1435 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索域名\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.clusterIdForSearch),\n callback: function($$v) {\n _vm.clusterIdForSearch = $$v\n },\n expression: \"clusterIdForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")]), _vm._v(\" \"), _c('cluster-manage-search', {\n on: {\n \"cluster-search\": _vm.toSpecificPage\n }\n })], 1)], 1)], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增ES集群\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.clusterList.list,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"域名\",\n \"min-width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.hasPrivilege || scope.row.logicalCluster) ? _c('div', [_vm._v(_vm._s(scope.row.clusterId))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'cluster_detail',\n query: {\n clusterId: scope.row.clusterId\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.clusterId))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"集群类型\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"clusterType\")(scope.row.logicalCluster)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"物理集群\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.realClusters === '') ? _c('div', [_vm._v(\"-\")]) : _vm._l((_vm.getPhysicalsClusterArr(scope.row.realClusters)), function(item) {\n return _c('div', {\n key: item.id,\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'cluster_detail',\n query: {\n clusterId: item.clusterId\n }\n }\n }\n }, [_vm._v(_vm._s(item.clusterId))])], 1)\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"description\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"HTTP地址\",\n \"width\": \"170px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.httpAddress) ? _c('div', [_vm._v(\"-\")]) : _c('div', [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"left\"\n }\n }, [_vm._l((_vm.$array.strToArray(scope.row.httpAddress)), function(item) {\n return _c('div', {\n key: item\n }, [_vm._v(_vm._s(item))])\n }), _vm._v(\" \"), _c('div', {\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$array.strToArray(scope.row.httpAddress)[0]) + \"\\n \"), (_vm.$array.strToArray(scope.row.httpAddress).length > 1) ? _c('span', [_vm._v(\"...\")]) : _vm._e()])], 2)], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"CLIENT地址\",\n \"width\": \"170px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.clientAddress) ? _c('div', [_vm._v(\"-\")]) : _c('div', [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"right\"\n }\n }, [_vm._l((_vm.$array.strToArray(scope.row.clientAddress)), function(item) {\n return _c('div', {\n key: item\n }, [_vm._v(_vm._s(item))])\n }), _vm._v(\" \"), _c('div', {\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$array.strToArray(scope.row.clientAddress)[0]) + \"\\n \"), (_vm.$array.strToArray(scope.row.clientAddress).length > 1) ? _c('span', [_vm._v(\"...\")]) : _vm._e()])], 2)], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"绑定代理集群\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.accessiblePs) ? _c('div', [_vm._v(\"-\")]) : _vm._l((_vm.$array.strToArray(scope.row.accessiblePs)), function(item) {\n return _c('div', {\n key: item\n }, [_vm._v(\"\\n \" + _vm._s(item) + \"\\n \")])\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [(scope.row.hasPrivilege) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n }), _vm._v(\"编辑\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege && !scope.row.logicalCluster) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleRouteSetting(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-cog\"\n }), _vm._v(\"路由配置\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege && !scope.row.logicalCluster) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleManage(scope.$index, scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-bars\"\n }), _vm._v(\"管理\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege && !scope.row.logicalCluster) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleMonitor(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-bar-chart\"\n }), _vm._v(\"监控\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege && !scope.row.logicalCluster) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleRestart(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-undo\"\n }), _vm._v(\"重启\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-trash\"\n }), _vm._v(\"删除\")])])]) : _vm._e()], 1)], 1)]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.clusterList.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.clusterList.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isClusterInfoVisible) ? _c('div', [_c('cluster-info-dialog', {\n attrs: {\n \"cluster-operation\": _vm.clusterOperation,\n \"cluster-info-title\": _vm.clusterInfoTitle,\n \"cluster-info\": _vm.clusterInfo,\n \"all-physicals\": _vm.allPhysicals,\n \"all-pallas-searchs\": _vm.allPallasSearchs\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1436 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"token-index\"\n }, [(Object.keys(_vm.tokenClusterInfo).length !== 0) ? _c('div', [_c('div', [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"success\"\n },\n on: {\n \"click\": _vm.handleUpdate\n }\n }, [_vm._v(\"更新授权\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": _vm.handleReset\n }\n }, [_vm._v(\"移除授权\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10\"\n }, [_c('span', {\n staticClass: \"title-span\"\n }, [_vm._v(\"集群权限:\")]), _vm._v(\" \"), _c('el-radio-group', {\n attrs: {\n \"size\": \"small\"\n },\n model: {\n value: (_vm.tokenClusterInfo.clusterPrivilege),\n callback: function($$v) {\n _vm.$set(_vm.tokenClusterInfo, \"clusterPrivilege\", $$v)\n },\n expression: \"tokenClusterInfo.clusterPrivilege\"\n }\n }, [_c('el-radio-button', {\n attrs: {\n \"label\": \"\"\n }\n }, [_vm._v(\"无\")]), _vm._v(\" \"), _c('el-radio-button', {\n attrs: {\n \"label\": \"ReadOnly\"\n }\n }, [_vm._v(\"只读\")]), _vm._v(\" \"), _c('el-radio-button', {\n attrs: {\n \"label\": \"Write\"\n }\n }, [_vm._v(\"修改\")])], 1)], 1)]) : _c('div', {\n staticStyle: {\n \"height\": \"62px\"\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.tokenClusterInfo.myIndexPrivilegeArr,\n \"border\": \"\",\n \"height\": _vm.clusterTreeHeight.height\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"索引\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"indexPrivilege\",\n \"label\": \"权限\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-radio-group', {\n attrs: {\n \"size\": \"small\"\n },\n model: {\n value: (scope.row.indexPrivilege),\n callback: function($$v) {\n _vm.$set(scope.row, \"indexPrivilege\", $$v)\n },\n expression: \"scope.row.indexPrivilege\"\n }\n }, [_c('el-radio-button', {\n attrs: {\n \"label\": \"\"\n }\n }, [_vm._v(\"无\")]), _vm._v(\" \"), _c('el-radio-button', {\n attrs: {\n \"label\": \"ReadOnly\"\n }\n }, [_vm._v(\"只读\")]), _vm._v(\" \"), _c('el-radio-button', {\n attrs: {\n \"label\": \"Write\"\n }\n }, [_vm._v(\"修改\")])], 1)]\n }\n }])\n })], 1)], 1)])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1437 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"version-info-dialog\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVersionInfoVisible),\n callback: function($$v) {\n _vm.isVersionInfoVisible = $$v\n },\n expression: \"isVersionInfoVisible\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_c('span', [_vm._v(_vm._s(_vm.versionInfoTitle))])]), _vm._v(\" \"), _c('el-form', {\n ref: \"versionInfo\",\n attrs: {\n \"model\": _vm.versionInfo,\n \"rules\": _vm.rules,\n \"label-position\": \"left\"\n }\n }, [_c('el-tabs', {\n attrs: {\n \"value\": \"first\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"label\": \"索引配置\",\n \"name\": \"first\"\n }\n }, [_c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"分片路由属性\")]), _vm._v(\" \"), (_vm.isLogical) ? _c('span', {\n staticStyle: {\n \"color\": \"#C8C8C8\"\n }\n }, [_vm._v(\"(所属集群:\" + _vm._s(_vm.clusterArray.join()) + \")\")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"复制数量\",\n \"prop\": \"replicationNum\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.replicationNum),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"replicationNum\", _vm._n($$v))\n },\n expression: \"versionInfo.replicationNum\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"ShardPerNode\",\n \"prop\": \"totalShardsPerNode\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.totalShardsPerNode),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"totalShardsPerNode\", _vm._n($$v))\n },\n expression: \"versionInfo.totalShardsPerNode\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [(_vm.isLogical) ? _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属节点\",\n \"prop\": \"nodes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"value-key\": \"name\",\n \"placeholder\": \"请选择机器\"\n },\n model: {\n value: (_vm.versionInfo.nodes),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"nodes\", $$v)\n },\n expression: \"versionInfo.nodes\"\n }\n }, _vm._l((_vm.clusterGroups), function(group) {\n return _c('el-option-group', {\n key: group.clusterId,\n attrs: {\n \"label\": group.clusterId\n }\n }, _vm._l((group.nodes), function(item) {\n return _c('el-option', {\n key: item.name,\n attrs: {\n \"label\": item.name,\n \"value\": item\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.indicis.length > 0) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, _vm._l((item.indicis), function(item1) {\n return _c('el-col', {\n key: item1,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1) : _c('div', [_vm._v(\"暂无索引\")])]), _vm._v(\" \"), _c('el-tag', {\n staticStyle: {\n \"float\": \"left\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.indicis.length))])], 1)], 1)\n }), 1)\n }), 1)], 1)], 1)], 1) : _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属节点\",\n \"prop\": \"nodes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"placeholder\": \"请选择机器\"\n },\n model: {\n value: (_vm.versionInfo.nodes),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"nodes\", $$v)\n },\n expression: \"versionInfo.nodes\"\n }\n }, _vm._l((_vm.clusterNodes), function(item) {\n return _c('el-option', {\n key: item.name,\n attrs: {\n \"label\": item.name,\n \"value\": item.name\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.indicis.length > 0) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, _vm._l((item.indicis), function(item1) {\n return _c('el-col', {\n key: item1,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1) : _c('div', [_vm._v(\"暂无索引\")])]), _vm._v(\" \"), _c('el-tag', {\n staticStyle: {\n \"float\": \"left\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.indicis.length))])], 1)], 1)\n }), 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"慢日志落盘配置(单位ms,-1不限定)\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Index Slow\",\n \"prop\": \"indexSlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.indexSlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"indexSlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.indexSlowThreshold\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Fetch Slow\",\n \"prop\": \"fetchSlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.fetchSlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"fetchSlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.fetchSlowThreshold\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Query Slow\",\n \"prop\": \"querySlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.querySlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"querySlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.querySlowThreshold\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"索引其他配置\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"max_result_window\",\n \"prop\": \"maxResultWindow\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"10000\"\n },\n model: {\n value: (_vm.versionInfo.maxResultWindow),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"maxResultWindow\", _vm._n($$v))\n },\n expression: \"versionInfo.maxResultWindow\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"flush_threshold_size\",\n \"prop\": \"flushThresholdSize\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"512mb\"\n },\n model: {\n value: (_vm.versionInfo.flushThresholdSize),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"flushThresholdSize\", $$v)\n },\n expression: \"versionInfo.flushThresholdSize\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"sync_interval\",\n \"prop\": \"syncInterval\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.versionInfo.syncInterval),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"syncInterval\", $$v)\n },\n expression: \"versionInfo.syncInterval\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"translog_durability\",\n \"prop\": \"translogDurability\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"async\"\n },\n model: {\n value: (_vm.versionInfo.translogDurability),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"translogDurability\", $$v)\n },\n expression: \"versionInfo.translogDurability\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"refresh(秒)\",\n \"prop\": \"refreshInterval\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.refreshInterval),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"refreshInterval\", _vm._n($$v))\n },\n expression: \"versionInfo.refreshInterval\"\n }\n })], 1)], 1)], 1)], 1)])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitVersionInfo()\n }\n }\n }, [_vm._v(\"确 定\")])], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1438 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('el-form', {\n ref: \"conditionItemForm\",\n attrs: {\n \"model\": _vm.conditionItem,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断参数名\",\n \"prop\": \"paramName\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n model: {\n value: (_vm.conditionItem.paramName),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"paramName\", $$v)\n },\n expression: \"conditionItem.paramName\"\n }\n }, _vm._l((_vm.paramNames), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断运算\",\n \"prop\": \"exprOp\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.conditionItem.exprOp),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"exprOp\", $$v)\n },\n expression: \"conditionItem.exprOp\"\n }\n }, _vm._l((_vm.exprOps), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断值\",\n \"prop\": \"paramValue\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"多个判断值请以 , 分隔\"\n },\n model: {\n value: (_vm.conditionItem.paramValue),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"paramValue\", $$v)\n },\n expression: \"conditionItem.paramValue\"\n }\n })], 1)], 1)], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1439 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"模板变更\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n attrs: {\n \"clearable\": \"\"\n },\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedCluster),\n callback: function($$v) {\n _vm.selectedCluster = $$v\n },\n expression: \"selectedCluster\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部集群\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.clusters), function(cluster) {\n return _c('el-option-group', {\n key: cluster.label,\n attrs: {\n \"label\": cluster.label\n }\n }, _vm._l((cluster.options), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.clusterId\n }\n })\n }), 1)\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedState),\n callback: function($$v) {\n _vm.selectedState = $$v\n },\n expression: \"selectedState\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部状态\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.states), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索索引或模板\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.conditionForSearch),\n callback: function($$v) {\n _vm.conditionForSearch = $$v\n },\n expression: \"conditionForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleApproveManage\n }\n }, [_c('i', {\n staticClass: \"fa fa-check-square-o\"\n }), _vm._v(\"模板审批\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.applyList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"id\",\n \"label\": \"审批ID\",\n \"width\": \"60px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"title\",\n \"label\": \"标题\",\n \"width\": \"80px\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"索引名称\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'index_detail',\n query: {\n indexId: scope.row.indexId,\n indexName: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.indexName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"templateName\",\n \"label\": \"模板名称\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"所属集群\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"approveState\",\n \"label\": \"当前状态\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"translateStat\")(scope.row.approveState)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"applyUser\",\n \"label\": \"提交人\",\n \"width\": \"80px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"提交时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"审批人\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.approveState === 1 || scope.row.approveState === 2) ? _c('span', [_vm._v(_vm._s(scope.row.approveUser))]) : _c('span', [_vm._v(\"-\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"审批时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.approveState === 1 || scope.row.approveState === 2) ? _c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.approveTime)))]) : _c('span', [_vm._v(\"-\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"70px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.approveState === 0),\n expression: \"scope.row.approveState === 0\"\n }]\n }, [_c('el-tooltip', {\n attrs: {\n \"content\": \"查看\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleView(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-eye\"\n })])], 1), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"content\": \"取消\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleCancel(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-close\"\n })])], 1)], 1)]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isViewDialogVisible) ? _c('div', [_c('json-diff', {\n attrs: {\n \"json-diff-info\": _vm.jsonDiffInfo\n },\n on: {\n \"close-dialog\": _vm.closeViewContentDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1440 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('iframe', {\n staticClass: \"cluster_dashboard\",\n attrs: {\n \"src\": _vm.clusterUrl,\n \"width\": \"100%\",\n \"height\": \"70%\",\n \"scrolling\": \"0\",\n \"frameborder\": \"0\"\n }\n })\n},staticRenderFns: []}\n\n/***/ }),\n/* 1441 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"自定义时间\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.visible),\n callback: function($$v) {\n _vm.visible = $$v\n },\n expression: \"visible\"\n }\n }, [_c('el-form', {\n ref: \"formInfo\",\n staticStyle: {\n \"margin-top\": \"20px\"\n },\n attrs: {\n \"model\": _vm.formInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"40px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"timeRange\"\n }\n }, [_c('el-date-picker', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"type\": \"datetimerange\",\n \"placeholder\": \"选择时间范围\",\n \"align\": \"right\"\n },\n model: {\n value: (_vm.formInfo.timeRange),\n callback: function($$v) {\n _vm.$set(_vm.formInfo, \"timeRange\", $$v)\n },\n expression: \"formInfo.timeRange\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSubmit()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1442 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.init($event)\n }\n },\n model: {\n value: (_vm.formSearch.keywords),\n callback: function($$v) {\n _vm.$set(_vm.formSearch, \"keywords\", $$v)\n },\n expression: \"formSearch.keywords\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.init\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1), _vm._v(\" \"), (_vm.allPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增用户\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.userList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"登录名\",\n \"prop\": \"username\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"用户名\",\n \"prop\": \"realName\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"角色\",\n \"prop\": \"roles\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.roles), function(item) {\n return _c('el-tag', {\n key: item.id,\n staticStyle: {\n \"margin-right\": \"3px\"\n }\n }, [_vm._v(_vm._s(item.description))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"邮箱\",\n \"prop\": \"email\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.email || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"创建时间\",\n \"prop\": \"createTime\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createTime)))]\n }\n }])\n }), _vm._v(\" \"), (_vm.allPrivilege) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-edit\"\n })])], 1), _vm._v(\" \"), (scope.row.username !== _vm.loginUser) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1) : _vm._e()]\n }\n }], null, false, 4284222700)\n }) : _vm._e()], 1)], _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()\n ], 2), _vm._v(\" \"), (_vm.isUserInfoVisible) ? _c('div', [_c('user-info-dialog', {\n attrs: {\n \"roles-list\": _vm.rolesList,\n \"user-operation\": _vm.userOperation,\n \"user-info\": _vm.userInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"user-info-success\": _vm.userInfoSuccess\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1443 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"批量提交\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isBatchSubmitVisible),\n callback: function($$v) {\n _vm.isBatchSubmitVisible = $$v\n },\n expression: \"isBatchSubmitVisible\"\n }\n }, [_c('el-form', {\n ref: \"batchSubmitInfo\",\n attrs: {\n \"model\": _vm.batchSubmitInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"80px\"\n }\n }, [_c('div', {\n staticClass: \"batch-submit-template\"\n }, [_c('el-transfer', {\n attrs: {\n \"filterable\": \"\",\n \"data\": _vm.batchSubmitList,\n \"titles\": ['可选模板', '已选模板']\n },\n model: {\n value: (_vm.templateSelected),\n callback: function($$v) {\n _vm.templateSelected = $$v\n },\n expression: \"templateSelected\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticStyle: {\n \"margin-right\": \"10px\"\n },\n attrs: {\n \"label\": \"修改描述\",\n \"prop\": \"approveInfo\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.batchSubmitInfo.approveInfo),\n callback: function($$v) {\n _vm.$set(_vm.batchSubmitInfo, \"approveInfo\", $$v)\n },\n expression: \"batchSubmitInfo.approveInfo\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.submitTemplate\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1444 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"提交模板\",\n \"before-close\": _vm.handleClose,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isEditSaveVisible),\n callback: function($$v) {\n _vm.isEditSaveVisible = $$v\n },\n expression: \"isEditSaveVisible\"\n }\n }, [_c('el-form', {\n ref: \"editSaveInfo\",\n attrs: {\n \"model\": _vm.editSaveInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('div', [_c('div', {\n staticClass: \"edit-save-span\"\n }, [_c('i', {\n staticClass: \"el-icon-warning\"\n }), _vm._v(\"\\n 确定提交模板 \"), _c('span', [_vm._v(_vm._s(_vm.templateInfo.templateName))]), _vm._v(\" 吗?\\n \")]), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"修改描述\",\n \"prop\": \"historyDesc\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.editSaveInfo.historyDesc),\n callback: function($$v) {\n _vm.$set(_vm.editSaveInfo, \"historyDesc\", $$v)\n },\n expression: \"editSaveInfo.historyDesc\"\n }\n })], 1)], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.handleSubmit\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1445 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"导出模板\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isTemplateExportVisible),\n callback: function($$v) {\n _vm.isTemplateExportVisible = $$v\n },\n expression: \"isTemplateExportVisible\"\n }\n }, [_c('div', {\n staticClass: \"export-template\"\n }, [_c('el-transfer', {\n attrs: {\n \"filterable\": \"\",\n \"data\": _vm.exportTemplateList,\n \"titles\": ['可选模板', '已选模板']\n },\n model: {\n value: (_vm.templateSelected),\n callback: function($$v) {\n _vm.templateSelected = $$v\n },\n expression: \"templateSelected\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.sumbitExportTemplate\n }\n }, [_vm._v(\"确定\")])], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1446 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.userInfoTitle,\n \"visible\": _vm.isVisible,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"update:visible\": function($event) {\n _vm.isVisible = $event\n }\n }\n }, [_c('el-form', {\n ref: \"userInfo\",\n attrs: {\n \"model\": _vm.userInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"100px\"\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"登录名\",\n \"prop\": \"username\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": !_vm.isEditable\n },\n model: {\n value: (_vm.userInfo.username),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"username\", $$v)\n },\n expression: \"userInfo.username\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"用户名\",\n \"prop\": \"realName\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": !_vm.isEditable\n },\n model: {\n value: (_vm.userInfo.realName),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"realName\", $$v)\n },\n expression: \"userInfo.realName\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"密码\",\n \"prop\": \"password\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.userInfo.password),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"password\", $$v)\n },\n expression: \"userInfo.password\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"邮箱\",\n \"prop\": \"email\",\n \"rules\": [{\n type: 'email',\n message: '请输入正确的邮箱地址',\n trigger: 'blur,change'\n }]\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.userInfo.email),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"email\", $$v)\n },\n expression: \"userInfo.email\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"角色\",\n \"prop\": \"roleNames\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.userInfo.roleNames),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"roleNames\", $$v)\n },\n expression: \"userInfo.roleNames\"\n }\n }, _vm._l((_vm.rolesList), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.roleName,\n \"value\": item.roleName\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSubmit()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1447 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"panel-container\"\n }, [_c('div', {\n staticClass: \"panel-header\"\n }, [_c('span', {\n staticClass: \"pull-left\"\n }, [_vm._v(_vm._s(_vm.title))]), _vm._v(\" \"), _c('a', {\n staticClass: \"pull-right\",\n on: {\n \"click\": _vm.togglePanel\n }\n }, [(_vm.isExpand) ? _c('i', {\n staticClass: \"fa fa-minus\"\n }) : _vm._e(), _vm._v(\" \"), (!_vm.isExpand) ? _c('i', {\n staticClass: \"fa fa-plus\"\n }) : _vm._e()])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isExpand),\n expression: \"isExpand\"\n }],\n staticClass: \"panel-body\"\n }, [_vm._t(\"chart\")], 2)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1448 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'authority_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"模板变更\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(\"模板审批\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedState),\n callback: function($$v) {\n _vm.selectedState = $$v\n },\n expression: \"selectedState\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部状态\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.states), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"输入索引,模板或提交人\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.conditionForSearch),\n callback: function($$v) {\n _vm.conditionForSearch = $$v\n },\n expression: \"conditionForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"circle-check\"\n },\n on: {\n \"click\": _vm.handleBatchApprove\n }\n }, [_vm._v(\"批量处理\")])], 1)]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n ref: \"multipleTable\",\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.approveList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"selection-change\": _vm.handleSelectionChange\n }\n }, [_c('el-table-column', {\n attrs: {\n \"type\": \"selection\",\n \"width\": \"55\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"id\",\n \"label\": \"审批ID\",\n \"width\": \"70px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"title\",\n \"label\": \"标题\",\n \"width\": \"80px\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"索引名称\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'index_detail',\n query: {\n indexId: scope.row.indexId,\n indexName: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.indexName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"templateName\",\n \"label\": \"模板名称\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"所属集群\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"approveState\",\n \"label\": \"当前状态\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"translateStat\")(scope.row.approveState)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"applyUser\",\n \"label\": \"提交人\",\n \"width\": \"80px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"提交时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"审批人\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.approveState === 1 || scope.row.approveState === 2) ? _c('span', [_vm._v(_vm._s(scope.row.approveUser))]) : _c('span', [_vm._v(\"-\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"审批时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.approveState === 1 || scope.row.approveState === 2) ? _c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.approveTime)))]) : _c('span', [_vm._v(\"-\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"70px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.approveState === 0),\n expression: \"scope.row.approveState === 0\"\n }]\n }, [_c('el-tooltip', {\n attrs: {\n \"content\": \"查看\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleView(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-eye\"\n })])], 1), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"content\": \"处理\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleApprove(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-right\"\n })])], 1)], 1)]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isApproveDialogVisible) ? _c('div', [_c('approve-dialog', {\n attrs: {\n \"approve-states\": _vm.approveStates,\n \"approve-info\": _vm.approveInfo\n },\n on: {\n \"close-approve-dialog\": _vm.closeApproveDialog,\n \"approve-complete\": _vm.approveComplete\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isViewDialogVisible) ? _c('div', [_c('json-diff', {\n attrs: {\n \"json-diff-info\": _vm.jsonDiffInfo\n },\n on: {\n \"close-dialog\": _vm.closeViewContentDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1449 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"审批处理\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"approveInfo\",\n attrs: {\n \"model\": _vm.approveInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"100px\"\n }\n }, [_c('div', [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"审批\",\n \"prop\": \"state\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.approveInfo.state),\n callback: function($$v) {\n _vm.$set(_vm.approveInfo, \"state\", $$v)\n },\n expression: \"approveInfo.state\"\n }\n }, _vm._l((_vm.approveStates), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.key,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"note\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.approveInfo.note),\n callback: function($$v) {\n _vm.$set(_vm.approveInfo, \"note\", $$v)\n },\n expression: \"approveInfo.note\"\n }\n })], 1)], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitSyncInfo()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1450 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"condition-add\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.addConditionRelate\n }\n }, [_vm._v(\"新增规则条件\")]), _vm._v(\" \"), _c('span', {\n staticClass: \"warning\"\n }, [_c('el-tooltip', {\n staticClass: \"item\",\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"若不增加规则条件,则会默认命中节点集\",\n \"placement\": \"right\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-info-circle\"\n })])], 1)], 1), _vm._v(\" \"), _vm._l((_vm.conditions), function(item, index) {\n return _c('el-collapse', {\n key: index,\n model: {\n value: (index),\n callback: function($$v) {\n index = $$v\n },\n expression: \"index\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": index\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('span', {\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(\"条件\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"danger\",\n \"size\": \"mini\",\n \"icon\": \"minus\"\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n return _vm.deleteConditionRelate(item)\n }\n }\n })], 1), _vm._v(\" \"), _c('condition-item', {\n ref: \"conditionItem\",\n refInFor: true,\n attrs: {\n \"condition-item\": item\n }\n })], 2)], 1)\n })], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1451 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"插件管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索插件\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.pluginNameForSearch),\n callback: function($$v) {\n _vm.pluginNameForSearch = $$v\n },\n expression: \"pluginNameForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")])], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.refreshPage\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"刷新\")])], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增插件\")])], 1)]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.pluginRuntimeList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"id\",\n \"label\": \"升级ID\",\n \"width\": \"80px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"所属集群\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginName\",\n \"label\": \"运行插件\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n name: 'plugin_upgrade',\n query: {\n pluginName: scope.row.pluginName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.pluginName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginVersion\",\n \"label\": \"插件版本\",\n \"width\": \"120px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((_vm.getPluginVersion(scope.row.nodeStates)), function(item) {\n return _c('div', {\n key: item,\n staticClass: \"plugin-version\"\n }, [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"right\"\n }\n }, [_vm._l((_vm.getNodesOfVersion(scope.row.nodeStates, item)), function(node) {\n return _c('div', {\n key: node\n }, [_vm._v(_vm._s(node))])\n }), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"slot\": \"reference\",\n \"type\": \"text\"\n },\n slot: \"reference\"\n }, [_vm._v(_vm._s(item))])], 2)], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginType\",\n \"label\": \"插件类型\",\n \"width\": \"130px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm.pluginTypeMap[scope.row.pluginType]))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"更新时间\",\n \"width\": \"190px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"70px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.creatable) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"升级\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleUpgrade(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege && scope.row.creatable) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"移除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRemove(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-close\"\n })])], 1) : _vm._e()]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isPluginInfoDialogVisible) ? _c('div', [_c('plugin-info-dialog', {\n attrs: {\n \"plugin-info\": _vm.pluginInfo,\n \"plugin-info-title\": _vm.pluginInfoTitle,\n \"plugin-info-operation\": _vm.pluginInfoOperation\n },\n on: {\n \"operate-close-dialog\": _vm.operateCloseDialog,\n \"close-dialog\": _vm.closeDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1452 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.clusterInfoTitle,\n \"size\": \"small\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isClusterInfoVisible),\n callback: function($$v) {\n _vm.isClusterInfoVisible = $$v\n },\n expression: \"isClusterInfoVisible\"\n }\n }, [_c('el-form', {\n ref: \"clusterInfo\",\n attrs: {\n \"model\": _vm.clusterInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"140px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"域名\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.clusterInfo.clusterId),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"clusterId\", $$v)\n },\n expression: \"clusterInfo.clusterId\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"logicalCluster\",\n \"label\": \"集群类型\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.clusterInfo.logicalCluster),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"logicalCluster\", $$v)\n },\n expression: \"clusterInfo.logicalCluster\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"物理集群\",\n \"value\": false\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"逻辑集群\",\n \"value\": true\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), (_vm.clusterInfo.logicalCluster) ? _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"物理集群\",\n \"prop\": \"realClustersArr\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\"\n },\n model: {\n value: (_vm.clusterInfo.realClustersArr),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"realClustersArr\", $$v)\n },\n expression: \"clusterInfo.realClustersArr\"\n }\n }, _vm._l((_vm.allPhysicals), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.id\n }\n })\n }), 1)], 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), (!_vm.clusterInfo.logicalCluster) ? _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"HTTP地址\",\n \"prop\": \"httpAddress\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.clusterInfo.httpAddress),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"httpAddress\", $$v)\n },\n expression: \"clusterInfo.httpAddress\"\n }\n })], 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), (!_vm.clusterInfo.logicalCluster) ? _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"ES client连接地址\",\n \"prop\": \"clientAddress\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.clusterInfo.clientAddress),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"clientAddress\", $$v)\n },\n expression: \"clusterInfo.clientAddress\"\n }\n })], 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"绑定代理集群\",\n \"prop\": \"accessiblePs\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\"\n },\n model: {\n value: (_vm.clusterInfo.accessiblePs),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"accessiblePs\", $$v)\n },\n expression: \"clusterInfo.accessiblePs\"\n }\n }, _vm._l((_vm.allPallasSearchs), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"description\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.clusterInfo.description),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"description\", $$v)\n },\n expression: \"clusterInfo.description\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"监控级别\"\n }\n }, [_c('span', {\n staticStyle: {\n \"margin-right\": \"20px\"\n }\n }, [_c('span', {\n staticStyle: {\n \"color\": \"#fff\"\n }\n }, [_vm._v(\"集群:\")]), _c('el-switch', {\n attrs: {\n \"on-value\": 1,\n \"off-value\": 0\n },\n model: {\n value: (_vm.clusterInfo.monitorLevelModel.cluster),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo.monitorLevelModel, \"cluster\", $$v)\n },\n expression: \"clusterInfo.monitorLevelModel.cluster\"\n }\n })], 1), _vm._v(\" \"), _c('span', {\n staticStyle: {\n \"color\": \"#fff\"\n }\n }, [_vm._v(\"索引:\")]), _c('el-switch', {\n attrs: {\n \"on-value\": 1,\n \"off-value\": 0\n },\n model: {\n value: (_vm.clusterInfo.monitorLevelModel.index),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo.monitorLevelModel, \"index\", $$v)\n },\n expression: \"clusterInfo.monitorLevelModel.index\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitClusterInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1453 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": _vm.conditionInfoTitle,\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"conditionInfo\",\n attrs: {\n \"model\": _vm.conditionInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 30\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"规则名称\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.conditionInfo.name),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"name\", $$v)\n },\n expression: \"conditionInfo.name\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"优先级\",\n \"prop\": \"priority\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"placeholder\": \"优先于选中规则\"\n },\n model: {\n value: (_vm.conditionInfo.priority),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"priority\", $$v)\n },\n expression: \"conditionInfo.priority\"\n }\n }, _vm._l((_vm.alternativeConditions), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"是否启用\",\n \"prop\": \"enable\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n model: {\n value: (_vm.conditionInfo.enable),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"enable\", $$v)\n },\n expression: \"conditionInfo.enable\"\n }\n })], 1)]), _vm._v(\" \"), (_vm.conditionInfo.conditions.length > 1) ? _c('el-form-item', {\n attrs: {\n \"prop\": \"conditionRelation\",\n \"label\": \"条件关系\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.conditionInfo.conditionRelation),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"conditionRelation\", $$v)\n },\n expression: \"conditionInfo.conditionRelation\"\n }\n }, _vm._l((_vm.conditionRelations), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)]) : _vm._e()], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 14\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"\",\n \"label\": \"\",\n \"label-width\": \"0px\"\n }\n }, [_c('div', {\n staticClass: \"target-group-transfer\"\n }, [_c('el-transfer', {\n ref: \"targetGroupTransfer\",\n attrs: {\n \"render-content\": _vm.renderFunc,\n \"titles\": ['所有节点集', '应用'],\n \"data\": _vm.routingTargetGroups,\n \"props\": _vm.defaultProps\n },\n on: {\n \"change\": _vm.handleChange\n },\n model: {\n value: (_vm.conditionInfo.targetGroupsId),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"targetGroupsId\", $$v)\n },\n expression: \"conditionInfo.targetGroupsId\"\n }\n })], 1)])], 1)], 1)], 1), _vm._v(\" \"), _c('conditions', {\n ref: \"conditions\",\n attrs: {\n \"conditions\": _vm.conditionInfo.conditions\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1454 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'plugin_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"插件管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.pluginName))])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.refreshPage\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"刷新\")])], 1)]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.pluginUpgradeList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"type\": \"expand\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(props) {\n return [_c('el-form', {\n staticClass: \"my-table-expand\",\n attrs: {\n \"label-position\": \"left\",\n \"inline\": \"\"\n }\n }, [_c('el-form-item', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"label\": \"路径\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.packagePath) + \";\")])]), _vm._v(\" \"), (props.row.state !== 3 && props.row.state !== 4) ? _c('div', _vm._l((props.row.nodeStates), function(item) {\n return _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (item.nodeIp !== ''),\n expression: \"item.nodeIp !== ''\"\n }],\n key: item.nodeIp\n }, [_c('el-form-item', {\n staticStyle: {\n \"width\": \"40%\"\n },\n attrs: {\n \"label\": \"IP\"\n }\n }, [_c('span', [_vm._v(_vm._s(item.nodeIp))])]), _vm._v(\" \"), _c('el-form-item', {\n staticStyle: {\n \"width\": \"30%\"\n },\n attrs: {\n \"label\": \"版本\"\n }\n }, [_c('span', [_vm._v(_vm._s(item.pluginVersion))])]), _vm._v(\" \"), _c('el-form-item', {\n staticStyle: {\n \"width\": \"30%\"\n },\n attrs: {\n \"label\": \"状态\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"translateStat\")(item.state)))])])], 1)\n }), 0) : _vm._e()], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"id\",\n \"label\": \"ID\",\n \"width\": \"60px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"所属集群\",\n \"min-width\": \"135px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!_vm.isAllPrivilege) ? _c('div', [_vm._v(_vm._s(scope.row.clusterId))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n name: 'cluster_detail',\n query: {\n clusterId: scope.row.clusterId\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.clusterId))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"note\",\n \"label\": \"插件描述\",\n \"width\": \"95px\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginVersion\",\n \"label\": \"插件版本\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginType\",\n \"label\": \"插件类型\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm.pluginTypeMap[scope.row.pluginType]))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"applyUser\",\n \"label\": \"申请人\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.applyUser || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"approveUser\",\n \"label\": \"审批人\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.approveUser || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"状态\",\n \"width\": \"90px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"translateStat\")(scope.row.state)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"更新时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"130px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(_vm.isAllPrivilege) ? _c('div', [(scope.row.state === 1 || scope.row.state === 5) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"开始下载\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'download', '开始下载')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-download\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 5) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"强制升级\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'upgrade', '强制升级')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 51) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"开始升级\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'upgrade', '开始升级')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 61 || scope.row.state === 5 || scope.row.state === 51 || scope.row.state === 6) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"标记完成\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'done', '标记完成')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-check-circle\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 1) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"审批不通过\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'deny', '审批不通过')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-ban\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 4) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"回滚\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRollback(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-undo\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 1) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"取消\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'recall', '取消')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-close\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 5 || scope.row.state === 51 || scope.row.state === 6) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"终止\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'stop', '终止')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-stop-circle\"\n })])], 1) : _vm._e()], 1) : _c('div', [(scope.row.state === 1) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"取消\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'recall', '取消')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-close\"\n })])], 1) : _vm._e()], 1)]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1455 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"condition-add\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.addConditionRelate\n }\n }, [_vm._v(\"新增规则条件\")]), _vm._v(\" \"), _c('span', {\n staticClass: \"warning\"\n }, [_c('el-tooltip', {\n staticClass: \"item\",\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"若不增加规则条件,则会默认命中节点集\",\n \"placement\": \"right\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-info-circle\"\n })])], 1)], 1), _vm._v(\" \"), _vm._l((_vm.conditions), function(item, index) {\n return _c('el-collapse', {\n key: index,\n model: {\n value: (index),\n callback: function($$v) {\n index = $$v\n },\n expression: \"index\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": index\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('span', {\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(\"条件\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"danger\",\n \"size\": \"mini\",\n \"icon\": \"minus\"\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n return _vm.deleteConditionRelate(item)\n }\n }\n })], 1), _vm._v(\" \"), _c('condition-item', {\n ref: \"conditionItem\",\n refInFor: true,\n attrs: {\n \"condition-item\": item\n }\n })], 2)], 1)\n })], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1456 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"index-info\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.crondeleteTitle,\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isCronDeleteVisible),\n callback: function($$v) {\n _vm.isCronDeleteVisible = $$v\n },\n expression: \"isCronDeleteVisible\"\n }\n }, [_c('el-form', {\n ref: \"crondeleteInfo\",\n attrs: {\n \"model\": _vm.crondeleteInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"150px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"cron\",\n \"label\": \"cron表达式\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.crondeleteInfo.cron),\n callback: function($$v) {\n _vm.$set(_vm.crondeleteInfo, \"cron\", $$v)\n },\n expression: \"crondeleteInfo.cron\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"scrollSize\",\n \"label\": \"每次删除多少\"\n }\n }, [_c('el-input-number', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.crondeleteInfo.scrollSize),\n callback: function($$v) {\n _vm.$set(_vm.crondeleteInfo, \"scrollSize\", $$v)\n },\n expression: \"crondeleteInfo.scrollSize\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"版本\",\n \"prop\": \"versionId\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"clearable\": \"\"\n },\n model: {\n value: (_vm.crondeleteInfo.versionId),\n callback: function($$v) {\n _vm.$set(_vm.crondeleteInfo, \"versionId\", $$v)\n },\n expression: \"crondeleteInfo.versionId\"\n }\n }, _vm._l((_vm.versionIdList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 20\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"delete by query dsl\",\n \"prop\": \"dsl\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\",\n \"rows\": 10\n },\n model: {\n value: (_vm.crondeleteInfo.dsl),\n callback: function($$v) {\n _vm.$set(_vm.crondeleteInfo, \"dsl\", $$v)\n },\n expression: \"crondeleteInfo.dsl\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitUpsert()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1457 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"monitor-top\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.gaugeMetricData,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"transportAddress\",\n \"label\": \"transportAddress\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"jvmHeapUsage\",\n \"label\": \"JVM Heap(%)\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Free Disk\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.availableFS)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"documentCount\",\n \"label\": \"Documents\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Data\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.documentStore)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"indexCount\",\n \"label\": \"Indices\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"shardCount\",\n \"label\": \"Shards\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"type\",\n \"label\": \"Type\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"uptime\",\n \"label\": \"Uptime\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"GC Count(\" + (_vm.gcCountInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"gcCount\",\n \"option-info\": _vm.gcCountInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"GC Duration(\" + (_vm.gcDurationInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"gcDuration\",\n \"option-info\": _vm.gcDurationInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"JVM Heap(\" + (_vm.jvmHeapInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"jvmHeap\",\n \"option-info\": _vm.jvmHeapInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Cpu Percent(\" + (_vm.cpuPercentInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"cpuPercent\",\n \"option-info\": _vm.cpuPercentInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Threadpool Threads(\" + (_vm.threadpoolThreadsInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"threadpoolThreads\",\n \"option-info\": _vm.threadpoolThreadsInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Threadpool Queue(\" + (_vm.threadpoolQueueInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"threadpoolQueue\",\n \"option-info\": _vm.threadpoolQueueInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Threadpool Reject(\" + (_vm.threadpoolRejectInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"threadpoolReject\",\n \"option-info\": _vm.threadpoolRejectInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Rate(\" + (_vm.indexSearchRateInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchRate\",\n \"option-info\": _vm.indexSearchRateInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Latency(\" + (_vm.indexSearchLatencyInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchLatency\",\n \"option-info\": _vm.indexSearchLatencyInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Segment Count(\" + (_vm.segmentCountInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"segmentCount\",\n \"option-info\": _vm.segmentCountInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Index Memory(\" + (_vm.indexMemoryInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexMemory\",\n \"option-info\": _vm.indexMemoryInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"System load(\" + (_vm.systemLoadInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"systemLoad\",\n \"option-info\": _vm.systemLoadInfo\n }\n })], 1)])], 1)], 1)], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1458 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.dynamicInfoTitle,\n \"size\": \"small\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isDynamicInfoVisible),\n callback: function($$v) {\n _vm.isDynamicInfoVisible = $$v\n },\n expression: \"isDynamicInfoVisible\"\n }\n }, [_c('el-form', {\n ref: \"dynamicInfo\",\n attrs: {\n \"model\": _vm.dynamicInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"140px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"indexName\",\n \"label\": \"索引\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.dynamicInfo.indexName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"indexName\", $$v)\n },\n expression: \"dynamicInfo.indexName\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"filterVersion\",\n \"label\": \"版本\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n model: {\n value: (_vm.dynamicInfo.filterVersion),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"filterVersion\", $$v)\n },\n expression: \"dynamicInfo.filterVersion\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部版本\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.versionIdList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n })], 2)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"事件\",\n \"prop\": \"selectedType\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.selectedType),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"selectedType\", $$v)\n },\n expression: \"dynamicInfo.selectedType\"\n }\n }, [_vm._l((_vm.typeList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"全部事件\",\n \"value\": \"全部事件\"\n }\n })], 2)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [(_vm.dynamicInfo.selectedType == '全部事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部操作\",\n \"value\": \"全部操作\"\n }\n })], 1)], 1)], 1) : (_vm.dynamicInfo.selectedType == '索引事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, _vm._l((_vm.indexEventList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1) : (_vm.dynamicInfo.selectedType == '版本事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, _vm._l((_vm.versionEventList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1) : (_vm.dynamicInfo.selectedType == '同步事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, _vm._l((_vm.versionSyncEventList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1) : (_vm.dynamicInfo.selectedType == '模板事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, _vm._l((_vm.templateEventList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1) : _vm._e()], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"timeRange\",\n \"label\": \"天数\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.dynamicInfo.timeRange),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"timeRange\", $$v)\n },\n expression: \"dynamicInfo.timeRange\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.deleteDynamicInfo()\n }\n }\n }, [_vm._v(\"删除\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1459 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"选择复制的域\",\n \"before-close\": _vm.closeDialog\n },\n on: {\n \"open\": _vm.initSelectList\n },\n model: {\n value: (_vm.isCopyToFieldsVisible),\n callback: function($$v) {\n _vm.isCopyToFieldsVisible = $$v\n },\n expression: \"isCopyToFieldsVisible\"\n }\n }, [_c('div', {\n staticClass: \"copy-to-field\"\n }, [_c('el-transfer', {\n attrs: {\n \"filterable\": \"\",\n \"data\": _vm.copyToFieldList,\n \"titles\": ['可选的域', '已选的域']\n },\n model: {\n value: (_vm.copyToFieldSelected),\n callback: function($$v) {\n _vm.copyToFieldSelected = $$v\n },\n expression: \"copyToFieldSelected\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.sumbitCopyToField\n }\n }, [_vm._v(\"确定\")])], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1460 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": _vm.title,\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('fieldset', {\n staticClass: \"no-border\"\n }, [_c('div', {\n staticClass: \"view-content\"\n }, [_c('el-scrollbar', [_c('pre', [_vm._v(_vm._s(_vm.content))])])], 1)])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1461 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"login-box\"\n }, [_c('div', {\n staticClass: \"login-header\"\n }, [_vm._v(\"\\n 用户登录\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"login-body\"\n }, [(_vm.loginErrorMsg) ? _c('div', {\n staticClass: \"msg-error\"\n }, [_c('i', {\n staticClass: \"el-icon-remove\"\n }), _vm._v(_vm._s(_vm.loginErrorMsg))]) : _vm._e(), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('el-input', {\n attrs: {\n \"size\": \"medium\",\n \"placeholder\": \"请输入帐号\"\n },\n model: {\n value: (_vm.loginInfo.username),\n callback: function($$v) {\n _vm.$set(_vm.loginInfo, \"username\", $$v)\n },\n expression: \"loginInfo.username\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('el-input', {\n attrs: {\n \"type\": \"password\",\n \"placeholder\": \"请输入密码\"\n },\n model: {\n value: (_vm.loginInfo.password),\n callback: function($$v) {\n _vm.$set(_vm.loginInfo, \"password\", $$v)\n },\n expression: \"loginInfo.password\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('el-button', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": function($event) {\n return _vm.login()\n }\n }\n }, [_vm._v(\"登录\")])], 1)], 1)], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1462 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('el-form', {\n ref: \"conditionItemForm\",\n attrs: {\n \"model\": _vm.conditionItem,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断参数名\",\n \"prop\": \"paramName\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n model: {\n value: (_vm.conditionItem.paramName),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"paramName\", $$v)\n },\n expression: \"conditionItem.paramName\"\n }\n }, _vm._l((_vm.paramNames), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断运算\",\n \"prop\": \"exprOp\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.conditionItem.exprOp),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"exprOp\", $$v)\n },\n expression: \"conditionItem.exprOp\"\n }\n }, _vm._l((_vm.exprOps), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断值\",\n \"prop\": \"paramValue\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"多个判断值请以 , 分隔\"\n },\n model: {\n value: (_vm.conditionItem.paramValue),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"paramValue\", $$v)\n },\n expression: \"conditionItem.paramValue\"\n }\n })], 1)], 1)], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1463 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [(_vm.initialized || _vm.initComponent === 'Login') ? [_c(_vm.initComponent, {\n tag: \"component\",\n on: {\n \"login-success\": _vm.loginSuccess\n }\n })] : [_c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading.fullscreen\",\n value: (_vm.loading),\n expression: \"loading\",\n modifiers: {\n \"fullscreen\": true\n }\n }],\n attrs: {\n \"element-loading-text\": \"Pallas正在初始化应用,请稍等···\"\n }\n })]], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1464 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\",\n style: ({\n 'height': _vm.temPanelHeight\n })\n }, [_c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"template_content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"template_tree\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isAllPrivilege),\n expression: \"isAllPrivilege\"\n }]\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.addTemplate\n }\n }, [_vm._v(\"新增\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.exportTemplate\n }\n }, [_vm._v(\"导出\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.importTemplate\n }\n }, [_vm._v(\"导入\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.batchSubmitTemplate\n }\n }, [_vm._v(\"批量提交\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10\",\n style: ({\n 'height': _vm.temPanelHeight - 35,\n 'width': '260px'\n })\n }, [_c('el-tree', {\n staticStyle: {\n \"overflow\": \"auto\",\n \"height\": \"100%\"\n },\n attrs: {\n \"node-key\": \"id\",\n \"data\": _vm.treeData,\n \"props\": _vm.defaultProps,\n \"default-expand-all\": \"\",\n \"expand-on-click-node\": false,\n \"highlight-current\": \"\"\n },\n on: {\n \"node-click\": _vm.handleNodeClick\n }\n })], 1)]), _vm._v(\" \"), (!_vm.isEditable) ? _c('div', {\n staticClass: \"template-warning\"\n }, [_c('i', {\n staticClass: \"el-icon-warning\"\n }), _vm._v(\"请选择模板\")]) : _vm._e(), _vm._v(\" \"), _vm._l((_vm.templateList), function(template) {\n return _c('div', {\n key: template.templateName,\n staticClass: \"template-body\"\n }, [(_vm.templateInfo.templateName === template.templateName) ? _c('template-edit', {\n attrs: {\n \"tem-panel-height\": _vm.temPanelHeight,\n \"metadata-list\": _vm.metadataList,\n \"clusters\": _vm.clusters,\n \"index-id\": _vm.indexId,\n \"index-name\": _vm.indexName,\n \"is-all-privilege\": _vm.isAllPrivilege,\n \"template-info\": _vm.templateInfo,\n \"macro-list\": _vm.macroList\n },\n on: {\n \"close-delete\": _vm.closeDelete,\n \"close-edit\": _vm.closeEdit\n }\n }) : _vm._e()], 1)\n })], 2), _vm._v(\" \"), (_vm.isTemplateAddVisible) ? _c('div', [_c('template-add-dialog', {\n attrs: {\n \"template-add-info\": _vm.templateAddInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"submit-close-dialog\": _vm.submitCloseDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isTemplateImportVisible) ? _c('div', [_c('template-import-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-import-title\": _vm.templateImportTitle,\n \"template-import-url\": _vm.templateImportUrl\n },\n on: {\n \"close-dialog\": _vm.closeImportDialog,\n \"close-submit-dialog\": _vm.closeSubmitImportDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isExprotTemplateVisible) ? _c('div', [_c('template-export-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-list\": _vm.templateList\n },\n on: {\n \"close-export-dialog\": _vm.closeExportDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isBatchSubmitVisible) ? _c('div', [_c('template-batch-submit-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"modified-template-list\": _vm.modifiedTemplateList\n },\n on: {\n \"close-batch-submit-dialog\": _vm.closeBatchSubmitDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1465 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('el-tabs', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.tabActive),\n callback: function($$v) {\n _vm.tabActive = $$v\n },\n expression: \"tabActive\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"label\": \"超时重试\",\n \"name\": \"timeout_retry\"\n }\n }, [_c('timeout-retry-manage', {\n attrs: {\n \"template-list\": _vm.templateList,\n \"all-privilege\": _vm.allPrivilege\n },\n on: {\n \"refresh-template\": _vm.getTemplateList\n }\n })], 1), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"限流配置\",\n \"name\": \"throttling\"\n }\n }, [_c('throttling-manage', {\n attrs: {\n \"template-list\": _vm.templateList,\n \"all-privilege\": _vm.allPrivilege\n },\n on: {\n \"refresh-template\": _vm.getTemplateList\n }\n })], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1466 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('el-collapse', {\n model: {\n value: (_vm.activeNames),\n callback: function($$v) {\n _vm.activeNames = $$v\n },\n expression: \"activeNames\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": \"1\"\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_vm._v(\"\\n 采集规则\\n \")]), _vm._v(\" \"), _c('flow-record-config', {\n on: {\n \"get-flow-export\": _vm.getFlowExport\n }\n })], 2), _vm._v(\" \"), _c('el-collapse-item', {\n attrs: {\n \"title\": \"采集结果\",\n \"name\": \"2\"\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_vm._v(\"\\n 采集结果 -- 规则ID:\"), _c('span', {\n staticStyle: {\n \"color\": \"#32cd32\",\n \"font-weight\": \"bold\"\n }\n }, [_vm._v(_vm._s(_vm.flowRecordExportParams.configId))])]), _vm._v(\" \"), _c('flow-record-export', {\n attrs: {\n \"flow-record-export-params\": _vm.flowRecordExportParams\n }\n })], 2)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1467 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"template-test-upload\"\n }, [_c('el-table', {\n attrs: {\n \"data\": _vm.addDataSource,\n \"show-header\": false\n }\n }, [_c('el-table-column', {\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input', {\n model: {\n value: (scope.row.paramNameDef),\n callback: function($$v) {\n _vm.$set(scope.row, \"paramNameDef\", $$v)\n },\n expression: \"scope.row.paramNameDef\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": \"/pallas/index_template/performance_script/upload.json\",\n \"auto-upload\": false,\n \"data\": _vm.addDataSource[0],\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"选择文件\")])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleAdd(scope.row)\n }\n }\n }, [_vm._v(\"上传\")])]\n }\n }])\n })], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1468 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"新建模板\",\n \"before-close\": _vm.closeDialog,\n \"size\": \"tiny\",\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isTemplateAddVisible),\n callback: function($$v) {\n _vm.isTemplateAddVisible = $$v\n },\n expression: \"isTemplateAddVisible\"\n }\n }, [_c('el-form', {\n ref: \"templateAddInfo\",\n attrs: {\n \"model\": _vm.templateAddInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"90px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"名称\",\n \"prop\": \"templateName\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.templateAddInfo.templateName),\n callback: function($$v) {\n _vm.$set(_vm.templateAddInfo, \"templateName\", $$v)\n },\n expression: \"templateAddInfo.templateName\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"类型\",\n \"prop\": \"type\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.templateAddInfo.type),\n callback: function($$v) {\n _vm.$set(_vm.templateAddInfo, \"type\", $$v)\n },\n expression: \"templateAddInfo.type\"\n }\n }, [_c('el-option', {\n key: \"1\",\n attrs: {\n \"label\": \"模板\",\n \"value\": \"1\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n key: \"0\",\n attrs: {\n \"label\": \"宏\",\n \"value\": \"0\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"description\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.templateAddInfo.description),\n callback: function($$v) {\n _vm.$set(_vm.templateAddInfo, \"description\", $$v)\n },\n expression: \"templateAddInfo.description\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1469 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [(_vm.privilege) ? _c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"创建规则\")])], 1)])]) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.rulesList,\n \"stripe\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"规则名称\",\n \"prop\": \"name\",\n \"header-align\": \"center\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"规则关系\",\n \"prop\": \"conditionRelation\",\n \"width\": \"80px\",\n \"header-align\": \"center\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断表达式\",\n \"header-align\": \"center\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"判断参数名\",\n \"min-width\": \"150\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.paramName,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.paramName))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断运算\",\n \"min-width\": \"70\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.exprOp,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.exprOp))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断值\",\n \"min-width\": \"140\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.paramValue,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.paramValue))])\n })\n }\n }])\n })], 1), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Preference\",\n \"min-width\": \"70\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n staticClass: \"target-group-item\",\n attrs: {\n \"type\": scope.row.preference === '' ? 'info' : 'success',\n \"close-transition\": \"\"\n }\n }, [_c('span', [_vm._v(_vm._s(scope.row.preference || '无'))])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"节点集\",\n \"min-width\": \"150\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.targetGroups), function(item) {\n return _c('div', {\n key: item.id,\n staticClass: \"route-tag\"\n }, [_c('el-tag', {\n staticClass: \"target-group-item\",\n attrs: {\n \"type\": \"warning\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm.routingTargetGroupsList[item.id].name))]), _vm._v(\" \"), (scope.row.targetGroups.length > 1) ? _c('span', {\n staticClass: \"route-weight\"\n }, [_vm._v(_vm._s(item.weight))]) : _vm._e()])], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用\",\n \"header-align\": \"center\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.enable ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateEnable\")(scope.row.enable)))])]\n }\n }])\n }), _vm._v(\" \"), (_vm.privilege) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80px\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-edit\"\n })])], 1), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row, scope.$index)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1)]\n }\n }], null, false, 2969598020)\n }) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('target-group', {\n attrs: {\n \"privilege\": _vm.privilege,\n \"index-id\": _vm.indexId,\n \"index-name\": _vm.indexName,\n \"rules-list\": _vm.rulesList,\n \"routing-target-groups-list\": _vm.routingTargetGroupsList\n },\n on: {\n \"get-routing-list\": _vm.getRoutingList\n }\n }), _vm._v(\" \"), (_vm.isConditionInfoVisible) ? _c('div', [_c('condition-info-dialog', {\n attrs: {\n \"routing-target-groups\": _vm.routingTargetGroups,\n \"conditions\": JSON.parse(JSON.stringify(_vm.conditions)),\n \"condition-info\": _vm.conditionInfo,\n \"condition-info-title\": _vm.conditionInfoTitle,\n \"condition-operation\": _vm.conditionOperation\n },\n on: {\n \"add-condition\": _vm.addCondition,\n \"edit-condition\": _vm.editCondition,\n \"close-dialog\": _vm.closeConditionDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1470 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"index-timeout-retry\"\n }, [_c('i', {\n staticClass: \"fa fa-exclamation-circle\"\n }), _vm._v(\"\\n 当前索引级别超时为 \"), _c('span', [_vm._v(_vm._s(_vm.indexInfo.timeout))]), _vm._v(\" 毫秒,重试为 \"), _c('span', [_vm._v(_vm._s(_vm.indexInfo.retry))]), _vm._v(\" 次。(若模板超时时间为0毫秒,则以当前索引的超时时间和重试为准。)\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"超时时间(毫秒,需>=50ms)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"超时时间(毫秒)\",\n \"min\": 0\n },\n model: {\n value: (_vm.templateInfo.timeout),\n callback: function($$v) {\n _vm.$set(_vm.templateInfo, \"timeout\", $$v)\n },\n expression: \"templateInfo.timeout\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"重试次数(上限1次)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"重试次数\",\n \"min\": 0,\n \"max\": 1\n },\n model: {\n value: (_vm.templateInfo.retry),\n callback: function($$v) {\n _vm.$set(_vm.templateInfo, \"retry\", $$v)\n },\n expression: \"templateInfo.retry\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpdate\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"更新\")])], 1)], 1)], 1)])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1471 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticStyle: {\n \"height\": \"300px\"\n }\n }, [(JSON.stringify(_vm.optionInfo) === '{}') ? _c('chart-no-data') : _vm._e(), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"width\": \"100%\",\n \"height\": \"300px\"\n },\n attrs: {\n \"id\": _vm.id\n }\n })], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1472 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isAllPrivilege),\n expression: \"isAllPrivilege\"\n }],\n staticClass: \"content\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增版本\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.versionList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"版本id\",\n \"prop\": \"id\",\n \"width\": \"150px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"所属集群\",\n \"prop\": \"realClusterIds\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((_vm.$array.strToArray(scope.row.realClusterIds)), function(item) {\n return _c('div', {\n key: item,\n staticClass: \"condition-table\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n name: 'cluster_detail',\n query: {\n clusterId: _vm.getClusterName(item)\n }\n }\n }\n }, [_vm._v(_vm._s(_vm.getClusterName(item)))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"查看配置信息\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.viewConfigInfo(scope.row, item)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-cog\"\n })])], 1)], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"数据量\",\n \"prop\": \"count\",\n \"width\": \"150px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.count), function(item, index) {\n return _c('div', {\n key: item,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item) + \"\\n \"), _c('el-tooltip', {\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"快速查看数据\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n _vm.retrieve(scope.row, _vm.$array.strToArray(scope.row.realClusterIds)[index])\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-search-plus\"\n })])], 1)], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"创建时间\",\n \"prop\": \"createTime\",\n \"width\": \"200px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用\",\n \"prop\": \"isUsed\",\n \"width\": \"150px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.isUsed ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateIsUsed\")(scope.row.isUsed || false)))])]\n }\n }])\n }), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [_c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSync),\n expression: \"!scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.createIndex(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"创建索引\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isUsed),\n expression: \"!scope.row.isUsed\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.enableVersion(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-hand-o-right\"\n }), _vm._v(\"启用版本\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.triggerDialog(scope.row, 'view')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-eye\"\n }), _vm._v(\"配置查看\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isSync),\n expression: \"scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.triggerDialog(scope.row, 'dynamic_edit')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n }), _vm._v(\"动态配置更改\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSync),\n expression: \"!scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.triggerDialog(scope.row, 'edit')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n }), _vm._v(\"配置更改\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.copyVersion(scope.row, 'copy')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-clone\"\n }), _vm._v(\"版本复制\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.preheading(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-sun-o\"\n }), _vm._v(\"索引预热\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isSync),\n expression: \"scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.stopSync(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-stop-circle-o\"\n }), _vm._v(\"删除索引\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSync),\n expression: \"!scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-trash\"\n }), _vm._v(\"删除版本\")])])])], 1)], 1)]\n }\n }], null, false, 2811631662)\n }) : _vm._e()], 1)], _vm._v(\" \"), (_vm.versionData.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.versionData.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()\n ], 2), _vm._v(\" \"), (_vm.isVersionInfoVisible) ? _c('div', [_c('version-info-dialog', {\n attrs: {\n \"version-operation\": _vm.versionOperation,\n \"version-info-title\": _vm.versionInfoTitle,\n \"version-info\": _vm.versionInfo,\n \"is-logical\": _vm.isLogical,\n \"clusters\": _vm.clusters,\n \"is-meta-data-null\": _vm.isMetaDataNull\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"template-operate-success\": _vm.templateOperateSuccess\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isVersionDynamicInfoVisible) ? _c('div', [_c('version-dynamic-info-dialog', {\n attrs: {\n \"version-operation\": _vm.versionOperation,\n \"version-info-title\": _vm.versionInfoTitle,\n \"version-info\": _vm.versionInfo,\n \"is-logical\": _vm.isLogical,\n \"clusters\": _vm.clusters\n },\n on: {\n \"close-dialog\": _vm.closeDynamicDialog,\n \"template-operate-success\": _vm.dynamicUpdateOperateSuccess\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isViewConfigVisible) ? _c('div', [_c('json-content-dialog', {\n attrs: {\n \"content\": _vm.configInfo,\n \"title\": _vm.configTitle\n },\n on: {\n \"close-dialog\": _vm.closeViewConfigDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isPreheadingVisible) ? _c('div', [_c('preheading-dialog', {\n attrs: {\n \"preheading-info\": _vm.preheadingInfo\n },\n on: {\n \"close-dialog\": _vm.closePreheadingDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1473 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"template-content\",\n style: ({\n 'height': _vm.temPanelHeight\n }),\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-row', [_c('div', {\n staticClass: \"pull-left template-title\"\n }, [_vm._v(\"\\n 当前\" + _vm._s(this.templateType) + \":\"), _c('span', {\n staticClass: \"template-name\"\n }, [_vm._v(_vm._s(_vm.templateInfo.templateName))]), _vm._v(\" \"), (_vm.templateInfo.content === '' || _vm.templateInfo.content === '{}') ? _c('el-tooltip', {\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"初始化自定义业务模板\",\n \"placement\": \"bottom\"\n }\n }, [(_vm.isEditOperate && !_vm.templateInfo.approving) ? _c('el-button', {\n attrs: {\n \"type\": \"success\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.setCustomTemplate\n }\n }, [_c('i', {\n staticClass: \"fa fa-hand-o-right\"\n }), _vm._v(\"模板向导\\n \")]) : _vm._e()], 1) : _vm._e(), _vm._v(\" \"), (_vm.templateInfo.content !== '' && _vm.templateInfo.content !== '{}') ? _c('el-tooltip', {\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"可在当前光标处,插入选择的模板字段\",\n \"placement\": \"bottom\"\n }\n }, [(_vm.isEditOperate && !_vm.templateInfo.approving) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.insertTemplate\n }\n }, [_c('i', {\n staticClass: \"fa fa-code\"\n }), _vm._v(\"插入查询变量\\n \")]) : _vm._e()], 1) : _vm._e(), _vm._v(\" \"), (_vm.templateInfo.approving && _vm.templateInfo.type === 1) ? _c('span', {\n staticClass: \"template-approving\"\n }, [_vm._v(\"状态:\"), _c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n name: 'authority_manage'\n }\n }\n }, [_vm._v(\"待审核\")]), _vm._v(\",不可进行保存,删除等操作\")], 1) : _vm._e(), _vm._v(\" \"), (_vm.templateInfo.approving && _vm.templateInfo.type === 0) ? _c('span', {\n staticClass: \"template-approving\"\n }, [_vm._v(\"引用该宏的模板处于待审核状态,不可进行保存、删除等操作\")]) : _vm._e()], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('log-monitor', {\n attrs: {\n \"template-name\": _vm.templateInfo.templateName,\n \"index-id\": _vm.indexId,\n \"index-name\": _vm.indexName\n }\n }), _vm._v(\" \"), (!_vm.isMacroVisible && _vm.isEditOperate) ? _c('el-select', {\n staticStyle: {\n \"padding-right\": \"10px\"\n },\n attrs: {\n \"size\": \"small\",\n \"placeholder\": \"请选择要插入的宏\",\n \"clearable\": \"\"\n },\n on: {\n \"change\": _vm.insertMacro\n },\n model: {\n value: (_vm.selectedMacro),\n callback: function($$v) {\n _vm.selectedMacro = $$v\n },\n expression: \"selectedMacro\"\n }\n }, _vm._l((_vm.macroList), function(item) {\n return _c('el-option', {\n key: item.templateName,\n attrs: {\n \"label\": item.templateName,\n \"value\": item.templateName\n }\n })\n }), 1) : _vm._e(), _vm._v(\" \"), (_vm.isEditOperate && !_vm.templateInfo.approving) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleSave\n }\n }, [_vm._v(\"保存\")]) : _vm._e(), _vm._v(\" \"), (_vm.isEditOperate && !_vm.templateInfo.approving && _vm.templateInfo.type === 1) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleApprove\n }\n }, [_vm._v(\"提交\")]) : _vm._e(), _vm._v(\" \"), (_vm.isEditOperate && !_vm.templateInfo.approving) ? _c('el-button', {\n attrs: {\n \"type\": \"danger\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleDelete\n }\n }, [_vm._v(\"删除\")]) : _vm._e(), _vm._v(\" \"), (_vm.templateInfo.hisCount > 0 && _vm.isEditOperate) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleHistoryVersion\n }\n }, [_vm._v(_vm._s(_vm.historyVersionBtn))]) : _vm._e()], 1) : _vm._e()]), _vm._v(\" \"), _c('div', [_c('el-row', [_c('el-tabs', {\n on: {\n \"tab-click\": _vm.tabClick\n },\n model: {\n value: (_vm.activeTab),\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"label\": \"编辑模板\",\n \"name\": \"edit\"\n }\n }, [_c('div', {\n class: [_vm.isShowHistoryVersion ? 'template-edit-and-version-content' : 'template-edit-content'],\n style: ({\n 'height': _vm.temPanelHeight - 85\n })\n }, [_c('editor', {\n ref: \"aceEditor1\",\n attrs: {\n \"content\": _vm.templateInfo.content,\n \"editor-id\": _vm.eidtorId\n },\n on: {\n \"change-content\": _vm.changeEditContent\n }\n })], 1), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isShowHistoryVersion),\n expression: \"isShowHistoryVersion\"\n }],\n staticClass: \"template-history-version-content\"\n }, [_c('div', {\n staticStyle: {\n \"padding-left\": \"10px\"\n }\n }, [_c('el-table', {\n attrs: {\n \"data\": _vm.historyVersionList,\n \"border\": \"\",\n \"max-height\": _vm.temPanelHeight - 85\n },\n on: {\n \"row-click\": _vm.handleVersionDialog\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"修改日期\",\n \"width\": \"150px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createdTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"description\",\n \"label\": \"描述\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"creator\",\n \"label\": \"修改者\"\n }\n })], 1)], 1)])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"sql parser\",\n \"name\": \"sql\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [_c('div', {\n staticStyle: {\n \"margin\": \"5px 0 10px\"\n }\n }, [_c('span', [_vm._v(\"数据源:\")]), _vm._v(\" \"), _c('el-select', {\n staticStyle: {\n \"width\": \"39%\"\n },\n attrs: {\n \"size\": \"medium\",\n \"placeholder\": \"请选择数据源\"\n },\n on: {\n \"change\": _vm.initSql\n },\n model: {\n value: (_vm.datasourceId),\n callback: function($$v) {\n _vm.datasourceId = $$v\n },\n expression: \"datasourceId\"\n }\n }, _vm._l((Object.entries(_vm.datasourceList)), function(item) {\n return _c('el-option', {\n key: item[0],\n attrs: {\n \"label\": item[1],\n \"value\": item[0]\n }\n })\n }), 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('div', {\n style: ({\n 'height': _vm.temPanelHeight - 135\n })\n }, [_c('editor', {\n ref: \"sqlEditor\",\n attrs: {\n \"content\": _vm.sql,\n \"mode\": \"sql\",\n \"editor-id\": \"sqlEditor\"\n },\n on: {\n \"change-content\": _vm.changeSqlContent\n }\n })], 1)]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_c('div', {\n style: ({\n 'margin-top': (_vm.temPanelHeight - 240) / 2\n }),\n attrs: {\n \"align\": \"center\"\n }\n }, [_c('div', [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"size\": \"small\",\n \"title\": \"结果仅供参考,需进一步加工\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleExplain\n }\n }, [_vm._v(\"转 DSL\")])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"5px\"\n }\n }, [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"title\": \"谨慎执行,别跑挂DB了\",\n \"disabled\": !_vm.isAllPrivilege,\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleExecute\n }\n }, [_vm._v(\"查询DB\")])], 1)])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('div', {\n style: ({\n 'height': _vm.temPanelHeight - 135\n })\n }, [_c('editor', {\n ref: \"sqlEditorResult\",\n attrs: {\n \"content\": _vm.explainContent,\n \"readonly\": true,\n \"editor-id\": \"sqlEditorResult\"\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"调试\",\n \"name\": \"debug\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [(_vm.clusters.length > 1) ? _c('div', {\n staticClass: \"render-cluster\"\n }, [_c('span', [_vm._v(\"指定集群:\")]), _vm._v(\" \"), _c('el-select', {\n staticStyle: {\n \"margin-left\": \"10px\"\n },\n attrs: {\n \"size\": \"small\",\n \"placeholder\": \"请选择集群\"\n },\n model: {\n value: (_vm.clusterId),\n callback: function($$v) {\n _vm.clusterId = $$v\n },\n expression: \"clusterId\"\n }\n }, _vm._l((_vm.clusters), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.id\n }\n })\n }), 1)], 1) : _vm._e(), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('div', {\n staticClass: \"debug-title pull-left\"\n }, [_c('div', {\n staticClass: \"pull-left\",\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(\"参数\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleResetParams\n }\n }, [_vm._v(\"重置参数\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleFormatParams\n }\n }, [_vm._v(\"格式化参数\")])], 1)]), _vm._v(\" \"), _c('div', {\n style: ({\n 'height': _vm.temPanelHeight - 120\n })\n }, [_c('editor', {\n ref: \"aceEditor2\",\n attrs: {\n \"content\": _vm.templateInfo.params,\n \"editor-id\": _vm.debugId\n },\n on: {\n \"change-content\": _vm.changeDebugContent\n }\n })], 1)]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_c('div', {\n style: ({\n 'margin-top': (_vm.temPanelHeight - 240) / 2\n }),\n attrs: {\n \"align\": \"center\"\n }\n }, [_c('div', [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"size\": \"mini\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleRender\n }\n }, [_vm._v(\"渲染DSL\")])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"10px\"\n }\n }, [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"size\": \"mini\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleDebug\n }\n }, [_vm._v(\"执行查询\")])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"10px\"\n }\n }, [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"size\": \"mini\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.queryProfile\n }\n }, [_vm._v(\"慢查询分析\")])], 1)])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('div', [_c('div', {\n staticClass: \"debug-title\"\n }, [_c('span', [_vm._v(\"结果\")]), _vm._v(\" \"), (!_vm.isProfileVisible) ? _c('el-button', {\n directives: [{\n name: \"clipboard\",\n rawName: \"v-clipboard:copy\",\n value: (_vm.resultContent),\n expression: \"resultContent\",\n arg: \"copy\"\n }, {\n name: \"clipboard\",\n rawName: \"v-clipboard:success\",\n value: (_vm.copySuccess),\n expression: \"copySuccess\",\n arg: \"success\"\n }, {\n name: \"clipboard\",\n rawName: \"v-clipboard:error\",\n value: (_vm.copyError),\n expression: \"copyError\",\n arg: \"error\"\n }],\n staticClass: \"pull-right\",\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n }\n }, [_vm._v(\"复制内容\\n \")]) : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n style: ({\n 'height': _vm.temPanelHeight - 120\n })\n }, [(!_vm.isProfileVisible) ? _c('editor', {\n ref: \"debugResultEditor\",\n attrs: {\n \"content\": _vm.resultContent,\n \"readonly\": true,\n \"editor-id\": \"debugResult\"\n }\n }) : _c('profile-content', {\n attrs: {\n \"profile-data\": _vm.profileData\n }\n })], 1)])])], 1), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"API\",\n \"name\": \"api\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [_c('div', {\n staticClass: \"api-content\",\n style: ({\n 'height': _vm.temPanelHeight - 95\n })\n }, [_c('el-scrollbar', [_vm._v(\"\\n RestClient示例:\\n \"), _c('br'), _vm._v(\" \"), _c('pre', [_vm._v(_vm._s(_vm.apiContent.rest_client))]), _vm._v(\" \"), _c('br'), _vm._v(\" \"), _c('pre', [_vm._v(_vm._s((\"POST: \" + (_vm.apiContent.path))))]), _vm._v(\" \"), _c('pre', [_vm._v(_vm._s(_vm.apiContent.content))])])], 1)]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"性能测试\",\n \"name\": \"test\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [_c('template-test', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-name\": _vm.templateInfo.templateName,\n \"params-info\": _vm.paramsInfo,\n \"tem-panel-height\": _vm.temPanelHeight\n }\n })], 1), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"超时重试\",\n \"name\": \"timeoutRetry\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [_c('service-governance', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-info\": _vm.templateInfo\n }\n })], 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), (_vm.isVersionContentVisible) ? _c('div', [_c('json-diff', {\n attrs: {\n \"is-overwrite\": true,\n \"json-diff-info\": _vm.versionDiffInfo\n },\n on: {\n \"overwrite-operate\": _vm.overwriteVersion,\n \"close-dialog\": _vm.closeVersionContentDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isEditSaveVisible) ? _c('div', [_c('template-save-edit-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-info\": _vm.templateInfo\n },\n on: {\n \"close-edit-save-dialog\": _vm.closeEditSaveDialog,\n \"edit-save-success\": _vm.editSaveSuccess\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isTemplateConfigVisible) ? _c('div', [_c('template-config-dialog', {\n attrs: {\n \"metadata-list\": _vm.metadataList\n },\n on: {\n \"cover-content\": _vm.coverConfigTemplate,\n \"close-dialog\": _vm.closeTemplateConfigDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isTemplateInsertVisible) ? _c('div', [_c('template-insert-dialog', {\n attrs: {\n \"metadata-list\": _vm.metadataList\n },\n on: {\n \"insert-template-content\": _vm.insertTemplateContent,\n \"close-dialog\": _vm.closeTemplateInsertDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1474 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.targetGroupInfoTitle,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"targetGroupInfo\",\n attrs: {\n \"model\": _vm.targetGroupInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"130px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"节点集名称\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.targetGroupInfo.name),\n callback: function($$v) {\n _vm.$set(_vm.targetGroupInfo, \"name\", $$v)\n },\n expression: \"targetGroupInfo.name\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1475 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(\"ES集群路由配置\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.clusterId))])], 1)], 1), _vm._v(\" \"), (_vm.privilege) ? _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"创建规则\")])], 1)]) : _vm._e(), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.rulesList,\n \"stripe\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"规则名称\",\n \"prop\": \"name\",\n \"header-align\": \"center\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"规则关系\",\n \"prop\": \"conditionRelation\",\n \"header-align\": \"center\",\n \"width\": \"80px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断表达式\",\n \"header-align\": \"center\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"判断参数名\",\n \"min-width\": \"150\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.paramName,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.paramName))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断运算\",\n \"min-width\": \"70\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.exprOp,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.exprOp))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断值\",\n \"min-width\": \"140\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.paramValue,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.paramValue))])\n })\n }\n }])\n })], 1), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"节点集\",\n \"min-width\": \"150\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.targetGroups), function(item) {\n return _c('div', {\n key: item.id,\n staticClass: \"route-tag\"\n }, [_c('el-tag', {\n staticClass: \"target-group-item\",\n attrs: {\n \"type\": \"warning\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm.routingTargetGroupsList[item.id].name))]), _vm._v(\" \"), (scope.row.targetGroups.length > 1) ? _c('span', {\n staticClass: \"route-weight\"\n }, [_vm._v(_vm._s(item.weight))]) : _vm._e()])], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用\",\n \"header-align\": \"center\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.enable ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateEnable\")(scope.row.enable)))])]\n }\n }])\n }), _vm._v(\" \"), (_vm.privilege) ? _c('el-table-column', {\n attrs: {\n \"label\": \"路由管理\",\n \"width\": \"80px\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-edit\"\n })])], 1), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row, scope.$index)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1)]\n }\n }], null, false, 2969598020)\n }) : _vm._e()], 1), _vm._v(\" \"), _c('target-group', {\n attrs: {\n \"privilege\": _vm.privilege,\n \"cluster-id\": _vm.clusterId,\n \"rules-list\": _vm.rulesList,\n \"routing-target-groups-list\": _vm.routingTargetGroupsList\n },\n on: {\n \"get-routing-list\": _vm.getRoutingList\n }\n }), _vm._v(\" \"), (_vm.isConditionInfoVisible) ? _c('div', [_c('condition-info-dialog', {\n attrs: {\n \"routing-target-groups\": _vm.routingTargetGroups,\n \"conditions\": JSON.parse(JSON.stringify(_vm.conditions)),\n \"condition-info\": _vm.conditionInfo,\n \"condition-info-title\": _vm.conditionInfoTitle,\n \"condition-operation\": _vm.conditionOperation\n },\n on: {\n \"add-condition\": _vm.addCondition,\n \"edit-condition\": _vm.editCondition,\n \"close-dialog\": _vm.closeConditionDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1476 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"schema-info-dialog\"\n }, [_c('el-dialog', {\n attrs: {\n \"title\": _vm.childTitle,\n \"size\": \"large\",\n \"show-close\": false,\n \"close-on-click-modal\": false,\n \"close-on-press-escape\": false\n },\n on: {\n \"open\": _vm.openDialog\n },\n model: {\n value: (_vm.isSchemaChildVisible),\n callback: function($$v) {\n _vm.isSchemaChildVisible = $$v\n },\n expression: \"isSchemaChildVisible\"\n }\n }, [_c('div', {\n staticClass: \"schema-content\"\n }, [(!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增字段\")]) : _vm._e(), _vm._v(\" \"), (_vm.childInfo.length > 0) ? _c('span', {\n staticStyle: {\n \"color\": \"#fff\",\n \"margin-left\": \"5px\"\n }\n }, [_vm._v(\"Dynamic: \"), _c('el-switch', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.initDynamic),\n callback: function($$v) {\n _vm.initDynamic = $$v\n },\n expression: \"initDynamic\"\n }\n })], 1) : _vm._e()], 1), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.childInfo,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"字段名\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input', {\n staticClass: \"nested-input\",\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.fieldName),\n callback: function($$v) {\n _vm.$set(scope.row, \"fieldName\", $$v)\n },\n expression: \"scope.row.fieldName\"\n }\n }), _vm._v(\" \"), (_vm.checkArrayNotEmpty(scope.row.copyTo)) ? _c('el-tag', {\n attrs: {\n \"type\": \"success\"\n }\n }, [_vm._v(\"copy to: \" + _vm._s(scope.row.copyTo))]) : _vm._e(), _vm._v(\" \"), (scope.row.multiField.length !== 0) ? _c('el-button', {\n attrs: {\n \"type\": \"warning\"\n },\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaMultiFields(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa\"\n }), _vm._v(\"subFields\")]) : _vm._e()]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"ES类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.fieldType),\n expression: \"scope.row.fieldType\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"fieldType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, _vm._l((_vm.fieldTypes), function(item) {\n return _c('option', {\n key: item.value,\n domProps: {\n \"value\": item.value\n }\n }, [_vm._v(_vm._s(item.label))])\n }), 0)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"多值/单值\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.multi),\n expression: \"scope.row.multi\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"multi\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"label\": \"单值\"\n },\n domProps: {\n \"value\": false\n }\n }, [_vm._v(\"单值\")]), _vm._v(\" \"), _c('option', {\n attrs: {\n \"label\": \"多值\"\n },\n domProps: {\n \"value\": true\n }\n }, [_vm._v(\"多值\")])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"查询关键字\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.search),\n callback: function($$v) {\n _vm.$set(scope.row, \"search\", $$v)\n },\n expression: \"scope.row.search\"\n }\n }, [_vm._v(\"是否查询\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"排序或聚合\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.docValue),\n callback: function($$v) {\n _vm.$set(scope.row, \"docValue\", $$v)\n },\n expression: \"scope.row.docValue\"\n }\n }, [_vm._v(\"用于排序或聚合\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用store\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.store),\n callback: function($$v) {\n _vm.$set(scope.row, \"store\", $$v)\n },\n expression: \"scope.row.store\"\n }\n }, [_vm._v(\"启用store\")])]\n }\n }])\n }), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"min-width\": \"60\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [_c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"删除\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaMultiFields(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加subFields\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaCopyTo(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加copyTo\")])])])], 1)], 1)]\n }\n }], null, false, 2842098709)\n }) : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.cancelBtn()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.confirmBtn()\n }\n }\n }, [_vm._v(\"确定\")]) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('schema-multi-field-dialog', {\n attrs: {\n \"is-schema-multi-fields-visible\": _vm.isSchemaMultiFieldsVisible,\n \"schema-multi-fields-info\": _vm.schemaExtInfo,\n \"version-operation\": _vm.versionOperation,\n \"schema-parent-field-name\": _vm.schemaParentFieldName\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaMultiFieldsDialog,\n \"add-schema-multi-field\": _vm.addSchemaMultiFields\n }\n }), _vm._v(\" \"), _c('schema-copy-to-dialog', {\n attrs: {\n \"is-copy-to-fields-visible\": _vm.isCopyToFieldsVisible,\n \"schema-copy-to-info\": _vm.schemaExtInfo,\n \"copy-to-list\": _vm.validCopyToFields,\n \"schema-parent-field-name\": _vm.schemaParentFieldName\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaCopyToDialog,\n \"add-schema-copy-to\": _vm.addSchemaCopyTo\n }\n })], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1477 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.tokenInfoTitle,\n \"visible\": _vm.isVisible,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"update:visible\": function($event) {\n _vm.isVisible = $event\n }\n }\n }, [_c('el-form', {\n ref: \"tokenInfo\",\n attrs: {\n \"model\": _vm.tokenInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"80px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 16\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"token\",\n \"prop\": \"clientToken\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.tokenInfo.clientToken),\n callback: function($$v) {\n _vm.$set(_vm.tokenInfo, \"clientToken\", $$v)\n },\n expression: \"tokenInfo.clientToken\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 6\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\",\n \"prop\": \"clientToken\",\n \"label-width\": \"10px\"\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.reGenerate\n }\n }, [_vm._v(\"重新生成\")]), _vm._v(\" \"), _c('el-popover', {\n attrs: {\n \"placement\": \"right\",\n \"trigger\": \"hover\",\n \"content\": \"Token的使用需在Pallas Rest Client发起Pallas Search查询时传入,重新生成后需点击更新按钮保存\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-info-circle\",\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n })])], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"标题\",\n \"prop\": \"title\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.tokenInfo.title),\n callback: function($$v) {\n _vm.$set(_vm.tokenInfo, \"title\", $$v)\n },\n expression: \"tokenInfo.title\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"启用状态\",\n \"prop\": \"enabled\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n model: {\n value: (_vm.tokenInfo.enabled),\n callback: function($$v) {\n _vm.$set(_vm.tokenInfo, \"enabled\", $$v)\n },\n expression: \"tokenInfo.enabled\"\n }\n }), _vm._v(\" \"), _c('el-popover', {\n attrs: {\n \"placement\": \"right\",\n \"trigger\": \"hover\",\n \"content\": \"如果禁用,客户端就直连es,不经过pallas search\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-info-circle\",\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n })])], 1)])], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1478 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('el-form', {\n ref: \"dataSource\",\n attrs: {\n \"model\": _vm.dataSource,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"数据库地址\",\n \"prop\": \"ip\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请输入ip或域名\"\n },\n model: {\n value: (_vm.dataSource.ip),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"ip\", $$v)\n },\n expression: \"dataSource.ip\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"数据库PORT\",\n \"prop\": \"port\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.dataSource.port),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"port\", $$v)\n },\n expression: \"dataSource.port\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"数据库表\",\n \"prop\": \"tableName\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.dataSource.tableName),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"tableName\", $$v)\n },\n expression: \"dataSource.tableName\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"数据库名\",\n \"prop\": \"dbname\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.dataSource.dbname),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"dbname\", $$v)\n },\n expression: \"dataSource.dbname\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"用户名\",\n \"prop\": \"username\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.dataSource.username),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"username\", $$v)\n },\n expression: \"dataSource.username\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"密码\",\n \"prop\": \"password\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"password\"\n },\n model: {\n value: (_vm.dataSource.password),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"password\", $$v)\n },\n expression: \"dataSource.password\"\n }\n })], 1)], 1)], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1479 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-scrollbar', [_c('div', {\n staticClass: \"profile-template\"\n }, [_c('el-collapse', _vm._l((_vm.profileData.profile.shards), function(item) {\n return _c('el-collapse-item', {\n key: item.id,\n attrs: {\n \"name\": item.id\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('span', {\n staticStyle: {\n \"font-weight\": \"bold\",\n \"font-size\": \"14px\"\n }\n }, [_vm._v(_vm._s(item.id.replace(/(\\[.*\\])(\\[.*\\])(\\[.*\\])/g, \"$1$3\")))]), _vm._v(\" \"), _c('span', {\n staticClass: \"pull-right\",\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.totalTime) + \"ms\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"profile-tree\"\n }, [_c('div', {\n staticClass: \"profile-tree-th\"\n }, [_c('span', {\n staticStyle: {\n \"margin-left\": \"20px\"\n }\n }, [_vm._v(\"Type and description\")]), _vm._v(\" \"), _c('span', {\n staticClass: \"pull-right\",\n staticStyle: {\n \"margin-right\": \"20px\"\n }\n }, [_vm._v(\"Time\")])]), _vm._v(\" \"), _c('el-tree', {\n attrs: {\n \"data\": item.searches[0].query,\n \"props\": _vm.defaultProps,\n \"render-content\": _vm.renderContent\n }\n })], 1)], 2)\n }), 1)], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1480 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"index-info\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.indexInfoTitle,\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isIndexInfoVisible),\n callback: function($$v) {\n _vm.isIndexInfoVisible = $$v\n },\n expression: \"isIndexInfoVisible\"\n }\n }, [_c('el-form', {\n ref: \"indexInfo\",\n attrs: {\n \"model\": _vm.indexInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"135px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"indexName\",\n \"label\": \"索引名\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.indexInfo.indexName),\n callback: function($$v) {\n _vm.$set(_vm.indexInfo, \"indexName\", $$v)\n },\n expression: \"indexInfo.indexName\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属集群\",\n \"prop\": \"clusterId\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"clearable\": \"\"\n },\n model: {\n value: (_vm.indexInfo.clusterId),\n callback: function($$v) {\n _vm.$set(_vm.indexInfo, \"clusterId\", $$v)\n },\n expression: \"indexInfo.clusterId\"\n }\n }, _vm._l((_vm.clusters), function(cluster) {\n return _c('el-option-group', {\n key: cluster.label,\n attrs: {\n \"label\": cluster.label\n }\n }, _vm._l((cluster.options), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.clusterId\n }\n })\n }), 1)\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 21\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"description\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.indexInfo.description),\n callback: function($$v) {\n _vm.$set(_vm.indexInfo, \"description\", $$v)\n },\n expression: \"indexInfo.description\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('index-data-sources', {\n ref: \"dataSources\",\n attrs: {\n \"data-sources\": _vm.indexInfo.dataSourceList,\n \"index-operation\": _vm.indexOperation,\n \"show-import-object\": _vm.showImportObject,\n \"index-id\": _vm.indexInfo.indexId\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitIndexInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1), _vm._v(\" \"), (_vm.showImportObject.show) ? _c('div', [_c('datasource-import-dialog', {\n on: {\n \"ds-import-success\": _vm.dsImportSuccess,\n \"close-ds-import-dialog\": _vm.closeDsImportDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1481 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(\"ES集群重启\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.clusterId))])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n on: {\n \"click\": _vm.resetClusterSettings\n }\n }, [_c('i', {\n staticClass: \"fa fa-repeat\"\n }), _vm._v(\"恢复集群默认设置\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n on: {\n \"click\": _vm.init\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"刷新集群信息\")])], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"cluster_restart_setting\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 6\n }\n }, _vm._l((_vm.clusterSettingsArray), function(item, index) {\n return _c('el-col', {\n key: index,\n attrs: {\n \"span\": 6\n }\n }, [_c('Panel', {\n attrs: {\n \"type\": _vm.clusterStateTag[_vm.clusterHealth]\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_vm._v(_vm._s(item.key))]), _vm._v(\" \"), _c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.key === 'index.blocks.write') ? _c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"right\"\n }\n }, [(item.value !== '') ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, _vm._l((_vm.$array.strToArray(item.value)), function(item1, index) {\n return _c('el-col', {\n key: index,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1)], 1) : _c('div', [_vm._v(\"暂无数据\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"slot\": \"reference\",\n \"type\": \"text\"\n },\n slot: \"reference\"\n }, [_vm._v(\"查看\")])], 1) : _c('div', [_vm._v(_vm._s(item.value || '-'))])], 1)])], 1)\n }), 1)], 1), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.nodeRestartList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"nodeName\",\n \"label\": \"节点名称\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"nodeIp\",\n \"label\": \"节点IP\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"indices\",\n \"label\": \"分片分布\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"right\",\n \"disabled\": scope.row.indices === ''\n }\n }, [(scope.row.indices) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, _vm._l((_vm.$array.strToArray(scope.row.indices)), function(item, index) {\n return _c('el-col', {\n key: index,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item))])\n }), 1)], 1) : _c('div', [_vm._v(\"暂无分片\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"slot\": \"reference\",\n \"type\": \"text\",\n \"size\": \"small\"\n },\n slot: \"reference\"\n }, [_c('i', {\n staticClass: \"fa fa-file-o\"\n })])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"nodeState\",\n \"label\": \"节点状态\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": _vm.noteStateTag[scope.row.nodeState]\n }\n }, [_vm._v(_vm._s(_vm.noteStateMap[scope.row.nodeState]))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"nodeTime\",\n \"label\": \"状态时间\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.nodeTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"lastStartupTime\",\n \"label\": \"最近启动时间\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.isNew) ? _c('span', {\n staticClass: \"text-danger\"\n }, [_vm._v(\"新 \")]) : _vm._e(), _vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.lastStartupTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"onlyMaster\",\n \"label\": \"OnlyMaster\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.onlyMaster ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm.onlyMasterMap[scope.row.onlyMaster]))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"success\",\n \"disabled\": !scope.row.healthy || _vm.isEnableRestart !== 'could_be_restart'\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRestart(scope.row)\n }\n }\n }, [_vm._v(\"重启\")])]\n }\n }])\n })], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1482 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticStyle: {\n \"width\": \"100%\",\n \"height\": \"200px\"\n },\n attrs: {\n \"id\": _vm.id\n }\n })])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1483 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.templateImportTitle,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isTemplateImportVisible),\n callback: function($$v) {\n _vm.isTemplateImportVisible = $$v\n },\n expression: \"isTemplateImportVisible\"\n }\n }, [_c('div', {\n staticStyle: {\n \"margin\": \"20px 15px\"\n }\n }, [_c('el-radio', {\n attrs: {\n \"label\": \"localUpload\"\n },\n model: {\n value: (_vm.importWay),\n callback: function($$v) {\n _vm.importWay = $$v\n },\n expression: \"importWay\"\n }\n }, [_vm._v(\"本地上传\")]), _vm._v(\" \"), _c('el-radio', {\n attrs: {\n \"label\": \"otherIndexTemp\"\n },\n model: {\n value: (_vm.importWay),\n callback: function($$v) {\n _vm.importWay = $$v\n },\n expression: \"importWay\"\n }\n }, [_vm._v(\"导入其他索引模板\")])], 1), _vm._v(\" \"), (_vm.importWay === 'localUpload') ? _c('el-form', {\n ref: \"importInfo\",\n attrs: {\n \"model\": _vm.importInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"90px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('div', {\n staticClass: \"template-import-upload\"\n }, [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": _vm.templateImportUrl,\n \"auto-upload\": false,\n \"data\": _vm.importInfo,\n \"multiple\": false,\n \"file-list\": _vm.fileList,\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"点击上传\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"el-upload__tip\",\n attrs: {\n \"slot\": \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(\"请上传zip文件,且不超过10Mb\")])], 1)], 1)])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"变更描述\",\n \"prop\": \"updateDesc\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.importInfo.updateDesc),\n callback: function($$v) {\n _vm.$set(_vm.importInfo, \"updateDesc\", $$v)\n },\n expression: \"importInfo.updateDesc\"\n }\n })], 1)], 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), (_vm.importWay === 'otherIndexTemp') ? _c('div', {\n staticStyle: {\n \"margin\": \"15px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\",\n \"margin-bottom\": \"10px\"\n },\n attrs: {\n \"filterable\": \"\",\n \"placeholder\": \"请选择索引\"\n },\n on: {\n \"change\": _vm.indexChange\n },\n model: {\n value: (_vm.indexSelected),\n callback: function($$v) {\n _vm.indexSelected = $$v\n },\n expression: \"indexSelected\"\n }\n }, _vm._l((_vm.indexAllList), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.indexName,\n \"value\": item.id\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.indexName))]), _vm._v(\" \"), _c('span', {\n staticStyle: {\n \"float\": \"right\",\n \"color\": \"#B8B8B8\",\n \"font-size\": \"13px\"\n }\n }, [_vm._v(_vm._s(item.clusterName))])])\n }), 1), _vm._v(\" \"), _c('el-transfer', {\n attrs: {\n \"filterable\": \"\",\n \"data\": _vm.importTemplateList,\n \"props\": {\n key: 'id',\n label: 'templateName'\n },\n \"titles\": ['可选模板', '已选模板']\n },\n model: {\n value: (_vm.templateSelected),\n callback: function($$v) {\n _vm.templateSelected = $$v\n },\n expression: \"templateSelected\"\n }\n })], 1) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.submitImportTemplate\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1484 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"monitor-top\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.gaugeMetricData,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"nodeCount\",\n \"label\": \"Nodes\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"indexCount\",\n \"label\": \"Indices\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Memory\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.used_memory_byte)) + \" / \" + _vm._s(_vm.bytesToSize(scope.row.total_memory_byte)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"totalShardCount\",\n \"label\": \"Total Shards\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"unassignedShardCount\",\n \"label\": \"Unassigned Shards\",\n \"width\": \"150px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"documentCount\",\n \"label\": \"Documents\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Data\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"max_uptime\",\n \"label\": \"Uptime\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"version\",\n \"label\": \"Version\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"health\",\n \"label\": \"Health\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Indexing Rate(\" + (_vm.indexingRateInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexingRate\",\n \"option-info\": _vm.indexingRateInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Search Rate(\" + (_vm.searchRateInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"searchRate\",\n \"option-info\": _vm.searchRateInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Indexing Latentcy(\" + (_vm.indexingLatencyInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexingLatency\",\n \"option-info\": _vm.indexingLatencyInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Search Latentcy(\" + (_vm.searchLatencyInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"searchLatency\",\n \"option-info\": _vm.searchLatencyInfo\n }\n })], 1)])], 1)], 1)], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1485 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-container\"\n }, [_c('Navbar'), _vm._v(\" \"), _c('router-view'), _vm._v(\" \"), _c('Version-footer')], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1486 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"token-detail\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-row', {\n staticClass: \"mrg-top-15\",\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('div', [_c('div', {\n staticClass: \"token-title\"\n }, [_vm._v(\"\\n 当前选择Token : \"), _c('span', {\n staticClass: \"token-name-span\"\n }, [_vm._v(_vm._s(_vm.tokenInfo.title))]), _c('br')])]), _vm._v(\" \"), _c('div', {\n staticClass: \"token-cluster\"\n }, [_c('div', {\n staticClass: \"mrg-top-15\"\n }, [_c('span', {\n staticClass: \"title-span\"\n }, [_vm._v(\"集群列表\"), _c('small', {\n staticStyle: {\n \"color\": \"gray\"\n }\n }, [_vm._v(\"(一个token只能绑定一个集群)\")])]), _vm._v(\" \"), _c('el-tree', {\n staticClass: \"token-cluster-tree\",\n style: (_vm.clusterTokenHeight),\n attrs: {\n \"data\": _vm.clusterList,\n \"render-content\": _vm.renderCluster,\n \"highlight-current\": \"\",\n \"node-key\": \"id\"\n },\n on: {\n \"node-click\": _vm.handleNodeClick\n }\n })], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"token-pool\"\n }, [_c('div', {\n staticClass: \"mrg-top-15\"\n }, [_c('span', {\n staticClass: \"title-span\"\n }, [_vm._v(\"代理集群节点集\"), _c('small', {\n staticStyle: {\n \"color\": \"gray\"\n }\n }, [_vm._v(\"(默认为整个集群,不可取消)\")])]), _vm._v(\" \"), _c('el-tree', {\n ref: \"psPoolTree\",\n staticClass: \"token-cluster-tree\",\n style: (_vm.clusterPoolHeight),\n attrs: {\n \"data\": _vm.psClusterList,\n \"render-content\": _vm.renderPsCluster,\n \"show-checkbox\": \"\",\n \"highlight-current\": \"\",\n \"default-expand-all\": \"\",\n \"check-strictly\": \"\",\n \"default-checked-keys\": _vm.tokenClusterInfo.checkedPools,\n \"node-key\": \"id\"\n },\n on: {\n \"check-change\": _vm.handlePsNodeClick\n }\n })], 1)])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 14\n }\n }, [_c('token-index', {\n attrs: {\n \"token-cluster-info\": _vm.tokenClusterInfo,\n \"cluster-tree-height\": _vm.clusterIndexHeight\n },\n on: {\n \"update-token-cluster\": _vm.updateTokenCluster\n }\n })], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1487 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('li', [_c('div', {\n staticClass: \"tm-info\"\n }, [_c('div', {\n staticClass: \"tm-item\"\n }, [_vm._t(\"title\")], 2), _vm._v(\" \"), _vm._m(0), _vm._v(\" \"), _c('time', {\n staticClass: \"tm-datetime\"\n }, [_vm._t(\"date\")], 2)]), _vm._v(\" \"), _c('div', {\n staticClass: \"tm-box\"\n }, [_vm._t(\"content\")], 2)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"tm-icon\"\n }, [_c('i', {\n staticClass: \"el-icon-time\"\n })])\n}]}\n\n/***/ }),\n/* 1488 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'permission_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"权限管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"page-tab\"\n }, [_c('el-tabs', {\n on: {\n \"tab-click\": _vm.onTabClick\n },\n model: {\n value: (_vm.activeTab),\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"name\": \"user_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-user\"\n }), _vm._v(\"用户管理\")])])], 1), _vm._v(\" \"), _c('router-view')], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1489 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.pluginInfoTitle,\n \"visible\": _vm.isVisible,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"update:visible\": function($event) {\n _vm.isVisible = $event\n }\n }\n }, [_c('el-form', {\n ref: \"pluginInfo\",\n attrs: {\n \"model\": _vm.pluginInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('div', [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"插件名称\",\n \"prop\": \"pluginName\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.pluginInfo.pluginName),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"pluginName\", $$v)\n },\n expression: \"pluginInfo.pluginName\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"所属集群\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.pluginInfo.clusterId),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"clusterId\", $$v)\n },\n expression: \"pluginInfo.clusterId\"\n }\n }, _vm._l((_vm.clusters), function(item) {\n return _c('el-option', {\n key: item.clusterId,\n attrs: {\n \"label\": item.description,\n \"value\": item.clusterId\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"插件版本\",\n \"prop\": \"pluginVersion\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.pluginInfo.pluginVersion),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"pluginVersion\", $$v)\n },\n expression: \"pluginInfo.pluginVersion\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"插件类型\",\n \"prop\": \"pluginType\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.pluginInfo.pluginType),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"pluginType\", $$v)\n },\n expression: \"pluginInfo.pluginType\"\n }\n }, _vm._l((_vm.$option.pluginTypes), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"路径\",\n \"prop\": \"packagePath\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请上传插件包,获取包路径\",\n \"disabled\": true\n },\n model: {\n value: (_vm.pluginInfo.packagePath),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"packagePath\", $$v)\n },\n expression: \"pluginInfo.packagePath\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"变更描述\",\n \"prop\": \"note\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.pluginInfo.note),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"note\", $$v)\n },\n expression: \"pluginInfo.note\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"plugin-upload-warning\"\n }, [_vm._v(\"对于ES原生插件,需要通过\\\"ES集群管理\\\"->\\\"重启\\\"重启全部节点后才生效\")]), _vm._v(\" \"), (!_vm.enableUpload) ? _c('div', {\n staticClass: \"plugin-upload-warning\"\n }, [_vm._v(\"*上传插件包前,请先输入插件名称,所属集群以及插件版本\")]) : _c('div', {\n staticClass: \"plugin-upload\"\n }, [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": \"/pallas/plugin/upgrade/fileUpload.json\",\n \"data\": _vm.uploadData,\n \"auto-upload\": true,\n \"multiple\": false,\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\",\n \"icon\": \"upload\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"上传插件zip包\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"el-upload__tip\",\n attrs: {\n \"slot\": \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(\"请先上传插件zip文件,获取包路径\")])], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSubmit()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1490 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"version-info-dialog\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"索引预热\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.visible),\n callback: function($$v) {\n _vm.visible = $$v\n },\n expression: \"visible\"\n }\n }, [_c('el-form', {\n ref: \"formInfo\",\n attrs: {\n \"model\": _vm.formInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"100px\"\n }\n }, [_c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"最近预热情况\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('div', {\n staticStyle: {\n \"margin-bottom\": \"10px\"\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\"\n },\n on: {\n \"click\": function($event) {\n return _vm.init()\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"刷新\")]), _vm._v(\" \"), (_vm.rampupInfo.state === 'doing') ? _c('el-button', {\n attrs: {\n \"size\": \"small\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleStop()\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-stop-circle\"\n }), _vm._v(\"停止\")]) : _vm._e(), _vm._v(\" \"), _c('preheading-monitor', {\n attrs: {\n \"cluster-name\": _vm.rampupInfo.clusterName,\n \"full-index-name\": _vm.rampupInfo.fullIndexName\n }\n })], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"总预热条数:\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm.rampupInfo.rampupNow))])])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"当前状态:\"\n }\n }, [_c('span', {\n class: _vm.rampupStatusTypeMap[_vm.rampupInfo.state]\n }, [_vm._v(_vm._s(_vm.rampupStatusMap[_vm.rampupInfo.state]))])])], 1)], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"开始时间:\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(_vm.rampupInfo.beginTime)))])])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"结束时间:\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(_vm.rampupInfo.endTime)))])])], 1)], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采样率:\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm.rampupInfo.sampleRate))])])], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"开始预热\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"预热条数\",\n \"prop\": \"rampupTarget\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.rampupInfo.state === 'doing'\n },\n model: {\n value: (_vm.formInfo.rampupTarget),\n callback: function($$v) {\n _vm.$set(_vm.formInfo, \"rampupTarget\", _vm._n($$v))\n },\n expression: \"formInfo.rampupTarget\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"截止时间\",\n \"prop\": \"endTime\"\n }\n }, [_c('el-date-picker', {\n attrs: {\n \"clearable\": \"\",\n \"disabled\": _vm.rampupInfo.state === 'doing',\n \"type\": \"datetime\",\n \"placeholder\": \"选择日期时间\"\n },\n model: {\n value: (_vm.formInfo.endTime),\n callback: function($$v) {\n _vm.$set(_vm.formInfo, \"endTime\", $$v)\n },\n expression: \"formInfo.endTime\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', {\n staticStyle: {\n \"padding-top\": \"10px\"\n },\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采样率\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"min\": 1,\n \"max\": 100\n },\n model: {\n value: (_vm.formInfo.sampleRate),\n callback: function($$v) {\n _vm.$set(_vm.formInfo, \"sampleRate\", $$v)\n },\n expression: \"formInfo.sampleRate\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"20px\",\n \"text-align\": \"center\"\n }\n }, [(_vm.rampupInfo.state !== 'doing') ? _c('el-button', {\n attrs: {\n \"disabled\": _vm.preheadingInfo.isUsed,\n \"size\": \"small\",\n \"title\": _vm.preheadingInfo.isUsed ? '该版本已启用' : ''\n },\n on: {\n \"click\": function($event) {\n return _vm.startRampup()\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-caret-square-o-right\"\n }), _vm._v(\"开始预热\")]) : _vm._e()], 1)], 1)])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1491 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"schema-info-dialog\"\n }, [_c('el-dialog', {\n attrs: {\n \"title\": _vm.childTitle,\n \"size\": \"large\",\n \"show-close\": false,\n \"close-on-click-modal\": false,\n \"close-on-press-escape\": false\n },\n on: {\n \"open\": _vm.openDialog\n },\n model: {\n value: (_vm.isSchemaMultiFieldsVisible),\n callback: function($$v) {\n _vm.isSchemaMultiFieldsVisible = $$v\n },\n expression: \"isSchemaMultiFieldsVisible\"\n }\n }, [_c('div', {\n staticClass: \"schema-content\"\n }, [(!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增字段\")]) : _vm._e()], 1), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.multiFieldInfo,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"字段名\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.fieldName),\n callback: function($$v) {\n _vm.$set(scope.row, \"fieldName\", $$v)\n },\n expression: \"scope.row.fieldName\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"ES类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.fieldType),\n expression: \"scope.row.fieldType\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"fieldType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, _vm._l((_vm.fieldTypes), function(item) {\n return _c('option', {\n key: item.value,\n domProps: {\n \"value\": item.value\n }\n }, [_vm._v(_vm._s(item.label))])\n }), 0)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"多值/单值\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.multi),\n expression: \"scope.row.multi\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"multi\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"label\": \"单值\"\n },\n domProps: {\n \"value\": false\n }\n }, [_vm._v(\"单值\")]), _vm._v(\" \"), _c('option', {\n attrs: {\n \"label\": \"多值\"\n },\n domProps: {\n \"value\": true\n }\n }, [_vm._v(\"多值\")])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"查询关键字\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.search),\n callback: function($$v) {\n _vm.$set(scope.row, \"search\", $$v)\n },\n expression: \"scope.row.search\"\n }\n }, [_vm._v(\"是否查询\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"排序或聚合\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.docValue),\n callback: function($$v) {\n _vm.$set(scope.row, \"docValue\", $$v)\n },\n expression: \"scope.row.docValue\"\n }\n }, [_vm._v(\"用于排序或聚合\")])]\n }\n }])\n }), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"min-width\": \"60\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_vm._v(\"删除\")])]\n }\n }], null, false, 3393104428)\n }) : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.cancelBtn()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.confirmBtn()\n }\n }\n }, [_vm._v(\"确定\")]) : _vm._e()], 1)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1492 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"data-source-content\"\n }, [_c('div', {\n staticClass: \"data-source-add\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.addDataSource\n }\n }, [_vm._v(\"新增数据源\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"type\": \"warning\"\n },\n on: {\n \"click\": _vm.importDs\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-o-down\"\n }), _vm._v(\"导入Mysql数据源\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.dataSources.length > 0 && _vm.dataSources[0].ip != '' && _vm.indexId),\n expression: \"dataSources.length > 0 && dataSources[0].ip != '' && indexId \"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"warning\"\n },\n on: {\n \"click\": _vm.exportDs\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-o-up\"\n }), _vm._v(\"导出Mysql数据源\")])], 1), _vm._v(\" \"), _vm._l((_vm.dataSources), function(item, index) {\n return _c('el-collapse', {\n key: index,\n model: {\n value: (index),\n callback: function($$v) {\n index = $$v\n },\n expression: \"index\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": index\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('span', {\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(\"数据源 \" + _vm._s(item.ip) + \":\" + _vm._s(item.port) + \" (\" + _vm._s(item.dbname) + \" - \" + _vm._s(item.tableName) + \")\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"danger\",\n \"size\": \"mini\",\n \"icon\": \"minus\"\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n return _vm.deleteDataSource(item)\n }\n }\n }), _vm._v(\" \"), _c('span', {\n staticStyle: {\n \"color\": \"red\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.errorMessage))])], 1), _vm._v(\" \"), _c('index-data-source-item', {\n ref: \"dataSourceItem\",\n refInFor: true,\n attrs: {\n \"index-operation\": _vm.indexOperation,\n \"data-source\": item\n },\n on: {\n \"db-validate\": _vm.dbValidate\n }\n })], 2)], 1)\n })], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1493 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": _vm.schemaImportTitle,\n \"before-close\": _vm.handleClose\n },\n model: {\n value: (_vm.isSchemaImportVisible),\n callback: function($$v) {\n _vm.isSchemaImportVisible = $$v\n },\n expression: \"isSchemaImportVisible\"\n }\n }, [_c('el-form', [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-form-item', [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": _vm.schemaImportUrl,\n \"auto-upload\": false,\n \"multiple\": false,\n \"file-list\": _vm.fileList,\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"点击上传\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"el-upload__tip\",\n attrs: {\n \"slot\": \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(\"请上传json文件,且不超过10Mb\")])], 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.submitImportSchema\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1494 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"template-test\"\n }, [_c('div', {\n staticClass: \"template-test-content\"\n }, [_c('div', {\n staticClass: \"template-test-head\"\n }, [_vm._v(\"上传数据源\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"template-test-body\"\n }, [_c('template-test-data-source', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-name\": _vm.templateName,\n \"data-source\": _vm.dataSource\n }\n }), _vm._v(\" \"), _c('template-test-upload', {\n attrs: {\n \"add-data-source\": _vm.addDataSource,\n \"data-source\": _vm.dataSource\n },\n on: {\n \"template-test-upload-success\": _vm.templateTestUploadSuccess\n }\n })], 1), _vm._v(\" \"), _vm._m(0)]), _vm._v(\" \"), _c('template-test-params', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-name\": _vm.templateName,\n \"params-info\": _vm.paramsInfo,\n \"data-source\": _vm.dataSource,\n \"tem-panel-height\": _vm.temPanelHeight\n }\n })], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"template-test-tips\"\n }, [_c('span', [_vm._v(\"注意:若文件包含多列,可以定义多个参数名,参数名之间用分号隔开,例如k1;k2\")])])\n}]}\n\n/***/ }),\n/* 1495 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"target-group-item\"\n }, [_c('div', {\n staticClass: \"target-group-header\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('div', [(_vm.editable) ? _c('el-input', {\n staticStyle: {\n \"width\": \"100px\"\n },\n attrs: {\n \"size\": \"mini\"\n },\n model: {\n value: (_vm.name),\n callback: function($$v) {\n _vm.name = $$v\n },\n expression: \"name\"\n }\n }) : _c('span', {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.name))]), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 1) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"集群级别\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 2) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"分片动态绑定\")]) : _vm._e()], 1)]), _vm._v(\" \"), (_vm.privilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.editable),\n expression: \"editable\"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"success\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSave()\n }\n }\n }, [_vm._v(\"保存\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.editable),\n expression: \"!editable\"\n }],\n attrs: {\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit()\n }\n }\n }, [_vm._v(\"编辑\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.editable),\n expression: \"editable\"\n }],\n attrs: {\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleCancel()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete()\n }\n }\n }, [_vm._v(\"删除\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"target-group-content\"\n }, [_c('el-tree', {\n ref: \"mytree\",\n attrs: {\n \"data\": _vm.myTree,\n \"show-checkbox\": \"\",\n \"node-key\": \"name\",\n \"default-expand-all\": _vm.isDefaultExpand,\n \"default-checked-keys\": _vm.treeCheckedKeys,\n \"render-content\": _vm.renderContent,\n \"props\": _vm.defaultProps\n },\n on: {\n \"check-change\": _vm.checkChange\n }\n })], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1496 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.dataSource,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"数据源参数\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"top\",\n \"popper-class\": \"template-test-popper\"\n }\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-input', {\n model: {\n value: (scope.row.editParamNameDef),\n callback: function($$v) {\n _vm.$set(scope.row, \"editParamNameDef\", $$v)\n },\n expression: \"scope.row.editParamNameDef\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"popper-button\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSave(scope.row)\n }\n }\n }, [_vm._v(\"保存\")])], 1), _vm._v(\" \"), _c('div', {\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n }, [_vm._v(\"\\n \" + _vm._s(scope.row.paramNameDef) + \"\\n \")])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"fileName\",\n \"label\": \"数据源文件\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_vm._v(\"删除\")])]\n }\n }])\n })], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1497 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\",\n \"disabled\": !_vm.isAllPrivilege\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增规则\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.flowRecordConfigList,\n \"border\": \"\",\n \"highlight-current-row\": \"\",\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"cell-click\": _vm.cellClick\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"规则id\",\n \"prop\": \"id\",\n \"width\": \"70px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"目标模板\",\n \"prop\": \"template.templateName\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.template === null) ? _c('div', [_vm._v(\"全部\")]) : _c('div', [_vm._v(_vm._s(scope.row.template.templateName))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"采集开始时间\",\n \"prop\": \"startTime\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.startTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"采集结束时间\",\n \"prop\": \"endTime\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.endTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"抽样系数\",\n \"prop\": \"sampleRate\",\n \"min-width\": \"60\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"目标采集数\",\n \"prop\": \"limit\",\n \"min-width\": \"70\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最近更新人\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.createUser || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最近更新时间\",\n \"prop\": \"endTime\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"状态\",\n \"prop\": \"isUsed\",\n \"min-width\": \"50\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.isEnable ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateIsEnable\")(scope.row.isEnable || false)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [(_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isEnable),\n expression: \"!scope.row.isEnable\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.enableConfig(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-hand-o-right\"\n }), _vm._v(\"启用\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isEnable),\n expression: \"scope.row.isEnable\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.disableConfig(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-stop-circle-o\"\n }), _vm._v(\"禁用\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isEnable),\n expression: \"!scope.row.isEnable\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row, 'edit')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n }), _vm._v(\"编辑\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isEnable),\n expression: \"!scope.row.isEnable\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-trash\"\n }), _vm._v(\"删除\")])])]) : _vm._e()], 1)], 1)]\n }\n }])\n })], 1)], _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isConfigInfoVisible) ? _c('div', [_c('config-info-dialog', {\n attrs: {\n \"config-operation\": _vm.configOperation,\n \"config-info-title\": _vm.configInfoTitle,\n \"config-info\": _vm.configInfo,\n \"templates\": _vm.templates\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()\n ], 2)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1498 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"before-close\": _vm.handleClose\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('span', {\n staticClass: \"el-dialog__title\",\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_vm._v(\"模板差异对比( \"), _c('span', {\n staticClass: \"del\"\n }, [_vm._v(\"- 删除\")]), _vm._v(\" / \"), _c('span', {\n staticClass: \"ins\"\n }, [_vm._v(\"+ 增加\")]), _vm._v(\" )\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"view-content\"\n }, [_c('el-scrollbar', [_c('pre', {\n directives: [{\n name: \"line-diff\",\n rawName: \"v-line-diff\",\n value: (_vm.jsonDiffInfo),\n expression: \"jsonDiffInfo\"\n }]\n })])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), (_vm.isOverwrite) ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.handleOverwrite\n }\n }, [_vm._v(\"覆盖当前版本\")]) : _vm._e()], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1499 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"footer\"\n }, [_c('p', [_vm._v(_vm._s(_vm.versionNumber))])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1500 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isAllPrivilege),\n expression: \"isAllPrivilege\"\n }],\n staticClass: \"content\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.cronDeleteList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"id\",\n \"prop\": \"id\",\n \"width\": \"40px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"版本id\",\n \"prop\": \"versionId\",\n \"width\": \"100px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"scroll_size\",\n \"prop\": \"scrollSize\",\n \"width\": \"100px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"cron表达式\",\n \"prop\": \"cron\",\n \"width\": \"140px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"更新时间\",\n \"prop\": \"updateTime\",\n \"min-width\": \"100\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用\",\n \"prop\": \"isUsed\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.isSyn ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(scope.row.isSyn))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"300px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"dsl\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.getDsl(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-file-code-o\"\n })])], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"执行查询\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.executeSearchDsl(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-search\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isSyn),\n expression: \"scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"停用\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDisableAndDeleteJob(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-level-down\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSyn),\n expression: \"!scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"启用\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleCreateAndEnableJob(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-level-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isSyn),\n expression: \"scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"立即执行\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRunAtOnce(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-play\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSyn),\n expression: \"!scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSyn),\n expression: \"!scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1) : _vm._e()]\n }\n }])\n })], 1)]\n ], 2), _vm._v(\" \"), (_vm.showDsl) ? _c('div', [_c('json-content-dialog', {\n attrs: {\n \"title\": _vm.viewInfoTitle,\n \"content\": _vm.viewInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isCronDeleteVisible) ? _c('div', [_c('crondelete-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"crondelete-operation\": _vm.crondeleteOperation,\n \"crondelete-title\": _vm.crondeleteTitle,\n \"crondelete-info\": _vm.crondeleteInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1501 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-collapse', {\n model: {\n value: (_vm.activeNames),\n callback: function($$v) {\n _vm.activeNames = $$v\n },\n expression: \"activeNames\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": \"1\",\n \"v-show\": true\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_vm._v(\"\\n 索引级别配置\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"超时时间(毫秒,需>=50ms)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"超时时间(毫秒)\",\n \"min\": 0\n },\n model: {\n value: (_vm.indexConfigInfo.timeout),\n callback: function($$v) {\n _vm.$set(_vm.indexConfigInfo, \"timeout\", $$v)\n },\n expression: \"indexConfigInfo.timeout\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"重试次数(上限1次)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"重试次数\",\n \"min\": 0,\n \"max\": 1\n },\n model: {\n value: (_vm.indexConfigInfo.retry),\n callback: function($$v) {\n _vm.$set(_vm.indexConfigInfo, \"retry\", $$v)\n },\n expression: \"indexConfigInfo.retry\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"慢查询阈值(毫秒)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"慢查询阈值(毫秒)\",\n \"min\": 0\n },\n model: {\n value: (_vm.indexConfigInfo.slowerThan),\n callback: function($$v) {\n _vm.$set(_vm.indexConfigInfo, \"slowerThan\", $$v)\n },\n expression: \"indexConfigInfo.slowerThan\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"disabled\": !_vm.indexConfigInfo.hasPrivilege,\n \"title\": !_vm.indexConfigInfo.hasPrivilege ? '索引权限不足' : ''\n },\n on: {\n \"click\": _vm.handleUpdate\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"更新\\n \")])], 1)], 1)], 1)], 2), _vm._v(\" \"), _c('el-collapse-item', {\n attrs: {\n \"title\": \"模板级别配置\",\n \"name\": \"2\"\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_vm._v(\"\\n 模板级别配置\\n \"), _c('span', {\n staticStyle: {\n \"color\": \"#ddd\"\n }\n }, [_vm._v(\"(若模板超时时间为0毫秒,则以当前索引的超时时间和重试为准。)\")])]), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.templateList,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"模板名称\",\n \"show-overflow-tooltip\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.templateName))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"超时时间(毫秒,需>=50ms)\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input-number', {\n attrs: {\n \"min\": 0\n },\n model: {\n value: (scope.row.timeout),\n callback: function($$v) {\n _vm.$set(scope.row, \"timeout\", $$v)\n },\n expression: \"scope.row.timeout\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"重试次数(上限1次)\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input-number', {\n attrs: {\n \"min\": 0,\n \"max\": 1\n },\n model: {\n value: (scope.row.retry),\n callback: function($$v) {\n _vm.$set(scope.row, \"retry\", $$v)\n },\n expression: \"scope.row.retry\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"120px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"disabled\": !_vm.allPrivilege,\n \"title\": !_vm.allPrivilege ? '权限不足' : ''\n },\n on: {\n \"click\": function($event) {\n return _vm.handleTemplateUpdate(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"更新\\n \")])]\n }\n }])\n })], 1)], 2)], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1502 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"version-info-dialog\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVersionInfoVisible),\n callback: function($$v) {\n _vm.isVersionInfoVisible = $$v\n },\n expression: \"isVersionInfoVisible\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_c('span', [_vm._v(_vm._s(_vm.versionInfoTitle))])]), _vm._v(\" \"), _c('el-form', {\n ref: \"versionInfo\",\n attrs: {\n \"model\": _vm.versionInfo,\n \"rules\": _vm.rules,\n \"label-position\": \"left\"\n }\n }, [_c('el-tabs', {\n attrs: {\n \"value\": \"first\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"label\": \"索引配置\",\n \"name\": \"first\"\n }\n }, [_c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"分片路由属性\")]), _vm._v(\" \"), (_vm.isLogical) ? _c('span', {\n staticStyle: {\n \"color\": \"#C8C8C8\"\n }\n }, [_vm._v(\"(所属集群:\" + _vm._s(_vm.clusterArray.join()) + \")\")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"分片数量\",\n \"prop\": \"shardNum\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.shardNum),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"shardNum\", _vm._n($$v))\n },\n expression: \"versionInfo.shardNum\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"复制数量\",\n \"prop\": \"replicationNum\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.replicationNum),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"replicationNum\", _vm._n($$v))\n },\n expression: \"versionInfo.replicationNum\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"ShardPerNode\",\n \"prop\": \"totalShardsPerNode\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.totalShardsPerNode),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"totalShardsPerNode\", _vm._n($$v))\n },\n expression: \"versionInfo.totalShardsPerNode\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [(_vm.isLogical) ? _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属节点\",\n \"prop\": \"nodes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"value-key\": \"name\",\n \"placeholder\": \"请选择机器\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.nodes),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"nodes\", $$v)\n },\n expression: \"versionInfo.nodes\"\n }\n }, _vm._l((_vm.clusterGroups), function(group) {\n return _c('el-option-group', {\n key: group.clusterId,\n attrs: {\n \"label\": group.clusterId\n }\n }, _vm._l((group.nodes), function(item) {\n return _c('el-option', {\n key: item.name,\n attrs: {\n \"label\": item.name,\n \"value\": item\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.indicis.length > 0) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, _vm._l((item.indicis), function(item1) {\n return _c('el-col', {\n key: item1,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1) : _c('div', [_vm._v(\"暂无索引\")])]), _vm._v(\" \"), _c('el-tag', {\n staticStyle: {\n \"float\": \"left\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.indicis.length))])], 1)], 1)\n }), 1)\n }), 1)], 1)], 1)], 1) : _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属集群\",\n \"prop\": \"clusterId\",\n \"label-width\": \"120px\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"placeholder\": \"请选择集群\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": _vm.clusterChange\n },\n model: {\n value: (_vm.versionInfo.clusterId),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"clusterId\", $$v)\n },\n expression: \"versionInfo.clusterId\"\n }\n }, _vm._l((_vm.clusters), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.id\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属节点\",\n \"prop\": \"nodes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"placeholder\": \"请选择机器\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.nodes),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"nodes\", $$v)\n },\n expression: \"versionInfo.nodes\"\n }\n }, _vm._l((_vm.clusterNodes), function(item) {\n return _c('el-option', {\n key: item.name,\n attrs: {\n \"label\": item.name,\n \"value\": item.name\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.indicis.length > 0) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, _vm._l((item.indicis), function(item1) {\n return _c('el-col', {\n key: item1,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1) : _c('div', [_vm._v(\"暂无索引\")])]), _vm._v(\" \"), _c('el-tag', {\n staticStyle: {\n \"float\": \"left\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.indicis.length))])], 1)], 1)\n }), 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": _vm.routingKeyWidth\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Routing Key\",\n \"prop\": \"routingKey\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.routingKey),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"routingKey\", $$v)\n },\n expression: \"versionInfo.routingKey\"\n }\n }, _vm._l((_vm.versionInfo.schema), function(item) {\n return _c('el-option', {\n key: item.fieldName,\n attrs: {\n \"label\": item.fieldName,\n \"value\": item.fieldName\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": _vm.routingKeyWidth\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Id列名\",\n \"prop\": \"idField\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.idField),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"idField\", $$v)\n },\n expression: \"versionInfo.idField\"\n }\n }, _vm._l((_vm.versionInfo.schema), function(item) {\n return _c('el-option', {\n key: item.fieldName,\n attrs: {\n \"label\": item.fieldName,\n \"value\": item.fieldName\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), (!_vm.isMetaDataNull) ? _c('el-col', {\n attrs: {\n \"span\": _vm.routingKeyWidth\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Update Time列名\",\n \"prop\": \"updateTimeField\",\n \"label-width\": \"150px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.updateTimeField),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"updateTimeField\", $$v)\n },\n expression: \"versionInfo.updateTimeField\"\n }\n }, _vm._l((_vm.versionInfo.schema), function(item) {\n return _c('el-option', {\n key: item.fieldName,\n attrs: {\n \"label\": item.fieldName,\n \"value\": item.fieldName\n }\n })\n }), 1)], 1)], 1) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"慢日志落盘配置(单位ms,-1不限定)\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Index Slow\",\n \"prop\": \"indexSlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.indexSlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"indexSlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.indexSlowThreshold\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Fetch Slow\",\n \"prop\": \"fetchSlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.fetchSlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"fetchSlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.fetchSlowThreshold\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Query Slow\",\n \"prop\": \"querySlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.querySlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"querySlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.querySlowThreshold\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"索引其他配置\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"max_result_window\",\n \"prop\": \"maxResultWindow\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"10000\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.maxResultWindow),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"maxResultWindow\", _vm._n($$v))\n },\n expression: \"versionInfo.maxResultWindow\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"flush_threshold_size\",\n \"prop\": \"flushThresholdSize\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"512mb\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.flushThresholdSize),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"flushThresholdSize\", $$v)\n },\n expression: \"versionInfo.flushThresholdSize\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"sync_interval\",\n \"prop\": \"syncInterval\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"5s\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.syncInterval),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"syncInterval\", $$v)\n },\n expression: \"versionInfo.syncInterval\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"translog_durability\",\n \"prop\": \"translogDurability\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"async\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.translogDurability),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"translogDurability\", $$v)\n },\n expression: \"versionInfo.translogDurability\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"refresh(秒)\",\n \"prop\": \"refreshInterval\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.refreshInterval),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"refreshInterval\", _vm._n($$v))\n },\n expression: \"versionInfo.refreshInterval\"\n }\n })], 1)], 1), _vm._v(\" \"), (!_vm.isMetaDataNull) ? _c('div', [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"只导局部字段\",\n \"prop\": \"filterFields\",\n \"label-width\": \"120px\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.filterFields),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"filterFields\", $$v)\n },\n expression: \"versionInfo.filterFields\"\n }\n })], 1)])], 1), _vm._v(\" \"), (_vm.$option.versionVdpTypes && _vm.$option.versionVdpTypes.length > 0) ? _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"同步数据类型\",\n \"prop\": \"vdp\",\n \"label-width\": \"100px\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-radio-group', {\n attrs: {\n \"disabled\": _vm.isEditable,\n \"size\": \"small\"\n },\n model: {\n value: (_vm.versionInfo.vdp),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"vdp\", $$v)\n },\n expression: \"versionInfo.vdp\"\n }\n }, _vm._l((_vm.$option.versionVdpTypes), function(item) {\n return _c('el-radio-button', {\n key: item.value,\n attrs: {\n \"label\": item.value\n }\n }, [_vm._v(_vm._s(item.label))])\n }), 1)], 1)])], 1) : _vm._e()], 1) : _vm._e()], 1)], 1)]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"Mapping配置\",\n \"name\": \"second\"\n }\n }, [_c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"ES映射关系配置\")]), _vm._v(\" \"), (_vm.isMetaDataNull && _vm.versionInfo.schema.length === 0) ? _c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"type\": \"success\"\n },\n on: {\n \"click\": function($event) {\n return _vm.addField(0)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-plus\"\n }), _vm._v(\"新增\")]) : _vm._e(), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isEditable),\n expression: \"!isEditable\"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"warning\"\n },\n on: {\n \"click\": _vm.importSchema\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-o-down\"\n }), _vm._v(\"导入schema\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isEditable),\n expression: \"isEditable\"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"warning\"\n },\n on: {\n \"click\": _vm.exportSchema\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-o-up\"\n }), _vm._v(\"导出schema\")])], 1), _vm._v(\" \"), _c('div', [_c('div', {\n staticStyle: {\n \"margin\": \"10px\"\n }\n }, [_c('el-alert', {\n attrs: {\n \"title\": \"如何选择ES类型\",\n \"type\": \"info\",\n \"description\": \" \",\n \"show-icon\": \"\"\n }\n }, [_c('div', {\n staticStyle: {\n \"font-size\": \"12px\"\n }\n }, [_vm._v(\"\\n 1.某些数据库字段,尽管是number类型,但是在做业务查询时仅仅只是做term(s)这类非数学运算非聚合查询,我们非常建议你采用\\\"keyword as number\\\"类型,在这个类型下,ES将会用string格式来建索引以达到更高的检索性能,\\n 而获取 _source 时我们仍然会以number的格式返回给 Client。\\n \"), _c('br'), _vm._v(\"\\n 2.当你需要做模糊匹配,比如数据库值是 AbC,但是仍然希望abc和ABC都能检索出来,那请选择\\\"keyword[全大写处理]\\\"类型,我们在建索引和查询都做大写处理,\\n 而获取 _source 时我们仍然会以原值 AbC 的格式返回给 Client。\\n \"), _c('br'), _vm._v(\"\\n 3.所有的DB类型为TINYINT 的字段,我们都假设它是一些枚举值并且不会用于数学运算,因此我们为这些字段自动匹配了\\\"keyword as number\\\"类型,请自行检查。\\n \")])])], 1), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.versionInfo.schema,\n \"border\": \"\",\n \"max-height\": 550\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"操作\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"success\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"click\": function($event) {\n return _vm.addField(scope.$index)\n }\n }\n }, [_c('i', {\n staticClass: \"el-icon-plus\"\n })]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"danger\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"click\": function($event) {\n return _vm.deleteField(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"el-icon-minus\"\n })])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"字段名\",\n \"min-width\": \"180\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isNew),\n expression: \"!scope.row.isNew\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }, [_c('span', [_vm._v(_vm._s(scope.row.fieldName))])]), _vm._v(\" \"), _c('el-input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isNew),\n expression: \"scope.row.isNew\"\n }],\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"placeholder\": \"请输入字段名\"\n },\n model: {\n value: (scope.row.fieldName),\n callback: function($$v) {\n _vm.$set(scope.row, \"fieldName\", $$v)\n },\n expression: \"scope.row.fieldName\"\n }\n }), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isNew),\n expression: \"scope.row.isNew\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }, [_c('span', [_vm._v(\"子字段\")])]), _vm._v(\" \"), (scope.row.children.length !== 0) ? _c('el-button', {\n attrs: {\n \"type\": \"warning\",\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaChildren(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa\"\n }), _vm._v(\"nested\")]) : _vm._e(), _vm._v(\" \"), (scope.row.multiField.length !== 0) ? _c('el-button', {\n attrs: {\n \"type\": \"warning\",\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaMultiFields(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa\"\n }), _vm._v(\"subFields\")]) : _vm._e(), _vm._v(\" \"), _c('div', [(scope.row.copyTo.length > 0) ? _c('el-tag', {\n attrs: {\n \"type\": \"success\"\n }\n }, [_vm._v(\"copy to: \" + _vm._s(scope.row.copyTo))]) : _vm._e()], 1)]\n }\n }])\n }), _vm._v(\" \"), (!_vm.isMetaDataNull) ? _c('el-table-column', {\n attrs: {\n \"label\": \"DB类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(scope.row.dbFieldType || 'N/A') + \"\\n \")]\n }\n }], null, false, 959855009)\n }) : _vm._e(), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"ES类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.fieldType),\n expression: \"scope.row.fieldType\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": [function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"fieldType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }, function($event) {\n return _vm.fieldTypeChange(scope.row)\n }]\n }\n }, _vm._l((_vm.fieldTypes), function(item) {\n return _c('option', {\n key: item.value,\n domProps: {\n \"value\": item.value\n }\n }, [_vm._v(_vm._s(item.label))])\n }), 0)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"多值/单值\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.multi),\n expression: \"scope.row.multi\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"multi\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"label\": \"单值\"\n },\n domProps: {\n \"value\": false\n }\n }, [_vm._v(\"单值\")]), _vm._v(\" \"), _c('option', {\n attrs: {\n \"label\": \"多值\"\n },\n domProps: {\n \"value\": true\n }\n }, [_vm._v(\"多值\")])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否创建索引\",\n \"min-width\": \"90\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable || scope.row.fieldType === 'nested'\n },\n model: {\n value: (scope.row.search),\n callback: function($$v) {\n _vm.$set(scope.row, \"search\", $$v)\n },\n expression: \"scope.row.search\"\n }\n }, [_vm._v(\"创建索引\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"render-header\": _vm.renderDocValueHeader\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable || scope.row.fieldType === 'nested' || scope.row.fieldType === 'text'\n },\n model: {\n value: (scope.row.docValue),\n callback: function($$v) {\n _vm.$set(scope.row, \"docValue\", $$v)\n },\n expression: \"scope.row.docValue\"\n }\n }, [_vm._v(\"启用doc value\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用store\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.store),\n callback: function($$v) {\n _vm.$set(scope.row, \"store\", $$v)\n },\n expression: \"scope.row.store\"\n }\n }, [_vm._v(\"启用store\")])]\n }\n }])\n }), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-table-column', {\n attrs: {\n \"label\": \"更多操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [(scope.row.multiField.length === 0) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaChildren(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加nested/object\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.children.length === 0 && scope.row.fieldType !== 'nested') ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaMultiFields(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加subFields\")])])]) : _vm._e(), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaCopyTo(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加copyTo\")])])]) : _vm._e()], 1)], 1)]\n }\n }], null, false, 2854098717)\n }) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\",\n staticStyle: {\n \"margin-top\": \"20px\"\n }\n }, [_c('span', {\n staticClass: \"span-title\",\n staticStyle: {\n \"margin-right\": \"20px\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"ES _source配置\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"source-setting\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('el-form-item', {\n staticStyle: {\n \"display\": \"inline-block\"\n },\n attrs: {\n \"label\": \"是否disable _source:\",\n \"prop\": \"sourceDisabled\",\n \"label-width\": \"150px\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.sourceDisabled),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"sourceDisabled\", $$v)\n },\n expression: \"versionInfo.sourceDisabled\"\n }\n })], 1)])], 1), _vm._v(\" \"), (!_vm.versionInfo.sourceDisabled) ? _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"includes\",\n \"prop\": \"sourceIncludes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"placeholder\": \"请选择_source包含的field\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.sourceIncludesArr),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"sourceIncludesArr\", $$v)\n },\n expression: \"versionInfo.sourceIncludesArr\"\n }\n }, _vm._l((_vm.allSourceFields), function(item, index) {\n return _c('el-option', {\n key: index,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item))])])\n }), 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), (!_vm.versionInfo.sourceDisabled) ? _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"excludes\",\n \"prop\": \"sourceExcludes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"placeholder\": \"请选择_source不包含的field\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.sourceExcludesArr),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"sourceExcludesArr\", $$v)\n },\n expression: \"versionInfo.sourceExcludesArr\"\n }\n }, _vm._l((_vm.allSourceFields), function(item, index) {\n return _c('el-option', {\n key: index,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item))])])\n }), 1)], 1)], 1) : _vm._e()], 1)], 1)])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitVersionInfo()\n }\n }\n }, [_vm._v(\"确 定\")]) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('schema-child-dialog', {\n attrs: {\n \"is-schema-child-visible\": _vm.isSchemaChildVisible,\n \"schema-child-info\": _vm.schemaExtInfo,\n \"version-operation\": _vm.versionOperation,\n \"schema-parent-field-name\": _vm.schemaParentFieldName,\n \"version-info\": _vm.versionInfo\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaDialog,\n \"add-schema-child\": _vm.addSchemaChild\n }\n }), _vm._v(\" \"), _c('schema-multi-field-dialog', {\n attrs: {\n \"is-schema-multi-fields-visible\": _vm.isSchemaMultiFieldsVisible,\n \"schema-multi-fields-info\": _vm.schemaExtInfo,\n \"version-operation\": _vm.versionOperation,\n \"schema-parent-field-name\": _vm.schemaParentFieldName\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaMultiFieldsDialog,\n \"add-schema-multi-field\": _vm.addSchemaMultiFields\n }\n }), _vm._v(\" \"), _c('schema-copy-to-dialog', {\n attrs: {\n \"is-copy-to-fields-visible\": _vm.isCopyToFieldsVisible,\n \"schema-copy-to-info\": _vm.schemaExtInfo,\n \"copy-to-list\": _vm.validCopyToFields,\n \"schema-parent-field-name\": _vm.schemaParentFieldName\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaCopyToDialog,\n \"add-schema-copy-to\": _vm.addSchemaCopyTo\n }\n }), _vm._v(\" \"), (_vm.isSchemaImportVisible) ? _c('div', [_c('schema-import-dialog', {\n attrs: {\n \"schema-import-title\": _vm.schemaImportTitle,\n \"schema-import-url\": _vm.schemaImportUrl\n },\n on: {\n \"schema-import-success\": _vm.schemaImportSuccess,\n \"close-schema-import-dialog\": _vm.closeSchemaImportDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1503 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"template-insert-dialog\",\n staticStyle: {\n \"min-width\": \"700px\"\n },\n attrs: {\n \"title\": \"查询变量插入\",\n \"before-close\": _vm.handleClose,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.visible),\n callback: function($$v) {\n _vm.visible = $$v\n },\n expression: \"visible\"\n }\n }, [_c('el-form', {\n ref: \"info\",\n attrs: {\n \"model\": _vm.info,\n \"label-width\": \"100px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"field\",\n \"label\": \"查询变量\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.info.field),\n callback: function($$v) {\n _vm.$set(_vm.info, \"field\", $$v)\n },\n expression: \"info.field\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"from\",\n \"value\": \"from\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"size\",\n \"value\": \"size\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"sort\",\n \"value\": \"sort\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"source\",\n \"value\": \"source\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"query\",\n \"value\": \"query\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [(_vm.info.field === 'from') ? _c('el-form-item', {\n attrs: {\n \"prop\": \"from\",\n \"label\": \"from\"\n }\n }, [_c('el-input-number', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.info.from),\n callback: function($$v) {\n _vm.$set(_vm.info, \"from\", $$v)\n },\n expression: \"info.from\"\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.info.field === 'size') ? _c('el-form-item', {\n attrs: {\n \"prop\": \"size\",\n \"label\": \"size\"\n }\n }, [_c('el-input-number', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.info.size),\n callback: function($$v) {\n _vm.$set(_vm.info, \"size\", $$v)\n },\n expression: \"info.size\"\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.info.field === 'sort') ? _c('el-form-item', {\n attrs: {\n \"prop\": \"sort\",\n \"label\": \"sort\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n attrs: {\n \"on-text\": \"变量\",\n \"off-text\": \"静态\"\n },\n model: {\n value: (_vm.info.sort),\n callback: function($$v) {\n _vm.$set(_vm.info, \"sort\", $$v)\n },\n expression: \"info.sort\"\n }\n })], 1)]) : _vm._e(), _vm._v(\" \"), (_vm.info.field === 'source') ? _c('el-form-item', {\n attrs: {\n \"prop\": \"source\",\n \"label\": \"source\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n attrs: {\n \"on-text\": \"变量\",\n \"off-text\": \"静态\"\n },\n model: {\n value: (_vm.info.source),\n callback: function($$v) {\n _vm.$set(_vm.info, \"source\", $$v)\n },\n expression: \"info.source\"\n }\n })], 1)]) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label-width\": \"30px\"\n }\n }, [(_vm.info.field === 'query') ? _c('el-table', {\n attrs: {\n \"border\": \"\",\n \"data\": _vm.metadatas,\n \"max-height\": 320\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"dbFieldName\",\n \"label\": \"字段名\",\n \"width\": \"130\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"查询方式\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"term\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"term\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"multiTerm\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"多值term\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"range\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"range\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"script\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"script\")])]\n }\n }], null, false, 1112527743)\n })], 1) : _vm._e()], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleInsert()\n }\n }\n }, [_vm._v(\"插入查询变量\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1504 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"target-group-item\"\n }, [_c('div', {\n staticClass: \"target-group-header\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('div', [(_vm.editable) ? _c('el-input', {\n staticStyle: {\n \"width\": \"100px\"\n },\n attrs: {\n \"size\": \"mini\"\n },\n model: {\n value: (_vm.name),\n callback: function($$v) {\n _vm.name = $$v\n },\n expression: \"name\"\n }\n }) : _c('span', {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.name))]), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 0) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"普通级别\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 1) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"集群级别\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 2) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"分片动态绑定\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 3) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"集群级别(主分片优先)\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 4) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"集群级别(复制分片优先)\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 5) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"动态分组\")]) : _vm._e()], 1)]), _vm._v(\" \"), (_vm.privilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.editable),\n expression: \"editable\"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"success\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSave()\n }\n }\n }, [_vm._v(\"保存\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.editable),\n expression: \"!editable\"\n }],\n attrs: {\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit()\n }\n }\n }, [_vm._v(\"编辑\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.editable),\n expression: \"editable\"\n }],\n attrs: {\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleCancel()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete()\n }\n }\n }, [_vm._v(\"删除\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"target-group-content\"\n }, [_c('el-tree', {\n ref: \"mytree\",\n attrs: {\n \"data\": _vm.myTree,\n \"show-checkbox\": \"\",\n \"node-key\": \"name\",\n \"default-expand-all\": _vm.isDefaultExpand,\n \"default-checked-keys\": _vm.treeCheckedKeys,\n \"render-content\": _vm.renderContent,\n \"props\": _vm.defaultProps\n },\n on: {\n \"check-change\": _vm.checkChange\n }\n })], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1505 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"page-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.clusterId))])], 1)], 1), _vm._v(\" \"), _c('dashboard-component', {\n attrs: {\n \"cluster-info\": _vm.clusterInfo\n }\n })], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1506 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"Token管理\")])], 1)], 1), _vm._v(\" \"), _c('el-row', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"gutter\": 20,\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 6\n }\n }, [(_vm.isPrivilege) ? _c('div', [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新建Token\")])], 1) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10\"\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"输入关键字进行过滤\",\n \"icon\": \"search\",\n \"on-icon-click\": _vm.handleSearch\n },\n model: {\n value: (_vm.tokenForSearch),\n callback: function($$v) {\n _vm.tokenForSearch = $$v\n },\n expression: \"tokenForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10 token-table\"\n }, [_c('el-table', {\n attrs: {\n \"data\": _vm.tokenList,\n \"show-header\": false,\n \"highlight-current-row\": \"\",\n \"border\": \"\",\n \"height\": _vm.tokenHeight.height\n },\n on: {\n \"row-click\": _vm.handleTokenClick\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"ID\",\n \"prop\": \"id\",\n \"width\": \"50px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"title\",\n \"label\": \"名称\",\n \"show-overflow-tooltip\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n staticStyle: {\n \"font-size\": \"16px\"\n }\n }, [_vm._v(_vm._s(scope.row.title) + \"\\n \"), _c('el-tag', {\n attrs: {\n \"type\": scope.row.enabled ? 'success' : 'danger'\n }\n }, [_vm._v(_vm._s(_vm.statusMap[scope.row.enabled]))])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"color\": \"gray\",\n \"font-size\": \"12px\"\n }\n }, [_vm._v(_vm._s(scope.row.clientToken))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"编辑\",\n \"width\": \"30px\",\n \"align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n })])]\n }\n }])\n })], 1)], 1)]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [(!_vm.isSelectToken) ? _c('div', {\n staticClass: \"token-warning\",\n style: (_vm.tokenErrorHeight)\n }, [_c('i', {\n staticClass: \"el-icon-warning\"\n }), _vm._v(\"请选择Token\")]) : _vm._e(), _vm._v(\" \"), _vm._l((_vm.tokenList), function(token) {\n return _c('div', {\n key: token.clientToken,\n staticClass: \"token-body\"\n }, [(_vm.tokenSelectInfo.clientToken === token.clientToken) ? _c('token-detail', {\n attrs: {\n \"token-height\": _vm.tokenHeight,\n \"token-info\": _vm.tokenSelectInfo\n }\n }) : _vm._e()], 1)\n })], 2)], 1), _vm._v(\" \"), (_vm.isTokenInfoVisible) ? _c('div', [_c('token-info-dialog', {\n attrs: {\n \"token-info\": _vm.tokenInfo,\n \"token-info-operate\": _vm.tokenInfoOperate,\n \"token-info-title\": _vm.tokenInfoTitle\n },\n on: {\n \"token-info-success\": _vm.tokenInfoSuccess,\n \"close-dialog\": _vm.closeTokenInfoDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1507 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索节点\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.nodesFilter($event)\n }\n },\n model: {\n value: (_vm.nodeForSearch),\n callback: function($$v) {\n _vm.nodeForSearch = $$v\n },\n expression: \"nodeForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.nodesFilter\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.nodesList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"Name\",\n \"prop\": \"nodeName\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'node_monitor_detail',\n query: {\n clusterId: _vm.clusterId,\n node: scope.row.nodeName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.nodeName))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"CPU Usage\",\n \"prop\": \"osCpuPercent\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Load Average\",\n \"prop\": \"load_1m\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"JVM Memory(%)\",\n \"prop\": \"jvmHeapUsage\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Transport Address\",\n \"prop\": \"transportAddress\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Shards\",\n \"prop\": \"shardCount\"\n }\n })], 1)]\n ], 2)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1508 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"template-test-content\"\n }, [_c('div', {\n staticClass: \"template-test-head\"\n }, [_vm._v(\"设置请求参数\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"template-test-body\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.paramsInfo,\n \"border\": \"\",\n \"max-height\": _vm.temPanelHeight - 390\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"paramName\",\n \"label\": \"请求参数\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"包含\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n model: {\n value: (scope.row.include),\n callback: function($$v) {\n _vm.$set(scope.row, \"include\", $$v)\n },\n expression: \"scope.row.include\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"请求值类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-select', {\n attrs: {\n \"disabled\": !scope.row.include,\n \"size\": \"small\"\n },\n on: {\n \"change\": function($event) {\n return _vm.valueTypeChange(scope.row)\n }\n },\n model: {\n value: (scope.row.valueType),\n callback: function($$v) {\n _vm.$set(scope.row, \"valueType\", $$v)\n },\n expression: \"scope.row.valueType\"\n }\n }, [_c('el-option', {\n key: \"1\",\n attrs: {\n \"label\": \"固定值\",\n \"value\": \"1\"\n }\n }, [_vm._v(\"固定值\")]), _vm._v(\" \"), _c('el-option', {\n key: \"2\",\n attrs: {\n \"label\": \"数据源\",\n \"value\": \"2\"\n }\n }, [_vm._v(\"数据源\")])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"数据源参数映射\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.valueType === '1'),\n expression: \"scope.row.valueType === '1'\"\n }],\n attrs: {\n \"disabled\": !scope.row.include\n },\n model: {\n value: (scope.row.value),\n callback: function($$v) {\n _vm.$set(scope.row, \"value\", $$v)\n },\n expression: \"scope.row.value\"\n }\n }), _vm._v(\" \"), _c('el-select', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.valueType === '2'),\n expression: \"scope.row.valueType === '2'\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"disabled\": !scope.row.include\n },\n model: {\n value: (scope.row.value),\n callback: function($$v) {\n _vm.$set(scope.row, \"value\", $$v)\n },\n expression: \"scope.row.value\"\n }\n }, _vm._l((_vm.paramValues), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)]\n }\n }])\n })], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"template-test-content\",\n attrs: {\n \"align\": \"center\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleGen\n }\n }, [_vm._v(\"生成测试脚本\")])], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1509 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"monitor-top\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.gaugeMetricData,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"Total\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte_total)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Primaries\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte_primary)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"primaryDocumentCount\",\n \"label\": \"Documents(Primary)\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"totalShardCount\",\n \"label\": \"Total Shards\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"unassignedShardCount\",\n \"label\": \"Unassigned Shards\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"health\",\n \"label\": \"Health\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Index Memory(\" + (_vm.indexMemoryInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexMemory\",\n \"option-info\": _vm.indexMemoryInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Index Disk(\" + (_vm.indexDiskInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexDisk\",\n \"option-info\": _vm.indexDiskInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Segment Count(\" + (_vm.segmentCountInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"segmentCount\",\n \"option-info\": _vm.segmentCountInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Document Count(\" + (_vm.documentCountInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"documentCount\",\n \"option-info\": _vm.documentCountInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Rate(\" + (_vm.indexSearchRateInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchRate\",\n \"option-info\": _vm.indexSearchRateInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Latency(\" + (_vm.indexSearchLatencyInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchLatency\",\n \"option-info\": _vm.indexSearchLatencyInfo\n }\n })], 1)])], 1)], 1)], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1510 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticStyle: {\n \"width\": \"100%\",\n \"height\": \"100%\"\n },\n attrs: {\n \"id\": _vm.editorId\n }\n })\n},staticRenderFns: []}\n\n/***/ }),\n/* 1511 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"page-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"my-breadcrumb\",\n staticStyle: {\n \"width\": \"100%\"\n }\n }, [_c('div', {\n staticClass: \"pull-left\",\n staticStyle: {\n \"display\": \"inline\"\n }\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_detail',\n query: {\n clusterId: _vm.clusterId\n }\n }\n }\n }, [_vm._v(_vm._s(_vm.clusterId))]), _vm._v(\" \"), _c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_monitor',\n query: {\n clusterId: _vm.clusterId\n }\n }\n }\n }, [_vm._v(\"监控\")]), _vm._v(\" \"), _vm._l((_vm.breadcrumbs), function(item, index) {\n return _c('el-breadcrumb-item', {\n key: index,\n attrs: {\n \"to\": item.route\n }\n }, [_vm._v(_vm._s(item.name))])\n })], 2)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\",\n staticStyle: {\n \"display\": \"inline\",\n \"margin-right\": \"10px\",\n \"height\": \"30px\",\n \"line-height\": \"30px\"\n }\n }, [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n },\n on: {\n \"command\": _vm.handleCommand\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\",\n attrs: {\n \"title\": _vm.timeInterval.command === 'custom' ? ((_vm.formatDate(_vm.timeInterval.from, 'MM-DD HH:mm')) + \" - \" + (_vm.formatDate(_vm.timeInterval.to, 'MM-DD HH:mm'))) : ''\n }\n }, [_c('i', {\n staticClass: \"fa fa-clock-o\"\n }), _vm._v(\"\\n \" + _vm._s(_vm.periodTimeMap[_vm.timeInterval.command])), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [_c('el-dropdown-item', {\n attrs: {\n \"command\": \"30\"\n }\n }, [_vm._v(\"最近30分钟\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"60\"\n }\n }, [_vm._v(\"最近1小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"180\"\n }\n }, [_vm._v(\"最近3小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"360\"\n }\n }, [_vm._v(\"最近6小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"720\"\n }\n }, [_vm._v(\"最近12小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"1440\"\n }\n }, [_vm._v(\"最近24小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"4320\"\n }\n }, [_vm._v(\"最近3天\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"10080\"\n }\n }, [_vm._v(\"最近7天\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"divided\": \"\",\n \"command\": \"custom\"\n }\n }, [_vm._v(\"自定义时间\")])], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"page-tab\"\n }, [_c('el-tabs', {\n on: {\n \"tab-click\": _vm.onTabClick\n },\n model: {\n value: (_vm.activeTab),\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"name\": \"cluster_monitor\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-cube\"\n }), _vm._v(\"集群\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"indices_monitor\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-search\"\n }), _vm._v(\"索引 (\" + _vm._s(_vm.indicesNum) + \")\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"nodes_monitor\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-cubes\"\n }), _vm._v(\"节点 (\" + _vm._s(_vm.nodesNum) + \")\")])])], 1), _vm._v(\" \"), _c('router-view')], 1), _vm._v(\" \"), (_vm.customTimeVisible) ? _c('div', [_c('custom-time-dialog', {\n on: {\n \"set-custom-time\": _vm.setCustomTime,\n \"close-dialog\": _vm.closeCustomTimeDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1512 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"navbar\"\n }, [_vm._m(0), _vm._v(\" \"), _c('div', {\n staticClass: \"navbar-content\"\n }, [_c('el-menu', {\n staticClass: \"el-menu-demo\",\n attrs: {\n \"theme\": \"dark\",\n \"default-active\": _vm.activeIndex,\n \"mode\": \"horizontal\",\n \"router\": true\n }\n }, [_vm._l((_vm.serviceList), function(item) {\n return [_c('el-menu-item', {\n key: item.index,\n attrs: {\n \"index\": item.index,\n \"route\": item\n }\n }, [_c('i', {\n class: item.icon\n }), _vm._v(_vm._s(item.title))])]\n }), _vm._v(\" \"), _c('el-submenu', {\n staticClass: \"pull-right\",\n attrs: {\n \"index\": \"3\"\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('i', {\n staticClass: \"fa fa-user\"\n }), _vm._v(_vm._s(_vm.loginUser || 'null'))]), _vm._v(\" \"), _c('el-menu-item', {\n attrs: {\n \"index\": \"\"\n }\n }, [_c('a', {\n staticStyle: {\n \"display\": \"block\"\n },\n attrs: {\n \"href\": \"/pallas/logout\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-sign-out\"\n }), _vm._v(\"注销\")])])], 2)], 2)], 1)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"navbar-title\"\n }, [_c('span', [_c('img', {\n attrs: {\n \"src\": __webpack_require__(1336)\n }\n }), _vm._v(\"\\n Pallas一站式检索平台\\n \")])])\n}]}\n\n/***/ }),\n/* 1513 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索索引\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.indicesFilter($event)\n }\n },\n model: {\n value: (_vm.indiceForSearch),\n callback: function($$v) {\n _vm.indiceForSearch = $$v\n },\n expression: \"indiceForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.indicesFilter\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.indicesList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"Name\",\n \"prop\": \"indexName\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'indice_monitor_detail',\n query: {\n clusterId: _vm.clusterId,\n indice: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.indexName))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Status\",\n \"prop\": \"status\",\n \"width\": \"70px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Document Count\",\n \"prop\": \"documentCount\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Document Store Primary\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte_primary)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Document Store Total\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte_total)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Health\",\n \"prop\": \"health\",\n \"width\": \"70px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Total Shard Count\",\n \"prop\": \"totalShardCount\"\n }\n })], 1)]\n ], 2)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1514 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"索引管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n attrs: {\n \"clearable\": \"\"\n },\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedCluster),\n callback: function($$v) {\n _vm.selectedCluster = $$v\n },\n expression: \"selectedCluster\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部集群\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.clusters), function(cluster) {\n return _c('el-option-group', {\n key: cluster.label,\n attrs: {\n \"label\": cluster.label\n }\n }, _vm._l((cluster.options), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.clusterId\n }\n })\n }), 1)\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索索引\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.indexNameForSearch),\n callback: function($$v) {\n _vm.indexNameForSearch = (typeof $$v === 'string' ? $$v.trim() : $$v)\n },\n expression: \"indexNameForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增索引\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.indexList.list,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"type\": \"expand\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(props) {\n return [_c('el-form', {\n staticClass: \"my-table-expand\",\n attrs: {\n \"label-position\": \"left\",\n \"inline\": \"\"\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"id\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.id))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"索引名\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.indexName))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"索引描述\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.description || 'null'))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"所属集群\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.clusterName))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"集群描述\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.clusterDesc || 'null'))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"创建人\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.createUser || 'null'))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"创建时间\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(props.row.createTime)))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"更新时间\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(props.row.updateTime)))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"数据源数量\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.dataSourceList.length))])]), _vm._v(\" \"), _c('el-form-item', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"label\": \"数据源\"\n }\n }, _vm._l((props.row.dataSourceList), function(item) {\n return _c('span', {\n key: item.id,\n staticClass: \"data-source-text\"\n }, [_vm._v(_vm._s(item.dbname) + \" - \" + _vm._s(item.tableName) + \";\")])\n }), 0)], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"id\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.hasPrivilege) ? _c('div', [_vm._v(_vm._s(scope.row.id))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'index_detail',\n query: {\n indexId: scope.row.id,\n indexName: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.id))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"索引名\",\n \"min-width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.hasPrivilege) ? _c('div', [_vm._v(_vm._s(scope.row.indexName))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'index_detail',\n query: {\n indexId: scope.row.id,\n indexName: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.indexName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"索引描述\",\n \"show-overflow-tooltip\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.description || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"所属集群\",\n \"min-width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.hasClusterPrivilege || !scope.row.httpAddress) ? _c('div', [_vm._v(_vm._s(scope.row.clusterName))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'cluster_detail',\n query: {\n clusterId: scope.row.clusterName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.clusterName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"数据源\",\n \"width\": \"70px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.dataSourceList.length))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"创建人\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.createUser || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"更新时间\",\n \"prop\": \"updateTime\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.hasPrivilege) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-edit\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"管理\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleManage(scope.$index, scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-bars\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1) : _vm._e()]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.indexList.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.indexList.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isIndexInfoVisible) ? _c('div', [_c('index-info-dialog', {\n attrs: {\n \"index-operation\": _vm.indexOperation,\n \"index-info-title\": _vm.indexInfoTitle,\n \"index-info\": _vm.indexInfo,\n \"clusters\": _vm.clusters\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1515 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"tm-body\"\n }, [_c('ol', {\n staticClass: \"tm-items\"\n }, [_vm._t(\"default\")], 2)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1516 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.flowRecordList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"记录id\",\n \"prop\": \"id\",\n \"width\": \"100px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"采集规则ID\",\n \"prop\": \"configId\",\n \"width\": \"100px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最后更新时间\",\n \"prop\": \"updateTime\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"抽样系数\",\n \"prop\": \"sampleRate\",\n \"min-width\": \"110\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"目标采集数\",\n \"prop\": \"limit\",\n \"min-width\": \"110\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"当前采集数\",\n \"prop\": \"total\",\n \"min-width\": \"110\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"采集进度\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.percentage) + \"%\")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"状态\",\n \"prop\": \"state\",\n \"min-width\": \"50\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.state != 3 ? 'success' : 'danger'\n }\n }, [_vm._v(_vm._s(_vm.flowRecordStateMap[scope.row.state]))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [(_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.total > 0),\n expression: \"scope.row.total > 0\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.exportFlow(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-file\"\n }), _vm._v(\"导出\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.state != 2 && scope.row.state != 3),\n expression: \"scope.row.state != 2 && scope.row.state != 3\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.stopRecord(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-stop-circle-o\"\n }), _vm._v(\"终止\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.state == 2 || scope.row.state == 3),\n expression: \"scope.row.state == 2 || scope.row.state == 3\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-trash\"\n }), _vm._v(\"删除\")])])]) : _vm._e()], 1)], 1)]\n }\n }])\n })], 1)], _vm._v(\" \"), (_vm.total > 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()\n ], 2)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1517 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"代理管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [(_vm.isPrivilege) ? _c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.batchUpdateRoute\n }\n }, [_vm._v(\"批量更新路由\")])], 1) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedCluster),\n callback: function($$v) {\n _vm.selectedCluster = $$v\n },\n expression: \"selectedCluster\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部集群\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.clusters), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedPool),\n callback: function($$v) {\n _vm.selectedPool = $$v\n },\n expression: \"selectedPool\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部节点集\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.poolList), function(pool) {\n return _c('el-option', {\n key: pool,\n attrs: {\n \"label\": pool,\n \"value\": pool\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"delete\"\n },\n on: {\n \"click\": _vm.handleDeleteExpired\n }\n }, [_vm._v(\"删除离线数据(3天前)\")])], 1)], 1)], 1)]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n ref: \"multipleTable\",\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.agentList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"selection-change\": _vm.handleSelectionChange\n }\n }, [_c('el-table-column', {\n attrs: {\n \"type\": \"selection\",\n \"width\": \"55\",\n \"selectable\": _vm.setSelectable\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"ID\",\n \"prop\": \"id\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"IP端口\",\n \"prop\": \"ipport\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"代理集群\",\n \"prop\": \"cluster\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"节点集\",\n \"props\": \"pools\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.pools || Object.keys(JSON.parse(scope.row.pools)).length === 0) ? _c('span', {\n staticClass: \"target-group-item\",\n attrs: {\n \"close-transition\": \"\"\n }\n }, [_vm._v(\"default\")]) : _vm._e(), _vm._v(\" \"), (scope.row.pools) ? _c('span', _vm._l(((JSON.parse(scope.row.pools))), function(item) {\n return _c('span', {\n key: item,\n staticClass: \"target-group-item\",\n attrs: {\n \"close-transition\": \"\"\n }\n }, [_c('div', [_vm._v(_vm._s(item))])])\n }), 0) : _vm._e()]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"节点状态\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.healthy ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateState\")(scope.row.healthy)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"当前QPS\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"currentQps\")(scope.row)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"连接数\",\n \"width\": \"60px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"currentConns\")(scope.row)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Req.volume\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"currentReceiveClientThrougph\")(scope.row)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Res.volume\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"currentReceiveEsThrougph\")(scope.row)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"启用\",\n \"width\": \"60px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.takeTraffic ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(scope.row.takeTraffic ? '是' : '否'))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最后上报时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"节点信息\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.getInfo(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-envelope\"\n })])], 1), _vm._v(\" \"), (scope.row.healthy) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"更新路由\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.updateRoute(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-repeat\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.takeTraffic) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"停用\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRemoveTraffic(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-level-down\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (!scope.row.takeTraffic) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"启用\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRecoverTraffic(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-level-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (!scope.row.healthy) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1) : _vm._e()]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAgentInfoVisible) ? _c('div', [_c('json-content-dialog', {\n attrs: {\n \"title\": _vm.viewInfoTitle,\n \"content\": _vm.viewInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1518 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"导入Mysql数据源\",\n \"before-close\": _vm.handleClose\n },\n model: {\n value: (_vm.isDsImportVisible),\n callback: function($$v) {\n _vm.isDsImportVisible = $$v\n },\n expression: \"isDsImportVisible\"\n }\n }, [_c('el-form', [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-form-item', [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": \"/pallas/ds/import.json\",\n \"auto-upload\": false,\n \"multiple\": false,\n \"file-list\": _vm.fileList,\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"点击上传\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"el-upload__tip\",\n attrs: {\n \"slot\": \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(\"请上传文本文件,每行一条数据源,内容以空格分开\"), _c('br'), _vm._v(\"字段分别为:ip port user passwd database table\")])], 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.submitImportDs\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1519 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticStyle: {\n \"width\": \"100%\",\n \"height\": \"300px\"\n },\n attrs: {\n \"id\": _vm.id\n }\n })])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1520 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"target-group\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [(_vm.privilege) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"添加节点集\")]) : _vm._e(), _vm._v(\" \"), (JSON.stringify(_vm.routingTargetGroupsList) != '{}') ? _c('el-select', {\n on: {\n \"change\": _vm.changeShowTreeInfo\n },\n model: {\n value: (_vm.selectedShowTreeInfo),\n callback: function($$v) {\n _vm.selectedShowTreeInfo = $$v\n },\n expression: \"selectedShowTreeInfo\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"展示节点名称\",\n \"value\": \"name\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"展示节点地址\",\n \"value\": \"address\"\n }\n })], 1) : _vm._e()], 1), _vm._v(\" \"), (JSON.stringify(_vm.routingTargetGroupsList) === '{}') ? _c('div', {\n staticClass: \"target-group-null\"\n }, [_c('span', [_vm._v(\"请添加节点集\")])]) : _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, _vm._l((_vm.routingTargetGroupsList), function(item, index) {\n return _c('el-col', {\n key: item.id,\n attrs: {\n \"span\": 12\n }\n }, [_c('target-group-item', {\n attrs: {\n \"privilege\": _vm.privilege,\n \"target-group-tree-no-children\": JSON.parse(JSON.stringify(_vm.targetGroupTreeNoChildren)),\n \"target-group-tree\": JSON.parse(JSON.stringify(_vm.targetGroupTree)),\n \"targetGroupItemInfo\": item,\n \"selected-show-tree-info\": _vm.selectedShowTreeInfo\n },\n on: {\n \"save-operation\": _vm.saveOperation,\n \"delete-operation\": _vm.deleteOperation\n }\n })], 1)\n }), 1)], 1), _vm._v(\" \"), (_vm.istargetGroupInfoVisible) ? _c('div', [_c('target-group-info-dialog', {\n attrs: {\n \"target-group-info\": _vm.targetGroupInfo,\n \"target-group-info-title\": _vm.targetGroupInfoTitle\n },\n on: {\n \"operation-success\": _vm.operationSuccess,\n \"close-dialog\": _vm.closeTargetGroupDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1521 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"delete\"\n },\n on: {\n \"click\": _vm.handleDelete\n }\n }, [_vm._v(\"删除索引动态(3月前)\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', [_c('el-select', {\n on: {\n \"change\": _vm.getOperationList\n },\n model: {\n value: (_vm.selectedType),\n callback: function($$v) {\n _vm.selectedType = $$v\n },\n expression: \"selectedType\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部事件\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.typeList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-select', {\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n on: {\n \"change\": _vm.getOperationList\n },\n model: {\n value: (_vm.filterVersion),\n callback: function($$v) {\n _vm.filterVersion = $$v\n },\n expression: \"filterVersion\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部版本\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.versionIdList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-date-picker', {\n attrs: {\n \"type\": \"datetimerange\",\n \"placeholder\": \"选择时间范围\"\n },\n on: {\n \"change\": _vm.getOperationList\n },\n model: {\n value: (_vm.timeRange),\n callback: function($$v) {\n _vm.timeRange = $$v\n },\n expression: \"timeRange\"\n }\n }), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.getOperationList\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, _vm._l((_vm.chartList), function(chartData, index) {\n return (_vm.isChartVisible) ? _c('el-row', {\n key: index,\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple-dark\",\n attrs: {\n \"align\": \"center\"\n }\n }, [_vm._v(_vm._s(chartData.rate.name))])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Rate(\" + (chartData.rate.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchRate\",\n \"option-info\": chartData.rate\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Latency(\" + (chartData.latency.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchLatency\",\n \"option-info\": chartData.latency\n }\n })], 1)])], 1)], 1) : _vm._e()\n }), 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [(_vm.operationList.length === 0) ? _c('div', {\n staticClass: \"empty-operation\"\n }, [_vm._v(\"暂无数据\")]) : _c('Timeline', _vm._l((_vm.operationList), function(op) {\n return _c('Timeline-item', {\n key: op.id\n }, [_c('div', {\n staticStyle: {\n \"margin-top\": \"-8px\"\n },\n attrs: {\n \"slot\": \"date\"\n },\n slot: \"date\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm._f(\"formatOnlyDate\")(op.operationTime))), _c('br'), _vm._v(_vm._s(_vm._f(\"formatOnlyTime\")(op.operationTime)) + \"\\n \")]), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"-8px\"\n },\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_vm._v(\"\\n \" + _vm._s(op.eventType)), _c('br'), _vm._v(_vm._s(op.eventName) + \"\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"operation-content\",\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_vm._v(\"操作员:\")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 9\n }\n }, [_vm._v(_vm._s(op.operator || '无'))]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_vm._v(\"版本号:\")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 9\n }\n }, [_vm._v(_vm._s(op.versionId || '无'))]), _vm._v(\" \"), (op.isShowIcon) ? _c('div', [_c('el-col', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!op.isFold),\n expression: \"!op.isFold\"\n }],\n attrs: {\n \"span\": 2\n }\n }, [_c('div', {\n attrs: {\n \"align\": \"right\"\n }\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n op.isFold = !op.isFold\n }\n }\n }, [_c('i', {\n staticClass: \"el-icon-arrow-down\"\n })])])]), _vm._v(\" \"), _c('el-col', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (op.isFold),\n expression: \"op.isFold\"\n }],\n attrs: {\n \"span\": 2\n }\n }, [_c('div', {\n attrs: {\n \"align\": \"right\"\n }\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n op.isFold = !op.isFold\n }\n }\n }, [_c('i', {\n staticClass: \"el-icon-arrow-right\"\n })])])])], 1) : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n class: [op.isFold ? 'operation-content-fold' : 'operation-content-unfold']\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_vm._v(\"操作内容:\")]), _vm._v(\" \"), _c('el-col', {\n staticStyle: {\n \"word-wrap\": \"break-word\"\n },\n attrs: {\n \"span\": 22\n }\n }, [_vm._v(_vm._s(op.eventDetail || '无'))])], 1)], 1)], 1)])\n }), 1), _vm._v(\" \"), (_vm.operationData.total != 0) ? _c('div', {\n staticClass: \"dynamic-pagination\",\n attrs: {\n \"align\": \"right\"\n }\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.operationData.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()], 1), _vm._v(\" \"), (_vm.isDynamicInfoVisible) ? _c('div', [_c('dynamic-info-dialog', {\n attrs: {\n \"dynamic-operation\": _vm.dynamicOperation,\n \"dynamic-info-title\": _vm.dynamicInfoTitle,\n \"dynamic-info\": _vm.dynamicInfo,\n \"typeList\": _vm.typeList,\n \"versionIdList\": _vm.versionIdList\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1522 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"target-group\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [(_vm.privilege) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"添加节点集\")]) : _vm._e(), _vm._v(\" \"), (JSON.stringify(_vm.routingTargetGroupsList) != '{}') ? _c('el-select', {\n on: {\n \"change\": _vm.changeShowTreeInfo\n },\n model: {\n value: (_vm.selectedShowTreeInfo),\n callback: function($$v) {\n _vm.selectedShowTreeInfo = $$v\n },\n expression: \"selectedShowTreeInfo\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"展示节点名称\",\n \"value\": \"name\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"展示节点地址\",\n \"value\": \"address\"\n }\n })], 1) : _vm._e()], 1), _vm._v(\" \"), (JSON.stringify(_vm.routingTargetGroupsList) === '{}') ? _c('div', {\n staticClass: \"target-group-null\"\n }, [_c('span', [_vm._v(\"请添加节点集\")])]) : _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, _vm._l((_vm.routingTargetGroupsList), function(item, index) {\n return _c('el-col', {\n key: item.id,\n attrs: {\n \"span\": 12\n }\n }, [_c('target-group-item', {\n attrs: {\n \"privilege\": _vm.privilege,\n \"target-group-tree-no-children\": JSON.parse(JSON.stringify(_vm.targetGroupTreeNoChildren)),\n \"target-group-tree\": JSON.parse(JSON.stringify(_vm.targetGroupTree)),\n \"targetGroupItemInfo\": item,\n \"selected-show-tree-info\": _vm.selectedShowTreeInfo\n },\n on: {\n \"save-operation\": _vm.saveOperation,\n \"delete-operation\": _vm.deleteOperation\n }\n })], 1)\n }), 1)], 1), _vm._v(\" \"), (_vm.istargetGroupInfoVisible) ? _c('div', [_c('target-group-info-dialog', {\n attrs: {\n \"target-group-info\": _vm.targetGroupInfo,\n \"target-group-info-title\": _vm.targetGroupInfoTitle\n },\n on: {\n \"operation-success\": _vm.operationSuccess,\n \"close-dialog\": _vm.closeTargetGroupDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1523 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'index_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"索引管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.indexName) + \"(\" + _vm._s(_vm.indexId) + \")\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"page-tab\"\n }, [_c('el-tabs', {\n on: {\n \"tab-click\": _vm.onTabClick\n },\n model: {\n value: (_vm.activeTab),\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"name\": \"version_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-share-alt\"\n }), _vm._v(\"版本管理\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"template_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"模板管理\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"route_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-sitemap\"\n }), _vm._v(\"路由管理\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"service_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-server\"\n }), _vm._v(\"服务治理\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"dynamic_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-sort-amount-asc\"\n }), _vm._v(\"索引动态\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"flow_record\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-camera\"\n }), _vm._v(\"流量记录\")])])], 1), _vm._v(\" \"), _c('router-view')], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 1524 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.configInfoTitle,\n \"size\": \"small\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isconfigInfoVisible),\n callback: function($$v) {\n _vm.isconfigInfoVisible = $$v\n },\n expression: \"isconfigInfoVisible\"\n }\n }, [_c('el-form', {\n ref: \"configInfo\",\n attrs: {\n \"model\": _vm.configInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"140px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"目标模板\",\n \"prop\": \"templateId\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.configInfo.templateId),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"templateId\", $$v)\n },\n expression: \"configInfo.templateId\"\n }\n }, _vm._l((_vm.templates), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.templateName,\n \"value\": item.id\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采集开始时间\",\n \"prop\": \"startTime\",\n \"required\": \"\"\n }\n }, [_c('el-date-picker', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"type\": \"datetime\",\n \"placeholder\": \"选择开始时间\"\n },\n model: {\n value: (_vm.configInfo.startTime),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"startTime\", $$v)\n },\n expression: \"configInfo.startTime\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采集结束时间\",\n \"prop\": \"endTime\",\n \"required\": \"\"\n }\n }, [_c('el-date-picker', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"type\": \"datetime\",\n \"placeholder\": \"选择结束时间\"\n },\n model: {\n value: (_vm.configInfo.endTime),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"endTime\", $$v)\n },\n expression: \"configInfo.endTime\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"抽样系数\",\n \"prop\": \"sampleRate\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"范围0到1\"\n },\n model: {\n value: (_vm.configInfo.sampleRate),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"sampleRate\", $$v)\n },\n expression: \"configInfo.sampleRate\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采集数量\",\n \"prop\": \"limit\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.configInfo.limit),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"limit\", $$v)\n },\n expression: \"configInfo.limit\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"note\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.configInfo.note),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"note\", $$v)\n },\n expression: \"configInfo.note\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitconfigInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 1525 */,\n/* 1526 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a \r\n\n\n\n// WEBPACK FOOTER //\n// Login.vue?174fd0aa","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ace_editor.vue?eb8ea1c2","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// chart_container.vue?5730d490","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// column.vue?15731140","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// line.vue?7bb479e6","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// pie.vue?4a924340","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// json_content.vue?509ae875","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// json_diff.vue?46ea16ce","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// navbar.vue?f43b635c","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// panel.vue?490e9d30","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// version_footer.vue?e91fe1b0","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// agent_manage.vue?ddd5ad74","\r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// approve_dialog.vue?72d4caf1","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// authority_manage.vue?57ba0198","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// authority_manage_administrator.vue?77754dac","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_dashboard.vue?c571c838","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_detail.vue?990a3186","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_info_dialog.vue?57ffbbf0","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_manage.vue?5f926bf2","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_node_restart.vue?4eea53fd","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_condition_info_dialog.vue?67cd6e14","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_condition_item.vue?35eb9b14","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_conditions.vue?97e41ffa","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_route_manage.vue?14162642","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_target_group.vue?7cb4497a","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_target_group_info_dialog.vue?1b4e88b5","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_target_group_item.vue?26d70a3d","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cluster_monitor.vue?54eef9cc","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// custom_time_dialog.vue?1fb7fc70","\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// indice_detail.vue?095fbd0a","\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// indices_monitor.vue?510862de","\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// node_detail.vue?aa602be4","\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// nodes_monitor.vue?dafb3f7e","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// overview.vue?aab71fac","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cron_delete_dialog.vue?6510a684","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// cron_delete_manage.vue?dac35720","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// dynamic_manage.vue?6f16f818","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// dynamic_manage_dialog.vue?15c36aae","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// flow_record.vue?e854ce4a","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// config_info_dialog.vue?6c5bfcc7","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// flow_record_config.vue?18481713","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// flow_record_export.vue?439f7ee6","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// index_detail.vue?5ddcbe13","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// condition_info_dialog.vue?7f839a1c","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// condition_item.vue?4cc4d7d1","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// conditions.vue?219a518d","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// route_manage.vue?567e0b14","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// target_group.vue?a397e4f2","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// target_group_info_dialog.vue?99dbfc80","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// target_group_item.vue?296a0c1b","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// service_manage.vue?438e4850","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// throttling_manage.vue?12400338","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// timeout_retry_manage.vue?c4767b48","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_add_dialog.vue?537c2ebe","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_batch_submit_dialog.vue?5736c5e7","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// profile_content.vue?83f2e21a","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// service_governance.vue?748f09fd","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_config_dialog.vue?262a6ff9","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_edit.vue?7ec2279e","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_insert_dialog.vue?469d762c","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_save_edit_dialog.vue?4298e5d4","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_test.vue?8d7693ba","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_test_data_source.vue?214641d8","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_test_params.vue?4318c40a","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_test_upload.vue?821eb44e","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_export_dialog.vue?a5def028","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_import_dialog.vue?9cd8b4cc","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// template_manage.vue?53ae1c04","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// preheading_dialog.vue?18ff7e98","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// schema_child_dialog.vue?466936c0","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// schema_copy_to_dialog.vue?3f829f72","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// schema_import_dialog.vue?8cf34844","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// schema_multi_field_dialog.vue?5c9e82ab"," \r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// version_dynamic_info_dialog.vue?abd7c988"," \r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// version_info_dialog.vue?3a04b86c","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// version_manage.vue?03e3993d","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// datasource_import_dialog.vue?31667ed8","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// index_data_source_item.vue?54da755b","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// index_data_sources.vue?2b6191b2","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// index_info_dialog.vue?235f3b7f","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// index_manage.vue?5ab5c958","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// permission_manage.vue?62c6627a","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// user_info_dialog.vue?551eea53","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// user_manage.vue?7b17c3aa","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// plugin_info_dialog.vue?94406c0e","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// plugin_manage.vue?0962d016","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// plugin_upgrade.vue?aa2f880c","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// token_detail.vue?14b9435c","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// token_index.vue?cd1b9c92","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// token_info_dialog.vue?0ae71bb4","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// token_manage.vue?07adb8ad","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".target-group-transfer .el-transfer-panel{min-width:43%}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-03d62ab5\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/route_manage/condition_info_dialog/condition_info_dialog.vue\n// module id = 989\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".template-config[data-v-03f7eaf3]{height:500px;margin:15px;color:#fff}.template-config-content .title[data-v-03f7eaf3]{font-weight:700;font-size:16px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-03f7eaf3\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_edit/template_config_dialog.vue\n// module id = 990\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".chart-no-data{line-height:300px;text-align:center;color:red}.chart-no-data i{margin-right:10px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-068da9a0\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/charts/chart_no_data.vue\n// module id = 991\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-0697b1eb\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/service_manage/throttling_manage.vue\n// module id = 992\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".panel[data-v-07add241]{background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-default-info[data-v-07add241]{background-color:#3d3d3d;padding-top:10px;padding-bottom:5px;border:1px solid #262626;opacity:.8}.panel-danger-info[data-v-07add241]{background-color:#c00;padding-top:10px;padding-bottom:5px;text-decoration:none;opacity:.8}.panel-danger-info[data-v-07add241]:hover{background-color:red}.panel-warning-info[data-v-07add241]{background-color:#f80;padding-top:10px;padding-bottom:5px;text-decoration:none;opacity:.8}.panel-success-info[data-v-07add241]{background-color:#67c23a;padding-top:10px;padding-bottom:5px;text-decoration:none;opacity:.8}.panel-content-title[data-v-07add241]{text-align:center;color:#fff;font-size:15px;word-wrap:break-word;word-break:normal}.panel-content-body[data-v-07add241]{text-align:center;color:#fff;font-size:22px;padding-top:5px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-07add241\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/panel.vue\n// module id = 993\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".token-index{margin-top:3px}.token-index .el-radio-button--small .el-radio-button__inner{padding:3px 5px}.el-table th,.token-index .el-table td{height:36px}.token-index .el-table th>.cell{line-height:36px}.el-table th>div,.token-index .el-table .cell{padding-top:0;padding-bottom:0}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-09d2d77b\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/token_manage/token_index.vue\n// module id = 994\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".label-title{height:30px;line-height:30px;margin-bottom:5px;padding-left:5px;background-color:#333}.label-title .span-title{color:#eee;font-size:15px;margin-right:5px}.label-content{margin:10px 15px 20px}.label-content span{color:#eee}.version-info-dialog .el-dialog__body{padding:10px 5px 10px 0}.version-info-dialog .el-dialog__footer{padding:10px 20px 0 0}.version-info-dialog .el-form-item,.version-info-dialog form{margin-bottom:0}.red{color:red}.version-info-dialog .el-button--text{color:#eee}.el-button--text:hover,.version-info-dialog .el-button--text:focus{color:gray}.version-info-dialog .el-checkbox{color:#eee}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-09f884c0\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/version_manage/version_info_dialog/version_dynamic_info_dialog.vue\n// module id = 995\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".batch-submit-template{margin:10px}.batch-submit-template .el-transfer-panel{width:250px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-1e4630ac\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_batch_submit_dialog/template_batch_submit_dialog.vue\n// module id = 996\n// module chunks = 1","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".edit-save-span{color:#fff;font-size:15px;font-weight:bolder;padding:15px 40px}.edit-save-span i{color:red}.edit-save-span span{color:#32cd32}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-1f2cf12e\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_edit/template_save_edit_dialog/template_save_edit_dialog.vue\n// module id = 997\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".export-template{margin:10px}.export-template .el-transfer-panel{width:250px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-1f69898c\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_export_dialog/template_export_dialog.vue\n// module id = 998\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".panel-container[data-v-22a7638e]{border:1px solid gray;margin-bottom:20px}.panel-container .panel-header[data-v-22a7638e]{color:#eee;background-color:#373a3c;border-bottom:1px solid gray;height:35px;line-height:35px;padding:0 10px}.panel-container .panel-header i[data-v-22a7638e]{height:35px;line-height:35px}.panel-container .panel-body[data-v-22a7638e]{background-color:#373a3c}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-22a7638e\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/charts/chart_container.vue\n// module id = 999\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-24c25358\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/authority_manage/approve_dialog/approve_dialog.vue\n// module id = 1000\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".condition-add[data-v-254d07b9]{margin:10px 5px}.condition-add .warning i[data-v-254d07b9]{color:red}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-254d07b9\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_conditions.vue\n// module id = 1001\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".plugin-version .el-button+.el-button{margin-left:0}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-2792b3e0\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/plugin_manage/plugin_manage.vue\n// module id = 1002\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".target-group-transfer .el-transfer-panel{min-width:43%}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-2c392ae4\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_info_dialog.vue\n// module id = 1003\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-2df26081\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/plugin_manage/plugin_upgrade.vue\n// module id = 1004\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".condition-add[data-v-2eb1c088]{margin:10px 5px}.condition-add .warning i[data-v-2eb1c088]{color:red}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-2eb1c088\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/route_manage/condition_info_dialog/conditions.vue\n// module id = 1005\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".clusters-select{width:100%}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-313183c4\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/cron_delete/cron_delete_dialog/cron_delete_dialog.vue\n// module id = 1006\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".copy-to-field{margin:10px}.copy-to-field .el-transfer-panel{width:250px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-398453ce\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/version_manage/version_info_dialog/schema_copy_to_dialog.vue\n// module id = 1007\n// module chunks = 1","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".login-box{margin:15% auto;width:400px;border:1px solid gray;border-radius:6px}.login-box .login-header{color:#eee;padding:10px;border-bottom:1px solid gray}.login-box .login-body{padding:20px 40px}.login-box .login-body .el-row{margin-bottom:20px}.login-box .login-body .el-row:last-child{margin-bottom:0}.login-box .login-body .msg-error{position:relative;background:#ffebeb;color:#e4393c;border:1px solid #faccc6;line-height:15px;font-size:13px;padding:3px 10px;margin-bottom:10px}.login-box .login-body .msg-error i{margin-right:5px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-3cf02651\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/Login.vue\n// module id = 1008\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".template_content{display:table;width:100%}.template_tree{padding-right:30px;display:table-cell;width:245px}.template-warning{text-align:center;color:red;font-size:larger;font-weight:bolder;display:table-cell;vertical-align:middle}.template-warning i{padding-right:10px}.template-body{display:table-cell}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-46505c67\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_manage.vue\n// module id = 1009\n// module chunks = 1","exports = module.exports = require(\"../../../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".template-test-upload .el-table--enable-row-hover .el-table__body tr:hover>td{background-color:transparent}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-488cf774\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_edit/template_test/template_test_upload/template_test_upload.vue\n// module id = 1010\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-49b3d5b8\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_add_dialog/template_add_dialog.vue\n// module id = 1011\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".target-group-item{margin-right:5px}.condition-table+.condition-table{border-top:1px solid gray}.condition-table span{white-space:nowrap}.route-tag{margin-bottom:5px}.route-weight{color:#7fffd4;font-size:12px;margin-left:3px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-49b75a1e\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/route_manage/route_manage.vue\n// module id = 1012\n// module chunks = 1","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".index-timeout-retry[data-v-4ac0cba8]{margin:10px 0 20px;font-size:15px}.index-timeout-retry span[data-v-4ac0cba8]{color:#32cd32}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-4ac0cba8\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_edit/service_governance/service_governance.vue\n// module id = 1013\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-4f473ceb\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/charts/line.vue\n// module id = 1014\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".template-content .template-title{color:#fff;line-height:30px}.template-content .template-title .template-name{color:#32cd32;font-weight:700;margin-right:15px}.template-content .template-title .template-approving{color:red;margin-left:10px;font-weight:400}.template-content .template-title .template-approving a{color:red}.template-content .template-title .template-approving a:hover{color:rgba(255,0,0,.7)}.result-content .el-textarea__inner{background-color:#272822}.api-content{padding:5px;background-color:#222;color:#fff}.no-border{border:none}.debug-title{width:100%;margin-bottom:5px;height:30px;line-height:30px}.template-edit-content{height:650px;width:100%;overflow-y:auto;float:left}.template-edit-and-version-content{height:650px;width:62%;float:left}.template-history-version-content{position:relative;width:38%;float:left}.template-history-version-content table{font-size:10px}.template-history-version-content .el-table .cell{line-height:normal}.template-history-version-content .el-table tr:hover{cursor:pointer}.render-cluster{margin-left:15px}.render-cluster>span{font-size:16px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-561d54ec\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_edit/template_edit.vue\n// module id = 1015\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".target-group-item{margin-right:5px}.condition-table+.condition-table{border-top:1px solid gray}.condition-table span{white-space:nowrap}.route-tag{margin-bottom:5px}.route-weight{color:#7fffd4;font-size:12px;margin-left:3px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-5a52933d\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_route_manage.vue\n// module id = 1016\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".schema-content{margin-bottom:10px}.nested-input{width:50%}.schema-info-dialog .el-dialog__footer{padding:10px 20px 15px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-5ec20ad7\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/version_manage/version_info_dialog/schema_child_dialog.vue\n// module id = 1017\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-62398862\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/token_manage/token_info_dialog.vue\n// module id = 1018\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-651b10be\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_source_item.vue\n// module id = 1019\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".profile-template .el-collapse-item__header{padding-left:5px;background-color:#272822}.profile-template .el-collapse-item__content{padding:0 1px}.profile-tree .profile-tree-th{color:#aaa;font-size:xx-small;background-color:#272822}.profile-tree .el-tree{border:none;color:#eee;background-color:#272822}.profile-tree-type{font-size:14px;margin-right:10px}.profile-tree-desc{font-size:10px;color:#bbb;font-style:italic}.profile-tree-time{margin-right:10px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-663e0a40\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_edit/profile_content.vue\n// module id = 1020\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".clusters-select{width:100%}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-665e8c82\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_manage/index_info_dialog/index_info_dialog.vue\n// module id = 1021\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".cluster_restart_setting[data-v-66714b9d],.cluster_restart_tab[data-v-66714b9d]{margin-bottom:10px}.cluster_restart_setting .el-button--text[data-v-66714b9d]:focus,.cluster_restart_setting .el-button--text[data-v-66714b9d]:hover{color:#fff}.cluster_restart_setting .el-table .cell[data-v-66714b9d],.el-table th>div[data-v-66714b9d]{padding-top:0;padding-bottom:0}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-66714b9d\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/cluster_manage/cluster_node_restart/cluster_node_restart.vue\n// module id = 1022\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".template-import-upload{margin:0 20px 20px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-6a399cac\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_import_dialog/template_import_dialog.vue\n// module id = 1023\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".monitor-top{margin-bottom:10px}.monitor-top .el-table .cell,.monitor-top .el-table th>div{padding-top:0;padding-bottom:0}.monitor-top .el-table td,.monitor-top .el-table th.is-leaf{border-bottom:none}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-6abbcaee\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/cluster_manage/monitor/cluster_monitor.vue\n// module id = 1024\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".my-container[data-v-6ba933be]{height:100%}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-6ba933be\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/container.vue\n// module id = 1025\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".token-name-span{color:#32cd32;font-weight:700;margin-right:10px}.token-cluster{margin-top:5px;overflow:auto}.token-index,.token-pool{margin-top:5px}.title-span{font-size:14px;margin-right:10px}.token-cluster-tree{margin-top:10px;position:relative;overflow:auto}.pool-offline{text-decoration:line-through;color:#ff4949}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-6e49b110\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/token_manage/token_detail.vue\n// module id = 1026\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".plugin-upload{margin-left:50px}.plugin-upload-tooltip.el-tooltip__popper.is-dark{background:#333}.plugin-upload-warning{margin-left:50px;color:red}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-72296124\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/plugin_manage/plugin_info_dialog/plugin_info_dialog.vue\n// module id = 1027\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-75903d1a\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/version_manage/preheading_dialog.vue\n// module id = 1028\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".schema-content{margin-bottom:10px}.schema-info-dialog .el-dialog__footer{padding:10px 20px 15px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-77b5a77f\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/version_manage/version_info_dialog/schema_multi_field_dialog.vue\n// module id = 1029\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".data-source-content{margin:-10px 0 10px}.data-source-add{padding:5px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-7910bf22\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_sources.vue\n// module id = 1030\n// module chunks = 1","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".template-test{margin:0 10px}.template-test .template-test-content{margin:0 0 10px}.template-test .template-test-content .template-test-tips{margin-top:5px;color:red;font-size:13px}.template-test .template-test-content .template-test-head{background-color:gray;height:25px;border-radius:4px;padding-left:5px;font-size:15px}.template-test-popper{background-color:#222;border:none}.template-test-popper .popper-button{float:left;padding:5px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-7c6ff3dc\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_edit/template_test/template_test.vue\n// module id = 1031\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".target-group-item[data-v-7ef147c0]{margin-bottom:15px}.target-group-item[data-v-7ef147c0]:hover{box-shadow:0 1px 20px #d1dbe5}.target-group-item .target-group-header[data-v-7ef147c0]{padding:10px;border:1px solid gray;height:25px;background-color:#373a3c}.target-group-item .target-group-header .title[data-v-7ef147c0]{background-color:#13ce66;border-radius:4px;padding:5px 10px}.target-group-item .target-group-content .el-tree[data-v-7ef147c0]{border:1px solid gray}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-7ef147c0\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_item.vue\n// module id = 1032\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ins,.match,.text-diff span,ins{color:#fff}.ins,ins{background:#0a3}.del,del{color:#fff;background:#980000}.noselect{user-select:none}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-98624a8e\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/json_diff.vue\n// module id = 1033\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".footer{position:fixed;bottom:0;width:100%}.footer p{text-align:center;color:hsla(0,0%,75%,.5);margin-top:0;margin-bottom:0;font-size:13px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-9a531316\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/version_footer.vue\n// module id = 1034\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".label-title{height:30px;line-height:30px;margin-bottom:5px;padding-left:5px;background-color:#333}.label-title .span-title{color:#eee;font-size:15px;margin-right:5px}.label-content{margin:10px 15px 20px}.label-content span{color:#eee}.version-info-dialog .el-dialog__body{padding:10px 5px 10px 0}.version-info-dialog .el-dialog__footer{padding:10px 20px 0 0}.version-info-dialog .el-form-item,.version-info-dialog form{margin-bottom:0}.red{color:red}.version-info-dialog .el-button--text{color:#eee}.el-button--text:hover,.version-info-dialog .el-button--text:focus{color:gray}.version-info-dialog .el-checkbox{color:#eee}.source-setting{padding:10px 10px 10px 6px;border:1px solid gray}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-9e196880\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/version_manage/version_info_dialog/version_info_dialog.vue\n// module id = 1035\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".template-insert-dialog .el-dialog--small{width:auto;min-width:700px}.template-insert{margin:15px;color:#fff}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-a725a9c8\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/template_manage/template_edit/template_insert_dialog.vue\n// module id = 1036\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".target-group-item[data-v-aeee314e]{margin-bottom:15px}.target-group-item[data-v-aeee314e]:hover{box-shadow:0 1px 20px #d1dbe5}.target-group-item .target-group-header[data-v-aeee314e]{padding:10px;border:1px solid gray;height:25px}.target-group-item .target-group-header .title[data-v-aeee314e]{background-color:#13ce66;border-radius:4px;padding:5px 10px}.target-group-item .target-group-content .el-tree[data-v-aeee314e]{height:200px;overflow:auto;border:1px solid gray}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-aeee314e\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/route_manage/target_group/target_group_item.vue\n// module id = 1037\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".token-table .el-table--enable-row-transition .el-table__body td{text-align:left}.token-warning{text-align:center;color:red;font-size:larger;font-weight:bolder;vertical-align:middle}.token-warning i{padding-right:10px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-c969fae8\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/token_manage/token_manage.vue\n// module id = 1038\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ace_scrollbar-h::-webkit-scrollbar,.ace_scrollbar-v::-webkit-scrollbar{width:8px;height:8px;border-radius:8px}.ace_scrollbar-h::-webkit-scrollbar-thumb,.ace_scrollbar-v::-webkit-scrollbar-thumb{border-radius:8px;background-color:hsla(220,4%,58%,.5)}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-cffbcb88\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/ace_editor.vue\n// module id = 1039\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".navbar{width:100%;display:table}.navbar-title{display:table-cell;background-color:#373a3c;color:#fff;height:60px;line-height:60px;font-weight:700;width:260px}.navbar-title span img{float:left;padding:10px 10px 0 25px}.navbar-content{display:table-cell;vertical-align:middle}.navbar-content ul{background-color:#373a3c;border-radius:0}.logout-a-link{text-decoration:initial}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-d2aef8ba\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/navbar.vue\n// module id = 1040\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".my-table-expand{font-size:0;padding-left:100px}.my-table-expand label{width:90px;color:#99a9bf}.my-table-expand .el-form-item{margin-right:0;margin-bottom:0;width:33.3333333%;text-align:left}.data-source-text{margin-right:8px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-dd129428\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_manage/index_manage.vue\n// module id = 1041\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".tm-body{background:#373a3c none repeat scroll 0 0;border-radius:4px;margin-left:5px;margin-right:5px}.tm-body:after{bottom:0;content:\\\"\\\";display:block;height:65%;left:146px;position:absolute;width:3px;z-index:0}.tm-items{list-style:outside none none;margin:0;padding:0;position:relative;font-size:14px}.tm-items:before{background-color:#eee;bottom:0;content:\\\" \\\";left:127px;position:absolute;top:0;width:3px}.tm-items>li{margin:30px 0;min-height:65px;padding:0 0 0 190px;position:relative;z-index:1}.tm-items>li .tm-icon{background-color:#373a3c;border-color:#08c;border-radius:126px;color:#ccc;font-size:22px;height:25px;left:66px;line-height:25px;margin-left:50px;margin-top:-17px;padding-top:5px;position:absolute;text-align:center;top:50%;width:25px;z-index:2}.tm-items>li .tm-datetime{left:0;margin-left:3px;text-align:right}.tm-items>li .tm-datetime,.tm-items>li .tm-item{height:48px;margin-top:-17px;padding-top:5px;position:absolute;top:50%;width:100px;z-index:3}.tm-items>li .tm-item{color:#ccc;font-weight:700;left:150px;text-align:left}.tm-items>li .tm-timeline-box{left:140px;line-height:29px;margin-left:-30px;margin-top:-20px;position:absolute;text-align:center;top:50%;width:120px;z-index:2}.tm-items>li .tm-timeline-box .tm-timeline{background-color:#428bca;padding-left:2px;text-align:left}.tm-items>li .tm-ratio{line-height:29px;text-align:left}.tm-items>li .tm-box{background:#222 none repeat scroll 0 0;border:1px solid #222;border-radius:6px;margin-left:80px;margin-right:5px;min-height:65px;padding:10px 20px;position:relative}.tm-items>li .tm-box:after{border:none;border-color:transparent #222 transparent transparent;border-image:none;border-style:solid;border-width:8px;content:\\\" \\\";height:0;margin-top:-8px;pointer-events:none;position:absolute;right:100%;top:50%;width:0;z-index:2}.tm-items>li .tm-box .tm-meta{margin:20px 0 0}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-de4d2ed8\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/timeline.vue\n// module id = 1042\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-e9837c36\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/common/charts/pie.vue\n// module id = 1043\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".target-group[data-v-ed9f792e]{margin-top:10px}.target-group-null[data-v-ed9f792e]{text-align:center;border:1px solid gray;padding:10px;font-size:14px;color:#5e7382}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-ed9f792e\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/route_manage/target_group/target_group.vue\n// module id = 1044\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".content{margin:0 20px 20px}.dynamic-pagination{padding-right:5px}.operation-content a{cursor:pointer}.operation-content .operation-content-fold{height:21px;overflow:hidden}.operation-content .operation-content-unfold{height:auto}.empty-operation{position:relative;text-align:center;height:60px;border:1px solid gray;margin-top:20px;line-height:60px;color:#5e7382;font-size:14px}.bg-purple-dark{background:#222}.grid-content{line-height:36px;border-radius:4px;min-height:36px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-ee76989e\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/dynamic_manage/dynamic_manage.vue\n// module id = 1045\n// module chunks = 1","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".target-group[data-v-eee0a37c]{margin-top:10px}.target-group-null[data-v-eee0a37c]{text-align:center;border:1px solid gray;padding:10px;font-size:14px;color:#5e7382;background-color:#373a3c}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-eee0a37c\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group.vue\n// module id = 1046\n// module chunks = 1","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".page-tab .el-tabs{background-color:#373a3c}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-f771d528\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/pages/index_detail/index_detail.vue\n// module id = 1047\n// module chunks = 1","var map = {\n\t\"./af\": 416,\n\t\"./af.js\": 416,\n\t\"./ar\": 423,\n\t\"./ar-dz\": 417,\n\t\"./ar-dz.js\": 417,\n\t\"./ar-kw\": 418,\n\t\"./ar-kw.js\": 418,\n\t\"./ar-ly\": 419,\n\t\"./ar-ly.js\": 419,\n\t\"./ar-ma\": 420,\n\t\"./ar-ma.js\": 420,\n\t\"./ar-sa\": 421,\n\t\"./ar-sa.js\": 421,\n\t\"./ar-tn\": 422,\n\t\"./ar-tn.js\": 422,\n\t\"./ar.js\": 423,\n\t\"./az\": 424,\n\t\"./az.js\": 424,\n\t\"./be\": 425,\n\t\"./be.js\": 425,\n\t\"./bg\": 426,\n\t\"./bg.js\": 426,\n\t\"./bm\": 427,\n\t\"./bm.js\": 427,\n\t\"./bn\": 428,\n\t\"./bn.js\": 428,\n\t\"./bo\": 429,\n\t\"./bo.js\": 429,\n\t\"./br\": 430,\n\t\"./br.js\": 430,\n\t\"./bs\": 431,\n\t\"./bs.js\": 431,\n\t\"./ca\": 432,\n\t\"./ca.js\": 432,\n\t\"./cs\": 433,\n\t\"./cs.js\": 433,\n\t\"./cv\": 434,\n\t\"./cv.js\": 434,\n\t\"./cy\": 435,\n\t\"./cy.js\": 435,\n\t\"./da\": 436,\n\t\"./da.js\": 436,\n\t\"./de\": 439,\n\t\"./de-at\": 437,\n\t\"./de-at.js\": 437,\n\t\"./de-ch\": 438,\n\t\"./de-ch.js\": 438,\n\t\"./de.js\": 439,\n\t\"./dv\": 440,\n\t\"./dv.js\": 440,\n\t\"./el\": 441,\n\t\"./el.js\": 441,\n\t\"./en-SG\": 442,\n\t\"./en-SG.js\": 442,\n\t\"./en-au\": 443,\n\t\"./en-au.js\": 443,\n\t\"./en-ca\": 444,\n\t\"./en-ca.js\": 444,\n\t\"./en-gb\": 445,\n\t\"./en-gb.js\": 445,\n\t\"./en-ie\": 446,\n\t\"./en-ie.js\": 446,\n\t\"./en-il\": 447,\n\t\"./en-il.js\": 447,\n\t\"./en-nz\": 448,\n\t\"./en-nz.js\": 448,\n\t\"./eo\": 449,\n\t\"./eo.js\": 449,\n\t\"./es\": 452,\n\t\"./es-do\": 450,\n\t\"./es-do.js\": 450,\n\t\"./es-us\": 451,\n\t\"./es-us.js\": 451,\n\t\"./es.js\": 452,\n\t\"./et\": 453,\n\t\"./et.js\": 453,\n\t\"./eu\": 454,\n\t\"./eu.js\": 454,\n\t\"./fa\": 455,\n\t\"./fa.js\": 455,\n\t\"./fi\": 456,\n\t\"./fi.js\": 456,\n\t\"./fo\": 457,\n\t\"./fo.js\": 457,\n\t\"./fr\": 460,\n\t\"./fr-ca\": 458,\n\t\"./fr-ca.js\": 458,\n\t\"./fr-ch\": 459,\n\t\"./fr-ch.js\": 459,\n\t\"./fr.js\": 460,\n\t\"./fy\": 461,\n\t\"./fy.js\": 461,\n\t\"./ga\": 462,\n\t\"./ga.js\": 462,\n\t\"./gd\": 463,\n\t\"./gd.js\": 463,\n\t\"./gl\": 464,\n\t\"./gl.js\": 464,\n\t\"./gom-latn\": 465,\n\t\"./gom-latn.js\": 465,\n\t\"./gu\": 466,\n\t\"./gu.js\": 466,\n\t\"./he\": 467,\n\t\"./he.js\": 467,\n\t\"./hi\": 468,\n\t\"./hi.js\": 468,\n\t\"./hr\": 469,\n\t\"./hr.js\": 469,\n\t\"./hu\": 470,\n\t\"./hu.js\": 470,\n\t\"./hy-am\": 471,\n\t\"./hy-am.js\": 471,\n\t\"./id\": 472,\n\t\"./id.js\": 472,\n\t\"./is\": 473,\n\t\"./is.js\": 473,\n\t\"./it\": 475,\n\t\"./it-ch\": 474,\n\t\"./it-ch.js\": 474,\n\t\"./it.js\": 475,\n\t\"./ja\": 476,\n\t\"./ja.js\": 476,\n\t\"./jv\": 477,\n\t\"./jv.js\": 477,\n\t\"./ka\": 478,\n\t\"./ka.js\": 478,\n\t\"./kk\": 479,\n\t\"./kk.js\": 479,\n\t\"./km\": 480,\n\t\"./km.js\": 480,\n\t\"./kn\": 481,\n\t\"./kn.js\": 481,\n\t\"./ko\": 482,\n\t\"./ko.js\": 482,\n\t\"./ku\": 483,\n\t\"./ku.js\": 483,\n\t\"./ky\": 484,\n\t\"./ky.js\": 484,\n\t\"./lb\": 485,\n\t\"./lb.js\": 485,\n\t\"./lo\": 486,\n\t\"./lo.js\": 486,\n\t\"./lt\": 487,\n\t\"./lt.js\": 487,\n\t\"./lv\": 488,\n\t\"./lv.js\": 488,\n\t\"./me\": 489,\n\t\"./me.js\": 489,\n\t\"./mi\": 490,\n\t\"./mi.js\": 490,\n\t\"./mk\": 491,\n\t\"./mk.js\": 491,\n\t\"./ml\": 492,\n\t\"./ml.js\": 492,\n\t\"./mn\": 493,\n\t\"./mn.js\": 493,\n\t\"./mr\": 494,\n\t\"./mr.js\": 494,\n\t\"./ms\": 496,\n\t\"./ms-my\": 495,\n\t\"./ms-my.js\": 495,\n\t\"./ms.js\": 496,\n\t\"./mt\": 497,\n\t\"./mt.js\": 497,\n\t\"./my\": 498,\n\t\"./my.js\": 498,\n\t\"./nb\": 499,\n\t\"./nb.js\": 499,\n\t\"./ne\": 500,\n\t\"./ne.js\": 500,\n\t\"./nl\": 502,\n\t\"./nl-be\": 501,\n\t\"./nl-be.js\": 501,\n\t\"./nl.js\": 502,\n\t\"./nn\": 503,\n\t\"./nn.js\": 503,\n\t\"./pa-in\": 504,\n\t\"./pa-in.js\": 504,\n\t\"./pl\": 505,\n\t\"./pl.js\": 505,\n\t\"./pt\": 507,\n\t\"./pt-br\": 506,\n\t\"./pt-br.js\": 506,\n\t\"./pt.js\": 507,\n\t\"./ro\": 508,\n\t\"./ro.js\": 508,\n\t\"./ru\": 509,\n\t\"./ru.js\": 509,\n\t\"./sd\": 510,\n\t\"./sd.js\": 510,\n\t\"./se\": 511,\n\t\"./se.js\": 511,\n\t\"./si\": 512,\n\t\"./si.js\": 512,\n\t\"./sk\": 513,\n\t\"./sk.js\": 513,\n\t\"./sl\": 514,\n\t\"./sl.js\": 514,\n\t\"./sq\": 515,\n\t\"./sq.js\": 515,\n\t\"./sr\": 517,\n\t\"./sr-cyrl\": 516,\n\t\"./sr-cyrl.js\": 516,\n\t\"./sr.js\": 517,\n\t\"./ss\": 518,\n\t\"./ss.js\": 518,\n\t\"./sv\": 519,\n\t\"./sv.js\": 519,\n\t\"./sw\": 520,\n\t\"./sw.js\": 520,\n\t\"./ta\": 521,\n\t\"./ta.js\": 521,\n\t\"./te\": 522,\n\t\"./te.js\": 522,\n\t\"./tet\": 523,\n\t\"./tet.js\": 523,\n\t\"./tg\": 524,\n\t\"./tg.js\": 524,\n\t\"./th\": 525,\n\t\"./th.js\": 525,\n\t\"./tl-ph\": 526,\n\t\"./tl-ph.js\": 526,\n\t\"./tlh\": 527,\n\t\"./tlh.js\": 527,\n\t\"./tr\": 528,\n\t\"./tr.js\": 528,\n\t\"./tzl\": 529,\n\t\"./tzl.js\": 529,\n\t\"./tzm\": 531,\n\t\"./tzm-latn\": 530,\n\t\"./tzm-latn.js\": 530,\n\t\"./tzm.js\": 531,\n\t\"./ug-cn\": 532,\n\t\"./ug-cn.js\": 532,\n\t\"./uk\": 533,\n\t\"./uk.js\": 533,\n\t\"./ur\": 534,\n\t\"./ur.js\": 534,\n\t\"./uz\": 536,\n\t\"./uz-latn\": 535,\n\t\"./uz-latn.js\": 535,\n\t\"./uz.js\": 536,\n\t\"./vi\": 537,\n\t\"./vi.js\": 537,\n\t\"./x-pseudo\": 538,\n\t\"./x-pseudo.js\": 538,\n\t\"./yo\": 539,\n\t\"./yo.js\": 539,\n\t\"./zh-cn\": 540,\n\t\"./zh-cn.js\": 540,\n\t\"./zh-hk\": 541,\n\t\"./zh-hk.js\": 541,\n\t\"./zh-tw\": 542,\n\t\"./zh-tw.js\": 542\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1333;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale ^\\.\\/.*$\n// module id = 1333\n// module chunks = 1","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADcklEQVRYR+1XXVLaUBT+Tqi8lsICandAwgLUFYgrEGYapm/qCoorKL51ks6IK1BWIC7AhK5AXQBp+qrlns69EAohITeh03E68AjnnO+73/mF8Mo/9Mr5YUtw0wz93wpW/E+7BiaHELRLxHUG6lIxAkbMNILBjwKlQWh+fSyqZCEFK36rYqB8QoyuDjAzesJ4Pg/Nfqhjv2iTm2DN7xwzc49AlTxgDA5B6Aame5HHLxfB6n2nS4TPeQDitsw4DxqOlvKzctGDq/l2C0yXetYZVsTtsen2dWJpKVjxP+6X2LhNCsjgJzD1hSGGofltKOsTeFM3hCEbRir+NslvQuJA2meR1CJY9ToPBOyuBuPBhF5aacWvmkmUT5PKgoHHwHI+bEyw5neaYFxn1VLFs/cMmo4ZwRiFlnsX+VS9Tp+A4xUyhKOx6dysI5mpYFJwBr4HlqPIyFlY4sklQPvLQDycUKkdzcCaZ98AdBizGYwtt1mYoExRics/4gEmZHyQwCqFXPaT0w/INAp6NmUJVHy7XmLyV2M9v1s3HxMVVOliaoLQjIPLpggsV9Vj9d7uEdHJOgWY+SJouKfK3rMfCfR+0V4+AoybWZMN4rGWCMpXGoxLAqn0JXctrgLLac0A/XW20obBo8ByTZ0HSVtBaIemO4qw5wTlKDGYrrM2xOKgrXkdzupC+fvYchSOzqCXG0cQH0UjSDmm1UeKhvPCrnn2EKC9tSleaKjUbk4IEM1JRbDm2berXZiWYv2UqRQv12BmSUSoUWlQkRUWvW7axTujeOEvgDwJeqmv6+K1JULcpjyy/wnGw7HlHkzLQ83B/mqq+W5CpdZ8DqYM/IzyuKKqZ2vLvjQeGL2g4ZxF36kmm+5fCEOMkvZs3mzJEUS6nZg4cpj7QcNt63RyZJOXJFXvO2HaxaEDrA5Rdc3wVTS/pnuZ9sFogXkYf4QuSWb8pOQdqUNN34YTlNbD5YFUUJ5DX/ThilnGSWoNbcYZTbtQPBSDzecVkZyt1NusrSWPkmgF/RMV8zyHGWdBw+nNd7FeTeSB2MSW78aWq+7LhWNBnuc73azzaRNYHV+5GoXx0o1uxJV7cHbV9NPWlw5IERt5ZwriVnzAp578C//OYqd8Efh0H3moAr9GaVd15n+Sv0snf7QtwfyaLXtsFdwquKkCm/r/Bsz2yXeA+vMzAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/image/pallas.png\n// module id = 1336\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-cffbcb88\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ace_editor.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ace_editor.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-cffbcb88\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ace_editor.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/ace_editor.vue\n// module id = 1337\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-22a7638e\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chart_container.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./chart_container.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-22a7638e\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chart_container.vue\"),\n /* scopeId */\n \"data-v-22a7638e\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/charts/chart_container.vue\n// module id = 1338\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-068da9a0\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chart_no_data.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n null,\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-068da9a0\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chart_no_data.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/charts/chart_no_data.vue\n// module id = 1339\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./column.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6703438d\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./column.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/charts/column.vue\n// module id = 1340\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-4f473ceb\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./line.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./line.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4f473ceb\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./line.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/charts/line.vue\n// module id = 1341\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-e9837c36\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./pie.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./pie.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e9837c36\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./pie.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/charts/pie.vue\n// module id = 1342\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-6ba933be\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./container.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n null,\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6ba933be\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./container.vue\"),\n /* scopeId */\n \"data-v-6ba933be\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/container.vue\n// module id = 1343\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./json_content.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-39d18675\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./json_content.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/json_content.vue\n// module id = 1344\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-98624a8e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./json_diff.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./json_diff.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-98624a8e\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./json_diff.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/json_diff.vue\n// module id = 1345\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-d2aef8ba\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./navbar.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./navbar.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d2aef8ba\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./navbar.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/navbar.vue\n// module id = 1346\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-07add241\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./panel.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./panel.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-07add241\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./panel.vue\"),\n /* scopeId */\n \"data-v-07add241\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/panel.vue\n// module id = 1347\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-de4d2ed8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./timeline.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n null,\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-de4d2ed8\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./timeline.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/timeline.vue\n// module id = 1348\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n null,\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6f2f450e\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./timeline_item.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/timeline_item.vue\n// module id = 1349\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-9a531316\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./version_footer.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./version_footer.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9a531316\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./version_footer.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/version_footer.vue\n// module id = 1350\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./agent_manage.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e2d081e8\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./agent_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/agent_manage/agent_manage.vue\n// module id = 1351\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-24c25358\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./approve_dialog.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./approve_dialog.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-24c25358\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./approve_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/authority_manage/approve_dialog/approve_dialog.vue\n// module id = 1352\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./authority_manage.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-110d5368\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./authority_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/authority_manage/authority_manage.vue\n// module id = 1353\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./authority_manage_administrator.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-23c1491a\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./authority_manage_administrator.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/authority_manage/authority_manage_administrator.vue\n// module id = 1354\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_dashboard.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-11788309\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_dashboard.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_detail/cluster_dashboard/cluster_dashboard.vue\n// module id = 1355\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_detail.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c09de0a8\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_detail.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_detail/cluster_detail.vue\n// module id = 1356\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2ae450e7\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_info_dialog/cluster_info_dialog.vue\n// module id = 1357\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_manage.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-07f5f5a8\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_manage.vue\n// module id = 1358\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-66714b9d\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./cluster_node_restart.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_node_restart.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-66714b9d\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_node_restart.vue\"),\n /* scopeId */\n \"data-v-66714b9d\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_node_restart/cluster_node_restart.vue\n// module id = 1359\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-2c392ae4\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./cluster_condition_info_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_condition_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2c392ae4\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_condition_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_info_dialog.vue\n// module id = 1360\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_condition_item.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0acac690\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_condition_item.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_item.vue\n// module id = 1361\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-254d07b9\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./cluster_conditions.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_conditions.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-254d07b9\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_conditions.vue\"),\n /* scopeId */\n \"data-v-254d07b9\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_conditions.vue\n// module id = 1362\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-5a52933d\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./cluster_route_manage.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_route_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5a52933d\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_route_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_route_manage/cluster_route_manage.vue\n// module id = 1363\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-eee0a37c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./cluster_target_group.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_target_group.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-eee0a37c\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_target_group.vue\"),\n /* scopeId */\n \"data-v-eee0a37c\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group.vue\n// module id = 1364\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_target_group_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-58c1c67c\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_target_group_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_info_dialog.vue\n// module id = 1365\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-7ef147c0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./cluster_target_group_item.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_target_group_item.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7ef147c0\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_target_group_item.vue\"),\n /* scopeId */\n \"data-v-7ef147c0\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_item.vue\n// module id = 1366\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-6abbcaee\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./cluster_monitor.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cluster_monitor.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6abbcaee\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cluster_monitor.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/monitor/cluster_monitor.vue\n// module id = 1367\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./custom_time_dialog.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-17308963\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./custom_time_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/monitor/custom_time_dialog.vue\n// module id = 1368\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./indice_detail.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-cf781586\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./indice_detail.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/monitor/indice_detail.vue\n// module id = 1369\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./indices_monitor.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-dc572dca\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./indices_monitor.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/monitor/indices_monitor.vue\n// module id = 1370\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./node_detail.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-346977f2\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./node_detail.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/monitor/node_detail.vue\n// module id = 1371\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./nodes_monitor.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ca79a536\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./nodes_monitor.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/monitor/nodes_monitor.vue\n// module id = 1372\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./overview.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d18ad820\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./overview.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/cluster_manage/monitor/overview.vue\n// module id = 1373\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-313183c4\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./cron_delete_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cron_delete_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-313183c4\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cron_delete_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/cron_delete/cron_delete_dialog/cron_delete_dialog.vue\n// module id = 1374\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./cron_delete_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9cd84fee\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./cron_delete_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/cron_delete/cron_delete_manage.vue\n// module id = 1375\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-ee76989e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./dynamic_manage.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./dynamic_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ee76989e\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./dynamic_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/dynamic_manage/dynamic_manage.vue\n// module id = 1376\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./dynamic_manage_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3858d6d9\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./dynamic_manage_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/dynamic_manage/dynamic_manage_dialog/dynamic_manage_dialog.vue\n// module id = 1377\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./flow_record.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4773df57\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./flow_record.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/flow_record/flow_record.vue\n// module id = 1378\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./config_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-fecfaafe\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./config_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/flow_record/flow_record_config/config_info_dialog.vue\n// module id = 1379\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./flow_record_config.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-94a1a3b8\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./flow_record_config.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/flow_record/flow_record_config/flow_record_config.vue\n// module id = 1380\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./flow_record_export.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ded194d4\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./flow_record_export.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/flow_record/flow_record_config/flow_record_export.vue\n// module id = 1381\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-f771d528\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./index_detail.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index_detail.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f771d528\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./index_detail.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/index_detail.vue\n// module id = 1382\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-03d62ab5\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./condition_info_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./condition_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-03d62ab5\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./condition_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/route_manage/condition_info_dialog/condition_info_dialog.vue\n// module id = 1383\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./condition_item.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-436f53f2\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./condition_item.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/route_manage/condition_info_dialog/condition_item.vue\n// module id = 1384\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-2eb1c088\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./conditions.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./conditions.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2eb1c088\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./conditions.vue\"),\n /* scopeId */\n \"data-v-2eb1c088\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/route_manage/condition_info_dialog/conditions.vue\n// module id = 1385\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-49b75a1e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./route_manage.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./route_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-49b75a1e\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./route_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/route_manage/route_manage.vue\n// module id = 1386\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-ed9f792e\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./target_group.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./target_group.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ed9f792e\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./target_group.vue\"),\n /* scopeId */\n \"data-v-ed9f792e\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/route_manage/target_group/target_group.vue\n// module id = 1387\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./target_group_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0220d923\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./target_group_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/route_manage/target_group/target_group_info_dialog.vue\n// module id = 1388\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-aeee314e\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./target_group_item.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./target_group_item.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-aeee314e\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./target_group_item.vue\"),\n /* scopeId */\n \"data-v-aeee314e\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/route_manage/target_group/target_group_item.vue\n// module id = 1389\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./service_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4755331e\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./service_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/service_manage/service_manage.vue\n// module id = 1390\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-0697b1eb\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./throttling_manage.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./throttling_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0697b1eb\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./throttling_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/service_manage/throttling_manage.vue\n// module id = 1391\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./timeout_retry_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9cdaff88\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./timeout_retry_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/service_manage/timeout_retry_manage.vue\n// module id = 1392\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-49b3d5b8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_add_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_add_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-49b3d5b8\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_add_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_add_dialog/template_add_dialog.vue\n// module id = 1393\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-1e4630ac\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_batch_submit_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_batch_submit_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1e4630ac\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_batch_submit_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_batch_submit_dialog/template_batch_submit_dialog.vue\n// module id = 1394\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-663e0a40\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./profile_content.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./profile_content.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-663e0a40\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./profile_content.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/profile_content.vue\n// module id = 1395\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-4ac0cba8\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./service_governance.vue\")\n\nvar Component = require(\"!../../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./service_governance.vue\"),\n /* template */\n require(\"!!../../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4ac0cba8\\\"}!../../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./service_governance.vue\"),\n /* scopeId */\n \"data-v-4ac0cba8\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/service_governance/service_governance.vue\n// module id = 1396\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-03f7eaf3\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_config_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_config_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-03f7eaf3\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_config_dialog.vue\"),\n /* scopeId */\n \"data-v-03f7eaf3\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/template_config_dialog.vue\n// module id = 1397\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-561d54ec\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_edit.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_edit.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-561d54ec\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_edit.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/template_edit.vue\n// module id = 1398\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-a725a9c8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_insert_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_insert_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-a725a9c8\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_insert_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/template_insert_dialog.vue\n// module id = 1399\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-1f2cf12e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_save_edit_dialog.vue\")\n\nvar Component = require(\"!../../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_save_edit_dialog.vue\"),\n /* template */\n require(\"!!../../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1f2cf12e\\\"}!../../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_save_edit_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/template_save_edit_dialog/template_save_edit_dialog.vue\n// module id = 1400\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-7c6ff3dc\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_test.vue\")\n\nvar Component = require(\"!../../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_test.vue\"),\n /* template */\n require(\"!!../../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7c6ff3dc\\\"}!../../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_test.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/template_test/template_test.vue\n// module id = 1401\n// module chunks = 1","var Component = require(\"!../../../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_test_data_source.vue\"),\n /* template */\n require(\"!!../../../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-869f81b4\\\"}!../../../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_test_data_source.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/template_test/template_test_data_source/template_test_data_source.vue\n// module id = 1402\n// module chunks = 1","var Component = require(\"!../../../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_test_params.vue\"),\n /* template */\n require(\"!!../../../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-cf2f86d8\\\"}!../../../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_test_params.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/template_test/template_test_params/template_test_params.vue\n// module id = 1403\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-488cf774\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_test_upload.vue\")\n\nvar Component = require(\"!../../../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_test_upload.vue\"),\n /* template */\n require(\"!!../../../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-488cf774\\\"}!../../../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_test_upload.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_edit/template_test/template_test_upload/template_test_upload.vue\n// module id = 1404\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-1f69898c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_export_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_export_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1f69898c\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_export_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_export_dialog/template_export_dialog.vue\n// module id = 1405\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-6a399cac\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_import_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_import_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6a399cac\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_import_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_import_dialog/template_import_dialog.vue\n// module id = 1406\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-46505c67\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./template_manage.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./template_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-46505c67\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./template_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/template_manage/template_manage.vue\n// module id = 1407\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-75903d1a\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./preheading_dialog.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./preheading_dialog.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-75903d1a\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./preheading_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/version_manage/preheading_dialog.vue\n// module id = 1408\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-5ec20ad7\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./schema_child_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./schema_child_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5ec20ad7\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./schema_child_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/version_manage/version_info_dialog/schema_child_dialog.vue\n// module id = 1409\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./schema_import_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7c307b46\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./schema_import_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/version_manage/version_info_dialog/schema_import_dialog.vue\n// module id = 1410\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-09f884c0\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./version_dynamic_info_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./version_dynamic_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-09f884c0\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./version_dynamic_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/version_manage/version_info_dialog/version_dynamic_info_dialog.vue\n// module id = 1411\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-9e196880\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./version_info_dialog.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./version_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9e196880\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./version_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/version_manage/version_info_dialog/version_info_dialog.vue\n// module id = 1412\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./version_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-55030cd1\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./version_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_detail/version_manage/version_manage.vue\n// module id = 1413\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./datasource_import_dialog.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e6185c4c\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./datasource_import_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_manage/index_info_dialog/index_data_sources/datasource_import_dialog.vue\n// module id = 1414\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-651b10be\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./index_data_source_item.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index_data_source_item.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-651b10be\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./index_data_source_item.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_source_item.vue\n// module id = 1415\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-7910bf22\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./index_data_sources.vue\")\n\nvar Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index_data_sources.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7910bf22\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./index_data_sources.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_sources.vue\n// module id = 1416\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-665e8c82\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./index_info_dialog.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-665e8c82\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./index_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_manage/index_info_dialog/index_info_dialog.vue\n// module id = 1417\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-dd129428\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./index_manage.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index_manage.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-dd129428\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./index_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/index_manage/index_manage.vue\n// module id = 1418\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./permission_manage.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-72254250\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./permission_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/permission_manage/permission_manage.vue\n// module id = 1419\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./user_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-228c2dc8\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/permission_manage/user_manage/user_info_dialog.vue\n// module id = 1420\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./user_manage.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1857d534\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/permission_manage/user_manage/user_manage.vue\n// module id = 1421\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-72296124\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./plugin_info_dialog.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./plugin_info_dialog.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-72296124\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./plugin_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/plugin_manage/plugin_info_dialog/plugin_info_dialog.vue\n// module id = 1422\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-2792b3e0\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./plugin_manage.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./plugin_manage.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2792b3e0\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./plugin_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/plugin_manage/plugin_manage.vue\n// module id = 1423\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-2df26081\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./plugin_upgrade.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./plugin_upgrade.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2df26081\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./plugin_upgrade.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/plugin_manage/plugin_upgrade.vue\n// module id = 1424\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-6e49b110\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./token_detail.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./token_detail.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6e49b110\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./token_detail.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/token_manage/token_detail.vue\n// module id = 1425\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-09d2d77b\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./token_index.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./token_index.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-09d2d77b\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./token_index.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/token_manage/token_index.vue\n// module id = 1426\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-62398862\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./token_info_dialog.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./token_info_dialog.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-62398862\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./token_info_dialog.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/token_manage/token_info_dialog.vue\n// module id = 1427\n// module chunks = 1","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-c969fae8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./token_manage.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./token_manage.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c969fae8\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./token_manage.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/token_manage/token_manage.vue\n// module id = 1428\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.targetGroupInfoTitle,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"targetGroupInfo\",\n attrs: {\n \"model\": _vm.targetGroupInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"130px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"节点集名称\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.targetGroupInfo.name),\n callback: function($$v) {\n _vm.$set(_vm.targetGroupInfo, \"name\", $$v)\n },\n expression: \"targetGroupInfo.name\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"clusterLevel\",\n \"label\": \"节点集属性\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.targetGroupInfo.clusterLevel),\n callback: function($$v) {\n _vm.$set(_vm.targetGroupInfo, \"clusterLevel\", $$v)\n },\n expression: \"targetGroupInfo.clusterLevel\"\n }\n }, _vm._l((_vm.attrs), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0220d923\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/route_manage/target_group/target_group_info_dialog.vue\n// module id = 1429\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": _vm.conditionInfoTitle,\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"conditionInfo\",\n attrs: {\n \"model\": _vm.conditionInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 30\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"规则名称\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.conditionInfo.name),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"name\", $$v)\n },\n expression: \"conditionInfo.name\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"优先级\",\n \"prop\": \"priority\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"placeholder\": \"优先于选中规则\"\n },\n model: {\n value: (_vm.conditionInfo.priority),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"priority\", $$v)\n },\n expression: \"conditionInfo.priority\"\n }\n }, _vm._l((_vm.alternativeConditions), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"Preference\",\n \"prop\": \"preference\"\n }\n }, [_c('el-select', {\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n model: {\n value: (_vm.conditionInfo.preference),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"preference\", $$v)\n },\n expression: \"conditionInfo.preference\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"无\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.preferenceList), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n })], 2), _vm._v(\" \"), _c('span', {\n staticClass: \"warning\"\n }, [_c('el-tooltip', {\n staticClass: \"item\",\n attrs: {\n \"effect\": \"dark\",\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [_vm._v(\"具体参考Elasticsearch关于Preference相关文档\\n \"), _c('br'), _vm._v(\"示例:\\n \"), _c('br'), _vm._v(\"_primary:只选择primary分片查询\\n \"), _c('br'), _vm._v(\"_primary_first:优先选择primary分片查询\\n \"), _c('br'), _vm._v(\"_replica:只选择replica分片查询\\n \"), _c('br'), _vm._v(\"_replica_first:优先选择replica分片查询\\n \"), _c('br'), _vm._v(\"_only_local:只查询本地节点\\n \"), _c('br'), _vm._v(\"_local:优先查询本地节点\\n \"), _c('br'), _vm._v(\"_prefer_nodes:abc,xyz:优先查询节点id为abc和xyz的节点\\n \"), _c('br'), _vm._v(\"_shards:2,3:只查询第2,3组分片\\n \")]), _vm._v(\" \"), _c('i', {\n staticClass: \"fa fa-info-circle\"\n })])], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"是否启用\",\n \"prop\": \"enable\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n model: {\n value: (_vm.conditionInfo.enable),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"enable\", $$v)\n },\n expression: \"conditionInfo.enable\"\n }\n })], 1)]), _vm._v(\" \"), (_vm.conditionInfo.conditions.length > 1) ? _c('el-form-item', {\n attrs: {\n \"prop\": \"conditionRelation\",\n \"label\": \"条件关系\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.conditionInfo.conditionRelation),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"conditionRelation\", $$v)\n },\n expression: \"conditionInfo.conditionRelation\"\n }\n }, _vm._l((_vm.conditionRelations), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)]) : _vm._e()], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 14\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"\",\n \"label\": \"\",\n \"label-width\": \"0px\"\n }\n }, [_c('div', {\n staticClass: \"target-group-transfer\"\n }, [_c('el-transfer', {\n ref: \"targetGroupTransfer\",\n attrs: {\n \"render-content\": _vm.renderFunc,\n \"titles\": ['所有节点集', '应用'],\n \"data\": _vm.routingTargetGroups,\n \"props\": _vm.defaultProps\n },\n on: {\n \"change\": _vm.handleChange\n },\n model: {\n value: (_vm.conditionInfo.targetGroupsId),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"targetGroupsId\", $$v)\n },\n expression: \"conditionInfo.targetGroupsId\"\n }\n })], 1)])], 1)], 1)], 1), _vm._v(\" \"), _c('conditions', {\n ref: \"conditions\",\n attrs: {\n \"conditions\": _vm.conditionInfo.conditions\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-03d62ab5\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/route_manage/condition_info_dialog/condition_info_dialog.vue\n// module id = 1430\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"新模板向导\",\n \"size\": \"large\",\n \"before-close\": _vm.handleClose,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.visible),\n callback: function($$v) {\n _vm.visible = $$v\n },\n expression: \"visible\"\n }\n }, [_c('div', {\n staticClass: \"template-config\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 30\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('div', {\n staticClass: \"template-config-content\"\n }, [_c('div', {\n staticClass: \"title\"\n }, [_c('span', [_vm._v(\"模板选项\")]), _c('a', {\n staticStyle: {\n \"margin-left\": \"10px\",\n \"font-size\": \"13px\",\n \"font-weight\": \"normal\",\n \"color\": \"dodgerblue\"\n },\n attrs: {\n \"target\": \"_blank\",\n \"href\": \"https://vipshop.github.io/pallas/#/zh-cn/1.x/Console%E6%A8%A1%E5%9D%97/%E6%A8%A1%E6%9D%BF%E7%AE%A1%E7%90%86/template\"\n }\n }, [_vm._v(\"Mustache语法 \"), _c('i', {\n staticClass: \"fa fa-external-link\",\n attrs: {\n \"aria-hidden\": \"true\"\n }\n })]), _vm._v(\" \"), _c('el-button', {\n staticClass: \"pull-right\",\n attrs: {\n \"type\": \"success\",\n \"size\": \"mini\"\n },\n on: {\n \"click\": _vm.handleExecute\n }\n }, [_c('i', {\n staticClass: \"fa fa-caret-square-o-right\"\n }), _vm._v(\"预览\")])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"15px\"\n }\n }, [_c('el-form', {\n attrs: {\n \"label-width\": \"0\",\n \"label-position\": \"left\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', [_c('el-checkbox', {\n model: {\n value: (_vm.data.from.isChecked),\n callback: function($$v) {\n _vm.$set(_vm.data.from, \"isChecked\", $$v)\n },\n expression: \"data.from.isChecked\"\n }\n }, [_vm._v(\"from\\n \"), _c('el-input', {\n model: {\n value: (_vm.data.from.value),\n callback: function($$v) {\n _vm.$set(_vm.data.from, \"value\", $$v)\n },\n expression: \"data.from.value\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', [_c('el-checkbox', {\n staticStyle: {\n \"margin-left\": \"5px\"\n },\n model: {\n value: (_vm.data.size.isChecked),\n callback: function($$v) {\n _vm.$set(_vm.data.size, \"isChecked\", $$v)\n },\n expression: \"data.size.isChecked\"\n }\n }, [_vm._v(\"size\\n \"), _c('el-input', {\n model: {\n value: (_vm.data.size.value),\n callback: function($$v) {\n _vm.$set(_vm.data.size, \"value\", $$v)\n },\n expression: \"data.size.value\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 30\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', [_c('el-checkbox', {\n model: {\n value: (_vm.data.sort.isChecked),\n callback: function($$v) {\n _vm.$set(_vm.data.sort, \"isChecked\", $$v)\n },\n expression: \"data.sort.isChecked\"\n }\n }, [_vm._v(\"sort\\n \"), _c('el-switch', {\n attrs: {\n \"on-text\": \"变量\",\n \"off-text\": \"静态\"\n },\n model: {\n value: (_vm.data.sort.isVariable),\n callback: function($$v) {\n _vm.$set(_vm.data.sort, \"isVariable\", $$v)\n },\n expression: \"data.sort.isVariable\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', [_c('el-checkbox', {\n model: {\n value: (_vm.data.source.isChecked),\n callback: function($$v) {\n _vm.$set(_vm.data.source, \"isChecked\", $$v)\n },\n expression: \"data.source.isChecked\"\n }\n }, [_vm._v(\"source\\n \"), _c('el-switch', {\n attrs: {\n \"on-text\": \"变量\",\n \"off-text\": \"静态\"\n },\n model: {\n value: (_vm.data.source.isVariable),\n callback: function($$v) {\n _vm.$set(_vm.data.source, \"isVariable\", $$v)\n },\n expression: \"data.source.isVariable\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-bottom\": \"5px\"\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"query配置\")])]), _vm._v(\" \"), _c('el-table', {\n attrs: {\n \"border\": \"\",\n \"data\": _vm.metadatas,\n \"max-height\": 320\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"dbFieldName\",\n \"label\": \"字段名\",\n \"width\": \"180\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"查询类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"不选\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"term\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"term\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"multiTerm\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"terms\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"range\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"range\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"script\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"script\")])]\n }\n }])\n })], 1)], 1)], 1)])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('div', {\n staticClass: \"template-config-content\"\n }, [_c('div', {\n staticClass: \"title\"\n }, [_vm._v(\"模板展示\")]), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"height\": \"450px\"\n }\n }, [_c('el-scrollbar', [_c('pre', [_vm._v(_vm._s(_vm.templateContent))])])], 1)])])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), (JSON.stringify(_vm.templateContent) !== '{}') ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.handleSave\n }\n }, [_vm._v(\"生成模板\")]) : _vm._e()], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-03f7eaf3\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/template_config_dialog.vue\n// module id = 1431\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _vm._m(0)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"chart-no-data\"\n }, [_c('i', {\n staticClass: \"el-icon-loading\"\n }), _vm._v(\"数据加载中...\")])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-068da9a0\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/charts/chart_no_data.vue\n// module id = 1432\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"template_content\"\n }, [_vm._m(0), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.templateList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"模板名称\",\n \"show-overflow-tooltip\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.templateName))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"单台PS最大QPS(0表示不限流)\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input-number', {\n attrs: {\n \"min\": 0,\n \"max\": 100000\n },\n model: {\n value: (scope.row.threshold),\n callback: function($$v) {\n _vm.$set(scope.row, \"threshold\", $$v)\n },\n expression: \"scope.row.threshold\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最大预存流量秒数(限流器参数)\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input-number', {\n attrs: {\n \"min\": 1,\n \"max\": 5\n },\n model: {\n value: (scope.row.maxBurstSecs),\n callback: function($$v) {\n _vm.$set(scope.row, \"maxBurstSecs\", $$v)\n },\n expression: \"scope.row.maxBurstSecs\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"120px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"disabled\": !_vm.allPrivilege,\n \"title\": !_vm.allPrivilege ? '权限不足' : ''\n },\n on: {\n \"click\": function($event) {\n return _vm.handleUpdate(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"更新\\n \")])]\n }\n }])\n })], 1)], 1)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticStyle: {\n \"padding-bottom\": \"10px\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-th-list\"\n }), _vm._v(\"模板限流配置\")])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0697b1eb\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/service_manage/throttling_manage.vue\n// module id = 1433\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"panel\",\n class: _vm.panelType\n }, [_c('div', {\n staticClass: \"panel-content-title\"\n }, [_vm._t(\"title\")], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"panel-content-body\"\n }, [_vm._t(\"content\")], 2)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-07add241\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/panel.vue\n// module id = 1434\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索域名\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.clusterIdForSearch),\n callback: function($$v) {\n _vm.clusterIdForSearch = $$v\n },\n expression: \"clusterIdForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")]), _vm._v(\" \"), _c('cluster-manage-search', {\n on: {\n \"cluster-search\": _vm.toSpecificPage\n }\n })], 1)], 1)], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增ES集群\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.clusterList.list,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"域名\",\n \"min-width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.hasPrivilege || scope.row.logicalCluster) ? _c('div', [_vm._v(_vm._s(scope.row.clusterId))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'cluster_detail',\n query: {\n clusterId: scope.row.clusterId\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.clusterId))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"集群类型\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"clusterType\")(scope.row.logicalCluster)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"物理集群\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.realClusters === '') ? _c('div', [_vm._v(\"-\")]) : _vm._l((_vm.getPhysicalsClusterArr(scope.row.realClusters)), function(item) {\n return _c('div', {\n key: item.id,\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'cluster_detail',\n query: {\n clusterId: item.clusterId\n }\n }\n }\n }, [_vm._v(_vm._s(item.clusterId))])], 1)\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"description\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"HTTP地址\",\n \"width\": \"170px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.httpAddress) ? _c('div', [_vm._v(\"-\")]) : _c('div', [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"left\"\n }\n }, [_vm._l((_vm.$array.strToArray(scope.row.httpAddress)), function(item) {\n return _c('div', {\n key: item\n }, [_vm._v(_vm._s(item))])\n }), _vm._v(\" \"), _c('div', {\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$array.strToArray(scope.row.httpAddress)[0]) + \"\\n \"), (_vm.$array.strToArray(scope.row.httpAddress).length > 1) ? _c('span', [_vm._v(\"...\")]) : _vm._e()])], 2)], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"CLIENT地址\",\n \"width\": \"170px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.clientAddress) ? _c('div', [_vm._v(\"-\")]) : _c('div', [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"right\"\n }\n }, [_vm._l((_vm.$array.strToArray(scope.row.clientAddress)), function(item) {\n return _c('div', {\n key: item\n }, [_vm._v(_vm._s(item))])\n }), _vm._v(\" \"), _c('div', {\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$array.strToArray(scope.row.clientAddress)[0]) + \"\\n \"), (_vm.$array.strToArray(scope.row.clientAddress).length > 1) ? _c('span', [_vm._v(\"...\")]) : _vm._e()])], 2)], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"绑定代理集群\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.accessiblePs) ? _c('div', [_vm._v(\"-\")]) : _vm._l((_vm.$array.strToArray(scope.row.accessiblePs)), function(item) {\n return _c('div', {\n key: item\n }, [_vm._v(\"\\n \" + _vm._s(item) + \"\\n \")])\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [(scope.row.hasPrivilege) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n }), _vm._v(\"编辑\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege && !scope.row.logicalCluster) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleRouteSetting(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-cog\"\n }), _vm._v(\"路由配置\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege && !scope.row.logicalCluster) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleManage(scope.$index, scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-bars\"\n }), _vm._v(\"管理\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege && !scope.row.logicalCluster) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleMonitor(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-bar-chart\"\n }), _vm._v(\"监控\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege && !scope.row.logicalCluster) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleRestart(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-undo\"\n }), _vm._v(\"重启\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-trash\"\n }), _vm._v(\"删除\")])])]) : _vm._e()], 1)], 1)]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.clusterList.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.clusterList.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isClusterInfoVisible) ? _c('div', [_c('cluster-info-dialog', {\n attrs: {\n \"cluster-operation\": _vm.clusterOperation,\n \"cluster-info-title\": _vm.clusterInfoTitle,\n \"cluster-info\": _vm.clusterInfo,\n \"all-physicals\": _vm.allPhysicals,\n \"all-pallas-searchs\": _vm.allPallasSearchs\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-07f5f5a8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_manage.vue\n// module id = 1435\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"token-index\"\n }, [(Object.keys(_vm.tokenClusterInfo).length !== 0) ? _c('div', [_c('div', [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"success\"\n },\n on: {\n \"click\": _vm.handleUpdate\n }\n }, [_vm._v(\"更新授权\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": _vm.handleReset\n }\n }, [_vm._v(\"移除授权\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10\"\n }, [_c('span', {\n staticClass: \"title-span\"\n }, [_vm._v(\"集群权限:\")]), _vm._v(\" \"), _c('el-radio-group', {\n attrs: {\n \"size\": \"small\"\n },\n model: {\n value: (_vm.tokenClusterInfo.clusterPrivilege),\n callback: function($$v) {\n _vm.$set(_vm.tokenClusterInfo, \"clusterPrivilege\", $$v)\n },\n expression: \"tokenClusterInfo.clusterPrivilege\"\n }\n }, [_c('el-radio-button', {\n attrs: {\n \"label\": \"\"\n }\n }, [_vm._v(\"无\")]), _vm._v(\" \"), _c('el-radio-button', {\n attrs: {\n \"label\": \"ReadOnly\"\n }\n }, [_vm._v(\"只读\")]), _vm._v(\" \"), _c('el-radio-button', {\n attrs: {\n \"label\": \"Write\"\n }\n }, [_vm._v(\"修改\")])], 1)], 1)]) : _c('div', {\n staticStyle: {\n \"height\": \"62px\"\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.tokenClusterInfo.myIndexPrivilegeArr,\n \"border\": \"\",\n \"height\": _vm.clusterTreeHeight.height\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"索引\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"indexPrivilege\",\n \"label\": \"权限\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-radio-group', {\n attrs: {\n \"size\": \"small\"\n },\n model: {\n value: (scope.row.indexPrivilege),\n callback: function($$v) {\n _vm.$set(scope.row, \"indexPrivilege\", $$v)\n },\n expression: \"scope.row.indexPrivilege\"\n }\n }, [_c('el-radio-button', {\n attrs: {\n \"label\": \"\"\n }\n }, [_vm._v(\"无\")]), _vm._v(\" \"), _c('el-radio-button', {\n attrs: {\n \"label\": \"ReadOnly\"\n }\n }, [_vm._v(\"只读\")]), _vm._v(\" \"), _c('el-radio-button', {\n attrs: {\n \"label\": \"Write\"\n }\n }, [_vm._v(\"修改\")])], 1)]\n }\n }])\n })], 1)], 1)])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-09d2d77b\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/token_manage/token_index.vue\n// module id = 1436\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"version-info-dialog\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVersionInfoVisible),\n callback: function($$v) {\n _vm.isVersionInfoVisible = $$v\n },\n expression: \"isVersionInfoVisible\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_c('span', [_vm._v(_vm._s(_vm.versionInfoTitle))])]), _vm._v(\" \"), _c('el-form', {\n ref: \"versionInfo\",\n attrs: {\n \"model\": _vm.versionInfo,\n \"rules\": _vm.rules,\n \"label-position\": \"left\"\n }\n }, [_c('el-tabs', {\n attrs: {\n \"value\": \"first\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"label\": \"索引配置\",\n \"name\": \"first\"\n }\n }, [_c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"分片路由属性\")]), _vm._v(\" \"), (_vm.isLogical) ? _c('span', {\n staticStyle: {\n \"color\": \"#C8C8C8\"\n }\n }, [_vm._v(\"(所属集群:\" + _vm._s(_vm.clusterArray.join()) + \")\")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"复制数量\",\n \"prop\": \"replicationNum\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.replicationNum),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"replicationNum\", _vm._n($$v))\n },\n expression: \"versionInfo.replicationNum\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"ShardPerNode\",\n \"prop\": \"totalShardsPerNode\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.totalShardsPerNode),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"totalShardsPerNode\", _vm._n($$v))\n },\n expression: \"versionInfo.totalShardsPerNode\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [(_vm.isLogical) ? _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属节点\",\n \"prop\": \"nodes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"value-key\": \"name\",\n \"placeholder\": \"请选择机器\"\n },\n model: {\n value: (_vm.versionInfo.nodes),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"nodes\", $$v)\n },\n expression: \"versionInfo.nodes\"\n }\n }, _vm._l((_vm.clusterGroups), function(group) {\n return _c('el-option-group', {\n key: group.clusterId,\n attrs: {\n \"label\": group.clusterId\n }\n }, _vm._l((group.nodes), function(item) {\n return _c('el-option', {\n key: item.name,\n attrs: {\n \"label\": item.name,\n \"value\": item\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.indicis.length > 0) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, _vm._l((item.indicis), function(item1) {\n return _c('el-col', {\n key: item1,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1) : _c('div', [_vm._v(\"暂无索引\")])]), _vm._v(\" \"), _c('el-tag', {\n staticStyle: {\n \"float\": \"left\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.indicis.length))])], 1)], 1)\n }), 1)\n }), 1)], 1)], 1)], 1) : _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属节点\",\n \"prop\": \"nodes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"placeholder\": \"请选择机器\"\n },\n model: {\n value: (_vm.versionInfo.nodes),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"nodes\", $$v)\n },\n expression: \"versionInfo.nodes\"\n }\n }, _vm._l((_vm.clusterNodes), function(item) {\n return _c('el-option', {\n key: item.name,\n attrs: {\n \"label\": item.name,\n \"value\": item.name\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.indicis.length > 0) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, _vm._l((item.indicis), function(item1) {\n return _c('el-col', {\n key: item1,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1) : _c('div', [_vm._v(\"暂无索引\")])]), _vm._v(\" \"), _c('el-tag', {\n staticStyle: {\n \"float\": \"left\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.indicis.length))])], 1)], 1)\n }), 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"慢日志落盘配置(单位ms,-1不限定)\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Index Slow\",\n \"prop\": \"indexSlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.indexSlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"indexSlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.indexSlowThreshold\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Fetch Slow\",\n \"prop\": \"fetchSlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.fetchSlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"fetchSlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.fetchSlowThreshold\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Query Slow\",\n \"prop\": \"querySlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.querySlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"querySlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.querySlowThreshold\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"索引其他配置\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"max_result_window\",\n \"prop\": \"maxResultWindow\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"10000\"\n },\n model: {\n value: (_vm.versionInfo.maxResultWindow),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"maxResultWindow\", _vm._n($$v))\n },\n expression: \"versionInfo.maxResultWindow\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"flush_threshold_size\",\n \"prop\": \"flushThresholdSize\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"512mb\"\n },\n model: {\n value: (_vm.versionInfo.flushThresholdSize),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"flushThresholdSize\", $$v)\n },\n expression: \"versionInfo.flushThresholdSize\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"sync_interval\",\n \"prop\": \"syncInterval\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.versionInfo.syncInterval),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"syncInterval\", $$v)\n },\n expression: \"versionInfo.syncInterval\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"translog_durability\",\n \"prop\": \"translogDurability\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"async\"\n },\n model: {\n value: (_vm.versionInfo.translogDurability),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"translogDurability\", $$v)\n },\n expression: \"versionInfo.translogDurability\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"refresh(秒)\",\n \"prop\": \"refreshInterval\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.versionInfo.refreshInterval),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"refreshInterval\", _vm._n($$v))\n },\n expression: \"versionInfo.refreshInterval\"\n }\n })], 1)], 1)], 1)], 1)])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitVersionInfo()\n }\n }\n }, [_vm._v(\"确 定\")])], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-09f884c0\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/version_manage/version_info_dialog/version_dynamic_info_dialog.vue\n// module id = 1437\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('el-form', {\n ref: \"conditionItemForm\",\n attrs: {\n \"model\": _vm.conditionItem,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断参数名\",\n \"prop\": \"paramName\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n model: {\n value: (_vm.conditionItem.paramName),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"paramName\", $$v)\n },\n expression: \"conditionItem.paramName\"\n }\n }, _vm._l((_vm.paramNames), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断运算\",\n \"prop\": \"exprOp\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.conditionItem.exprOp),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"exprOp\", $$v)\n },\n expression: \"conditionItem.exprOp\"\n }\n }, _vm._l((_vm.exprOps), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断值\",\n \"prop\": \"paramValue\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"多个判断值请以 , 分隔\"\n },\n model: {\n value: (_vm.conditionItem.paramValue),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"paramValue\", $$v)\n },\n expression: \"conditionItem.paramValue\"\n }\n })], 1)], 1)], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0acac690\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_item.vue\n// module id = 1438\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"模板变更\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n attrs: {\n \"clearable\": \"\"\n },\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedCluster),\n callback: function($$v) {\n _vm.selectedCluster = $$v\n },\n expression: \"selectedCluster\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部集群\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.clusters), function(cluster) {\n return _c('el-option-group', {\n key: cluster.label,\n attrs: {\n \"label\": cluster.label\n }\n }, _vm._l((cluster.options), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.clusterId\n }\n })\n }), 1)\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedState),\n callback: function($$v) {\n _vm.selectedState = $$v\n },\n expression: \"selectedState\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部状态\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.states), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索索引或模板\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.conditionForSearch),\n callback: function($$v) {\n _vm.conditionForSearch = $$v\n },\n expression: \"conditionForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleApproveManage\n }\n }, [_c('i', {\n staticClass: \"fa fa-check-square-o\"\n }), _vm._v(\"模板审批\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.applyList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"id\",\n \"label\": \"审批ID\",\n \"width\": \"60px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"title\",\n \"label\": \"标题\",\n \"width\": \"80px\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"索引名称\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'index_detail',\n query: {\n indexId: scope.row.indexId,\n indexName: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.indexName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"templateName\",\n \"label\": \"模板名称\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"所属集群\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"approveState\",\n \"label\": \"当前状态\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"translateStat\")(scope.row.approveState)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"applyUser\",\n \"label\": \"提交人\",\n \"width\": \"80px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"提交时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"审批人\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.approveState === 1 || scope.row.approveState === 2) ? _c('span', [_vm._v(_vm._s(scope.row.approveUser))]) : _c('span', [_vm._v(\"-\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"审批时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.approveState === 1 || scope.row.approveState === 2) ? _c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.approveTime)))]) : _c('span', [_vm._v(\"-\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"70px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.approveState === 0),\n expression: \"scope.row.approveState === 0\"\n }]\n }, [_c('el-tooltip', {\n attrs: {\n \"content\": \"查看\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleView(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-eye\"\n })])], 1), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"content\": \"取消\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleCancel(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-close\"\n })])], 1)], 1)]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isViewDialogVisible) ? _c('div', [_c('json-diff', {\n attrs: {\n \"json-diff-info\": _vm.jsonDiffInfo\n },\n on: {\n \"close-dialog\": _vm.closeViewContentDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-110d5368\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/authority_manage/authority_manage.vue\n// module id = 1439\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('iframe', {\n staticClass: \"cluster_dashboard\",\n attrs: {\n \"src\": _vm.clusterUrl,\n \"width\": \"100%\",\n \"height\": \"70%\",\n \"scrolling\": \"0\",\n \"frameborder\": \"0\"\n }\n })\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-11788309\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_detail/cluster_dashboard/cluster_dashboard.vue\n// module id = 1440\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"自定义时间\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.visible),\n callback: function($$v) {\n _vm.visible = $$v\n },\n expression: \"visible\"\n }\n }, [_c('el-form', {\n ref: \"formInfo\",\n staticStyle: {\n \"margin-top\": \"20px\"\n },\n attrs: {\n \"model\": _vm.formInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"40px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"timeRange\"\n }\n }, [_c('el-date-picker', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"type\": \"datetimerange\",\n \"placeholder\": \"选择时间范围\",\n \"align\": \"right\"\n },\n model: {\n value: (_vm.formInfo.timeRange),\n callback: function($$v) {\n _vm.$set(_vm.formInfo, \"timeRange\", $$v)\n },\n expression: \"formInfo.timeRange\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSubmit()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-17308963\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/monitor/custom_time_dialog.vue\n// module id = 1441\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.init($event)\n }\n },\n model: {\n value: (_vm.formSearch.keywords),\n callback: function($$v) {\n _vm.$set(_vm.formSearch, \"keywords\", $$v)\n },\n expression: \"formSearch.keywords\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.init\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1), _vm._v(\" \"), (_vm.allPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增用户\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.userList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"登录名\",\n \"prop\": \"username\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"用户名\",\n \"prop\": \"realName\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"角色\",\n \"prop\": \"roles\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.roles), function(item) {\n return _c('el-tag', {\n key: item.id,\n staticStyle: {\n \"margin-right\": \"3px\"\n }\n }, [_vm._v(_vm._s(item.description))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"邮箱\",\n \"prop\": \"email\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.email || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"创建时间\",\n \"prop\": \"createTime\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createTime)))]\n }\n }])\n }), _vm._v(\" \"), (_vm.allPrivilege) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-edit\"\n })])], 1), _vm._v(\" \"), (scope.row.username !== _vm.loginUser) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1) : _vm._e()]\n }\n }], null, false, 4284222700)\n }) : _vm._e()], 1)], _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()\n ], 2), _vm._v(\" \"), (_vm.isUserInfoVisible) ? _c('div', [_c('user-info-dialog', {\n attrs: {\n \"roles-list\": _vm.rolesList,\n \"user-operation\": _vm.userOperation,\n \"user-info\": _vm.userInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"user-info-success\": _vm.userInfoSuccess\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-1857d534\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/permission_manage/user_manage/user_manage.vue\n// module id = 1442\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"批量提交\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isBatchSubmitVisible),\n callback: function($$v) {\n _vm.isBatchSubmitVisible = $$v\n },\n expression: \"isBatchSubmitVisible\"\n }\n }, [_c('el-form', {\n ref: \"batchSubmitInfo\",\n attrs: {\n \"model\": _vm.batchSubmitInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"80px\"\n }\n }, [_c('div', {\n staticClass: \"batch-submit-template\"\n }, [_c('el-transfer', {\n attrs: {\n \"filterable\": \"\",\n \"data\": _vm.batchSubmitList,\n \"titles\": ['可选模板', '已选模板']\n },\n model: {\n value: (_vm.templateSelected),\n callback: function($$v) {\n _vm.templateSelected = $$v\n },\n expression: \"templateSelected\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticStyle: {\n \"margin-right\": \"10px\"\n },\n attrs: {\n \"label\": \"修改描述\",\n \"prop\": \"approveInfo\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.batchSubmitInfo.approveInfo),\n callback: function($$v) {\n _vm.$set(_vm.batchSubmitInfo, \"approveInfo\", $$v)\n },\n expression: \"batchSubmitInfo.approveInfo\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.submitTemplate\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-1e4630ac\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_batch_submit_dialog/template_batch_submit_dialog.vue\n// module id = 1443\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"提交模板\",\n \"before-close\": _vm.handleClose,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isEditSaveVisible),\n callback: function($$v) {\n _vm.isEditSaveVisible = $$v\n },\n expression: \"isEditSaveVisible\"\n }\n }, [_c('el-form', {\n ref: \"editSaveInfo\",\n attrs: {\n \"model\": _vm.editSaveInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('div', [_c('div', {\n staticClass: \"edit-save-span\"\n }, [_c('i', {\n staticClass: \"el-icon-warning\"\n }), _vm._v(\"\\n 确定提交模板 \"), _c('span', [_vm._v(_vm._s(_vm.templateInfo.templateName))]), _vm._v(\" 吗?\\n \")]), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"修改描述\",\n \"prop\": \"historyDesc\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.editSaveInfo.historyDesc),\n callback: function($$v) {\n _vm.$set(_vm.editSaveInfo, \"historyDesc\", $$v)\n },\n expression: \"editSaveInfo.historyDesc\"\n }\n })], 1)], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.handleSubmit\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-1f2cf12e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/template_save_edit_dialog/template_save_edit_dialog.vue\n// module id = 1444\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"导出模板\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isTemplateExportVisible),\n callback: function($$v) {\n _vm.isTemplateExportVisible = $$v\n },\n expression: \"isTemplateExportVisible\"\n }\n }, [_c('div', {\n staticClass: \"export-template\"\n }, [_c('el-transfer', {\n attrs: {\n \"filterable\": \"\",\n \"data\": _vm.exportTemplateList,\n \"titles\": ['可选模板', '已选模板']\n },\n model: {\n value: (_vm.templateSelected),\n callback: function($$v) {\n _vm.templateSelected = $$v\n },\n expression: \"templateSelected\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.sumbitExportTemplate\n }\n }, [_vm._v(\"确定\")])], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-1f69898c\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_export_dialog/template_export_dialog.vue\n// module id = 1445\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.userInfoTitle,\n \"visible\": _vm.isVisible,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"update:visible\": function($event) {\n _vm.isVisible = $event\n }\n }\n }, [_c('el-form', {\n ref: \"userInfo\",\n attrs: {\n \"model\": _vm.userInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"100px\"\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"登录名\",\n \"prop\": \"username\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": !_vm.isEditable\n },\n model: {\n value: (_vm.userInfo.username),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"username\", $$v)\n },\n expression: \"userInfo.username\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"用户名\",\n \"prop\": \"realName\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": !_vm.isEditable\n },\n model: {\n value: (_vm.userInfo.realName),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"realName\", $$v)\n },\n expression: \"userInfo.realName\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"密码\",\n \"prop\": \"password\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.userInfo.password),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"password\", $$v)\n },\n expression: \"userInfo.password\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"邮箱\",\n \"prop\": \"email\",\n \"rules\": [{\n type: 'email',\n message: '请输入正确的邮箱地址',\n trigger: 'blur,change'\n }]\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.userInfo.email),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"email\", $$v)\n },\n expression: \"userInfo.email\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"角色\",\n \"prop\": \"roleNames\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.userInfo.roleNames),\n callback: function($$v) {\n _vm.$set(_vm.userInfo, \"roleNames\", $$v)\n },\n expression: \"userInfo.roleNames\"\n }\n }, _vm._l((_vm.rolesList), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.roleName,\n \"value\": item.roleName\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSubmit()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-228c2dc8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/permission_manage/user_manage/user_info_dialog.vue\n// module id = 1446\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"panel-container\"\n }, [_c('div', {\n staticClass: \"panel-header\"\n }, [_c('span', {\n staticClass: \"pull-left\"\n }, [_vm._v(_vm._s(_vm.title))]), _vm._v(\" \"), _c('a', {\n staticClass: \"pull-right\",\n on: {\n \"click\": _vm.togglePanel\n }\n }, [(_vm.isExpand) ? _c('i', {\n staticClass: \"fa fa-minus\"\n }) : _vm._e(), _vm._v(\" \"), (!_vm.isExpand) ? _c('i', {\n staticClass: \"fa fa-plus\"\n }) : _vm._e()])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isExpand),\n expression: \"isExpand\"\n }],\n staticClass: \"panel-body\"\n }, [_vm._t(\"chart\")], 2)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-22a7638e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/charts/chart_container.vue\n// module id = 1447\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'authority_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"模板变更\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(\"模板审批\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedState),\n callback: function($$v) {\n _vm.selectedState = $$v\n },\n expression: \"selectedState\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部状态\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.states), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"输入索引,模板或提交人\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.conditionForSearch),\n callback: function($$v) {\n _vm.conditionForSearch = $$v\n },\n expression: \"conditionForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"circle-check\"\n },\n on: {\n \"click\": _vm.handleBatchApprove\n }\n }, [_vm._v(\"批量处理\")])], 1)]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n ref: \"multipleTable\",\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.approveList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"selection-change\": _vm.handleSelectionChange\n }\n }, [_c('el-table-column', {\n attrs: {\n \"type\": \"selection\",\n \"width\": \"55\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"id\",\n \"label\": \"审批ID\",\n \"width\": \"70px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"title\",\n \"label\": \"标题\",\n \"width\": \"80px\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"索引名称\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'index_detail',\n query: {\n indexId: scope.row.indexId,\n indexName: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.indexName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"templateName\",\n \"label\": \"模板名称\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"所属集群\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"approveState\",\n \"label\": \"当前状态\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"translateStat\")(scope.row.approveState)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"applyUser\",\n \"label\": \"提交人\",\n \"width\": \"80px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"提交时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"审批人\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.approveState === 1 || scope.row.approveState === 2) ? _c('span', [_vm._v(_vm._s(scope.row.approveUser))]) : _c('span', [_vm._v(\"-\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"审批时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.approveState === 1 || scope.row.approveState === 2) ? _c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.approveTime)))]) : _c('span', [_vm._v(\"-\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"70px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.approveState === 0),\n expression: \"scope.row.approveState === 0\"\n }]\n }, [_c('el-tooltip', {\n attrs: {\n \"content\": \"查看\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleView(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-eye\"\n })])], 1), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"content\": \"处理\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleApprove(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-right\"\n })])], 1)], 1)]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isApproveDialogVisible) ? _c('div', [_c('approve-dialog', {\n attrs: {\n \"approve-states\": _vm.approveStates,\n \"approve-info\": _vm.approveInfo\n },\n on: {\n \"close-approve-dialog\": _vm.closeApproveDialog,\n \"approve-complete\": _vm.approveComplete\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isViewDialogVisible) ? _c('div', [_c('json-diff', {\n attrs: {\n \"json-diff-info\": _vm.jsonDiffInfo\n },\n on: {\n \"close-dialog\": _vm.closeViewContentDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-23c1491a\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/authority_manage/authority_manage_administrator.vue\n// module id = 1448\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"审批处理\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"approveInfo\",\n attrs: {\n \"model\": _vm.approveInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"100px\"\n }\n }, [_c('div', [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"审批\",\n \"prop\": \"state\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.approveInfo.state),\n callback: function($$v) {\n _vm.$set(_vm.approveInfo, \"state\", $$v)\n },\n expression: \"approveInfo.state\"\n }\n }, _vm._l((_vm.approveStates), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.key,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"note\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.approveInfo.note),\n callback: function($$v) {\n _vm.$set(_vm.approveInfo, \"note\", $$v)\n },\n expression: \"approveInfo.note\"\n }\n })], 1)], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitSyncInfo()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-24c25358\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/authority_manage/approve_dialog/approve_dialog.vue\n// module id = 1449\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"condition-add\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.addConditionRelate\n }\n }, [_vm._v(\"新增规则条件\")]), _vm._v(\" \"), _c('span', {\n staticClass: \"warning\"\n }, [_c('el-tooltip', {\n staticClass: \"item\",\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"若不增加规则条件,则会默认命中节点集\",\n \"placement\": \"right\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-info-circle\"\n })])], 1)], 1), _vm._v(\" \"), _vm._l((_vm.conditions), function(item, index) {\n return _c('el-collapse', {\n key: index,\n model: {\n value: (index),\n callback: function($$v) {\n index = $$v\n },\n expression: \"index\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": index\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('span', {\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(\"条件\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"danger\",\n \"size\": \"mini\",\n \"icon\": \"minus\"\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n return _vm.deleteConditionRelate(item)\n }\n }\n })], 1), _vm._v(\" \"), _c('condition-item', {\n ref: \"conditionItem\",\n refInFor: true,\n attrs: {\n \"condition-item\": item\n }\n })], 2)], 1)\n })], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-254d07b9\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_conditions.vue\n// module id = 1450\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"插件管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索插件\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.pluginNameForSearch),\n callback: function($$v) {\n _vm.pluginNameForSearch = $$v\n },\n expression: \"pluginNameForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")])], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.refreshPage\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"刷新\")])], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增插件\")])], 1)]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.pluginRuntimeList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"id\",\n \"label\": \"升级ID\",\n \"width\": \"80px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"所属集群\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginName\",\n \"label\": \"运行插件\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n name: 'plugin_upgrade',\n query: {\n pluginName: scope.row.pluginName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.pluginName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginVersion\",\n \"label\": \"插件版本\",\n \"width\": \"120px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((_vm.getPluginVersion(scope.row.nodeStates)), function(item) {\n return _c('div', {\n key: item,\n staticClass: \"plugin-version\"\n }, [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"right\"\n }\n }, [_vm._l((_vm.getNodesOfVersion(scope.row.nodeStates, item)), function(node) {\n return _c('div', {\n key: node\n }, [_vm._v(_vm._s(node))])\n }), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"slot\": \"reference\",\n \"type\": \"text\"\n },\n slot: \"reference\"\n }, [_vm._v(_vm._s(item))])], 2)], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginType\",\n \"label\": \"插件类型\",\n \"width\": \"130px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm.pluginTypeMap[scope.row.pluginType]))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"更新时间\",\n \"width\": \"190px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"70px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.creatable) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"升级\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleUpgrade(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege && scope.row.creatable) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"移除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRemove(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-close\"\n })])], 1) : _vm._e()]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isPluginInfoDialogVisible) ? _c('div', [_c('plugin-info-dialog', {\n attrs: {\n \"plugin-info\": _vm.pluginInfo,\n \"plugin-info-title\": _vm.pluginInfoTitle,\n \"plugin-info-operation\": _vm.pluginInfoOperation\n },\n on: {\n \"operate-close-dialog\": _vm.operateCloseDialog,\n \"close-dialog\": _vm.closeDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2792b3e0\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/plugin_manage/plugin_manage.vue\n// module id = 1451\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.clusterInfoTitle,\n \"size\": \"small\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isClusterInfoVisible),\n callback: function($$v) {\n _vm.isClusterInfoVisible = $$v\n },\n expression: \"isClusterInfoVisible\"\n }\n }, [_c('el-form', {\n ref: \"clusterInfo\",\n attrs: {\n \"model\": _vm.clusterInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"140px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"域名\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.clusterInfo.clusterId),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"clusterId\", $$v)\n },\n expression: \"clusterInfo.clusterId\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"logicalCluster\",\n \"label\": \"集群类型\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.clusterInfo.logicalCluster),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"logicalCluster\", $$v)\n },\n expression: \"clusterInfo.logicalCluster\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"物理集群\",\n \"value\": false\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"逻辑集群\",\n \"value\": true\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), (_vm.clusterInfo.logicalCluster) ? _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"物理集群\",\n \"prop\": \"realClustersArr\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\"\n },\n model: {\n value: (_vm.clusterInfo.realClustersArr),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"realClustersArr\", $$v)\n },\n expression: \"clusterInfo.realClustersArr\"\n }\n }, _vm._l((_vm.allPhysicals), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.id\n }\n })\n }), 1)], 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), (!_vm.clusterInfo.logicalCluster) ? _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"HTTP地址\",\n \"prop\": \"httpAddress\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.clusterInfo.httpAddress),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"httpAddress\", $$v)\n },\n expression: \"clusterInfo.httpAddress\"\n }\n })], 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), (!_vm.clusterInfo.logicalCluster) ? _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"ES client连接地址\",\n \"prop\": \"clientAddress\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.clusterInfo.clientAddress),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"clientAddress\", $$v)\n },\n expression: \"clusterInfo.clientAddress\"\n }\n })], 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"绑定代理集群\",\n \"prop\": \"accessiblePs\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\"\n },\n model: {\n value: (_vm.clusterInfo.accessiblePs),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"accessiblePs\", $$v)\n },\n expression: \"clusterInfo.accessiblePs\"\n }\n }, _vm._l((_vm.allPallasSearchs), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"description\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.clusterInfo.description),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo, \"description\", $$v)\n },\n expression: \"clusterInfo.description\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"监控级别\"\n }\n }, [_c('span', {\n staticStyle: {\n \"margin-right\": \"20px\"\n }\n }, [_c('span', {\n staticStyle: {\n \"color\": \"#fff\"\n }\n }, [_vm._v(\"集群:\")]), _c('el-switch', {\n attrs: {\n \"on-value\": 1,\n \"off-value\": 0\n },\n model: {\n value: (_vm.clusterInfo.monitorLevelModel.cluster),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo.monitorLevelModel, \"cluster\", $$v)\n },\n expression: \"clusterInfo.monitorLevelModel.cluster\"\n }\n })], 1), _vm._v(\" \"), _c('span', {\n staticStyle: {\n \"color\": \"#fff\"\n }\n }, [_vm._v(\"索引:\")]), _c('el-switch', {\n attrs: {\n \"on-value\": 1,\n \"off-value\": 0\n },\n model: {\n value: (_vm.clusterInfo.monitorLevelModel.index),\n callback: function($$v) {\n _vm.$set(_vm.clusterInfo.monitorLevelModel, \"index\", $$v)\n },\n expression: \"clusterInfo.monitorLevelModel.index\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitClusterInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2ae450e7\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_info_dialog/cluster_info_dialog.vue\n// module id = 1452\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": _vm.conditionInfoTitle,\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"conditionInfo\",\n attrs: {\n \"model\": _vm.conditionInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 30\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"规则名称\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.conditionInfo.name),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"name\", $$v)\n },\n expression: \"conditionInfo.name\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"优先级\",\n \"prop\": \"priority\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"placeholder\": \"优先于选中规则\"\n },\n model: {\n value: (_vm.conditionInfo.priority),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"priority\", $$v)\n },\n expression: \"conditionInfo.priority\"\n }\n }, _vm._l((_vm.alternativeConditions), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"是否启用\",\n \"prop\": \"enable\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n model: {\n value: (_vm.conditionInfo.enable),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"enable\", $$v)\n },\n expression: \"conditionInfo.enable\"\n }\n })], 1)]), _vm._v(\" \"), (_vm.conditionInfo.conditions.length > 1) ? _c('el-form-item', {\n attrs: {\n \"prop\": \"conditionRelation\",\n \"label\": \"条件关系\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.conditionInfo.conditionRelation),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"conditionRelation\", $$v)\n },\n expression: \"conditionInfo.conditionRelation\"\n }\n }, _vm._l((_vm.conditionRelations), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)]) : _vm._e()], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 14\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"\",\n \"label\": \"\",\n \"label-width\": \"0px\"\n }\n }, [_c('div', {\n staticClass: \"target-group-transfer\"\n }, [_c('el-transfer', {\n ref: \"targetGroupTransfer\",\n attrs: {\n \"render-content\": _vm.renderFunc,\n \"titles\": ['所有节点集', '应用'],\n \"data\": _vm.routingTargetGroups,\n \"props\": _vm.defaultProps\n },\n on: {\n \"change\": _vm.handleChange\n },\n model: {\n value: (_vm.conditionInfo.targetGroupsId),\n callback: function($$v) {\n _vm.$set(_vm.conditionInfo, \"targetGroupsId\", $$v)\n },\n expression: \"conditionInfo.targetGroupsId\"\n }\n })], 1)])], 1)], 1)], 1), _vm._v(\" \"), _c('conditions', {\n ref: \"conditions\",\n attrs: {\n \"conditions\": _vm.conditionInfo.conditions\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2c392ae4\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_condition_info_dialog/cluster_condition_info_dialog.vue\n// module id = 1453\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'plugin_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"插件管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.pluginName))])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.refreshPage\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"刷新\")])], 1)]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.pluginUpgradeList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"type\": \"expand\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(props) {\n return [_c('el-form', {\n staticClass: \"my-table-expand\",\n attrs: {\n \"label-position\": \"left\",\n \"inline\": \"\"\n }\n }, [_c('el-form-item', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"label\": \"路径\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.packagePath) + \";\")])]), _vm._v(\" \"), (props.row.state !== 3 && props.row.state !== 4) ? _c('div', _vm._l((props.row.nodeStates), function(item) {\n return _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (item.nodeIp !== ''),\n expression: \"item.nodeIp !== ''\"\n }],\n key: item.nodeIp\n }, [_c('el-form-item', {\n staticStyle: {\n \"width\": \"40%\"\n },\n attrs: {\n \"label\": \"IP\"\n }\n }, [_c('span', [_vm._v(_vm._s(item.nodeIp))])]), _vm._v(\" \"), _c('el-form-item', {\n staticStyle: {\n \"width\": \"30%\"\n },\n attrs: {\n \"label\": \"版本\"\n }\n }, [_c('span', [_vm._v(_vm._s(item.pluginVersion))])]), _vm._v(\" \"), _c('el-form-item', {\n staticStyle: {\n \"width\": \"30%\"\n },\n attrs: {\n \"label\": \"状态\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"translateStat\")(item.state)))])])], 1)\n }), 0) : _vm._e()], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"id\",\n \"label\": \"ID\",\n \"width\": \"60px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"所属集群\",\n \"min-width\": \"135px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!_vm.isAllPrivilege) ? _c('div', [_vm._v(_vm._s(scope.row.clusterId))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n name: 'cluster_detail',\n query: {\n clusterId: scope.row.clusterId\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.clusterId))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"note\",\n \"label\": \"插件描述\",\n \"width\": \"95px\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginVersion\",\n \"label\": \"插件版本\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"pluginType\",\n \"label\": \"插件类型\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm.pluginTypeMap[scope.row.pluginType]))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"applyUser\",\n \"label\": \"申请人\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.applyUser || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"approveUser\",\n \"label\": \"审批人\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.approveUser || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"状态\",\n \"width\": \"90px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"translateStat\")(scope.row.state)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"更新时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"130px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(_vm.isAllPrivilege) ? _c('div', [(scope.row.state === 1 || scope.row.state === 5) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"开始下载\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'download', '开始下载')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-download\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 5) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"强制升级\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'upgrade', '强制升级')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 51) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"开始升级\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'upgrade', '开始升级')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 61 || scope.row.state === 5 || scope.row.state === 51 || scope.row.state === 6) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"标记完成\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'done', '标记完成')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-check-circle\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 1) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"审批不通过\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'deny', '审批不通过')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-ban\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 4) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"回滚\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRollback(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-undo\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 1) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"取消\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'recall', '取消')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-close\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.state === 5 || scope.row.state === 51 || scope.row.state === 6) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"终止\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'stop', '终止')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-stop-circle\"\n })])], 1) : _vm._e()], 1) : _c('div', [(scope.row.state === 1) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"取消\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handlePlugin(scope.row, 'recall', '取消')\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-close\"\n })])], 1) : _vm._e()], 1)]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2df26081\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/plugin_manage/plugin_upgrade.vue\n// module id = 1454\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"condition-add\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.addConditionRelate\n }\n }, [_vm._v(\"新增规则条件\")]), _vm._v(\" \"), _c('span', {\n staticClass: \"warning\"\n }, [_c('el-tooltip', {\n staticClass: \"item\",\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"若不增加规则条件,则会默认命中节点集\",\n \"placement\": \"right\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-info-circle\"\n })])], 1)], 1), _vm._v(\" \"), _vm._l((_vm.conditions), function(item, index) {\n return _c('el-collapse', {\n key: index,\n model: {\n value: (index),\n callback: function($$v) {\n index = $$v\n },\n expression: \"index\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": index\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('span', {\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(\"条件\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"danger\",\n \"size\": \"mini\",\n \"icon\": \"minus\"\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n return _vm.deleteConditionRelate(item)\n }\n }\n })], 1), _vm._v(\" \"), _c('condition-item', {\n ref: \"conditionItem\",\n refInFor: true,\n attrs: {\n \"condition-item\": item\n }\n })], 2)], 1)\n })], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2eb1c088\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/route_manage/condition_info_dialog/conditions.vue\n// module id = 1455\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"index-info\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.crondeleteTitle,\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isCronDeleteVisible),\n callback: function($$v) {\n _vm.isCronDeleteVisible = $$v\n },\n expression: \"isCronDeleteVisible\"\n }\n }, [_c('el-form', {\n ref: \"crondeleteInfo\",\n attrs: {\n \"model\": _vm.crondeleteInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"150px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"cron\",\n \"label\": \"cron表达式\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.crondeleteInfo.cron),\n callback: function($$v) {\n _vm.$set(_vm.crondeleteInfo, \"cron\", $$v)\n },\n expression: \"crondeleteInfo.cron\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"scrollSize\",\n \"label\": \"每次删除多少\"\n }\n }, [_c('el-input-number', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.crondeleteInfo.scrollSize),\n callback: function($$v) {\n _vm.$set(_vm.crondeleteInfo, \"scrollSize\", $$v)\n },\n expression: \"crondeleteInfo.scrollSize\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"版本\",\n \"prop\": \"versionId\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"clearable\": \"\"\n },\n model: {\n value: (_vm.crondeleteInfo.versionId),\n callback: function($$v) {\n _vm.$set(_vm.crondeleteInfo, \"versionId\", $$v)\n },\n expression: \"crondeleteInfo.versionId\"\n }\n }, _vm._l((_vm.versionIdList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 20\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"delete by query dsl\",\n \"prop\": \"dsl\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\",\n \"rows\": 10\n },\n model: {\n value: (_vm.crondeleteInfo.dsl),\n callback: function($$v) {\n _vm.$set(_vm.crondeleteInfo, \"dsl\", $$v)\n },\n expression: \"crondeleteInfo.dsl\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitUpsert()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-313183c4\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/cron_delete/cron_delete_dialog/cron_delete_dialog.vue\n// module id = 1456\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"monitor-top\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.gaugeMetricData,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"transportAddress\",\n \"label\": \"transportAddress\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"jvmHeapUsage\",\n \"label\": \"JVM Heap(%)\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Free Disk\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.availableFS)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"documentCount\",\n \"label\": \"Documents\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Data\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.documentStore)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"indexCount\",\n \"label\": \"Indices\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"shardCount\",\n \"label\": \"Shards\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"type\",\n \"label\": \"Type\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"uptime\",\n \"label\": \"Uptime\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"GC Count(\" + (_vm.gcCountInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"gcCount\",\n \"option-info\": _vm.gcCountInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"GC Duration(\" + (_vm.gcDurationInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"gcDuration\",\n \"option-info\": _vm.gcDurationInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"JVM Heap(\" + (_vm.jvmHeapInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"jvmHeap\",\n \"option-info\": _vm.jvmHeapInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Cpu Percent(\" + (_vm.cpuPercentInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"cpuPercent\",\n \"option-info\": _vm.cpuPercentInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Threadpool Threads(\" + (_vm.threadpoolThreadsInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"threadpoolThreads\",\n \"option-info\": _vm.threadpoolThreadsInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Threadpool Queue(\" + (_vm.threadpoolQueueInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"threadpoolQueue\",\n \"option-info\": _vm.threadpoolQueueInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Threadpool Reject(\" + (_vm.threadpoolRejectInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"threadpoolReject\",\n \"option-info\": _vm.threadpoolRejectInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Rate(\" + (_vm.indexSearchRateInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchRate\",\n \"option-info\": _vm.indexSearchRateInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Latency(\" + (_vm.indexSearchLatencyInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchLatency\",\n \"option-info\": _vm.indexSearchLatencyInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Segment Count(\" + (_vm.segmentCountInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"segmentCount\",\n \"option-info\": _vm.segmentCountInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Index Memory(\" + (_vm.indexMemoryInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexMemory\",\n \"option-info\": _vm.indexMemoryInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"System load(\" + (_vm.systemLoadInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"systemLoad\",\n \"option-info\": _vm.systemLoadInfo\n }\n })], 1)])], 1)], 1)], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-346977f2\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/monitor/node_detail.vue\n// module id = 1457\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.dynamicInfoTitle,\n \"size\": \"small\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isDynamicInfoVisible),\n callback: function($$v) {\n _vm.isDynamicInfoVisible = $$v\n },\n expression: \"isDynamicInfoVisible\"\n }\n }, [_c('el-form', {\n ref: \"dynamicInfo\",\n attrs: {\n \"model\": _vm.dynamicInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"140px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"indexName\",\n \"label\": \"索引\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.dynamicInfo.indexName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"indexName\", $$v)\n },\n expression: \"dynamicInfo.indexName\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"filterVersion\",\n \"label\": \"版本\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n model: {\n value: (_vm.dynamicInfo.filterVersion),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"filterVersion\", $$v)\n },\n expression: \"dynamicInfo.filterVersion\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部版本\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.versionIdList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n })], 2)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"事件\",\n \"prop\": \"selectedType\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.selectedType),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"selectedType\", $$v)\n },\n expression: \"dynamicInfo.selectedType\"\n }\n }, [_vm._l((_vm.typeList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"全部事件\",\n \"value\": \"全部事件\"\n }\n })], 2)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [(_vm.dynamicInfo.selectedType == '全部事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部操作\",\n \"value\": \"全部操作\"\n }\n })], 1)], 1)], 1) : (_vm.dynamicInfo.selectedType == '索引事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, _vm._l((_vm.indexEventList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1) : (_vm.dynamicInfo.selectedType == '版本事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, _vm._l((_vm.versionEventList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1) : (_vm.dynamicInfo.selectedType == '同步事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, _vm._l((_vm.versionSyncEventList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1) : (_vm.dynamicInfo.selectedType == '模板事件') ? _c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"操作\",\n \"prop\": \"eventName\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.dynamicInfo.eventName),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"eventName\", $$v)\n },\n expression: \"dynamicInfo.eventName\"\n }\n }, _vm._l((_vm.templateEventList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1) : _vm._e()], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"timeRange\",\n \"label\": \"天数\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": true\n },\n model: {\n value: (_vm.dynamicInfo.timeRange),\n callback: function($$v) {\n _vm.$set(_vm.dynamicInfo, \"timeRange\", $$v)\n },\n expression: \"dynamicInfo.timeRange\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.deleteDynamicInfo()\n }\n }\n }, [_vm._v(\"删除\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-3858d6d9\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/dynamic_manage/dynamic_manage_dialog/dynamic_manage_dialog.vue\n// module id = 1458\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"选择复制的域\",\n \"before-close\": _vm.closeDialog\n },\n on: {\n \"open\": _vm.initSelectList\n },\n model: {\n value: (_vm.isCopyToFieldsVisible),\n callback: function($$v) {\n _vm.isCopyToFieldsVisible = $$v\n },\n expression: \"isCopyToFieldsVisible\"\n }\n }, [_c('div', {\n staticClass: \"copy-to-field\"\n }, [_c('el-transfer', {\n attrs: {\n \"filterable\": \"\",\n \"data\": _vm.copyToFieldList,\n \"titles\": ['可选的域', '已选的域']\n },\n model: {\n value: (_vm.copyToFieldSelected),\n callback: function($$v) {\n _vm.copyToFieldSelected = $$v\n },\n expression: \"copyToFieldSelected\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.sumbitCopyToField\n }\n }, [_vm._v(\"确定\")])], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-398453ce\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/version_manage/version_info_dialog/schema_copy_to_dialog.vue\n// module id = 1459\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": _vm.title,\n \"before-close\": _vm.closeDialog\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('fieldset', {\n staticClass: \"no-border\"\n }, [_c('div', {\n staticClass: \"view-content\"\n }, [_c('el-scrollbar', [_c('pre', [_vm._v(_vm._s(_vm.content))])])], 1)])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-39d18675\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/json_content.vue\n// module id = 1460\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"login-box\"\n }, [_c('div', {\n staticClass: \"login-header\"\n }, [_vm._v(\"\\n 用户登录\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"login-body\"\n }, [(_vm.loginErrorMsg) ? _c('div', {\n staticClass: \"msg-error\"\n }, [_c('i', {\n staticClass: \"el-icon-remove\"\n }), _vm._v(_vm._s(_vm.loginErrorMsg))]) : _vm._e(), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('el-input', {\n attrs: {\n \"size\": \"medium\",\n \"placeholder\": \"请输入帐号\"\n },\n model: {\n value: (_vm.loginInfo.username),\n callback: function($$v) {\n _vm.$set(_vm.loginInfo, \"username\", $$v)\n },\n expression: \"loginInfo.username\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('el-input', {\n attrs: {\n \"type\": \"password\",\n \"placeholder\": \"请输入密码\"\n },\n model: {\n value: (_vm.loginInfo.password),\n callback: function($$v) {\n _vm.$set(_vm.loginInfo, \"password\", $$v)\n },\n expression: \"loginInfo.password\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', [_c('el-button', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": function($event) {\n return _vm.login()\n }\n }\n }, [_vm._v(\"登录\")])], 1)], 1)], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-3cf02651\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/Login.vue\n// module id = 1461\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('el-form', {\n ref: \"conditionItemForm\",\n attrs: {\n \"model\": _vm.conditionItem,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断参数名\",\n \"prop\": \"paramName\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n model: {\n value: (_vm.conditionItem.paramName),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"paramName\", $$v)\n },\n expression: \"conditionItem.paramName\"\n }\n }, _vm._l((_vm.paramNames), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断运算\",\n \"prop\": \"exprOp\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.conditionItem.exprOp),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"exprOp\", $$v)\n },\n expression: \"conditionItem.exprOp\"\n }\n }, _vm._l((_vm.exprOps), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"判断值\",\n \"prop\": \"paramValue\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"多个判断值请以 , 分隔\"\n },\n model: {\n value: (_vm.conditionItem.paramValue),\n callback: function($$v) {\n _vm.$set(_vm.conditionItem, \"paramValue\", $$v)\n },\n expression: \"conditionItem.paramValue\"\n }\n })], 1)], 1)], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-436f53f2\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/route_manage/condition_info_dialog/condition_item.vue\n// module id = 1462\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [(_vm.initialized || _vm.initComponent === 'Login') ? [_c(_vm.initComponent, {\n tag: \"component\",\n on: {\n \"login-success\": _vm.loginSuccess\n }\n })] : [_c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading.fullscreen\",\n value: (_vm.loading),\n expression: \"loading\",\n modifiers: {\n \"fullscreen\": true\n }\n }],\n attrs: {\n \"element-loading-text\": \"Pallas正在初始化应用,请稍等···\"\n }\n })]], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-43ccedee\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 1463\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\",\n style: ({\n 'height': _vm.temPanelHeight\n })\n }, [_c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"template_content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"template_tree\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isAllPrivilege),\n expression: \"isAllPrivilege\"\n }]\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.addTemplate\n }\n }, [_vm._v(\"新增\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.exportTemplate\n }\n }, [_vm._v(\"导出\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.importTemplate\n }\n }, [_vm._v(\"导入\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.batchSubmitTemplate\n }\n }, [_vm._v(\"批量提交\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10\",\n style: ({\n 'height': _vm.temPanelHeight - 35,\n 'width': '260px'\n })\n }, [_c('el-tree', {\n staticStyle: {\n \"overflow\": \"auto\",\n \"height\": \"100%\"\n },\n attrs: {\n \"node-key\": \"id\",\n \"data\": _vm.treeData,\n \"props\": _vm.defaultProps,\n \"default-expand-all\": \"\",\n \"expand-on-click-node\": false,\n \"highlight-current\": \"\"\n },\n on: {\n \"node-click\": _vm.handleNodeClick\n }\n })], 1)]), _vm._v(\" \"), (!_vm.isEditable) ? _c('div', {\n staticClass: \"template-warning\"\n }, [_c('i', {\n staticClass: \"el-icon-warning\"\n }), _vm._v(\"请选择模板\")]) : _vm._e(), _vm._v(\" \"), _vm._l((_vm.templateList), function(template) {\n return _c('div', {\n key: template.templateName,\n staticClass: \"template-body\"\n }, [(_vm.templateInfo.templateName === template.templateName) ? _c('template-edit', {\n attrs: {\n \"tem-panel-height\": _vm.temPanelHeight,\n \"metadata-list\": _vm.metadataList,\n \"clusters\": _vm.clusters,\n \"index-id\": _vm.indexId,\n \"index-name\": _vm.indexName,\n \"is-all-privilege\": _vm.isAllPrivilege,\n \"template-info\": _vm.templateInfo,\n \"macro-list\": _vm.macroList\n },\n on: {\n \"close-delete\": _vm.closeDelete,\n \"close-edit\": _vm.closeEdit\n }\n }) : _vm._e()], 1)\n })], 2), _vm._v(\" \"), (_vm.isTemplateAddVisible) ? _c('div', [_c('template-add-dialog', {\n attrs: {\n \"template-add-info\": _vm.templateAddInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"submit-close-dialog\": _vm.submitCloseDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isTemplateImportVisible) ? _c('div', [_c('template-import-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-import-title\": _vm.templateImportTitle,\n \"template-import-url\": _vm.templateImportUrl\n },\n on: {\n \"close-dialog\": _vm.closeImportDialog,\n \"close-submit-dialog\": _vm.closeSubmitImportDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isExprotTemplateVisible) ? _c('div', [_c('template-export-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-list\": _vm.templateList\n },\n on: {\n \"close-export-dialog\": _vm.closeExportDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isBatchSubmitVisible) ? _c('div', [_c('template-batch-submit-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"modified-template-list\": _vm.modifiedTemplateList\n },\n on: {\n \"close-batch-submit-dialog\": _vm.closeBatchSubmitDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-46505c67\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_manage.vue\n// module id = 1464\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('el-tabs', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.tabActive),\n callback: function($$v) {\n _vm.tabActive = $$v\n },\n expression: \"tabActive\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"label\": \"超时重试\",\n \"name\": \"timeout_retry\"\n }\n }, [_c('timeout-retry-manage', {\n attrs: {\n \"template-list\": _vm.templateList,\n \"all-privilege\": _vm.allPrivilege\n },\n on: {\n \"refresh-template\": _vm.getTemplateList\n }\n })], 1), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"限流配置\",\n \"name\": \"throttling\"\n }\n }, [_c('throttling-manage', {\n attrs: {\n \"template-list\": _vm.templateList,\n \"all-privilege\": _vm.allPrivilege\n },\n on: {\n \"refresh-template\": _vm.getTemplateList\n }\n })], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-4755331e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/service_manage/service_manage.vue\n// module id = 1465\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('el-collapse', {\n model: {\n value: (_vm.activeNames),\n callback: function($$v) {\n _vm.activeNames = $$v\n },\n expression: \"activeNames\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": \"1\"\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_vm._v(\"\\n 采集规则\\n \")]), _vm._v(\" \"), _c('flow-record-config', {\n on: {\n \"get-flow-export\": _vm.getFlowExport\n }\n })], 2), _vm._v(\" \"), _c('el-collapse-item', {\n attrs: {\n \"title\": \"采集结果\",\n \"name\": \"2\"\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_vm._v(\"\\n 采集结果 -- 规则ID:\"), _c('span', {\n staticStyle: {\n \"color\": \"#32cd32\",\n \"font-weight\": \"bold\"\n }\n }, [_vm._v(_vm._s(_vm.flowRecordExportParams.configId))])]), _vm._v(\" \"), _c('flow-record-export', {\n attrs: {\n \"flow-record-export-params\": _vm.flowRecordExportParams\n }\n })], 2)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-4773df57\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/flow_record/flow_record.vue\n// module id = 1466\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"template-test-upload\"\n }, [_c('el-table', {\n attrs: {\n \"data\": _vm.addDataSource,\n \"show-header\": false\n }\n }, [_c('el-table-column', {\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input', {\n model: {\n value: (scope.row.paramNameDef),\n callback: function($$v) {\n _vm.$set(scope.row, \"paramNameDef\", $$v)\n },\n expression: \"scope.row.paramNameDef\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": \"/pallas/index_template/performance_script/upload.json\",\n \"auto-upload\": false,\n \"data\": _vm.addDataSource[0],\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"选择文件\")])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleAdd(scope.row)\n }\n }\n }, [_vm._v(\"上传\")])]\n }\n }])\n })], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-488cf774\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/template_test/template_test_upload/template_test_upload.vue\n// module id = 1467\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"新建模板\",\n \"before-close\": _vm.closeDialog,\n \"size\": \"tiny\",\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isTemplateAddVisible),\n callback: function($$v) {\n _vm.isTemplateAddVisible = $$v\n },\n expression: \"isTemplateAddVisible\"\n }\n }, [_c('el-form', {\n ref: \"templateAddInfo\",\n attrs: {\n \"model\": _vm.templateAddInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"90px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"名称\",\n \"prop\": \"templateName\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.templateAddInfo.templateName),\n callback: function($$v) {\n _vm.$set(_vm.templateAddInfo, \"templateName\", $$v)\n },\n expression: \"templateAddInfo.templateName\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"类型\",\n \"prop\": \"type\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.templateAddInfo.type),\n callback: function($$v) {\n _vm.$set(_vm.templateAddInfo, \"type\", $$v)\n },\n expression: \"templateAddInfo.type\"\n }\n }, [_c('el-option', {\n key: \"1\",\n attrs: {\n \"label\": \"模板\",\n \"value\": \"1\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n key: \"0\",\n attrs: {\n \"label\": \"宏\",\n \"value\": \"0\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"description\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.templateAddInfo.description),\n callback: function($$v) {\n _vm.$set(_vm.templateAddInfo, \"description\", $$v)\n },\n expression: \"templateAddInfo.description\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-49b3d5b8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_add_dialog/template_add_dialog.vue\n// module id = 1468\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [(_vm.privilege) ? _c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"创建规则\")])], 1)])]) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.rulesList,\n \"stripe\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"规则名称\",\n \"prop\": \"name\",\n \"header-align\": \"center\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"规则关系\",\n \"prop\": \"conditionRelation\",\n \"width\": \"80px\",\n \"header-align\": \"center\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断表达式\",\n \"header-align\": \"center\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"判断参数名\",\n \"min-width\": \"150\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.paramName,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.paramName))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断运算\",\n \"min-width\": \"70\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.exprOp,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.exprOp))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断值\",\n \"min-width\": \"140\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.paramValue,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.paramValue))])\n })\n }\n }])\n })], 1), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Preference\",\n \"min-width\": \"70\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n staticClass: \"target-group-item\",\n attrs: {\n \"type\": scope.row.preference === '' ? 'info' : 'success',\n \"close-transition\": \"\"\n }\n }, [_c('span', [_vm._v(_vm._s(scope.row.preference || '无'))])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"节点集\",\n \"min-width\": \"150\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.targetGroups), function(item) {\n return _c('div', {\n key: item.id,\n staticClass: \"route-tag\"\n }, [_c('el-tag', {\n staticClass: \"target-group-item\",\n attrs: {\n \"type\": \"warning\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm.routingTargetGroupsList[item.id].name))]), _vm._v(\" \"), (scope.row.targetGroups.length > 1) ? _c('span', {\n staticClass: \"route-weight\"\n }, [_vm._v(_vm._s(item.weight))]) : _vm._e()])], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用\",\n \"header-align\": \"center\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.enable ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateEnable\")(scope.row.enable)))])]\n }\n }])\n }), _vm._v(\" \"), (_vm.privilege) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80px\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-edit\"\n })])], 1), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row, scope.$index)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1)]\n }\n }], null, false, 2969598020)\n }) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('target-group', {\n attrs: {\n \"privilege\": _vm.privilege,\n \"index-id\": _vm.indexId,\n \"index-name\": _vm.indexName,\n \"rules-list\": _vm.rulesList,\n \"routing-target-groups-list\": _vm.routingTargetGroupsList\n },\n on: {\n \"get-routing-list\": _vm.getRoutingList\n }\n }), _vm._v(\" \"), (_vm.isConditionInfoVisible) ? _c('div', [_c('condition-info-dialog', {\n attrs: {\n \"routing-target-groups\": _vm.routingTargetGroups,\n \"conditions\": JSON.parse(JSON.stringify(_vm.conditions)),\n \"condition-info\": _vm.conditionInfo,\n \"condition-info-title\": _vm.conditionInfoTitle,\n \"condition-operation\": _vm.conditionOperation\n },\n on: {\n \"add-condition\": _vm.addCondition,\n \"edit-condition\": _vm.editCondition,\n \"close-dialog\": _vm.closeConditionDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-49b75a1e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/route_manage/route_manage.vue\n// module id = 1469\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"index-timeout-retry\"\n }, [_c('i', {\n staticClass: \"fa fa-exclamation-circle\"\n }), _vm._v(\"\\n 当前索引级别超时为 \"), _c('span', [_vm._v(_vm._s(_vm.indexInfo.timeout))]), _vm._v(\" 毫秒,重试为 \"), _c('span', [_vm._v(_vm._s(_vm.indexInfo.retry))]), _vm._v(\" 次。(若模板超时时间为0毫秒,则以当前索引的超时时间和重试为准。)\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"超时时间(毫秒,需>=50ms)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"超时时间(毫秒)\",\n \"min\": 0\n },\n model: {\n value: (_vm.templateInfo.timeout),\n callback: function($$v) {\n _vm.$set(_vm.templateInfo, \"timeout\", $$v)\n },\n expression: \"templateInfo.timeout\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"重试次数(上限1次)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"重试次数\",\n \"min\": 0,\n \"max\": 1\n },\n model: {\n value: (_vm.templateInfo.retry),\n callback: function($$v) {\n _vm.$set(_vm.templateInfo, \"retry\", $$v)\n },\n expression: \"templateInfo.retry\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpdate\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"更新\")])], 1)], 1)], 1)])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-4ac0cba8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/service_governance/service_governance.vue\n// module id = 1470\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticStyle: {\n \"height\": \"300px\"\n }\n }, [(JSON.stringify(_vm.optionInfo) === '{}') ? _c('chart-no-data') : _vm._e(), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"width\": \"100%\",\n \"height\": \"300px\"\n },\n attrs: {\n \"id\": _vm.id\n }\n })], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-4f473ceb\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/charts/line.vue\n// module id = 1471\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isAllPrivilege),\n expression: \"isAllPrivilege\"\n }],\n staticClass: \"content\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增版本\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.versionList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"版本id\",\n \"prop\": \"id\",\n \"width\": \"150px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"所属集群\",\n \"prop\": \"realClusterIds\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((_vm.$array.strToArray(scope.row.realClusterIds)), function(item) {\n return _c('div', {\n key: item,\n staticClass: \"condition-table\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n name: 'cluster_detail',\n query: {\n clusterId: _vm.getClusterName(item)\n }\n }\n }\n }, [_vm._v(_vm._s(_vm.getClusterName(item)))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"查看配置信息\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.viewConfigInfo(scope.row, item)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-cog\"\n })])], 1)], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"数据量\",\n \"prop\": \"count\",\n \"width\": \"150px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.count), function(item, index) {\n return _c('div', {\n key: item,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item) + \"\\n \"), _c('el-tooltip', {\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"快速查看数据\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n _vm.retrieve(scope.row, _vm.$array.strToArray(scope.row.realClusterIds)[index])\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-search-plus\"\n })])], 1)], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"创建时间\",\n \"prop\": \"createTime\",\n \"width\": \"200px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用\",\n \"prop\": \"isUsed\",\n \"width\": \"150px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.isUsed ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateIsUsed\")(scope.row.isUsed || false)))])]\n }\n }])\n }), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [_c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSync),\n expression: \"!scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.createIndex(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"创建索引\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isUsed),\n expression: \"!scope.row.isUsed\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.enableVersion(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-hand-o-right\"\n }), _vm._v(\"启用版本\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.triggerDialog(scope.row, 'view')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-eye\"\n }), _vm._v(\"配置查看\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isSync),\n expression: \"scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.triggerDialog(scope.row, 'dynamic_edit')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n }), _vm._v(\"动态配置更改\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSync),\n expression: \"!scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.triggerDialog(scope.row, 'edit')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n }), _vm._v(\"配置更改\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.copyVersion(scope.row, 'copy')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-clone\"\n }), _vm._v(\"版本复制\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.preheading(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-sun-o\"\n }), _vm._v(\"索引预热\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isSync),\n expression: \"scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.stopSync(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-stop-circle-o\"\n }), _vm._v(\"删除索引\")])])]), _vm._v(\" \"), _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSync),\n expression: \"!scope.row.isSync\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-trash\"\n }), _vm._v(\"删除版本\")])])])], 1)], 1)]\n }\n }], null, false, 2811631662)\n }) : _vm._e()], 1)], _vm._v(\" \"), (_vm.versionData.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.versionData.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()\n ], 2), _vm._v(\" \"), (_vm.isVersionInfoVisible) ? _c('div', [_c('version-info-dialog', {\n attrs: {\n \"version-operation\": _vm.versionOperation,\n \"version-info-title\": _vm.versionInfoTitle,\n \"version-info\": _vm.versionInfo,\n \"is-logical\": _vm.isLogical,\n \"clusters\": _vm.clusters,\n \"is-meta-data-null\": _vm.isMetaDataNull\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"template-operate-success\": _vm.templateOperateSuccess\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isVersionDynamicInfoVisible) ? _c('div', [_c('version-dynamic-info-dialog', {\n attrs: {\n \"version-operation\": _vm.versionOperation,\n \"version-info-title\": _vm.versionInfoTitle,\n \"version-info\": _vm.versionInfo,\n \"is-logical\": _vm.isLogical,\n \"clusters\": _vm.clusters\n },\n on: {\n \"close-dialog\": _vm.closeDynamicDialog,\n \"template-operate-success\": _vm.dynamicUpdateOperateSuccess\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isViewConfigVisible) ? _c('div', [_c('json-content-dialog', {\n attrs: {\n \"content\": _vm.configInfo,\n \"title\": _vm.configTitle\n },\n on: {\n \"close-dialog\": _vm.closeViewConfigDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isPreheadingVisible) ? _c('div', [_c('preheading-dialog', {\n attrs: {\n \"preheading-info\": _vm.preheadingInfo\n },\n on: {\n \"close-dialog\": _vm.closePreheadingDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-55030cd1\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/version_manage/version_manage.vue\n// module id = 1472\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"template-content\",\n style: ({\n 'height': _vm.temPanelHeight\n }),\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-row', [_c('div', {\n staticClass: \"pull-left template-title\"\n }, [_vm._v(\"\\n 当前\" + _vm._s(this.templateType) + \":\"), _c('span', {\n staticClass: \"template-name\"\n }, [_vm._v(_vm._s(_vm.templateInfo.templateName))]), _vm._v(\" \"), (_vm.templateInfo.content === '' || _vm.templateInfo.content === '{}') ? _c('el-tooltip', {\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"初始化自定义业务模板\",\n \"placement\": \"bottom\"\n }\n }, [(_vm.isEditOperate && !_vm.templateInfo.approving) ? _c('el-button', {\n attrs: {\n \"type\": \"success\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.setCustomTemplate\n }\n }, [_c('i', {\n staticClass: \"fa fa-hand-o-right\"\n }), _vm._v(\"模板向导\\n \")]) : _vm._e()], 1) : _vm._e(), _vm._v(\" \"), (_vm.templateInfo.content !== '' && _vm.templateInfo.content !== '{}') ? _c('el-tooltip', {\n attrs: {\n \"effect\": \"dark\",\n \"content\": \"可在当前光标处,插入选择的模板字段\",\n \"placement\": \"bottom\"\n }\n }, [(_vm.isEditOperate && !_vm.templateInfo.approving) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.insertTemplate\n }\n }, [_c('i', {\n staticClass: \"fa fa-code\"\n }), _vm._v(\"插入查询变量\\n \")]) : _vm._e()], 1) : _vm._e(), _vm._v(\" \"), (_vm.templateInfo.approving && _vm.templateInfo.type === 1) ? _c('span', {\n staticClass: \"template-approving\"\n }, [_vm._v(\"状态:\"), _c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n name: 'authority_manage'\n }\n }\n }, [_vm._v(\"待审核\")]), _vm._v(\",不可进行保存,删除等操作\")], 1) : _vm._e(), _vm._v(\" \"), (_vm.templateInfo.approving && _vm.templateInfo.type === 0) ? _c('span', {\n staticClass: \"template-approving\"\n }, [_vm._v(\"引用该宏的模板处于待审核状态,不可进行保存、删除等操作\")]) : _vm._e()], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('log-monitor', {\n attrs: {\n \"template-name\": _vm.templateInfo.templateName,\n \"index-id\": _vm.indexId,\n \"index-name\": _vm.indexName\n }\n }), _vm._v(\" \"), (!_vm.isMacroVisible && _vm.isEditOperate) ? _c('el-select', {\n staticStyle: {\n \"padding-right\": \"10px\"\n },\n attrs: {\n \"size\": \"small\",\n \"placeholder\": \"请选择要插入的宏\",\n \"clearable\": \"\"\n },\n on: {\n \"change\": _vm.insertMacro\n },\n model: {\n value: (_vm.selectedMacro),\n callback: function($$v) {\n _vm.selectedMacro = $$v\n },\n expression: \"selectedMacro\"\n }\n }, _vm._l((_vm.macroList), function(item) {\n return _c('el-option', {\n key: item.templateName,\n attrs: {\n \"label\": item.templateName,\n \"value\": item.templateName\n }\n })\n }), 1) : _vm._e(), _vm._v(\" \"), (_vm.isEditOperate && !_vm.templateInfo.approving) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleSave\n }\n }, [_vm._v(\"保存\")]) : _vm._e(), _vm._v(\" \"), (_vm.isEditOperate && !_vm.templateInfo.approving && _vm.templateInfo.type === 1) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleApprove\n }\n }, [_vm._v(\"提交\")]) : _vm._e(), _vm._v(\" \"), (_vm.isEditOperate && !_vm.templateInfo.approving) ? _c('el-button', {\n attrs: {\n \"type\": \"danger\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleDelete\n }\n }, [_vm._v(\"删除\")]) : _vm._e(), _vm._v(\" \"), (_vm.templateInfo.hisCount > 0 && _vm.isEditOperate) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleHistoryVersion\n }\n }, [_vm._v(_vm._s(_vm.historyVersionBtn))]) : _vm._e()], 1) : _vm._e()]), _vm._v(\" \"), _c('div', [_c('el-row', [_c('el-tabs', {\n on: {\n \"tab-click\": _vm.tabClick\n },\n model: {\n value: (_vm.activeTab),\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"label\": \"编辑模板\",\n \"name\": \"edit\"\n }\n }, [_c('div', {\n class: [_vm.isShowHistoryVersion ? 'template-edit-and-version-content' : 'template-edit-content'],\n style: ({\n 'height': _vm.temPanelHeight - 85\n })\n }, [_c('editor', {\n ref: \"aceEditor1\",\n attrs: {\n \"content\": _vm.templateInfo.content,\n \"editor-id\": _vm.eidtorId\n },\n on: {\n \"change-content\": _vm.changeEditContent\n }\n })], 1), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isShowHistoryVersion),\n expression: \"isShowHistoryVersion\"\n }],\n staticClass: \"template-history-version-content\"\n }, [_c('div', {\n staticStyle: {\n \"padding-left\": \"10px\"\n }\n }, [_c('el-table', {\n attrs: {\n \"data\": _vm.historyVersionList,\n \"border\": \"\",\n \"max-height\": _vm.temPanelHeight - 85\n },\n on: {\n \"row-click\": _vm.handleVersionDialog\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"修改日期\",\n \"width\": \"150px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.createdTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"description\",\n \"label\": \"描述\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"creator\",\n \"label\": \"修改者\"\n }\n })], 1)], 1)])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"sql parser\",\n \"name\": \"sql\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [_c('div', {\n staticStyle: {\n \"margin\": \"5px 0 10px\"\n }\n }, [_c('span', [_vm._v(\"数据源:\")]), _vm._v(\" \"), _c('el-select', {\n staticStyle: {\n \"width\": \"39%\"\n },\n attrs: {\n \"size\": \"medium\",\n \"placeholder\": \"请选择数据源\"\n },\n on: {\n \"change\": _vm.initSql\n },\n model: {\n value: (_vm.datasourceId),\n callback: function($$v) {\n _vm.datasourceId = $$v\n },\n expression: \"datasourceId\"\n }\n }, _vm._l((Object.entries(_vm.datasourceList)), function(item) {\n return _c('el-option', {\n key: item[0],\n attrs: {\n \"label\": item[1],\n \"value\": item[0]\n }\n })\n }), 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('div', {\n style: ({\n 'height': _vm.temPanelHeight - 135\n })\n }, [_c('editor', {\n ref: \"sqlEditor\",\n attrs: {\n \"content\": _vm.sql,\n \"mode\": \"sql\",\n \"editor-id\": \"sqlEditor\"\n },\n on: {\n \"change-content\": _vm.changeSqlContent\n }\n })], 1)]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_c('div', {\n style: ({\n 'margin-top': (_vm.temPanelHeight - 240) / 2\n }),\n attrs: {\n \"align\": \"center\"\n }\n }, [_c('div', [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"size\": \"small\",\n \"title\": \"结果仅供参考,需进一步加工\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleExplain\n }\n }, [_vm._v(\"转 DSL\")])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"5px\"\n }\n }, [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"title\": \"谨慎执行,别跑挂DB了\",\n \"disabled\": !_vm.isAllPrivilege,\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleExecute\n }\n }, [_vm._v(\"查询DB\")])], 1)])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('div', {\n style: ({\n 'height': _vm.temPanelHeight - 135\n })\n }, [_c('editor', {\n ref: \"sqlEditorResult\",\n attrs: {\n \"content\": _vm.explainContent,\n \"readonly\": true,\n \"editor-id\": \"sqlEditorResult\"\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"调试\",\n \"name\": \"debug\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [(_vm.clusters.length > 1) ? _c('div', {\n staticClass: \"render-cluster\"\n }, [_c('span', [_vm._v(\"指定集群:\")]), _vm._v(\" \"), _c('el-select', {\n staticStyle: {\n \"margin-left\": \"10px\"\n },\n attrs: {\n \"size\": \"small\",\n \"placeholder\": \"请选择集群\"\n },\n model: {\n value: (_vm.clusterId),\n callback: function($$v) {\n _vm.clusterId = $$v\n },\n expression: \"clusterId\"\n }\n }, _vm._l((_vm.clusters), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.id\n }\n })\n }), 1)], 1) : _vm._e(), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('div', {\n staticClass: \"debug-title pull-left\"\n }, [_c('div', {\n staticClass: \"pull-left\",\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(\"参数\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleResetParams\n }\n }, [_vm._v(\"重置参数\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleFormatParams\n }\n }, [_vm._v(\"格式化参数\")])], 1)]), _vm._v(\" \"), _c('div', {\n style: ({\n 'height': _vm.temPanelHeight - 120\n })\n }, [_c('editor', {\n ref: \"aceEditor2\",\n attrs: {\n \"content\": _vm.templateInfo.params,\n \"editor-id\": _vm.debugId\n },\n on: {\n \"change-content\": _vm.changeDebugContent\n }\n })], 1)]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_c('div', {\n style: ({\n 'margin-top': (_vm.temPanelHeight - 240) / 2\n }),\n attrs: {\n \"align\": \"center\"\n }\n }, [_c('div', [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"size\": \"mini\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleRender\n }\n }, [_vm._v(\"渲染DSL\")])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"10px\"\n }\n }, [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"size\": \"mini\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleDebug\n }\n }, [_vm._v(\"执行查询\")])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"10px\"\n }\n }, [_c('el-button', {\n staticStyle: {\n \"width\": \"75px\"\n },\n attrs: {\n \"size\": \"mini\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.queryProfile\n }\n }, [_vm._v(\"慢查询分析\")])], 1)])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('div', [_c('div', {\n staticClass: \"debug-title\"\n }, [_c('span', [_vm._v(\"结果\")]), _vm._v(\" \"), (!_vm.isProfileVisible) ? _c('el-button', {\n directives: [{\n name: \"clipboard\",\n rawName: \"v-clipboard:copy\",\n value: (_vm.resultContent),\n expression: \"resultContent\",\n arg: \"copy\"\n }, {\n name: \"clipboard\",\n rawName: \"v-clipboard:success\",\n value: (_vm.copySuccess),\n expression: \"copySuccess\",\n arg: \"success\"\n }, {\n name: \"clipboard\",\n rawName: \"v-clipboard:error\",\n value: (_vm.copyError),\n expression: \"copyError\",\n arg: \"error\"\n }],\n staticClass: \"pull-right\",\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n }\n }, [_vm._v(\"复制内容\\n \")]) : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n style: ({\n 'height': _vm.temPanelHeight - 120\n })\n }, [(!_vm.isProfileVisible) ? _c('editor', {\n ref: \"debugResultEditor\",\n attrs: {\n \"content\": _vm.resultContent,\n \"readonly\": true,\n \"editor-id\": \"debugResult\"\n }\n }) : _c('profile-content', {\n attrs: {\n \"profile-data\": _vm.profileData\n }\n })], 1)])])], 1), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"API\",\n \"name\": \"api\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [_c('div', {\n staticClass: \"api-content\",\n style: ({\n 'height': _vm.temPanelHeight - 95\n })\n }, [_c('el-scrollbar', [_vm._v(\"\\n RestClient示例:\\n \"), _c('br'), _vm._v(\" \"), _c('pre', [_vm._v(_vm._s(_vm.apiContent.rest_client))]), _vm._v(\" \"), _c('br'), _vm._v(\" \"), _c('pre', [_vm._v(_vm._s((\"POST: \" + (_vm.apiContent.path))))]), _vm._v(\" \"), _c('pre', [_vm._v(_vm._s(_vm.apiContent.content))])])], 1)]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"性能测试\",\n \"name\": \"test\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [_c('template-test', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-name\": _vm.templateInfo.templateName,\n \"params-info\": _vm.paramsInfo,\n \"tem-panel-height\": _vm.temPanelHeight\n }\n })], 1), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"超时重试\",\n \"name\": \"timeoutRetry\",\n \"disabled\": _vm.isMacroVisible || !_vm.isAllPrivilege\n }\n }, [_c('service-governance', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-info\": _vm.templateInfo\n }\n })], 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), (_vm.isVersionContentVisible) ? _c('div', [_c('json-diff', {\n attrs: {\n \"is-overwrite\": true,\n \"json-diff-info\": _vm.versionDiffInfo\n },\n on: {\n \"overwrite-operate\": _vm.overwriteVersion,\n \"close-dialog\": _vm.closeVersionContentDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isEditSaveVisible) ? _c('div', [_c('template-save-edit-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-info\": _vm.templateInfo\n },\n on: {\n \"close-edit-save-dialog\": _vm.closeEditSaveDialog,\n \"edit-save-success\": _vm.editSaveSuccess\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isTemplateConfigVisible) ? _c('div', [_c('template-config-dialog', {\n attrs: {\n \"metadata-list\": _vm.metadataList\n },\n on: {\n \"cover-content\": _vm.coverConfigTemplate,\n \"close-dialog\": _vm.closeTemplateConfigDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isTemplateInsertVisible) ? _c('div', [_c('template-insert-dialog', {\n attrs: {\n \"metadata-list\": _vm.metadataList\n },\n on: {\n \"insert-template-content\": _vm.insertTemplateContent,\n \"close-dialog\": _vm.closeTemplateInsertDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-561d54ec\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/template_edit.vue\n// module id = 1473\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.targetGroupInfoTitle,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('el-form', {\n ref: \"targetGroupInfo\",\n attrs: {\n \"model\": _vm.targetGroupInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"130px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"name\",\n \"label\": \"节点集名称\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.targetGroupInfo.name),\n callback: function($$v) {\n _vm.$set(_vm.targetGroupInfo, \"name\", $$v)\n },\n expression: \"targetGroupInfo.name\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-58c1c67c\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_info_dialog.vue\n// module id = 1474\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(\"ES集群路由配置\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.clusterId))])], 1)], 1), _vm._v(\" \"), (_vm.privilege) ? _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"创建规则\")])], 1)]) : _vm._e(), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.rulesList,\n \"stripe\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"规则名称\",\n \"prop\": \"name\",\n \"header-align\": \"center\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"规则关系\",\n \"prop\": \"conditionRelation\",\n \"header-align\": \"center\",\n \"width\": \"80px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断表达式\",\n \"header-align\": \"center\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"判断参数名\",\n \"min-width\": \"150\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.paramName,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.paramName))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断运算\",\n \"min-width\": \"70\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.exprOp,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.exprOp))])\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"判断值\",\n \"min-width\": \"140\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.conditions), function(item) {\n return _c('div', {\n key: item.paramValue,\n staticClass: \"condition-table\"\n }, [_vm._v(_vm._s(item.paramValue))])\n })\n }\n }])\n })], 1), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"节点集\",\n \"min-width\": \"150\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return _vm._l((scope.row.targetGroups), function(item) {\n return _c('div', {\n key: item.id,\n staticClass: \"route-tag\"\n }, [_c('el-tag', {\n staticClass: \"target-group-item\",\n attrs: {\n \"type\": \"warning\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm.routingTargetGroupsList[item.id].name))]), _vm._v(\" \"), (scope.row.targetGroups.length > 1) ? _c('span', {\n staticClass: \"route-weight\"\n }, [_vm._v(_vm._s(item.weight))]) : _vm._e()])], 1)\n })\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用\",\n \"header-align\": \"center\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.enable ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateEnable\")(scope.row.enable)))])]\n }\n }])\n }), _vm._v(\" \"), (_vm.privilege) ? _c('el-table-column', {\n attrs: {\n \"label\": \"路由管理\",\n \"width\": \"80px\",\n \"header-align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-edit\"\n })])], 1), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row, scope.$index)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1)]\n }\n }], null, false, 2969598020)\n }) : _vm._e()], 1), _vm._v(\" \"), _c('target-group', {\n attrs: {\n \"privilege\": _vm.privilege,\n \"cluster-id\": _vm.clusterId,\n \"rules-list\": _vm.rulesList,\n \"routing-target-groups-list\": _vm.routingTargetGroupsList\n },\n on: {\n \"get-routing-list\": _vm.getRoutingList\n }\n }), _vm._v(\" \"), (_vm.isConditionInfoVisible) ? _c('div', [_c('condition-info-dialog', {\n attrs: {\n \"routing-target-groups\": _vm.routingTargetGroups,\n \"conditions\": JSON.parse(JSON.stringify(_vm.conditions)),\n \"condition-info\": _vm.conditionInfo,\n \"condition-info-title\": _vm.conditionInfoTitle,\n \"condition-operation\": _vm.conditionOperation\n },\n on: {\n \"add-condition\": _vm.addCondition,\n \"edit-condition\": _vm.editCondition,\n \"close-dialog\": _vm.closeConditionDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-5a52933d\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_route_manage.vue\n// module id = 1475\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"schema-info-dialog\"\n }, [_c('el-dialog', {\n attrs: {\n \"title\": _vm.childTitle,\n \"size\": \"large\",\n \"show-close\": false,\n \"close-on-click-modal\": false,\n \"close-on-press-escape\": false\n },\n on: {\n \"open\": _vm.openDialog\n },\n model: {\n value: (_vm.isSchemaChildVisible),\n callback: function($$v) {\n _vm.isSchemaChildVisible = $$v\n },\n expression: \"isSchemaChildVisible\"\n }\n }, [_c('div', {\n staticClass: \"schema-content\"\n }, [(!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增字段\")]) : _vm._e(), _vm._v(\" \"), (_vm.childInfo.length > 0) ? _c('span', {\n staticStyle: {\n \"color\": \"#fff\",\n \"margin-left\": \"5px\"\n }\n }, [_vm._v(\"Dynamic: \"), _c('el-switch', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.initDynamic),\n callback: function($$v) {\n _vm.initDynamic = $$v\n },\n expression: \"initDynamic\"\n }\n })], 1) : _vm._e()], 1), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.childInfo,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"字段名\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input', {\n staticClass: \"nested-input\",\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.fieldName),\n callback: function($$v) {\n _vm.$set(scope.row, \"fieldName\", $$v)\n },\n expression: \"scope.row.fieldName\"\n }\n }), _vm._v(\" \"), (_vm.checkArrayNotEmpty(scope.row.copyTo)) ? _c('el-tag', {\n attrs: {\n \"type\": \"success\"\n }\n }, [_vm._v(\"copy to: \" + _vm._s(scope.row.copyTo))]) : _vm._e(), _vm._v(\" \"), (scope.row.multiField.length !== 0) ? _c('el-button', {\n attrs: {\n \"type\": \"warning\"\n },\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaMultiFields(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa\"\n }), _vm._v(\"subFields\")]) : _vm._e()]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"ES类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.fieldType),\n expression: \"scope.row.fieldType\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"fieldType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, _vm._l((_vm.fieldTypes), function(item) {\n return _c('option', {\n key: item.value,\n domProps: {\n \"value\": item.value\n }\n }, [_vm._v(_vm._s(item.label))])\n }), 0)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"多值/单值\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.multi),\n expression: \"scope.row.multi\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"multi\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"label\": \"单值\"\n },\n domProps: {\n \"value\": false\n }\n }, [_vm._v(\"单值\")]), _vm._v(\" \"), _c('option', {\n attrs: {\n \"label\": \"多值\"\n },\n domProps: {\n \"value\": true\n }\n }, [_vm._v(\"多值\")])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"查询关键字\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.search),\n callback: function($$v) {\n _vm.$set(scope.row, \"search\", $$v)\n },\n expression: \"scope.row.search\"\n }\n }, [_vm._v(\"是否查询\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"排序或聚合\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.docValue),\n callback: function($$v) {\n _vm.$set(scope.row, \"docValue\", $$v)\n },\n expression: \"scope.row.docValue\"\n }\n }, [_vm._v(\"用于排序或聚合\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用store\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.store),\n callback: function($$v) {\n _vm.$set(scope.row, \"store\", $$v)\n },\n expression: \"scope.row.store\"\n }\n }, [_vm._v(\"启用store\")])]\n }\n }])\n }), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"min-width\": \"60\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [_c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"删除\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaMultiFields(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加subFields\")])])]), _vm._v(\" \"), _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaCopyTo(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加copyTo\")])])])], 1)], 1)]\n }\n }], null, false, 2842098709)\n }) : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.cancelBtn()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.confirmBtn()\n }\n }\n }, [_vm._v(\"确定\")]) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('schema-multi-field-dialog', {\n attrs: {\n \"is-schema-multi-fields-visible\": _vm.isSchemaMultiFieldsVisible,\n \"schema-multi-fields-info\": _vm.schemaExtInfo,\n \"version-operation\": _vm.versionOperation,\n \"schema-parent-field-name\": _vm.schemaParentFieldName\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaMultiFieldsDialog,\n \"add-schema-multi-field\": _vm.addSchemaMultiFields\n }\n }), _vm._v(\" \"), _c('schema-copy-to-dialog', {\n attrs: {\n \"is-copy-to-fields-visible\": _vm.isCopyToFieldsVisible,\n \"schema-copy-to-info\": _vm.schemaExtInfo,\n \"copy-to-list\": _vm.validCopyToFields,\n \"schema-parent-field-name\": _vm.schemaParentFieldName\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaCopyToDialog,\n \"add-schema-copy-to\": _vm.addSchemaCopyTo\n }\n })], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-5ec20ad7\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/version_manage/version_info_dialog/schema_child_dialog.vue\n// module id = 1476\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.tokenInfoTitle,\n \"visible\": _vm.isVisible,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"update:visible\": function($event) {\n _vm.isVisible = $event\n }\n }\n }, [_c('el-form', {\n ref: \"tokenInfo\",\n attrs: {\n \"model\": _vm.tokenInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"80px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 16\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"token\",\n \"prop\": \"clientToken\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.tokenInfo.clientToken),\n callback: function($$v) {\n _vm.$set(_vm.tokenInfo, \"clientToken\", $$v)\n },\n expression: \"tokenInfo.clientToken\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 6\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\",\n \"prop\": \"clientToken\",\n \"label-width\": \"10px\"\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.reGenerate\n }\n }, [_vm._v(\"重新生成\")]), _vm._v(\" \"), _c('el-popover', {\n attrs: {\n \"placement\": \"right\",\n \"trigger\": \"hover\",\n \"content\": \"Token的使用需在Pallas Rest Client发起Pallas Search查询时传入,重新生成后需点击更新按钮保存\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-info-circle\",\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n })])], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"标题\",\n \"prop\": \"title\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.tokenInfo.title),\n callback: function($$v) {\n _vm.$set(_vm.tokenInfo, \"title\", $$v)\n },\n expression: \"tokenInfo.title\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"启用状态\",\n \"prop\": \"enabled\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n model: {\n value: (_vm.tokenInfo.enabled),\n callback: function($$v) {\n _vm.$set(_vm.tokenInfo, \"enabled\", $$v)\n },\n expression: \"tokenInfo.enabled\"\n }\n }), _vm._v(\" \"), _c('el-popover', {\n attrs: {\n \"placement\": \"right\",\n \"trigger\": \"hover\",\n \"content\": \"如果禁用,客户端就直连es,不经过pallas search\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-info-circle\",\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n })])], 1)])], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitInfo()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-62398862\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/token_manage/token_info_dialog.vue\n// module id = 1477\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('el-form', {\n ref: \"dataSource\",\n attrs: {\n \"model\": _vm.dataSource,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"数据库地址\",\n \"prop\": \"ip\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请输入ip或域名\"\n },\n model: {\n value: (_vm.dataSource.ip),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"ip\", $$v)\n },\n expression: \"dataSource.ip\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"数据库PORT\",\n \"prop\": \"port\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.dataSource.port),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"port\", $$v)\n },\n expression: \"dataSource.port\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"数据库表\",\n \"prop\": \"tableName\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.dataSource.tableName),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"tableName\", $$v)\n },\n expression: \"dataSource.tableName\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"数据库名\",\n \"prop\": \"dbname\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.dataSource.dbname),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"dbname\", $$v)\n },\n expression: \"dataSource.dbname\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"用户名\",\n \"prop\": \"username\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.dataSource.username),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"username\", $$v)\n },\n expression: \"dataSource.username\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 7\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"密码\",\n \"prop\": \"password\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"password\"\n },\n model: {\n value: (_vm.dataSource.password),\n callback: function($$v) {\n _vm.$set(_vm.dataSource, \"password\", $$v)\n },\n expression: \"dataSource.password\"\n }\n })], 1)], 1)], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-651b10be\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_source_item.vue\n// module id = 1478\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-scrollbar', [_c('div', {\n staticClass: \"profile-template\"\n }, [_c('el-collapse', _vm._l((_vm.profileData.profile.shards), function(item) {\n return _c('el-collapse-item', {\n key: item.id,\n attrs: {\n \"name\": item.id\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('span', {\n staticStyle: {\n \"font-weight\": \"bold\",\n \"font-size\": \"14px\"\n }\n }, [_vm._v(_vm._s(item.id.replace(/(\\[.*\\])(\\[.*\\])(\\[.*\\])/g, \"$1$3\")))]), _vm._v(\" \"), _c('span', {\n staticClass: \"pull-right\",\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.totalTime) + \"ms\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"profile-tree\"\n }, [_c('div', {\n staticClass: \"profile-tree-th\"\n }, [_c('span', {\n staticStyle: {\n \"margin-left\": \"20px\"\n }\n }, [_vm._v(\"Type and description\")]), _vm._v(\" \"), _c('span', {\n staticClass: \"pull-right\",\n staticStyle: {\n \"margin-right\": \"20px\"\n }\n }, [_vm._v(\"Time\")])]), _vm._v(\" \"), _c('el-tree', {\n attrs: {\n \"data\": item.searches[0].query,\n \"props\": _vm.defaultProps,\n \"render-content\": _vm.renderContent\n }\n })], 1)], 2)\n }), 1)], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-663e0a40\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/profile_content.vue\n// module id = 1479\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"index-info\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.indexInfoTitle,\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isIndexInfoVisible),\n callback: function($$v) {\n _vm.isIndexInfoVisible = $$v\n },\n expression: \"isIndexInfoVisible\"\n }\n }, [_c('el-form', {\n ref: \"indexInfo\",\n attrs: {\n \"model\": _vm.indexInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"135px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"indexName\",\n \"label\": \"索引名\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.indexInfo.indexName),\n callback: function($$v) {\n _vm.$set(_vm.indexInfo, \"indexName\", $$v)\n },\n expression: \"indexInfo.indexName\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属集群\",\n \"prop\": \"clusterId\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"clearable\": \"\"\n },\n model: {\n value: (_vm.indexInfo.clusterId),\n callback: function($$v) {\n _vm.$set(_vm.indexInfo, \"clusterId\", $$v)\n },\n expression: \"indexInfo.clusterId\"\n }\n }, _vm._l((_vm.clusters), function(cluster) {\n return _c('el-option-group', {\n key: cluster.label,\n attrs: {\n \"label\": cluster.label\n }\n }, _vm._l((cluster.options), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.clusterId\n }\n })\n }), 1)\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 21\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"description\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.indexInfo.description),\n callback: function($$v) {\n _vm.$set(_vm.indexInfo, \"description\", $$v)\n },\n expression: \"indexInfo.description\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('index-data-sources', {\n ref: \"dataSources\",\n attrs: {\n \"data-sources\": _vm.indexInfo.dataSourceList,\n \"index-operation\": _vm.indexOperation,\n \"show-import-object\": _vm.showImportObject,\n \"index-id\": _vm.indexInfo.indexId\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitIndexInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1), _vm._v(\" \"), (_vm.showImportObject.show) ? _c('div', [_c('datasource-import-dialog', {\n on: {\n \"ds-import-success\": _vm.dsImportSuccess,\n \"close-ds-import-dialog\": _vm.closeDsImportDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-665e8c82\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_manage/index_info_dialog/index_info_dialog.vue\n// module id = 1480\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(\"ES集群重启\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.clusterId))])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n on: {\n \"click\": _vm.resetClusterSettings\n }\n }, [_c('i', {\n staticClass: \"fa fa-repeat\"\n }), _vm._v(\"恢复集群默认设置\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n on: {\n \"click\": _vm.init\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"刷新集群信息\")])], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"cluster_restart_setting\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 6\n }\n }, _vm._l((_vm.clusterSettingsArray), function(item, index) {\n return _c('el-col', {\n key: index,\n attrs: {\n \"span\": 6\n }\n }, [_c('Panel', {\n attrs: {\n \"type\": _vm.clusterStateTag[_vm.clusterHealth]\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_vm._v(_vm._s(item.key))]), _vm._v(\" \"), _c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.key === 'index.blocks.write') ? _c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"right\"\n }\n }, [(item.value !== '') ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, _vm._l((_vm.$array.strToArray(item.value)), function(item1, index) {\n return _c('el-col', {\n key: index,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1)], 1) : _c('div', [_vm._v(\"暂无数据\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"slot\": \"reference\",\n \"type\": \"text\"\n },\n slot: \"reference\"\n }, [_vm._v(\"查看\")])], 1) : _c('div', [_vm._v(_vm._s(item.value || '-'))])], 1)])], 1)\n }), 1)], 1), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.nodeRestartList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"nodeName\",\n \"label\": \"节点名称\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"nodeIp\",\n \"label\": \"节点IP\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"indices\",\n \"label\": \"分片分布\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"right\",\n \"disabled\": scope.row.indices === ''\n }\n }, [(scope.row.indices) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, _vm._l((_vm.$array.strToArray(scope.row.indices)), function(item, index) {\n return _c('el-col', {\n key: index,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item))])\n }), 1)], 1) : _c('div', [_vm._v(\"暂无分片\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"slot\": \"reference\",\n \"type\": \"text\",\n \"size\": \"small\"\n },\n slot: \"reference\"\n }, [_c('i', {\n staticClass: \"fa fa-file-o\"\n })])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"nodeState\",\n \"label\": \"节点状态\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": _vm.noteStateTag[scope.row.nodeState]\n }\n }, [_vm._v(_vm._s(_vm.noteStateMap[scope.row.nodeState]))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"nodeTime\",\n \"label\": \"状态时间\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.nodeTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"lastStartupTime\",\n \"label\": \"最近启动时间\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.isNew) ? _c('span', {\n staticClass: \"text-danger\"\n }, [_vm._v(\"新 \")]) : _vm._e(), _vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.lastStartupTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"onlyMaster\",\n \"label\": \"OnlyMaster\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.onlyMaster ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm.onlyMasterMap[scope.row.onlyMaster]))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"success\",\n \"disabled\": !scope.row.healthy || _vm.isEnableRestart !== 'could_be_restart'\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRestart(scope.row)\n }\n }\n }, [_vm._v(\"重启\")])]\n }\n }])\n })], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-66714b9d\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_node_restart/cluster_node_restart.vue\n// module id = 1481\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticStyle: {\n \"width\": \"100%\",\n \"height\": \"200px\"\n },\n attrs: {\n \"id\": _vm.id\n }\n })])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-6703438d\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/charts/column.vue\n// module id = 1482\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.templateImportTitle,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isTemplateImportVisible),\n callback: function($$v) {\n _vm.isTemplateImportVisible = $$v\n },\n expression: \"isTemplateImportVisible\"\n }\n }, [_c('div', {\n staticStyle: {\n \"margin\": \"20px 15px\"\n }\n }, [_c('el-radio', {\n attrs: {\n \"label\": \"localUpload\"\n },\n model: {\n value: (_vm.importWay),\n callback: function($$v) {\n _vm.importWay = $$v\n },\n expression: \"importWay\"\n }\n }, [_vm._v(\"本地上传\")]), _vm._v(\" \"), _c('el-radio', {\n attrs: {\n \"label\": \"otherIndexTemp\"\n },\n model: {\n value: (_vm.importWay),\n callback: function($$v) {\n _vm.importWay = $$v\n },\n expression: \"importWay\"\n }\n }, [_vm._v(\"导入其他索引模板\")])], 1), _vm._v(\" \"), (_vm.importWay === 'localUpload') ? _c('el-form', {\n ref: \"importInfo\",\n attrs: {\n \"model\": _vm.importInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"90px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('div', {\n staticClass: \"template-import-upload\"\n }, [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": _vm.templateImportUrl,\n \"auto-upload\": false,\n \"data\": _vm.importInfo,\n \"multiple\": false,\n \"file-list\": _vm.fileList,\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"点击上传\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"el-upload__tip\",\n attrs: {\n \"slot\": \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(\"请上传zip文件,且不超过10Mb\")])], 1)], 1)])], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"变更描述\",\n \"prop\": \"updateDesc\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.importInfo.updateDesc),\n callback: function($$v) {\n _vm.$set(_vm.importInfo, \"updateDesc\", $$v)\n },\n expression: \"importInfo.updateDesc\"\n }\n })], 1)], 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), (_vm.importWay === 'otherIndexTemp') ? _c('div', {\n staticStyle: {\n \"margin\": \"15px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\",\n \"margin-bottom\": \"10px\"\n },\n attrs: {\n \"filterable\": \"\",\n \"placeholder\": \"请选择索引\"\n },\n on: {\n \"change\": _vm.indexChange\n },\n model: {\n value: (_vm.indexSelected),\n callback: function($$v) {\n _vm.indexSelected = $$v\n },\n expression: \"indexSelected\"\n }\n }, _vm._l((_vm.indexAllList), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.indexName,\n \"value\": item.id\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.indexName))]), _vm._v(\" \"), _c('span', {\n staticStyle: {\n \"float\": \"right\",\n \"color\": \"#B8B8B8\",\n \"font-size\": \"13px\"\n }\n }, [_vm._v(_vm._s(item.clusterName))])])\n }), 1), _vm._v(\" \"), _c('el-transfer', {\n attrs: {\n \"filterable\": \"\",\n \"data\": _vm.importTemplateList,\n \"props\": {\n key: 'id',\n label: 'templateName'\n },\n \"titles\": ['可选模板', '已选模板']\n },\n model: {\n value: (_vm.templateSelected),\n callback: function($$v) {\n _vm.templateSelected = $$v\n },\n expression: \"templateSelected\"\n }\n })], 1) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.submitImportTemplate\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-6a399cac\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_import_dialog/template_import_dialog.vue\n// module id = 1483\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"monitor-top\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.gaugeMetricData,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"nodeCount\",\n \"label\": \"Nodes\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"indexCount\",\n \"label\": \"Indices\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Memory\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.used_memory_byte)) + \" / \" + _vm._s(_vm.bytesToSize(scope.row.total_memory_byte)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"totalShardCount\",\n \"label\": \"Total Shards\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"unassignedShardCount\",\n \"label\": \"Unassigned Shards\",\n \"width\": \"150px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"documentCount\",\n \"label\": \"Documents\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Data\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"max_uptime\",\n \"label\": \"Uptime\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"version\",\n \"label\": \"Version\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"health\",\n \"label\": \"Health\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Indexing Rate(\" + (_vm.indexingRateInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexingRate\",\n \"option-info\": _vm.indexingRateInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Search Rate(\" + (_vm.searchRateInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"searchRate\",\n \"option-info\": _vm.searchRateInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Indexing Latentcy(\" + (_vm.indexingLatencyInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexingLatency\",\n \"option-info\": _vm.indexingLatencyInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Search Latentcy(\" + (_vm.searchLatencyInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"searchLatency\",\n \"option-info\": _vm.searchLatencyInfo\n }\n })], 1)])], 1)], 1)], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-6abbcaee\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/monitor/cluster_monitor.vue\n// module id = 1484\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-container\"\n }, [_c('Navbar'), _vm._v(\" \"), _c('router-view'), _vm._v(\" \"), _c('Version-footer')], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-6ba933be\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/container.vue\n// module id = 1485\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"token-detail\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-row', {\n staticClass: \"mrg-top-15\",\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('div', [_c('div', {\n staticClass: \"token-title\"\n }, [_vm._v(\"\\n 当前选择Token : \"), _c('span', {\n staticClass: \"token-name-span\"\n }, [_vm._v(_vm._s(_vm.tokenInfo.title))]), _c('br')])]), _vm._v(\" \"), _c('div', {\n staticClass: \"token-cluster\"\n }, [_c('div', {\n staticClass: \"mrg-top-15\"\n }, [_c('span', {\n staticClass: \"title-span\"\n }, [_vm._v(\"集群列表\"), _c('small', {\n staticStyle: {\n \"color\": \"gray\"\n }\n }, [_vm._v(\"(一个token只能绑定一个集群)\")])]), _vm._v(\" \"), _c('el-tree', {\n staticClass: \"token-cluster-tree\",\n style: (_vm.clusterTokenHeight),\n attrs: {\n \"data\": _vm.clusterList,\n \"render-content\": _vm.renderCluster,\n \"highlight-current\": \"\",\n \"node-key\": \"id\"\n },\n on: {\n \"node-click\": _vm.handleNodeClick\n }\n })], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"token-pool\"\n }, [_c('div', {\n staticClass: \"mrg-top-15\"\n }, [_c('span', {\n staticClass: \"title-span\"\n }, [_vm._v(\"代理集群节点集\"), _c('small', {\n staticStyle: {\n \"color\": \"gray\"\n }\n }, [_vm._v(\"(默认为整个集群,不可取消)\")])]), _vm._v(\" \"), _c('el-tree', {\n ref: \"psPoolTree\",\n staticClass: \"token-cluster-tree\",\n style: (_vm.clusterPoolHeight),\n attrs: {\n \"data\": _vm.psClusterList,\n \"render-content\": _vm.renderPsCluster,\n \"show-checkbox\": \"\",\n \"highlight-current\": \"\",\n \"default-expand-all\": \"\",\n \"check-strictly\": \"\",\n \"default-checked-keys\": _vm.tokenClusterInfo.checkedPools,\n \"node-key\": \"id\"\n },\n on: {\n \"check-change\": _vm.handlePsNodeClick\n }\n })], 1)])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 14\n }\n }, [_c('token-index', {\n attrs: {\n \"token-cluster-info\": _vm.tokenClusterInfo,\n \"cluster-tree-height\": _vm.clusterIndexHeight\n },\n on: {\n \"update-token-cluster\": _vm.updateTokenCluster\n }\n })], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-6e49b110\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/token_manage/token_detail.vue\n// module id = 1486\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('li', [_c('div', {\n staticClass: \"tm-info\"\n }, [_c('div', {\n staticClass: \"tm-item\"\n }, [_vm._t(\"title\")], 2), _vm._v(\" \"), _vm._m(0), _vm._v(\" \"), _c('time', {\n staticClass: \"tm-datetime\"\n }, [_vm._t(\"date\")], 2)]), _vm._v(\" \"), _c('div', {\n staticClass: \"tm-box\"\n }, [_vm._t(\"content\")], 2)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"tm-icon\"\n }, [_c('i', {\n staticClass: \"el-icon-time\"\n })])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-6f2f450e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/timeline_item.vue\n// module id = 1487\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'permission_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"权限管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"page-tab\"\n }, [_c('el-tabs', {\n on: {\n \"tab-click\": _vm.onTabClick\n },\n model: {\n value: (_vm.activeTab),\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"name\": \"user_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-user\"\n }), _vm._v(\"用户管理\")])])], 1), _vm._v(\" \"), _c('router-view')], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-72254250\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/permission_manage/permission_manage.vue\n// module id = 1488\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.pluginInfoTitle,\n \"visible\": _vm.isVisible,\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"update:visible\": function($event) {\n _vm.isVisible = $event\n }\n }\n }, [_c('el-form', {\n ref: \"pluginInfo\",\n attrs: {\n \"model\": _vm.pluginInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"120px\"\n }\n }, [_c('div', [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"插件名称\",\n \"prop\": \"pluginName\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.pluginInfo.pluginName),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"pluginName\", $$v)\n },\n expression: \"pluginInfo.pluginName\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"clusterId\",\n \"label\": \"所属集群\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.pluginInfo.clusterId),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"clusterId\", $$v)\n },\n expression: \"pluginInfo.clusterId\"\n }\n }, _vm._l((_vm.clusters), function(item) {\n return _c('el-option', {\n key: item.clusterId,\n attrs: {\n \"label\": item.description,\n \"value\": item.clusterId\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"插件版本\",\n \"prop\": \"pluginVersion\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.pluginInfo.pluginVersion),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"pluginVersion\", $$v)\n },\n expression: \"pluginInfo.pluginVersion\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"插件类型\",\n \"prop\": \"pluginType\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.pluginInfo.pluginType),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"pluginType\", $$v)\n },\n expression: \"pluginInfo.pluginType\"\n }\n }, _vm._l((_vm.$option.pluginTypes), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"路径\",\n \"prop\": \"packagePath\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请上传插件包,获取包路径\",\n \"disabled\": true\n },\n model: {\n value: (_vm.pluginInfo.packagePath),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"packagePath\", $$v)\n },\n expression: \"pluginInfo.packagePath\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"变更描述\",\n \"prop\": \"note\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.pluginInfo.note),\n callback: function($$v) {\n _vm.$set(_vm.pluginInfo, \"note\", $$v)\n },\n expression: \"pluginInfo.note\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"plugin-upload-warning\"\n }, [_vm._v(\"对于ES原生插件,需要通过\\\"ES集群管理\\\"->\\\"重启\\\"重启全部节点后才生效\")]), _vm._v(\" \"), (!_vm.enableUpload) ? _c('div', {\n staticClass: \"plugin-upload-warning\"\n }, [_vm._v(\"*上传插件包前,请先输入插件名称,所属集群以及插件版本\")]) : _c('div', {\n staticClass: \"plugin-upload\"\n }, [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": \"/pallas/plugin/upgrade/fileUpload.json\",\n \"data\": _vm.uploadData,\n \"auto-upload\": true,\n \"multiple\": false,\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\",\n \"icon\": \"upload\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"上传插件zip包\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"el-upload__tip\",\n attrs: {\n \"slot\": \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(\"请先上传插件zip文件,获取包路径\")])], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSubmit()\n }\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-72296124\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/plugin_manage/plugin_info_dialog/plugin_info_dialog.vue\n// module id = 1489\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"version-info-dialog\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": \"索引预热\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.visible),\n callback: function($$v) {\n _vm.visible = $$v\n },\n expression: \"visible\"\n }\n }, [_c('el-form', {\n ref: \"formInfo\",\n attrs: {\n \"model\": _vm.formInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"100px\"\n }\n }, [_c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"最近预热情况\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('div', {\n staticStyle: {\n \"margin-bottom\": \"10px\"\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\"\n },\n on: {\n \"click\": function($event) {\n return _vm.init()\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"刷新\")]), _vm._v(\" \"), (_vm.rampupInfo.state === 'doing') ? _c('el-button', {\n attrs: {\n \"size\": \"small\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleStop()\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-stop-circle\"\n }), _vm._v(\"停止\")]) : _vm._e(), _vm._v(\" \"), _c('preheading-monitor', {\n attrs: {\n \"cluster-name\": _vm.rampupInfo.clusterName,\n \"full-index-name\": _vm.rampupInfo.fullIndexName\n }\n })], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"总预热条数:\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm.rampupInfo.rampupNow))])])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"当前状态:\"\n }\n }, [_c('span', {\n class: _vm.rampupStatusTypeMap[_vm.rampupInfo.state]\n }, [_vm._v(_vm._s(_vm.rampupStatusMap[_vm.rampupInfo.state]))])])], 1)], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"开始时间:\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(_vm.rampupInfo.beginTime)))])])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"结束时间:\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(_vm.rampupInfo.endTime)))])])], 1)], 1), _vm._v(\" \"), _c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采样率:\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm.rampupInfo.sampleRate))])])], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"开始预热\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"预热条数\",\n \"prop\": \"rampupTarget\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.rampupInfo.state === 'doing'\n },\n model: {\n value: (_vm.formInfo.rampupTarget),\n callback: function($$v) {\n _vm.$set(_vm.formInfo, \"rampupTarget\", _vm._n($$v))\n },\n expression: \"formInfo.rampupTarget\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"截止时间\",\n \"prop\": \"endTime\"\n }\n }, [_c('el-date-picker', {\n attrs: {\n \"clearable\": \"\",\n \"disabled\": _vm.rampupInfo.state === 'doing',\n \"type\": \"datetime\",\n \"placeholder\": \"选择日期时间\"\n },\n model: {\n value: (_vm.formInfo.endTime),\n callback: function($$v) {\n _vm.$set(_vm.formInfo, \"endTime\", $$v)\n },\n expression: \"formInfo.endTime\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', {\n staticStyle: {\n \"padding-top\": \"10px\"\n },\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 11\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采样率\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"min\": 1,\n \"max\": 100\n },\n model: {\n value: (_vm.formInfo.sampleRate),\n callback: function($$v) {\n _vm.$set(_vm.formInfo, \"sampleRate\", $$v)\n },\n expression: \"formInfo.sampleRate\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"20px\",\n \"text-align\": \"center\"\n }\n }, [(_vm.rampupInfo.state !== 'doing') ? _c('el-button', {\n attrs: {\n \"disabled\": _vm.preheadingInfo.isUsed,\n \"size\": \"small\",\n \"title\": _vm.preheadingInfo.isUsed ? '该版本已启用' : ''\n },\n on: {\n \"click\": function($event) {\n return _vm.startRampup()\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-caret-square-o-right\"\n }), _vm._v(\"开始预热\")]) : _vm._e()], 1)], 1)])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-75903d1a\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/version_manage/preheading_dialog.vue\n// module id = 1490\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"schema-info-dialog\"\n }, [_c('el-dialog', {\n attrs: {\n \"title\": _vm.childTitle,\n \"size\": \"large\",\n \"show-close\": false,\n \"close-on-click-modal\": false,\n \"close-on-press-escape\": false\n },\n on: {\n \"open\": _vm.openDialog\n },\n model: {\n value: (_vm.isSchemaMultiFieldsVisible),\n callback: function($$v) {\n _vm.isSchemaMultiFieldsVisible = $$v\n },\n expression: \"isSchemaMultiFieldsVisible\"\n }\n }, [_c('div', {\n staticClass: \"schema-content\"\n }, [(!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增字段\")]) : _vm._e()], 1), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.multiFieldInfo,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"字段名\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.fieldName),\n callback: function($$v) {\n _vm.$set(scope.row, \"fieldName\", $$v)\n },\n expression: \"scope.row.fieldName\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"ES类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.fieldType),\n expression: \"scope.row.fieldType\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"fieldType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, _vm._l((_vm.fieldTypes), function(item) {\n return _c('option', {\n key: item.value,\n domProps: {\n \"value\": item.value\n }\n }, [_vm._v(_vm._s(item.label))])\n }), 0)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"多值/单值\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.multi),\n expression: \"scope.row.multi\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"multi\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"label\": \"单值\"\n },\n domProps: {\n \"value\": false\n }\n }, [_vm._v(\"单值\")]), _vm._v(\" \"), _c('option', {\n attrs: {\n \"label\": \"多值\"\n },\n domProps: {\n \"value\": true\n }\n }, [_vm._v(\"多值\")])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"查询关键字\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.search),\n callback: function($$v) {\n _vm.$set(scope.row, \"search\", $$v)\n },\n expression: \"scope.row.search\"\n }\n }, [_vm._v(\"是否查询\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"排序或聚合\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.docValue),\n callback: function($$v) {\n _vm.$set(scope.row, \"docValue\", $$v)\n },\n expression: \"scope.row.docValue\"\n }\n }, [_vm._v(\"用于排序或聚合\")])]\n }\n }])\n }), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"min-width\": \"60\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_vm._v(\"删除\")])]\n }\n }], null, false, 3393104428)\n }) : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.cancelBtn()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.confirmBtn()\n }\n }\n }, [_vm._v(\"确定\")]) : _vm._e()], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-77b5a77f\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/version_manage/version_info_dialog/schema_multi_field_dialog.vue\n// module id = 1491\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"data-source-content\"\n }, [_c('div', {\n staticClass: \"data-source-add\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.addDataSource\n }\n }, [_vm._v(\"新增数据源\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"type\": \"warning\"\n },\n on: {\n \"click\": _vm.importDs\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-o-down\"\n }), _vm._v(\"导入Mysql数据源\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.dataSources.length > 0 && _vm.dataSources[0].ip != '' && _vm.indexId),\n expression: \"dataSources.length > 0 && dataSources[0].ip != '' && indexId \"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"warning\"\n },\n on: {\n \"click\": _vm.exportDs\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-o-up\"\n }), _vm._v(\"导出Mysql数据源\")])], 1), _vm._v(\" \"), _vm._l((_vm.dataSources), function(item, index) {\n return _c('el-collapse', {\n key: index,\n model: {\n value: (index),\n callback: function($$v) {\n index = $$v\n },\n expression: \"index\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": index\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('span', {\n staticStyle: {\n \"margin-right\": \"10px\"\n }\n }, [_vm._v(\"数据源 \" + _vm._s(item.ip) + \":\" + _vm._s(item.port) + \" (\" + _vm._s(item.dbname) + \" - \" + _vm._s(item.tableName) + \")\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"danger\",\n \"size\": \"mini\",\n \"icon\": \"minus\"\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n return _vm.deleteDataSource(item)\n }\n }\n }), _vm._v(\" \"), _c('span', {\n staticStyle: {\n \"color\": \"red\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.errorMessage))])], 1), _vm._v(\" \"), _c('index-data-source-item', {\n ref: \"dataSourceItem\",\n refInFor: true,\n attrs: {\n \"index-operation\": _vm.indexOperation,\n \"data-source\": item\n },\n on: {\n \"db-validate\": _vm.dbValidate\n }\n })], 2)], 1)\n })], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-7910bf22\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_manage/index_info_dialog/index_data_sources/index_data_sources.vue\n// module id = 1492\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": _vm.schemaImportTitle,\n \"before-close\": _vm.handleClose\n },\n model: {\n value: (_vm.isSchemaImportVisible),\n callback: function($$v) {\n _vm.isSchemaImportVisible = $$v\n },\n expression: \"isSchemaImportVisible\"\n }\n }, [_c('el-form', [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-form-item', [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": _vm.schemaImportUrl,\n \"auto-upload\": false,\n \"multiple\": false,\n \"file-list\": _vm.fileList,\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"点击上传\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"el-upload__tip\",\n attrs: {\n \"slot\": \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(\"请上传json文件,且不超过10Mb\")])], 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.submitImportSchema\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-7c307b46\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/version_manage/version_info_dialog/schema_import_dialog.vue\n// module id = 1493\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"template-test\"\n }, [_c('div', {\n staticClass: \"template-test-content\"\n }, [_c('div', {\n staticClass: \"template-test-head\"\n }, [_vm._v(\"上传数据源\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"template-test-body\"\n }, [_c('template-test-data-source', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-name\": _vm.templateName,\n \"data-source\": _vm.dataSource\n }\n }), _vm._v(\" \"), _c('template-test-upload', {\n attrs: {\n \"add-data-source\": _vm.addDataSource,\n \"data-source\": _vm.dataSource\n },\n on: {\n \"template-test-upload-success\": _vm.templateTestUploadSuccess\n }\n })], 1), _vm._v(\" \"), _vm._m(0)]), _vm._v(\" \"), _c('template-test-params', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"template-name\": _vm.templateName,\n \"params-info\": _vm.paramsInfo,\n \"data-source\": _vm.dataSource,\n \"tem-panel-height\": _vm.temPanelHeight\n }\n })], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"template-test-tips\"\n }, [_c('span', [_vm._v(\"注意:若文件包含多列,可以定义多个参数名,参数名之间用分号隔开,例如k1;k2\")])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-7c6ff3dc\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/template_test/template_test.vue\n// module id = 1494\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"target-group-item\"\n }, [_c('div', {\n staticClass: \"target-group-header\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('div', [(_vm.editable) ? _c('el-input', {\n staticStyle: {\n \"width\": \"100px\"\n },\n attrs: {\n \"size\": \"mini\"\n },\n model: {\n value: (_vm.name),\n callback: function($$v) {\n _vm.name = $$v\n },\n expression: \"name\"\n }\n }) : _c('span', {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.name))]), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 1) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"集群级别\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 2) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"分片动态绑定\")]) : _vm._e()], 1)]), _vm._v(\" \"), (_vm.privilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.editable),\n expression: \"editable\"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"success\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSave()\n }\n }\n }, [_vm._v(\"保存\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.editable),\n expression: \"!editable\"\n }],\n attrs: {\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit()\n }\n }\n }, [_vm._v(\"编辑\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.editable),\n expression: \"editable\"\n }],\n attrs: {\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleCancel()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete()\n }\n }\n }, [_vm._v(\"删除\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"target-group-content\"\n }, [_c('el-tree', {\n ref: \"mytree\",\n attrs: {\n \"data\": _vm.myTree,\n \"show-checkbox\": \"\",\n \"node-key\": \"name\",\n \"default-expand-all\": _vm.isDefaultExpand,\n \"default-checked-keys\": _vm.treeCheckedKeys,\n \"render-content\": _vm.renderContent,\n \"props\": _vm.defaultProps\n },\n on: {\n \"check-change\": _vm.checkChange\n }\n })], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-7ef147c0\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group_item.vue\n// module id = 1495\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.dataSource,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"数据源参数\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-popover', {\n attrs: {\n \"trigger\": \"hover\",\n \"placement\": \"top\",\n \"popper-class\": \"template-test-popper\"\n }\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-input', {\n model: {\n value: (scope.row.editParamNameDef),\n callback: function($$v) {\n _vm.$set(scope.row, \"editParamNameDef\", $$v)\n },\n expression: \"scope.row.editParamNameDef\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"popper-button\"\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSave(scope.row)\n }\n }\n }, [_vm._v(\"保存\")])], 1), _vm._v(\" \"), _c('div', {\n attrs: {\n \"slot\": \"reference\"\n },\n slot: \"reference\"\n }, [_vm._v(\"\\n \" + _vm._s(scope.row.paramNameDef) + \"\\n \")])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"fileName\",\n \"label\": \"数据源文件\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_vm._v(\"删除\")])]\n }\n }])\n })], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-869f81b4\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/template_test/template_test_data_source/template_test_data_source.vue\n// module id = 1496\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\",\n \"disabled\": !_vm.isAllPrivilege\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增规则\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.flowRecordConfigList,\n \"border\": \"\",\n \"highlight-current-row\": \"\",\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"cell-click\": _vm.cellClick\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"规则id\",\n \"prop\": \"id\",\n \"width\": \"70px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"目标模板\",\n \"prop\": \"template.templateName\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.template === null) ? _c('div', [_vm._v(\"全部\")]) : _c('div', [_vm._v(_vm._s(scope.row.template.templateName))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"采集开始时间\",\n \"prop\": \"startTime\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.startTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"采集结束时间\",\n \"prop\": \"endTime\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.endTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"抽样系数\",\n \"prop\": \"sampleRate\",\n \"min-width\": \"60\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"目标采集数\",\n \"prop\": \"limit\",\n \"min-width\": \"70\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最近更新人\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.createUser || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最近更新时间\",\n \"prop\": \"endTime\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"状态\",\n \"prop\": \"isUsed\",\n \"min-width\": \"50\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.isEnable ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateIsEnable\")(scope.row.isEnable || false)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [(_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isEnable),\n expression: \"!scope.row.isEnable\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.enableConfig(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-hand-o-right\"\n }), _vm._v(\"启用\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isEnable),\n expression: \"scope.row.isEnable\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.disableConfig(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-stop-circle-o\"\n }), _vm._v(\"禁用\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isEnable),\n expression: \"!scope.row.isEnable\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row, 'edit')\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n }), _vm._v(\"编辑\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isEnable),\n expression: \"!scope.row.isEnable\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-trash\"\n }), _vm._v(\"删除\")])])]) : _vm._e()], 1)], 1)]\n }\n }])\n })], 1)], _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isConfigInfoVisible) ? _c('div', [_c('config-info-dialog', {\n attrs: {\n \"config-operation\": _vm.configOperation,\n \"config-info-title\": _vm.configInfoTitle,\n \"config-info\": _vm.configInfo,\n \"templates\": _vm.templates\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()\n ], 2)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-94a1a3b8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/flow_record/flow_record_config/flow_record_config.vue\n// module id = 1497\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"before-close\": _vm.handleClose\n },\n model: {\n value: (_vm.isVisible),\n callback: function($$v) {\n _vm.isVisible = $$v\n },\n expression: \"isVisible\"\n }\n }, [_c('span', {\n staticClass: \"el-dialog__title\",\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_vm._v(\"模板差异对比( \"), _c('span', {\n staticClass: \"del\"\n }, [_vm._v(\"- 删除\")]), _vm._v(\" / \"), _c('span', {\n staticClass: \"ins\"\n }, [_vm._v(\"+ 增加\")]), _vm._v(\" )\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"view-content\"\n }, [_c('el-scrollbar', [_c('pre', {\n directives: [{\n name: \"line-diff\",\n rawName: \"v-line-diff\",\n value: (_vm.jsonDiffInfo),\n expression: \"jsonDiffInfo\"\n }]\n })])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), (_vm.isOverwrite) ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.handleOverwrite\n }\n }, [_vm._v(\"覆盖当前版本\")]) : _vm._e()], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-98624a8e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/json_diff.vue\n// module id = 1498\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"footer\"\n }, [_c('p', [_vm._v(_vm._s(_vm.versionNumber))])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-9a531316\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/version_footer.vue\n// module id = 1499\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isAllPrivilege),\n expression: \"isAllPrivilege\"\n }],\n staticClass: \"content\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.cronDeleteList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"id\",\n \"prop\": \"id\",\n \"width\": \"40px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"版本id\",\n \"prop\": \"versionId\",\n \"width\": \"100px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"scroll_size\",\n \"prop\": \"scrollSize\",\n \"width\": \"100px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"cron表达式\",\n \"prop\": \"cron\",\n \"width\": \"140px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"更新时间\",\n \"prop\": \"updateTime\",\n \"min-width\": \"100\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用\",\n \"prop\": \"isUsed\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.isSyn ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(scope.row.isSyn))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"300px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"dsl\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.getDsl(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-file-code-o\"\n })])], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"执行查询\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.executeSearchDsl(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-search\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isSyn),\n expression: \"scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"停用\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDisableAndDeleteJob(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-level-down\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSyn),\n expression: \"!scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"启用\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleCreateAndEnableJob(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-level-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isSyn),\n expression: \"scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"立即执行\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRunAtOnce(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-play\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSyn),\n expression: \"!scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-tooltip', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isSyn),\n expression: \"!scope.row.isSyn\"\n }],\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1) : _vm._e()]\n }\n }])\n })], 1)]\n ], 2), _vm._v(\" \"), (_vm.showDsl) ? _c('div', [_c('json-content-dialog', {\n attrs: {\n \"title\": _vm.viewInfoTitle,\n \"content\": _vm.viewInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isCronDeleteVisible) ? _c('div', [_c('crondelete-dialog', {\n attrs: {\n \"index-id\": _vm.indexId,\n \"crondelete-operation\": _vm.crondeleteOperation,\n \"crondelete-title\": _vm.crondeleteTitle,\n \"crondelete-info\": _vm.crondeleteInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-9cd84fee\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/cron_delete/cron_delete_manage.vue\n// module id = 1500\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-collapse', {\n model: {\n value: (_vm.activeNames),\n callback: function($$v) {\n _vm.activeNames = $$v\n },\n expression: \"activeNames\"\n }\n }, [_c('el-collapse-item', {\n attrs: {\n \"name\": \"1\",\n \"v-show\": true\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_vm._v(\"\\n 索引级别配置\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"超时时间(毫秒,需>=50ms)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"超时时间(毫秒)\",\n \"min\": 0\n },\n model: {\n value: (_vm.indexConfigInfo.timeout),\n callback: function($$v) {\n _vm.$set(_vm.indexConfigInfo, \"timeout\", $$v)\n },\n expression: \"indexConfigInfo.timeout\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"重试次数(上限1次)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"重试次数\",\n \"min\": 0,\n \"max\": 1\n },\n model: {\n value: (_vm.indexConfigInfo.retry),\n callback: function($$v) {\n _vm.$set(_vm.indexConfigInfo, \"retry\", $$v)\n },\n expression: \"indexConfigInfo.retry\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"慢查询阈值(毫秒)\"\n }\n }, [_c('el-input-number', {\n attrs: {\n \"placeholder\": \"慢查询阈值(毫秒)\",\n \"min\": 0\n },\n model: {\n value: (_vm.indexConfigInfo.slowerThan),\n callback: function($$v) {\n _vm.$set(_vm.indexConfigInfo, \"slowerThan\", $$v)\n },\n expression: \"indexConfigInfo.slowerThan\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"disabled\": !_vm.indexConfigInfo.hasPrivilege,\n \"title\": !_vm.indexConfigInfo.hasPrivilege ? '索引权限不足' : ''\n },\n on: {\n \"click\": _vm.handleUpdate\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"更新\\n \")])], 1)], 1)], 1)], 2), _vm._v(\" \"), _c('el-collapse-item', {\n attrs: {\n \"title\": \"模板级别配置\",\n \"name\": \"2\"\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_vm._v(\"\\n 模板级别配置\\n \"), _c('span', {\n staticStyle: {\n \"color\": \"#ddd\"\n }\n }, [_vm._v(\"(若模板超时时间为0毫秒,则以当前索引的超时时间和重试为准。)\")])]), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.templateList,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"模板名称\",\n \"show-overflow-tooltip\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.templateName))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"超时时间(毫秒,需>=50ms)\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input-number', {\n attrs: {\n \"min\": 0\n },\n model: {\n value: (scope.row.timeout),\n callback: function($$v) {\n _vm.$set(scope.row, \"timeout\", $$v)\n },\n expression: \"scope.row.timeout\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"重试次数(上限1次)\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input-number', {\n attrs: {\n \"min\": 0,\n \"max\": 1\n },\n model: {\n value: (scope.row.retry),\n callback: function($$v) {\n _vm.$set(scope.row, \"retry\", $$v)\n },\n expression: \"scope.row.retry\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"120px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"disabled\": !_vm.allPrivilege,\n \"title\": !_vm.allPrivilege ? '权限不足' : ''\n },\n on: {\n \"click\": function($event) {\n return _vm.handleTemplateUpdate(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-refresh\"\n }), _vm._v(\"更新\\n \")])]\n }\n }])\n })], 1)], 2)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-9cdaff88\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/service_manage/timeout_retry_manage.vue\n// module id = 1501\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"version-info-dialog\"\n }, [_c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"size\": \"large\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isVersionInfoVisible),\n callback: function($$v) {\n _vm.isVersionInfoVisible = $$v\n },\n expression: \"isVersionInfoVisible\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_c('span', [_vm._v(_vm._s(_vm.versionInfoTitle))])]), _vm._v(\" \"), _c('el-form', {\n ref: \"versionInfo\",\n attrs: {\n \"model\": _vm.versionInfo,\n \"rules\": _vm.rules,\n \"label-position\": \"left\"\n }\n }, [_c('el-tabs', {\n attrs: {\n \"value\": \"first\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"label\": \"索引配置\",\n \"name\": \"first\"\n }\n }, [_c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"分片路由属性\")]), _vm._v(\" \"), (_vm.isLogical) ? _c('span', {\n staticStyle: {\n \"color\": \"#C8C8C8\"\n }\n }, [_vm._v(\"(所属集群:\" + _vm._s(_vm.clusterArray.join()) + \")\")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"分片数量\",\n \"prop\": \"shardNum\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.shardNum),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"shardNum\", _vm._n($$v))\n },\n expression: \"versionInfo.shardNum\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"复制数量\",\n \"prop\": \"replicationNum\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.replicationNum),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"replicationNum\", _vm._n($$v))\n },\n expression: \"versionInfo.replicationNum\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"ShardPerNode\",\n \"prop\": \"totalShardsPerNode\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.totalShardsPerNode),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"totalShardsPerNode\", _vm._n($$v))\n },\n expression: \"versionInfo.totalShardsPerNode\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [(_vm.isLogical) ? _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属节点\",\n \"prop\": \"nodes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"value-key\": \"name\",\n \"placeholder\": \"请选择机器\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.nodes),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"nodes\", $$v)\n },\n expression: \"versionInfo.nodes\"\n }\n }, _vm._l((_vm.clusterGroups), function(group) {\n return _c('el-option-group', {\n key: group.clusterId,\n attrs: {\n \"label\": group.clusterId\n }\n }, _vm._l((group.nodes), function(item) {\n return _c('el-option', {\n key: item.name,\n attrs: {\n \"label\": item.name,\n \"value\": item\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.indicis.length > 0) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, _vm._l((item.indicis), function(item1) {\n return _c('el-col', {\n key: item1,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1) : _c('div', [_vm._v(\"暂无索引\")])]), _vm._v(\" \"), _c('el-tag', {\n staticStyle: {\n \"float\": \"left\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.indicis.length))])], 1)], 1)\n }), 1)\n }), 1)], 1)], 1)], 1) : _c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属集群\",\n \"prop\": \"clusterId\",\n \"label-width\": \"120px\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"placeholder\": \"请选择集群\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": _vm.clusterChange\n },\n model: {\n value: (_vm.versionInfo.clusterId),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"clusterId\", $$v)\n },\n expression: \"versionInfo.clusterId\"\n }\n }, _vm._l((_vm.clusters), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.id\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"所属节点\",\n \"prop\": \"nodes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"placeholder\": \"请选择机器\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.nodes),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"nodes\", $$v)\n },\n expression: \"versionInfo.nodes\"\n }\n }, _vm._l((_vm.clusterNodes), function(item) {\n return _c('el-option', {\n key: item.name,\n attrs: {\n \"label\": item.name,\n \"value\": item.name\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \"), _c('el-tooltip', {\n attrs: {\n \"placement\": \"right\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [(item.indicis.length > 0) ? _c('div', {\n staticStyle: {\n \"width\": \"600px\"\n }\n }, _vm._l((item.indicis), function(item1) {\n return _c('el-col', {\n key: item1,\n attrs: {\n \"span\": 8\n }\n }, [_vm._v(_vm._s(item1))])\n }), 1) : _c('div', [_vm._v(\"暂无索引\")])]), _vm._v(\" \"), _c('el-tag', {\n staticStyle: {\n \"float\": \"left\",\n \"margin-left\": \"10px\"\n }\n }, [_vm._v(_vm._s(item.indicis.length))])], 1)], 1)\n }), 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": _vm.routingKeyWidth\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Routing Key\",\n \"prop\": \"routingKey\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.routingKey),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"routingKey\", $$v)\n },\n expression: \"versionInfo.routingKey\"\n }\n }, _vm._l((_vm.versionInfo.schema), function(item) {\n return _c('el-option', {\n key: item.fieldName,\n attrs: {\n \"label\": item.fieldName,\n \"value\": item.fieldName\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": _vm.routingKeyWidth\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Id列名\",\n \"prop\": \"idField\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.idField),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"idField\", $$v)\n },\n expression: \"versionInfo.idField\"\n }\n }, _vm._l((_vm.versionInfo.schema), function(item) {\n return _c('el-option', {\n key: item.fieldName,\n attrs: {\n \"label\": item.fieldName,\n \"value\": item.fieldName\n }\n })\n }), 1)], 1)], 1), _vm._v(\" \"), (!_vm.isMetaDataNull) ? _c('el-col', {\n attrs: {\n \"span\": _vm.routingKeyWidth\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Update Time列名\",\n \"prop\": \"updateTimeField\",\n \"label-width\": \"150px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"filterable\": \"\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.updateTimeField),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"updateTimeField\", $$v)\n },\n expression: \"versionInfo.updateTimeField\"\n }\n }, _vm._l((_vm.versionInfo.schema), function(item) {\n return _c('el-option', {\n key: item.fieldName,\n attrs: {\n \"label\": item.fieldName,\n \"value\": item.fieldName\n }\n })\n }), 1)], 1)], 1) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"慢日志落盘配置(单位ms,-1不限定)\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Index Slow\",\n \"prop\": \"indexSlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.indexSlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"indexSlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.indexSlowThreshold\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Fetch Slow\",\n \"prop\": \"fetchSlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.fetchSlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"fetchSlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.fetchSlowThreshold\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"Query Slow\",\n \"prop\": \"querySlowThreshold\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.querySlowThreshold),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"querySlowThreshold\", _vm._n($$v))\n },\n expression: \"versionInfo.querySlowThreshold\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"索引其他配置\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"max_result_window\",\n \"prop\": \"maxResultWindow\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"10000\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.maxResultWindow),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"maxResultWindow\", _vm._n($$v))\n },\n expression: \"versionInfo.maxResultWindow\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"flush_threshold_size\",\n \"prop\": \"flushThresholdSize\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"512mb\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.flushThresholdSize),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"flushThresholdSize\", $$v)\n },\n expression: \"versionInfo.flushThresholdSize\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"sync_interval\",\n \"prop\": \"syncInterval\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"5s\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.syncInterval),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"syncInterval\", $$v)\n },\n expression: \"versionInfo.syncInterval\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"translog_durability\",\n \"prop\": \"translogDurability\",\n \"label-width\": \"180px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"async\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.translogDurability),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"translogDurability\", $$v)\n },\n expression: \"versionInfo.translogDurability\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"refresh(秒)\",\n \"prop\": \"refreshInterval\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-input', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.refreshInterval),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"refreshInterval\", _vm._n($$v))\n },\n expression: \"versionInfo.refreshInterval\"\n }\n })], 1)], 1), _vm._v(\" \"), (!_vm.isMetaDataNull) ? _c('div', [_c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"只导局部字段\",\n \"prop\": \"filterFields\",\n \"label-width\": \"120px\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.filterFields),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"filterFields\", $$v)\n },\n expression: \"versionInfo.filterFields\"\n }\n })], 1)])], 1), _vm._v(\" \"), (_vm.$option.versionVdpTypes && _vm.$option.versionVdpTypes.length > 0) ? _c('el-col', {\n attrs: {\n \"span\": 8\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"同步数据类型\",\n \"prop\": \"vdp\",\n \"label-width\": \"100px\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-radio-group', {\n attrs: {\n \"disabled\": _vm.isEditable,\n \"size\": \"small\"\n },\n model: {\n value: (_vm.versionInfo.vdp),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"vdp\", $$v)\n },\n expression: \"versionInfo.vdp\"\n }\n }, _vm._l((_vm.$option.versionVdpTypes), function(item) {\n return _c('el-radio-button', {\n key: item.value,\n attrs: {\n \"label\": item.value\n }\n }, [_vm._v(_vm._s(item.label))])\n }), 1)], 1)])], 1) : _vm._e()], 1) : _vm._e()], 1)], 1)]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"label\": \"Mapping配置\",\n \"name\": \"second\"\n }\n }, [_c('div', {\n staticClass: \"label-title\"\n }, [_c('span', {\n staticClass: \"span-title\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"ES映射关系配置\")]), _vm._v(\" \"), (_vm.isMetaDataNull && _vm.versionInfo.schema.length === 0) ? _c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"type\": \"success\"\n },\n on: {\n \"click\": function($event) {\n return _vm.addField(0)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-plus\"\n }), _vm._v(\"新增\")]) : _vm._e(), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isEditable),\n expression: \"!isEditable\"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"warning\"\n },\n on: {\n \"click\": _vm.importSchema\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-o-down\"\n }), _vm._v(\"导入schema\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isEditable),\n expression: \"isEditable\"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"warning\"\n },\n on: {\n \"click\": _vm.exportSchema\n }\n }, [_c('i', {\n staticClass: \"fa fa-arrow-circle-o-up\"\n }), _vm._v(\"导出schema\")])], 1), _vm._v(\" \"), _c('div', [_c('div', {\n staticStyle: {\n \"margin\": \"10px\"\n }\n }, [_c('el-alert', {\n attrs: {\n \"title\": \"如何选择ES类型\",\n \"type\": \"info\",\n \"description\": \" \",\n \"show-icon\": \"\"\n }\n }, [_c('div', {\n staticStyle: {\n \"font-size\": \"12px\"\n }\n }, [_vm._v(\"\\n 1.某些数据库字段,尽管是number类型,但是在做业务查询时仅仅只是做term(s)这类非数学运算非聚合查询,我们非常建议你采用\\\"keyword as number\\\"类型,在这个类型下,ES将会用string格式来建索引以达到更高的检索性能,\\n 而获取 _source 时我们仍然会以number的格式返回给 Client。\\n \"), _c('br'), _vm._v(\"\\n 2.当你需要做模糊匹配,比如数据库值是 AbC,但是仍然希望abc和ABC都能检索出来,那请选择\\\"keyword[全大写处理]\\\"类型,我们在建索引和查询都做大写处理,\\n 而获取 _source 时我们仍然会以原值 AbC 的格式返回给 Client。\\n \"), _c('br'), _vm._v(\"\\n 3.所有的DB类型为TINYINT 的字段,我们都假设它是一些枚举值并且不会用于数学运算,因此我们为这些字段自动匹配了\\\"keyword as number\\\"类型,请自行检查。\\n \")])])], 1), _vm._v(\" \"), _c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.versionInfo.schema,\n \"border\": \"\",\n \"max-height\": 550\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"操作\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"success\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"click\": function($event) {\n return _vm.addField(scope.$index)\n }\n }\n }, [_c('i', {\n staticClass: \"el-icon-plus\"\n })]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"danger\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"click\": function($event) {\n return _vm.deleteField(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"el-icon-minus\"\n })])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"字段名\",\n \"min-width\": \"180\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!scope.row.isNew),\n expression: \"!scope.row.isNew\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }, [_c('span', [_vm._v(_vm._s(scope.row.fieldName))])]), _vm._v(\" \"), _c('el-input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isNew),\n expression: \"scope.row.isNew\"\n }],\n staticStyle: {\n \"width\": \"50%\"\n },\n attrs: {\n \"placeholder\": \"请输入字段名\"\n },\n model: {\n value: (scope.row.fieldName),\n callback: function($$v) {\n _vm.$set(scope.row, \"fieldName\", $$v)\n },\n expression: \"scope.row.fieldName\"\n }\n }), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.isNew),\n expression: \"scope.row.isNew\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }, [_c('span', [_vm._v(\"子字段\")])]), _vm._v(\" \"), (scope.row.children.length !== 0) ? _c('el-button', {\n attrs: {\n \"type\": \"warning\",\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaChildren(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa\"\n }), _vm._v(\"nested\")]) : _vm._e(), _vm._v(\" \"), (scope.row.multiField.length !== 0) ? _c('el-button', {\n attrs: {\n \"type\": \"warning\",\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaMultiFields(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa\"\n }), _vm._v(\"subFields\")]) : _vm._e(), _vm._v(\" \"), _c('div', [(scope.row.copyTo.length > 0) ? _c('el-tag', {\n attrs: {\n \"type\": \"success\"\n }\n }, [_vm._v(\"copy to: \" + _vm._s(scope.row.copyTo))]) : _vm._e()], 1)]\n }\n }])\n }), _vm._v(\" \"), (!_vm.isMetaDataNull) ? _c('el-table-column', {\n attrs: {\n \"label\": \"DB类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(scope.row.dbFieldType || 'N/A') + \"\\n \")]\n }\n }], null, false, 959855009)\n }) : _vm._e(), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"ES类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.fieldType),\n expression: \"scope.row.fieldType\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": [function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"fieldType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }, function($event) {\n return _vm.fieldTypeChange(scope.row)\n }]\n }\n }, _vm._l((_vm.fieldTypes), function(item) {\n return _c('option', {\n key: item.value,\n domProps: {\n \"value\": item.value\n }\n }, [_vm._v(_vm._s(item.label))])\n }), 0)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"多值/单值\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (scope.row.multi),\n expression: \"scope.row.multi\"\n }],\n attrs: {\n \"size\": \"small\",\n \"disabled\": _vm.isEditable\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(scope.row, \"multi\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"label\": \"单值\"\n },\n domProps: {\n \"value\": false\n }\n }, [_vm._v(\"单值\")]), _vm._v(\" \"), _c('option', {\n attrs: {\n \"label\": \"多值\"\n },\n domProps: {\n \"value\": true\n }\n }, [_vm._v(\"多值\")])])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否创建索引\",\n \"min-width\": \"90\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable || scope.row.fieldType === 'nested'\n },\n model: {\n value: (scope.row.search),\n callback: function($$v) {\n _vm.$set(scope.row, \"search\", $$v)\n },\n expression: \"scope.row.search\"\n }\n }, [_vm._v(\"创建索引\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"render-header\": _vm.renderDocValueHeader\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable || scope.row.fieldType === 'nested' || scope.row.fieldType === 'text'\n },\n model: {\n value: (scope.row.docValue),\n callback: function($$v) {\n _vm.$set(scope.row, \"docValue\", $$v)\n },\n expression: \"scope.row.docValue\"\n }\n }, [_vm._v(\"启用doc value\")])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"是否启用store\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (scope.row.store),\n callback: function($$v) {\n _vm.$set(scope.row, \"store\", $$v)\n },\n expression: \"scope.row.store\"\n }\n }, [_vm._v(\"启用store\")])]\n }\n }])\n }), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-table-column', {\n attrs: {\n \"label\": \"更多操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [(scope.row.multiField.length === 0) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaChildren(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加nested/object\")])])]) : _vm._e(), _vm._v(\" \"), (scope.row.children.length === 0 && scope.row.fieldType !== 'nested') ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaMultiFields(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加subFields\")])])]) : _vm._e(), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-dropdown-item', [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.viewSchemaCopyTo(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-play-circle\"\n }), _vm._v(\"添加copyTo\")])])]) : _vm._e()], 1)], 1)]\n }\n }], null, false, 2854098717)\n }) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"label-title\",\n staticStyle: {\n \"margin-top\": \"20px\"\n }\n }, [_c('span', {\n staticClass: \"span-title\",\n staticStyle: {\n \"margin-right\": \"20px\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"ES _source配置\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"source-setting\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 4\n }\n }, [_c('el-form-item', {\n staticStyle: {\n \"display\": \"inline-block\"\n },\n attrs: {\n \"label\": \"是否disable _source:\",\n \"prop\": \"sourceDisabled\",\n \"label-width\": \"150px\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n attrs: {\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.sourceDisabled),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"sourceDisabled\", $$v)\n },\n expression: \"versionInfo.sourceDisabled\"\n }\n })], 1)])], 1), _vm._v(\" \"), (!_vm.versionInfo.sourceDisabled) ? _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"includes\",\n \"prop\": \"sourceIncludes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"placeholder\": \"请选择_source包含的field\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.sourceIncludesArr),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"sourceIncludesArr\", $$v)\n },\n expression: \"versionInfo.sourceIncludesArr\"\n }\n }, _vm._l((_vm.allSourceFields), function(item, index) {\n return _c('el-option', {\n key: index,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item))])])\n }), 1)], 1)], 1) : _vm._e(), _vm._v(\" \"), (!_vm.versionInfo.sourceDisabled) ? _c('el-col', {\n attrs: {\n \"span\": 10\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"excludes\",\n \"prop\": \"sourceExcludes\",\n \"label-width\": \"120px\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"placeholder\": \"请选择_source不包含的field\",\n \"disabled\": _vm.isEditable\n },\n model: {\n value: (_vm.versionInfo.sourceExcludesArr),\n callback: function($$v) {\n _vm.$set(_vm.versionInfo, \"sourceExcludesArr\", $$v)\n },\n expression: \"versionInfo.sourceExcludesArr\"\n }\n }, _vm._l((_vm.allSourceFields), function(item, index) {\n return _c('el-option', {\n key: index,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item))])])\n }), 1)], 1)], 1) : _vm._e()], 1)], 1)])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), (!_vm.isEditable) ? _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitVersionInfo()\n }\n }\n }, [_vm._v(\"确 定\")]) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('schema-child-dialog', {\n attrs: {\n \"is-schema-child-visible\": _vm.isSchemaChildVisible,\n \"schema-child-info\": _vm.schemaExtInfo,\n \"version-operation\": _vm.versionOperation,\n \"schema-parent-field-name\": _vm.schemaParentFieldName,\n \"version-info\": _vm.versionInfo\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaDialog,\n \"add-schema-child\": _vm.addSchemaChild\n }\n }), _vm._v(\" \"), _c('schema-multi-field-dialog', {\n attrs: {\n \"is-schema-multi-fields-visible\": _vm.isSchemaMultiFieldsVisible,\n \"schema-multi-fields-info\": _vm.schemaExtInfo,\n \"version-operation\": _vm.versionOperation,\n \"schema-parent-field-name\": _vm.schemaParentFieldName\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaMultiFieldsDialog,\n \"add-schema-multi-field\": _vm.addSchemaMultiFields\n }\n }), _vm._v(\" \"), _c('schema-copy-to-dialog', {\n attrs: {\n \"is-copy-to-fields-visible\": _vm.isCopyToFieldsVisible,\n \"schema-copy-to-info\": _vm.schemaExtInfo,\n \"copy-to-list\": _vm.validCopyToFields,\n \"schema-parent-field-name\": _vm.schemaParentFieldName\n },\n on: {\n \"close-schema-dialog\": _vm.closeSchemaCopyToDialog,\n \"add-schema-copy-to\": _vm.addSchemaCopyTo\n }\n }), _vm._v(\" \"), (_vm.isSchemaImportVisible) ? _c('div', [_c('schema-import-dialog', {\n attrs: {\n \"schema-import-title\": _vm.schemaImportTitle,\n \"schema-import-url\": _vm.schemaImportUrl\n },\n on: {\n \"schema-import-success\": _vm.schemaImportSuccess,\n \"close-schema-import-dialog\": _vm.closeSchemaImportDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-9e196880\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/version_manage/version_info_dialog/version_info_dialog.vue\n// module id = 1502\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"template-insert-dialog\",\n staticStyle: {\n \"min-width\": \"700px\"\n },\n attrs: {\n \"title\": \"查询变量插入\",\n \"before-close\": _vm.handleClose,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.visible),\n callback: function($$v) {\n _vm.visible = $$v\n },\n expression: \"visible\"\n }\n }, [_c('el-form', {\n ref: \"info\",\n attrs: {\n \"model\": _vm.info,\n \"label-width\": \"100px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"prop\": \"field\",\n \"label\": \"查询变量\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.info.field),\n callback: function($$v) {\n _vm.$set(_vm.info, \"field\", $$v)\n },\n expression: \"info.field\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"from\",\n \"value\": \"from\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"size\",\n \"value\": \"size\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"sort\",\n \"value\": \"sort\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"source\",\n \"value\": \"source\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"query\",\n \"value\": \"query\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [(_vm.info.field === 'from') ? _c('el-form-item', {\n attrs: {\n \"prop\": \"from\",\n \"label\": \"from\"\n }\n }, [_c('el-input-number', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.info.from),\n callback: function($$v) {\n _vm.$set(_vm.info, \"from\", $$v)\n },\n expression: \"info.from\"\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.info.field === 'size') ? _c('el-form-item', {\n attrs: {\n \"prop\": \"size\",\n \"label\": \"size\"\n }\n }, [_c('el-input-number', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.info.size),\n callback: function($$v) {\n _vm.$set(_vm.info, \"size\", $$v)\n },\n expression: \"info.size\"\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.info.field === 'sort') ? _c('el-form-item', {\n attrs: {\n \"prop\": \"sort\",\n \"label\": \"sort\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n attrs: {\n \"on-text\": \"变量\",\n \"off-text\": \"静态\"\n },\n model: {\n value: (_vm.info.sort),\n callback: function($$v) {\n _vm.$set(_vm.info, \"sort\", $$v)\n },\n expression: \"info.sort\"\n }\n })], 1)]) : _vm._e(), _vm._v(\" \"), (_vm.info.field === 'source') ? _c('el-form-item', {\n attrs: {\n \"prop\": \"source\",\n \"label\": \"source\"\n }\n }, [_c('div', {\n staticClass: \"my-switch\"\n }, [_c('el-switch', {\n attrs: {\n \"on-text\": \"变量\",\n \"off-text\": \"静态\"\n },\n model: {\n value: (_vm.info.source),\n callback: function($$v) {\n _vm.$set(_vm.info, \"source\", $$v)\n },\n expression: \"info.source\"\n }\n })], 1)]) : _vm._e()], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 23\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label-width\": \"30px\"\n }\n }, [(_vm.info.field === 'query') ? _c('el-table', {\n attrs: {\n \"border\": \"\",\n \"data\": _vm.metadatas,\n \"max-height\": 320\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"dbFieldName\",\n \"label\": \"字段名\",\n \"width\": \"130\",\n \"show-overflow-tooltip\": \"\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"查询方式\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"term\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"term\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"multiTerm\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"多值term\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"range\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"range\")]), _vm._v(\" \"), _c('el-radio', {\n staticClass: \"radio\",\n attrs: {\n \"label\": \"script\"\n },\n model: {\n value: (scope.row.queryWay),\n callback: function($$v) {\n _vm.$set(scope.row, \"queryWay\", $$v)\n },\n expression: \"scope.row.queryWay\"\n }\n }, [_vm._v(\"script\")])]\n }\n }], null, false, 1112527743)\n })], 1) : _vm._e()], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleInsert()\n }\n }\n }, [_vm._v(\"插入查询变量\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-a725a9c8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/template_insert_dialog.vue\n// module id = 1503\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"target-group-item\"\n }, [_c('div', {\n staticClass: \"target-group-header\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('div', [(_vm.editable) ? _c('el-input', {\n staticStyle: {\n \"width\": \"100px\"\n },\n attrs: {\n \"size\": \"mini\"\n },\n model: {\n value: (_vm.name),\n callback: function($$v) {\n _vm.name = $$v\n },\n expression: \"name\"\n }\n }) : _c('span', {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.name))]), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 0) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"普通级别\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 1) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"集群级别\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 2) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"分片动态绑定\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 3) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"集群级别(主分片优先)\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 4) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"集群级别(复制分片优先)\")]) : _vm._e(), _vm._v(\" \"), (_vm.targetGroupItemInfo.clusterLevel === 5) ? _c('el-tag', {\n attrs: {\n \"type\": \"warning\"\n }\n }, [_vm._v(\"动态分组\")]) : _vm._e()], 1)]), _vm._v(\" \"), (_vm.privilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.editable),\n expression: \"editable\"\n }],\n attrs: {\n \"size\": \"mini\",\n \"type\": \"success\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleSave()\n }\n }\n }, [_vm._v(\"保存\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.editable),\n expression: \"!editable\"\n }],\n attrs: {\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit()\n }\n }\n }, [_vm._v(\"编辑\")]), _vm._v(\" \"), _c('el-button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.editable),\n expression: \"editable\"\n }],\n attrs: {\n \"size\": \"mini\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleCancel()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"size\": \"mini\",\n \"type\": \"danger\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete()\n }\n }\n }, [_vm._v(\"删除\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"target-group-content\"\n }, [_c('el-tree', {\n ref: \"mytree\",\n attrs: {\n \"data\": _vm.myTree,\n \"show-checkbox\": \"\",\n \"node-key\": \"name\",\n \"default-expand-all\": _vm.isDefaultExpand,\n \"default-checked-keys\": _vm.treeCheckedKeys,\n \"render-content\": _vm.renderContent,\n \"props\": _vm.defaultProps\n },\n on: {\n \"check-change\": _vm.checkChange\n }\n })], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-aeee314e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/route_manage/target_group/target_group_item.vue\n// module id = 1504\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"page-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.clusterId))])], 1)], 1), _vm._v(\" \"), _c('dashboard-component', {\n attrs: {\n \"cluster-info\": _vm.clusterInfo\n }\n })], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-c09de0a8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_detail/cluster_detail.vue\n// module id = 1505\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"Token管理\")])], 1)], 1), _vm._v(\" \"), _c('el-row', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"gutter\": 20,\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 6\n }\n }, [(_vm.isPrivilege) ? _c('div', [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新建Token\")])], 1) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10\"\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"输入关键字进行过滤\",\n \"icon\": \"search\",\n \"on-icon-click\": _vm.handleSearch\n },\n model: {\n value: (_vm.tokenForSearch),\n callback: function($$v) {\n _vm.tokenForSearch = $$v\n },\n expression: \"tokenForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"mrg-top-10 token-table\"\n }, [_c('el-table', {\n attrs: {\n \"data\": _vm.tokenList,\n \"show-header\": false,\n \"highlight-current-row\": \"\",\n \"border\": \"\",\n \"height\": _vm.tokenHeight.height\n },\n on: {\n \"row-click\": _vm.handleTokenClick\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"ID\",\n \"prop\": \"id\",\n \"width\": \"50px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"title\",\n \"label\": \"名称\",\n \"show-overflow-tooltip\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('div', {\n staticStyle: {\n \"font-size\": \"16px\"\n }\n }, [_vm._v(_vm._s(scope.row.title) + \"\\n \"), _c('el-tag', {\n attrs: {\n \"type\": scope.row.enabled ? 'success' : 'danger'\n }\n }, [_vm._v(_vm._s(_vm.statusMap[scope.row.enabled]))])], 1), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"color\": \"gray\",\n \"font-size\": \"12px\"\n }\n }, [_vm._v(_vm._s(scope.row.clientToken))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"编辑\",\n \"width\": \"30px\",\n \"align\": \"center\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-pencil-square-o\"\n })])]\n }\n }])\n })], 1)], 1)]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [(!_vm.isSelectToken) ? _c('div', {\n staticClass: \"token-warning\",\n style: (_vm.tokenErrorHeight)\n }, [_c('i', {\n staticClass: \"el-icon-warning\"\n }), _vm._v(\"请选择Token\")]) : _vm._e(), _vm._v(\" \"), _vm._l((_vm.tokenList), function(token) {\n return _c('div', {\n key: token.clientToken,\n staticClass: \"token-body\"\n }, [(_vm.tokenSelectInfo.clientToken === token.clientToken) ? _c('token-detail', {\n attrs: {\n \"token-height\": _vm.tokenHeight,\n \"token-info\": _vm.tokenSelectInfo\n }\n }) : _vm._e()], 1)\n })], 2)], 1), _vm._v(\" \"), (_vm.isTokenInfoVisible) ? _c('div', [_c('token-info-dialog', {\n attrs: {\n \"token-info\": _vm.tokenInfo,\n \"token-info-operate\": _vm.tokenInfoOperate,\n \"token-info-title\": _vm.tokenInfoTitle\n },\n on: {\n \"token-info-success\": _vm.tokenInfoSuccess,\n \"close-dialog\": _vm.closeTokenInfoDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-c969fae8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/token_manage/token_manage.vue\n// module id = 1506\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索节点\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.nodesFilter($event)\n }\n },\n model: {\n value: (_vm.nodeForSearch),\n callback: function($$v) {\n _vm.nodeForSearch = $$v\n },\n expression: \"nodeForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.nodesFilter\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.nodesList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"Name\",\n \"prop\": \"nodeName\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'node_monitor_detail',\n query: {\n clusterId: _vm.clusterId,\n node: scope.row.nodeName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.nodeName))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"CPU Usage\",\n \"prop\": \"osCpuPercent\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Load Average\",\n \"prop\": \"load_1m\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"JVM Memory(%)\",\n \"prop\": \"jvmHeapUsage\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Transport Address\",\n \"prop\": \"transportAddress\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Shards\",\n \"prop\": \"shardCount\"\n }\n })], 1)]\n ], 2)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-ca79a536\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/monitor/nodes_monitor.vue\n// module id = 1507\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"template-test-content\"\n }, [_c('div', {\n staticClass: \"template-test-head\"\n }, [_vm._v(\"设置请求参数\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"template-test-body\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.paramsInfo,\n \"border\": \"\",\n \"max-height\": _vm.temPanelHeight - 390\n }\n }, [_c('el-table-column', {\n attrs: {\n \"prop\": \"paramName\",\n \"label\": \"请求参数\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"包含\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-checkbox', {\n model: {\n value: (scope.row.include),\n callback: function($$v) {\n _vm.$set(scope.row, \"include\", $$v)\n },\n expression: \"scope.row.include\"\n }\n })]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"请求值类型\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-select', {\n attrs: {\n \"disabled\": !scope.row.include,\n \"size\": \"small\"\n },\n on: {\n \"change\": function($event) {\n return _vm.valueTypeChange(scope.row)\n }\n },\n model: {\n value: (scope.row.valueType),\n callback: function($$v) {\n _vm.$set(scope.row, \"valueType\", $$v)\n },\n expression: \"scope.row.valueType\"\n }\n }, [_c('el-option', {\n key: \"1\",\n attrs: {\n \"label\": \"固定值\",\n \"value\": \"1\"\n }\n }, [_vm._v(\"固定值\")]), _vm._v(\" \"), _c('el-option', {\n key: \"2\",\n attrs: {\n \"label\": \"数据源\",\n \"value\": \"2\"\n }\n }, [_vm._v(\"数据源\")])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"数据源参数映射\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.valueType === '1'),\n expression: \"scope.row.valueType === '1'\"\n }],\n attrs: {\n \"disabled\": !scope.row.include\n },\n model: {\n value: (scope.row.value),\n callback: function($$v) {\n _vm.$set(scope.row, \"value\", $$v)\n },\n expression: \"scope.row.value\"\n }\n }), _vm._v(\" \"), _c('el-select', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.valueType === '2'),\n expression: \"scope.row.valueType === '2'\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"disabled\": !scope.row.include\n },\n model: {\n value: (scope.row.value),\n callback: function($$v) {\n _vm.$set(scope.row, \"value\", $$v)\n },\n expression: \"scope.row.value\"\n }\n }, _vm._l((_vm.paramValues), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n }), 1)]\n }\n }])\n })], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"template-test-content\",\n attrs: {\n \"align\": \"center\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"size\": \"small\"\n },\n on: {\n \"click\": _vm.handleGen\n }\n }, [_vm._v(\"生成测试脚本\")])], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-cf2f86d8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/template_manage/template_edit/template_test/template_test_params/template_test_params.vue\n// module id = 1508\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"monitor-top\"\n }, [_c('el-table', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.gaugeMetricData,\n \"border\": \"\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"Total\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte_total)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Primaries\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte_primary)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"primaryDocumentCount\",\n \"label\": \"Documents(Primary)\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"totalShardCount\",\n \"label\": \"Total Shards\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"unassignedShardCount\",\n \"label\": \"Unassigned Shards\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"prop\": \"health\",\n \"label\": \"Health\"\n }\n })], 1)], 1), _vm._v(\" \"), _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 10\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Index Memory(\" + (_vm.indexMemoryInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexMemory\",\n \"option-info\": _vm.indexMemoryInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Index Disk(\" + (_vm.indexDiskInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexDisk\",\n \"option-info\": _vm.indexDiskInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Segment Count(\" + (_vm.segmentCountInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"segmentCount\",\n \"option-info\": _vm.segmentCountInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Document Count(\" + (_vm.documentCountInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"documentCount\",\n \"option-info\": _vm.documentCountInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Rate(\" + (_vm.indexSearchRateInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchRate\",\n \"option-info\": _vm.indexSearchRateInfo\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Latency(\" + (_vm.indexSearchLatencyInfo.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchLatency\",\n \"option-info\": _vm.indexSearchLatencyInfo\n }\n })], 1)])], 1)], 1)], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-cf781586\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/monitor/indice_detail.vue\n// module id = 1509\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticStyle: {\n \"width\": \"100%\",\n \"height\": \"100%\"\n },\n attrs: {\n \"id\": _vm.editorId\n }\n })\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-cffbcb88\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/ace_editor.vue\n// module id = 1510\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"page-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"my-breadcrumb\",\n staticStyle: {\n \"width\": \"100%\"\n }\n }, [_c('div', {\n staticClass: \"pull-left\",\n staticStyle: {\n \"display\": \"inline\"\n }\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"ES集群管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_detail',\n query: {\n clusterId: _vm.clusterId\n }\n }\n }\n }, [_vm._v(_vm._s(_vm.clusterId))]), _vm._v(\" \"), _c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'cluster_monitor',\n query: {\n clusterId: _vm.clusterId\n }\n }\n }\n }, [_vm._v(\"监控\")]), _vm._v(\" \"), _vm._l((_vm.breadcrumbs), function(item, index) {\n return _c('el-breadcrumb-item', {\n key: index,\n attrs: {\n \"to\": item.route\n }\n }, [_vm._v(_vm._s(item.name))])\n })], 2)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\",\n staticStyle: {\n \"display\": \"inline\",\n \"margin-right\": \"10px\",\n \"height\": \"30px\",\n \"line-height\": \"30px\"\n }\n }, [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n },\n on: {\n \"command\": _vm.handleCommand\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\",\n attrs: {\n \"title\": _vm.timeInterval.command === 'custom' ? ((_vm.formatDate(_vm.timeInterval.from, 'MM-DD HH:mm')) + \" - \" + (_vm.formatDate(_vm.timeInterval.to, 'MM-DD HH:mm'))) : ''\n }\n }, [_c('i', {\n staticClass: \"fa fa-clock-o\"\n }), _vm._v(\"\\n \" + _vm._s(_vm.periodTimeMap[_vm.timeInterval.command])), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [_c('el-dropdown-item', {\n attrs: {\n \"command\": \"30\"\n }\n }, [_vm._v(\"最近30分钟\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"60\"\n }\n }, [_vm._v(\"最近1小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"180\"\n }\n }, [_vm._v(\"最近3小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"360\"\n }\n }, [_vm._v(\"最近6小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"720\"\n }\n }, [_vm._v(\"最近12小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"1440\"\n }\n }, [_vm._v(\"最近24小时\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"4320\"\n }\n }, [_vm._v(\"最近3天\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"command\": \"10080\"\n }\n }, [_vm._v(\"最近7天\")]), _vm._v(\" \"), _c('el-dropdown-item', {\n attrs: {\n \"divided\": \"\",\n \"command\": \"custom\"\n }\n }, [_vm._v(\"自定义时间\")])], 1)], 1)], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"page-tab\"\n }, [_c('el-tabs', {\n on: {\n \"tab-click\": _vm.onTabClick\n },\n model: {\n value: (_vm.activeTab),\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"name\": \"cluster_monitor\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-cube\"\n }), _vm._v(\"集群\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"indices_monitor\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-search\"\n }), _vm._v(\"索引 (\" + _vm._s(_vm.indicesNum) + \")\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"nodes_monitor\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-cubes\"\n }), _vm._v(\"节点 (\" + _vm._s(_vm.nodesNum) + \")\")])])], 1), _vm._v(\" \"), _c('router-view')], 1), _vm._v(\" \"), (_vm.customTimeVisible) ? _c('div', [_c('custom-time-dialog', {\n on: {\n \"set-custom-time\": _vm.setCustomTime,\n \"close-dialog\": _vm.closeCustomTimeDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-d18ad820\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/monitor/overview.vue\n// module id = 1511\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"navbar\"\n }, [_vm._m(0), _vm._v(\" \"), _c('div', {\n staticClass: \"navbar-content\"\n }, [_c('el-menu', {\n staticClass: \"el-menu-demo\",\n attrs: {\n \"theme\": \"dark\",\n \"default-active\": _vm.activeIndex,\n \"mode\": \"horizontal\",\n \"router\": true\n }\n }, [_vm._l((_vm.serviceList), function(item) {\n return [_c('el-menu-item', {\n key: item.index,\n attrs: {\n \"index\": item.index,\n \"route\": item\n }\n }, [_c('i', {\n class: item.icon\n }), _vm._v(_vm._s(item.title))])]\n }), _vm._v(\" \"), _c('el-submenu', {\n staticClass: \"pull-right\",\n attrs: {\n \"index\": \"3\"\n }\n }, [_c('template', {\n slot: \"title\"\n }, [_c('i', {\n staticClass: \"fa fa-user\"\n }), _vm._v(_vm._s(_vm.loginUser || 'null'))]), _vm._v(\" \"), _c('el-menu-item', {\n attrs: {\n \"index\": \"\"\n }\n }, [_c('a', {\n staticStyle: {\n \"display\": \"block\"\n },\n attrs: {\n \"href\": \"/pallas/logout\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-sign-out\"\n }), _vm._v(\"注销\")])])], 2)], 2)], 1)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"navbar-title\"\n }, [_c('span', [_c('img', {\n attrs: {\n \"src\": require(\"../../image/pallas.png\")\n }\n }), _vm._v(\"\\n Pallas一站式检索平台\\n \")])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-d2aef8ba\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/navbar.vue\n// module id = 1512\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('input', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"type\": \"text\"\n }\n }), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索索引\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.indicesFilter($event)\n }\n },\n model: {\n value: (_vm.indiceForSearch),\n callback: function($$v) {\n _vm.indiceForSearch = $$v\n },\n expression: \"indiceForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.indicesFilter\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.indicesList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"Name\",\n \"prop\": \"indexName\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'indice_monitor_detail',\n query: {\n clusterId: _vm.clusterId,\n indice: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.indexName))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Status\",\n \"prop\": \"status\",\n \"width\": \"70px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Document Count\",\n \"prop\": \"documentCount\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Document Store Primary\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte_primary)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Document Store Total\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(\"\\n \" + _vm._s(_vm.bytesToSize(scope.row.document_store_byte_total)) + \"\\n \")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Health\",\n \"prop\": \"health\",\n \"width\": \"70px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Total Shard Count\",\n \"prop\": \"totalShardCount\"\n }\n })], 1)]\n ], 2)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-dc572dca\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/monitor/indices_monitor.vue\n// module id = 1513\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"索引管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n attrs: {\n \"clearable\": \"\"\n },\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedCluster),\n callback: function($$v) {\n _vm.selectedCluster = $$v\n },\n expression: \"selectedCluster\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部集群\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.clusters), function(cluster) {\n return _c('el-option-group', {\n key: cluster.label,\n attrs: {\n \"label\": cluster.label\n }\n }, _vm._l((cluster.options), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.clusterId,\n \"value\": item.clusterId\n }\n })\n }), 1)\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"请搜索索引\"\n },\n nativeOn: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.toPage($event)\n }\n },\n model: {\n value: (_vm.indexNameForSearch),\n callback: function($$v) {\n _vm.indexNameForSearch = (typeof $$v === 'string' ? $$v.trim() : $$v)\n },\n expression: \"indexNameForSearch\"\n }\n })], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.toPage\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"新增索引\")])], 1) : _vm._e()]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.indexList.list,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"type\": \"expand\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(props) {\n return [_c('el-form', {\n staticClass: \"my-table-expand\",\n attrs: {\n \"label-position\": \"left\",\n \"inline\": \"\"\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"id\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.id))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"索引名\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.indexName))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"索引描述\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.description || 'null'))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"所属集群\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.clusterName))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"集群描述\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.clusterDesc || 'null'))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"创建人\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.createUser || 'null'))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"创建时间\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(props.row.createTime)))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"更新时间\"\n }\n }, [_c('span', [_vm._v(_vm._s(_vm._f(\"formatDate\")(props.row.updateTime)))])]), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"数据源数量\"\n }\n }, [_c('span', [_vm._v(_vm._s(props.row.dataSourceList.length))])]), _vm._v(\" \"), _c('el-form-item', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"label\": \"数据源\"\n }\n }, _vm._l((props.row.dataSourceList), function(item) {\n return _c('span', {\n key: item.id,\n staticClass: \"data-source-text\"\n }, [_vm._v(_vm._s(item.dbname) + \" - \" + _vm._s(item.tableName) + \";\")])\n }), 0)], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"id\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.hasPrivilege) ? _c('div', [_vm._v(_vm._s(scope.row.id))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'index_detail',\n query: {\n indexId: scope.row.id,\n indexName: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.id))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"索引名\",\n \"min-width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.hasPrivilege) ? _c('div', [_vm._v(_vm._s(scope.row.indexName))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'index_detail',\n query: {\n indexId: scope.row.id,\n indexName: scope.row.indexName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.indexName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"索引描述\",\n \"show-overflow-tooltip\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.description || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"所属集群\",\n \"min-width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.hasClusterPrivilege || !scope.row.httpAddress) ? _c('div', [_vm._v(_vm._s(scope.row.clusterName))]) : _c('div', {\n staticClass: \"my-a-link\"\n }, [_c('router-link', {\n attrs: {\n \"tag\": \"a\",\n \"to\": {\n path: 'cluster_detail',\n query: {\n clusterId: scope.row.clusterName\n }\n }\n }\n }, [_vm._v(_vm._s(scope.row.clusterName))])], 1)]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"数据源\",\n \"width\": \"70px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.dataSourceList.length))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"创建人\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.createUser || '-'))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"更新时间\",\n \"prop\": \"updateTime\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(scope.row.hasPrivilege) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"编辑\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleEdit(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-edit\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"管理\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleManage(scope.$index, scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-bars\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.hasPrivilege) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1) : _vm._e()]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.indexList.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.indexList.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isIndexInfoVisible) ? _c('div', [_c('index-info-dialog', {\n attrs: {\n \"index-operation\": _vm.indexOperation,\n \"index-info-title\": _vm.indexInfoTitle,\n \"index-info\": _vm.indexInfo,\n \"clusters\": _vm.clusters\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-dd129428\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_manage/index_manage.vue\n// module id = 1514\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"tm-body\"\n }, [_c('ol', {\n staticClass: \"tm-items\"\n }, [_vm._t(\"default\")], 2)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-de4d2ed8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/timeline.vue\n// module id = 1515\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-tab-content\"\n }, [_c('div', {\n staticClass: \"content\"\n }, [\n [_c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.flowRecordList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('el-table-column', {\n attrs: {\n \"label\": \"记录id\",\n \"prop\": \"id\",\n \"width\": \"100px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"采集规则ID\",\n \"prop\": \"configId\",\n \"width\": \"100px\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最后更新时间\",\n \"prop\": \"updateTime\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"抽样系数\",\n \"prop\": \"sampleRate\",\n \"min-width\": \"110\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"目标采集数\",\n \"prop\": \"limit\",\n \"min-width\": \"110\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"当前采集数\",\n \"prop\": \"total\",\n \"min-width\": \"110\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"采集进度\",\n \"min-width\": \"110\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(scope.row.percentage) + \"%\")]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"状态\",\n \"prop\": \"state\",\n \"min-width\": \"50\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.state != 3 ? 'success' : 'danger'\n }\n }, [_vm._v(_vm._s(_vm.flowRecordStateMap[scope.row.state]))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-dropdown', {\n attrs: {\n \"trigger\": \"click\"\n }\n }, [_c('span', {\n staticClass: \"el-dropdown-link\"\n }, [_vm._v(\"\\n 操作\"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('el-dropdown-menu', {\n staticClass: \"dropdown-operation\",\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [(_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.total > 0),\n expression: \"scope.row.total > 0\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.exportFlow(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-file\"\n }), _vm._v(\"导出\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.state != 2 && scope.row.state != 3),\n expression: \"scope.row.state != 2 && scope.row.state != 3\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.stopRecord(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-stop-circle-o\"\n }), _vm._v(\"终止\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.isAllPrivilege) ? _c('el-dropdown-item', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (scope.row.state == 2 || scope.row.state == 3),\n expression: \"scope.row.state == 2 || scope.row.state == 3\"\n }]\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('span', [_c('i', {\n staticClass: \"fa fa-trash\"\n }), _vm._v(\"删除\")])])]) : _vm._e()], 1)], 1)]\n }\n }])\n })], 1)], _vm._v(\" \"), (_vm.total > 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()\n ], 2)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-ded194d4\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/flow_record/flow_record_config/flow_record_export.vue\n// module id = 1516\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"代理管理\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"data-table-filter\"\n }, [(_vm.isPrivilege) ? _c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.batchUpdateRoute\n }\n }, [_vm._v(\"批量更新路由\")])], 1) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedCluster),\n callback: function($$v) {\n _vm.selectedCluster = $$v\n },\n expression: \"selectedCluster\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部集群\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.clusters), function(item) {\n return _c('el-option', {\n key: item,\n attrs: {\n \"label\": item,\n \"value\": item\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n attrs: {\n \"label\": \"\"\n }\n }, [_c('el-select', {\n on: {\n \"change\": _vm.toPage\n },\n model: {\n value: (_vm.selectedPool),\n callback: function($$v) {\n _vm.selectedPool = $$v\n },\n expression: \"selectedPool\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部节点集\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.poolList), function(pool) {\n return _c('el-option', {\n key: pool,\n attrs: {\n \"label\": pool,\n \"value\": pool\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', {\n staticClass: \"filter-search\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"delete\"\n },\n on: {\n \"click\": _vm.handleDeleteExpired\n }\n }, [_vm._v(\"删除离线数据(3天前)\")])], 1)], 1)], 1)]), _vm._v(\" \"), _c('el-table', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n ref: \"multipleTable\",\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"data\": _vm.agentList,\n \"border\": \"\",\n \"element-loading-text\": \"请稍等···\"\n },\n on: {\n \"selection-change\": _vm.handleSelectionChange\n }\n }, [_c('el-table-column', {\n attrs: {\n \"type\": \"selection\",\n \"width\": \"55\",\n \"selectable\": _vm.setSelectable\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"ID\",\n \"prop\": \"id\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"IP端口\",\n \"prop\": \"ipport\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"代理集群\",\n \"prop\": \"cluster\"\n }\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"节点集\",\n \"props\": \"pools\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [(!scope.row.pools || Object.keys(JSON.parse(scope.row.pools)).length === 0) ? _c('span', {\n staticClass: \"target-group-item\",\n attrs: {\n \"close-transition\": \"\"\n }\n }, [_vm._v(\"default\")]) : _vm._e(), _vm._v(\" \"), (scope.row.pools) ? _c('span', _vm._l(((JSON.parse(scope.row.pools))), function(item) {\n return _c('span', {\n key: item,\n staticClass: \"target-group-item\",\n attrs: {\n \"close-transition\": \"\"\n }\n }, [_c('div', [_vm._v(_vm._s(item))])])\n }), 0) : _vm._e()]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"节点状态\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.healthy ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(_vm._f(\"translateState\")(scope.row.healthy)))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"当前QPS\",\n \"width\": \"80px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"currentQps\")(scope.row)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"连接数\",\n \"width\": \"60px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"currentConns\")(scope.row)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Req.volume\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"currentReceiveClientThrougph\")(scope.row)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"Res.volume\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"currentReceiveEsThrougph\")(scope.row)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"启用\",\n \"width\": \"60px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tag', {\n attrs: {\n \"type\": scope.row.takeTraffic ? 'success' : 'danger',\n \"close-transition\": \"\"\n }\n }, [_vm._v(_vm._s(scope.row.takeTraffic ? '是' : '否'))])]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"最后上报时间\",\n \"width\": \"160px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_vm._v(_vm._s(_vm._f(\"formatDate\")(scope.row.updateTime)))]\n }\n }])\n }), _vm._v(\" \"), _c('el-table-column', {\n attrs: {\n \"label\": \"操作\",\n \"width\": \"100px\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function(scope) {\n return [_c('el-tooltip', {\n attrs: {\n \"content\": \"节点信息\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.getInfo(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-envelope\"\n })])], 1), _vm._v(\" \"), (scope.row.healthy) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"更新路由\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.updateRoute(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-repeat\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (scope.row.takeTraffic) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"停用\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRemoveTraffic(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-level-down\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (!scope.row.takeTraffic) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"启用\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleRecoverTraffic(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-level-up\"\n })])], 1) : _vm._e(), _vm._v(\" \"), (!scope.row.healthy) ? _c('el-tooltip', {\n attrs: {\n \"content\": \"删除\",\n \"placement\": \"top\"\n }\n }, [_c('el-button', {\n attrs: {\n \"type\": \"text\"\n },\n on: {\n \"click\": function($event) {\n return _vm.handleDelete(scope.row)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-trash\"\n })])], 1) : _vm._e()]\n }\n }])\n })], 1), _vm._v(\" \"), (_vm.total != 0) ? _c('div', {\n staticClass: \"my-pagination\"\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next, jumper\",\n \"total\": _vm.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (_vm.isAgentInfoVisible) ? _c('div', [_c('json-content-dialog', {\n attrs: {\n \"title\": _vm.viewInfoTitle,\n \"content\": _vm.viewInfo\n },\n on: {\n \"close-dialog\": _vm.closeDialog\n }\n })], 1) : _vm._e()], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-e2d081e8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/agent_manage/agent_manage.vue\n// module id = 1517\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n attrs: {\n \"title\": \"导入Mysql数据源\",\n \"before-close\": _vm.handleClose\n },\n model: {\n value: (_vm.isDsImportVisible),\n callback: function($$v) {\n _vm.isDsImportVisible = $$v\n },\n expression: \"isDsImportVisible\"\n }\n }, [_c('el-form', [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 18\n }\n }, [_c('el-form-item', [_c('el-upload', {\n ref: \"upload\",\n attrs: {\n \"action\": \"/pallas/ds/import.json\",\n \"auto-upload\": false,\n \"multiple\": false,\n \"file-list\": _vm.fileList,\n \"on-remove\": _vm.handleRemove,\n \"on-error\": _vm.handleError,\n \"on-success\": _vm.handleSuccess\n }\n }, [_c('el-button', {\n attrs: {\n \"size\": \"small\",\n \"type\": \"primary\"\n },\n on: {\n \"click\": _vm.handleUpload\n }\n }, [_vm._v(\"点击上传\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"el-upload__tip\",\n attrs: {\n \"slot\": \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(\"请上传文本文件,每行一条数据源,内容以空格分开\"), _c('br'), _vm._v(\"字段分别为:ip port user passwd database table\")])], 1)], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.handleClose()\n }\n }\n }, [_vm._v(\"取 消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": _vm.submitImportDs\n }\n }, [_vm._v(\"确定\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-e6185c4c\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_manage/index_info_dialog/index_data_sources/datasource_import_dialog.vue\n// module id = 1518\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticStyle: {\n \"width\": \"100%\",\n \"height\": \"300px\"\n },\n attrs: {\n \"id\": _vm.id\n }\n })])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-e9837c36\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/common/charts/pie.vue\n// module id = 1519\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"target-group\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [(_vm.privilege) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"添加节点集\")]) : _vm._e(), _vm._v(\" \"), (JSON.stringify(_vm.routingTargetGroupsList) != '{}') ? _c('el-select', {\n on: {\n \"change\": _vm.changeShowTreeInfo\n },\n model: {\n value: (_vm.selectedShowTreeInfo),\n callback: function($$v) {\n _vm.selectedShowTreeInfo = $$v\n },\n expression: \"selectedShowTreeInfo\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"展示节点名称\",\n \"value\": \"name\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"展示节点地址\",\n \"value\": \"address\"\n }\n })], 1) : _vm._e()], 1), _vm._v(\" \"), (JSON.stringify(_vm.routingTargetGroupsList) === '{}') ? _c('div', {\n staticClass: \"target-group-null\"\n }, [_c('span', [_vm._v(\"请添加节点集\")])]) : _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, _vm._l((_vm.routingTargetGroupsList), function(item, index) {\n return _c('el-col', {\n key: item.id,\n attrs: {\n \"span\": 12\n }\n }, [_c('target-group-item', {\n attrs: {\n \"privilege\": _vm.privilege,\n \"target-group-tree-no-children\": JSON.parse(JSON.stringify(_vm.targetGroupTreeNoChildren)),\n \"target-group-tree\": JSON.parse(JSON.stringify(_vm.targetGroupTree)),\n \"targetGroupItemInfo\": item,\n \"selected-show-tree-info\": _vm.selectedShowTreeInfo\n },\n on: {\n \"save-operation\": _vm.saveOperation,\n \"delete-operation\": _vm.deleteOperation\n }\n })], 1)\n }), 1)], 1), _vm._v(\" \"), (_vm.istargetGroupInfoVisible) ? _c('div', [_c('target-group-info-dialog', {\n attrs: {\n \"target-group-info\": _vm.targetGroupInfo,\n \"target-group-info-title\": _vm.targetGroupInfoTitle\n },\n on: {\n \"operation-success\": _vm.operationSuccess,\n \"close-dialog\": _vm.closeTargetGroupDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-ed9f792e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/route_manage/target_group/target_group.vue\n// module id = 1520\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"my-tab-content\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [_c('div', {\n staticClass: \"pull-left\"\n }, [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"delete\"\n },\n on: {\n \"click\": _vm.handleDelete\n }\n }, [_vm._v(\"删除索引动态(3月前)\")])], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"pull-right\"\n }, [_c('el-form', {\n staticClass: \"demo-form-inline\",\n attrs: {\n \"inline\": true\n }\n }, [_c('el-form-item', [_c('el-select', {\n on: {\n \"change\": _vm.getOperationList\n },\n model: {\n value: (_vm.selectedType),\n callback: function($$v) {\n _vm.selectedType = $$v\n },\n expression: \"selectedType\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部事件\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.typeList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-form-item', [_c('el-select', {\n attrs: {\n \"filterable\": \"\",\n \"allow-create\": \"\"\n },\n on: {\n \"change\": _vm.getOperationList\n },\n model: {\n value: (_vm.filterVersion),\n callback: function($$v) {\n _vm.filterVersion = $$v\n },\n expression: \"filterVersion\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"全部版本\",\n \"value\": \"\"\n }\n }), _vm._v(\" \"), _vm._l((_vm.versionIdList), function(item) {\n return _c('el-option', {\n key: item.value,\n attrs: {\n \"label\": item.value,\n \"value\": item.value\n }\n })\n })], 2)], 1), _vm._v(\" \"), _c('el-date-picker', {\n attrs: {\n \"type\": \"datetimerange\",\n \"placeholder\": \"选择时间范围\"\n },\n on: {\n \"change\": _vm.getOperationList\n },\n model: {\n value: (_vm.timeRange),\n callback: function($$v) {\n _vm.timeRange = $$v\n },\n expression: \"timeRange\"\n }\n }), _vm._v(\" \"), _c('el-form-item', [_c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"search\"\n },\n on: {\n \"click\": _vm.getOperationList\n }\n }, [_vm._v(\"查询\")])], 1)], 1)], 1)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, _vm._l((_vm.chartList), function(chartData, index) {\n return (_vm.isChartVisible) ? _c('el-row', {\n key: index,\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 24\n }\n }, [_c('div', {\n staticClass: \"grid-content bg-purple-dark\",\n attrs: {\n \"align\": \"center\"\n }\n }, [_vm._v(_vm._s(chartData.rate.name))])]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Rate(\" + (chartData.rate.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchRate\",\n \"option-info\": chartData.rate\n }\n })], 1)])], 1), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 12\n }\n }, [_c('chart-container', {\n attrs: {\n \"title\": (\"Request Latency(\" + (chartData.latency.yAxisName) + \")\"),\n \"type\": \"line\"\n }\n }, [_c('div', {\n attrs: {\n \"slot\": \"chart\"\n },\n slot: \"chart\"\n }, [_c('MyLine', {\n attrs: {\n \"id\": \"indexSearchLatency\",\n \"option-info\": chartData.latency\n }\n })], 1)])], 1)], 1) : _vm._e()\n }), 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [(_vm.operationList.length === 0) ? _c('div', {\n staticClass: \"empty-operation\"\n }, [_vm._v(\"暂无数据\")]) : _c('Timeline', _vm._l((_vm.operationList), function(op) {\n return _c('Timeline-item', {\n key: op.id\n }, [_c('div', {\n staticStyle: {\n \"margin-top\": \"-8px\"\n },\n attrs: {\n \"slot\": \"date\"\n },\n slot: \"date\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm._f(\"formatOnlyDate\")(op.operationTime))), _c('br'), _vm._v(_vm._s(_vm._f(\"formatOnlyTime\")(op.operationTime)) + \"\\n \")]), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"margin-top\": \"-8px\"\n },\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_vm._v(\"\\n \" + _vm._s(op.eventType)), _c('br'), _vm._v(_vm._s(op.eventName) + \"\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"operation-content\",\n attrs: {\n \"slot\": \"content\"\n },\n slot: \"content\"\n }, [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, [_c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_vm._v(\"操作员:\")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 9\n }\n }, [_vm._v(_vm._s(op.operator || '无'))]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_vm._v(\"版本号:\")]), _vm._v(\" \"), _c('el-col', {\n attrs: {\n \"span\": 9\n }\n }, [_vm._v(_vm._s(op.versionId || '无'))]), _vm._v(\" \"), (op.isShowIcon) ? _c('div', [_c('el-col', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!op.isFold),\n expression: \"!op.isFold\"\n }],\n attrs: {\n \"span\": 2\n }\n }, [_c('div', {\n attrs: {\n \"align\": \"right\"\n }\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n op.isFold = !op.isFold\n }\n }\n }, [_c('i', {\n staticClass: \"el-icon-arrow-down\"\n })])])]), _vm._v(\" \"), _c('el-col', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (op.isFold),\n expression: \"op.isFold\"\n }],\n attrs: {\n \"span\": 2\n }\n }, [_c('div', {\n attrs: {\n \"align\": \"right\"\n }\n }, [_c('a', {\n on: {\n \"click\": function($event) {\n op.isFold = !op.isFold\n }\n }\n }, [_c('i', {\n staticClass: \"el-icon-arrow-right\"\n })])])])], 1) : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n class: [op.isFold ? 'operation-content-fold' : 'operation-content-unfold']\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 2\n }\n }, [_vm._v(\"操作内容:\")]), _vm._v(\" \"), _c('el-col', {\n staticStyle: {\n \"word-wrap\": \"break-word\"\n },\n attrs: {\n \"span\": 22\n }\n }, [_vm._v(_vm._s(op.eventDetail || '无'))])], 1)], 1)], 1)])\n }), 1), _vm._v(\" \"), (_vm.operationData.total != 0) ? _c('div', {\n staticClass: \"dynamic-pagination\",\n attrs: {\n \"align\": \"right\"\n }\n }, [_c('el-pagination', {\n attrs: {\n \"layout\": \"prev, pager, next\",\n \"total\": _vm.operationData.total,\n \"page-size\": _vm.pageSize,\n \"current-page\": _vm.currentPage\n },\n on: {\n \"current-change\": _vm.changePage\n }\n })], 1) : _vm._e()], 1), _vm._v(\" \"), (_vm.isDynamicInfoVisible) ? _c('div', [_c('dynamic-info-dialog', {\n attrs: {\n \"dynamic-operation\": _vm.dynamicOperation,\n \"dynamic-info-title\": _vm.dynamicInfoTitle,\n \"dynamic-info\": _vm.dynamicInfo,\n \"typeList\": _vm.typeList,\n \"versionIdList\": _vm.versionIdList\n },\n on: {\n \"close-dialog\": _vm.closeDialog,\n \"operate-close-dialog\": _vm.operateCloseDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-ee76989e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/dynamic_manage/dynamic_manage.vue\n// module id = 1521\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n staticClass: \"target-group\",\n attrs: {\n \"element-loading-text\": \"请稍等···\"\n }\n }, [_c('div', {\n staticClass: \"data-table-filter\"\n }, [(_vm.privilege) ? _c('el-button', {\n attrs: {\n \"type\": \"primary\",\n \"icon\": \"plus\"\n },\n on: {\n \"click\": _vm.handleAdd\n }\n }, [_vm._v(\"添加节点集\")]) : _vm._e(), _vm._v(\" \"), (JSON.stringify(_vm.routingTargetGroupsList) != '{}') ? _c('el-select', {\n on: {\n \"change\": _vm.changeShowTreeInfo\n },\n model: {\n value: (_vm.selectedShowTreeInfo),\n callback: function($$v) {\n _vm.selectedShowTreeInfo = $$v\n },\n expression: \"selectedShowTreeInfo\"\n }\n }, [_c('el-option', {\n attrs: {\n \"label\": \"展示节点名称\",\n \"value\": \"name\"\n }\n }), _vm._v(\" \"), _c('el-option', {\n attrs: {\n \"label\": \"展示节点地址\",\n \"value\": \"address\"\n }\n })], 1) : _vm._e()], 1), _vm._v(\" \"), (JSON.stringify(_vm.routingTargetGroupsList) === '{}') ? _c('div', {\n staticClass: \"target-group-null\"\n }, [_c('span', [_vm._v(\"请添加节点集\")])]) : _c('div', [_c('el-row', {\n attrs: {\n \"gutter\": 20\n }\n }, _vm._l((_vm.routingTargetGroupsList), function(item, index) {\n return _c('el-col', {\n key: item.id,\n attrs: {\n \"span\": 12\n }\n }, [_c('target-group-item', {\n attrs: {\n \"privilege\": _vm.privilege,\n \"target-group-tree-no-children\": JSON.parse(JSON.stringify(_vm.targetGroupTreeNoChildren)),\n \"target-group-tree\": JSON.parse(JSON.stringify(_vm.targetGroupTree)),\n \"targetGroupItemInfo\": item,\n \"selected-show-tree-info\": _vm.selectedShowTreeInfo\n },\n on: {\n \"save-operation\": _vm.saveOperation,\n \"delete-operation\": _vm.deleteOperation\n }\n })], 1)\n }), 1)], 1), _vm._v(\" \"), (_vm.istargetGroupInfoVisible) ? _c('div', [_c('target-group-info-dialog', {\n attrs: {\n \"target-group-info\": _vm.targetGroupInfo,\n \"target-group-info-title\": _vm.targetGroupInfoTitle\n },\n on: {\n \"operation-success\": _vm.operationSuccess,\n \"close-dialog\": _vm.closeTargetGroupDialog\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-eee0a37c\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/cluster_manage/cluster_route_manage/cluster_target_group/cluster_target_group.vue\n// module id = 1522\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"page-content\"\n }, [_c('div', {\n staticClass: \"my-breadcrumb\"\n }, [_c('el-breadcrumb', {\n staticClass: \"my-breadcrumb-content\",\n attrs: {\n \"separator\": \"/\"\n }\n }, [_c('el-breadcrumb-item', {\n attrs: {\n \"to\": {\n name: 'index_manage'\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-home\"\n }), _vm._v(\"索引管理\")]), _vm._v(\" \"), _c('el-breadcrumb-item', [_vm._v(_vm._s(_vm.indexName) + \"(\" + _vm._s(_vm.indexId) + \")\")])], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"page-tab\"\n }, [_c('el-tabs', {\n on: {\n \"tab-click\": _vm.onTabClick\n },\n model: {\n value: (_vm.activeTab),\n callback: function($$v) {\n _vm.activeTab = $$v\n },\n expression: \"activeTab\"\n }\n }, [_c('el-tab-pane', {\n attrs: {\n \"name\": \"version_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-share-alt\"\n }), _vm._v(\"版本管理\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"template_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-th-large\"\n }), _vm._v(\"模板管理\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"route_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-sitemap\"\n }), _vm._v(\"路由管理\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"service_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-server\"\n }), _vm._v(\"服务治理\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"dynamic_manage\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-sort-amount-asc\"\n }), _vm._v(\"索引动态\")])]), _vm._v(\" \"), _c('el-tab-pane', {\n attrs: {\n \"name\": \"flow_record\"\n }\n }, [_c('span', {\n attrs: {\n \"slot\": \"label\"\n },\n slot: \"label\"\n }, [_c('i', {\n staticClass: \"fa fa-camera\"\n }), _vm._v(\"流量记录\")])])], 1), _vm._v(\" \"), _c('router-view')], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-f771d528\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/index_detail.vue\n// module id = 1523\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('el-dialog', {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading\",\n value: (_vm.loading),\n expression: \"loading\"\n }],\n attrs: {\n \"title\": _vm.configInfoTitle,\n \"size\": \"small\",\n \"before-close\": _vm.closeDialog,\n \"element-loading-text\": \"请稍等···\"\n },\n model: {\n value: (_vm.isconfigInfoVisible),\n callback: function($$v) {\n _vm.isconfigInfoVisible = $$v\n },\n expression: \"isconfigInfoVisible\"\n }\n }, [_c('el-form', {\n ref: \"configInfo\",\n attrs: {\n \"model\": _vm.configInfo,\n \"rules\": _vm.rules,\n \"label-width\": \"140px\"\n }\n }, [_c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"目标模板\",\n \"prop\": \"templateId\",\n \"required\": \"\"\n }\n }, [_c('el-select', {\n staticStyle: {\n \"width\": \"100%\"\n },\n model: {\n value: (_vm.configInfo.templateId),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"templateId\", $$v)\n },\n expression: \"configInfo.templateId\"\n }\n }, _vm._l((_vm.templates), function(item) {\n return _c('el-option', {\n key: item.id,\n attrs: {\n \"label\": item.templateName,\n \"value\": item.id\n }\n })\n }), 1)], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采集开始时间\",\n \"prop\": \"startTime\",\n \"required\": \"\"\n }\n }, [_c('el-date-picker', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"type\": \"datetime\",\n \"placeholder\": \"选择开始时间\"\n },\n model: {\n value: (_vm.configInfo.startTime),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"startTime\", $$v)\n },\n expression: \"configInfo.startTime\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采集结束时间\",\n \"prop\": \"endTime\",\n \"required\": \"\"\n }\n }, [_c('el-date-picker', {\n staticStyle: {\n \"width\": \"100%\"\n },\n attrs: {\n \"type\": \"datetime\",\n \"placeholder\": \"选择结束时间\"\n },\n model: {\n value: (_vm.configInfo.endTime),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"endTime\", $$v)\n },\n expression: \"configInfo.endTime\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"抽样系数\",\n \"prop\": \"sampleRate\",\n \"required\": \"\"\n }\n }, [_c('el-input', {\n attrs: {\n \"placeholder\": \"范围0到1\"\n },\n model: {\n value: (_vm.configInfo.sampleRate),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"sampleRate\", $$v)\n },\n expression: \"configInfo.sampleRate\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"采集数量\",\n \"prop\": \"limit\"\n }\n }, [_c('el-input', {\n model: {\n value: (_vm.configInfo.limit),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"limit\", $$v)\n },\n expression: \"configInfo.limit\"\n }\n })], 1)], 1)], 1), _vm._v(\" \"), _c('el-row', [_c('el-col', {\n attrs: {\n \"span\": 22\n }\n }, [_c('el-form-item', {\n attrs: {\n \"label\": \"描述\",\n \"prop\": \"note\"\n }\n }, [_c('el-input', {\n attrs: {\n \"type\": \"textarea\"\n },\n model: {\n value: (_vm.configInfo.note),\n callback: function($$v) {\n _vm.$set(_vm.configInfo, \"note\", $$v)\n },\n expression: \"configInfo.note\"\n }\n })], 1)], 1)], 1)], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"dialog-footer\",\n attrs: {\n \"slot\": \"footer\"\n },\n slot: \"footer\"\n }, [_c('el-button', {\n on: {\n \"click\": function($event) {\n return _vm.closeDialog()\n }\n }\n }, [_vm._v(\"取消\")]), _vm._v(\" \"), _c('el-button', {\n attrs: {\n \"type\": \"confirm\"\n },\n on: {\n \"click\": function($event) {\n return _vm.submitconfigInfo()\n }\n }\n }, [_vm._v(\"保存\")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-fecfaafe\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/index_detail/flow_record/flow_record_config/config_info_dialog.vue\n// module id = 1524\n// module chunks = 1","// style-loader: Adds some css to the DOM by adding a in svg, where nodeName is 'style',\n // CSS classes is defined globally wherever the style tags are declared.\n\n if (nodeName === 'defs') {\n // define flag\n this._isDefine = true;\n } else if (nodeName === 'text') {\n this._isText = true;\n }\n\n var el;\n\n if (this._isDefine) {\n var parser = defineParsers[nodeName];\n\n if (parser) {\n var def = parser.call(this, xmlNode);\n var id = xmlNode.getAttribute('id');\n\n if (id) {\n this._defs[id] = def;\n }\n }\n } else {\n var parser = nodeParsers[nodeName];\n\n if (parser) {\n el = parser.call(this, xmlNode, parentGroup);\n parentGroup.add(el);\n }\n }\n\n var child = xmlNode.firstChild;\n\n while (child) {\n if (child.nodeType === 1) {\n this._parseNode(child, el);\n } // Is text\n\n\n if (child.nodeType === 3 && this._isText) {\n this._parseText(child, el);\n }\n\n child = child.nextSibling;\n } // Quit define\n\n\n if (nodeName === 'defs') {\n this._isDefine = false;\n } else if (nodeName === 'text') {\n this._isText = false;\n }\n};\n\nSVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n if (xmlNode.nodeType === 1) {\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n this._textX += parseFloat(dx);\n this._textY += parseFloat(dy);\n }\n\n var text = new Text({\n style: {\n text: xmlNode.textContent,\n transformText: true\n },\n position: [this._textX || 0, this._textY || 0]\n });\n inheritStyle(parentGroup, text);\n parseAttributes(xmlNode, text, this._defs);\n var fontSize = text.style.fontSize;\n\n if (fontSize && fontSize < 9) {\n // PENDING\n text.style.fontSize = 9;\n text.scale = text.scale || [1, 1];\n text.scale[0] *= fontSize / 9;\n text.scale[1] *= fontSize / 9;\n }\n\n var rect = text.getBoundingRect();\n this._textX += rect.width;\n parentGroup.add(text);\n return text;\n};\n\nvar nodeParsers = {\n 'g': function (xmlNode, parentGroup) {\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n return g;\n },\n 'rect': function (xmlNode, parentGroup) {\n var rect = new Rect();\n inheritStyle(parentGroup, rect);\n parseAttributes(xmlNode, rect, this._defs);\n rect.setShape({\n x: parseFloat(xmlNode.getAttribute('x') || 0),\n y: parseFloat(xmlNode.getAttribute('y') || 0),\n width: parseFloat(xmlNode.getAttribute('width') || 0),\n height: parseFloat(xmlNode.getAttribute('height') || 0)\n }); // console.log(xmlNode.getAttribute('transform'));\n // console.log(rect.transform);\n\n return rect;\n },\n 'circle': function (xmlNode, parentGroup) {\n var circle = new Circle();\n inheritStyle(parentGroup, circle);\n parseAttributes(xmlNode, circle, this._defs);\n circle.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || 0),\n cy: parseFloat(xmlNode.getAttribute('cy') || 0),\n r: parseFloat(xmlNode.getAttribute('r') || 0)\n });\n return circle;\n },\n 'line': function (xmlNode, parentGroup) {\n var line = new Line();\n inheritStyle(parentGroup, line);\n parseAttributes(xmlNode, line, this._defs);\n line.setShape({\n x1: parseFloat(xmlNode.getAttribute('x1') || 0),\n y1: parseFloat(xmlNode.getAttribute('y1') || 0),\n x2: parseFloat(xmlNode.getAttribute('x2') || 0),\n y2: parseFloat(xmlNode.getAttribute('y2') || 0)\n });\n return line;\n },\n 'ellipse': function (xmlNode, parentGroup) {\n var ellipse = new Ellipse();\n inheritStyle(parentGroup, ellipse);\n parseAttributes(xmlNode, ellipse, this._defs);\n ellipse.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || 0),\n cy: parseFloat(xmlNode.getAttribute('cy') || 0),\n rx: parseFloat(xmlNode.getAttribute('rx') || 0),\n ry: parseFloat(xmlNode.getAttribute('ry') || 0)\n });\n return ellipse;\n },\n 'polygon': function (xmlNode, parentGroup) {\n var points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polygon = new Polygon({\n shape: {\n points: points || []\n }\n });\n inheritStyle(parentGroup, polygon);\n parseAttributes(xmlNode, polygon, this._defs);\n return polygon;\n },\n 'polyline': function (xmlNode, parentGroup) {\n var path = new Path();\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n var points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polyline = new Polyline({\n shape: {\n points: points || []\n }\n });\n return polyline;\n },\n 'image': function (xmlNode, parentGroup) {\n var img = new ZImage();\n inheritStyle(parentGroup, img);\n parseAttributes(xmlNode, img, this._defs);\n img.setStyle({\n image: xmlNode.getAttribute('xlink:href'),\n x: xmlNode.getAttribute('x'),\n y: xmlNode.getAttribute('y'),\n width: xmlNode.getAttribute('width'),\n height: xmlNode.getAttribute('height')\n });\n return img;\n },\n 'text': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x') || 0;\n var y = xmlNode.getAttribute('y') || 0;\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n this._textX = parseFloat(x) + parseFloat(dx);\n this._textY = parseFloat(y) + parseFloat(dy);\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n return g;\n },\n 'tspan': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x');\n var y = xmlNode.getAttribute('y');\n\n if (x != null) {\n // new offset x\n this._textX = parseFloat(x);\n }\n\n if (y != null) {\n // new offset y\n this._textY = parseFloat(y);\n }\n\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n this._textX += dx;\n this._textY += dy;\n return g;\n },\n 'path': function (xmlNode, parentGroup) {\n // TODO svg fill rule\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule\n // path.style.globalCompositeOperation = 'xor';\n var d = xmlNode.getAttribute('d') || ''; // Performance sensitive.\n\n var path = createFromString(d);\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n return path;\n }\n};\nvar defineParsers = {\n 'lineargradient': function (xmlNode) {\n var x1 = parseInt(xmlNode.getAttribute('x1') || 0, 10);\n var y1 = parseInt(xmlNode.getAttribute('y1') || 0, 10);\n var x2 = parseInt(xmlNode.getAttribute('x2') || 10, 10);\n var y2 = parseInt(xmlNode.getAttribute('y2') || 0, 10);\n var gradient = new LinearGradient(x1, y1, x2, y2);\n\n _parseGradientColorStops(xmlNode, gradient);\n\n return gradient;\n },\n 'radialgradient': function (xmlNode) {}\n};\n\nfunction _parseGradientColorStops(xmlNode, gradient) {\n var stop = xmlNode.firstChild;\n\n while (stop) {\n if (stop.nodeType === 1) {\n var offset = stop.getAttribute('offset');\n\n if (offset.indexOf('%') > 0) {\n // percentage\n offset = parseInt(offset, 10) / 100;\n } else if (offset) {\n // number from 0 to 1\n offset = parseFloat(offset);\n } else {\n offset = 0;\n }\n\n var stopColor = stop.getAttribute('stop-color') || '#000000';\n gradient.addColorStop(offset, stopColor);\n }\n\n stop = stop.nextSibling;\n }\n}\n\nfunction inheritStyle(parent, child) {\n if (parent && parent.__inheritedStyle) {\n if (!child.__inheritedStyle) {\n child.__inheritedStyle = {};\n }\n\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\n }\n}\n\nfunction parsePoints(pointsString) {\n var list = trim(pointsString).split(DILIMITER_REG);\n var points = [];\n\n for (var i = 0; i < list.length; i += 2) {\n var x = parseFloat(list[i]);\n var y = parseFloat(list[i + 1]);\n points.push([x, y]);\n }\n\n return points;\n}\n\nvar attributesMap = {\n 'fill': 'fill',\n 'stroke': 'stroke',\n 'stroke-width': 'lineWidth',\n 'opacity': 'opacity',\n 'fill-opacity': 'fillOpacity',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-dasharray': 'lineDash',\n 'stroke-dashoffset': 'lineDashOffset',\n 'stroke-linecap': 'lineCap',\n 'stroke-linejoin': 'lineJoin',\n 'stroke-miterlimit': 'miterLimit',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'text-align': 'textAlign',\n 'alignment-baseline': 'textBaseline'\n};\n\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n var zrStyle = el.__inheritedStyle || {};\n var isTextEl = el.type === 'text'; // TODO Shadow\n\n if (xmlNode.nodeType === 1) {\n parseTransformAttribute(xmlNode, el);\n extend(zrStyle, parseStyleAttribute(xmlNode));\n\n if (!onlyInlineStyle) {\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName)) {\n var attrValue = xmlNode.getAttribute(svgAttrName);\n\n if (attrValue != null) {\n zrStyle[attributesMap[svgAttrName]] = attrValue;\n }\n }\n }\n }\n }\n\n var elFillProp = isTextEl ? 'textFill' : 'fill';\n var elStrokeProp = isTextEl ? 'textStroke' : 'stroke';\n el.style = el.style || new Style();\n var elStyle = el.style;\n zrStyle.fill != null && elStyle.set(elFillProp, getPaint(zrStyle.fill, defs));\n zrStyle.stroke != null && elStyle.set(elStrokeProp, getPaint(zrStyle.stroke, defs));\n each(['lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'], function (propName) {\n var elPropName = propName === 'lineWidth' && isTextEl ? 'textStrokeWidth' : propName;\n zrStyle[propName] != null && elStyle.set(elPropName, parseFloat(zrStyle[propName]));\n });\n\n if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n zrStyle.textBaseline = 'alphabetic';\n }\n\n if (zrStyle.textBaseline === 'alphabetic') {\n zrStyle.textBaseline = 'bottom';\n }\n\n if (zrStyle.textAlign === 'start') {\n zrStyle.textAlign = 'left';\n }\n\n if (zrStyle.textAlign === 'end') {\n zrStyle.textAlign = 'right';\n }\n\n each(['lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'], function (propName) {\n zrStyle[propName] != null && elStyle.set(propName, zrStyle[propName]);\n });\n\n if (zrStyle.lineDash) {\n el.style.lineDash = trim(zrStyle.lineDash).split(DILIMITER_REG);\n }\n\n if (elStyle[elStrokeProp] && elStyle[elStrokeProp] !== 'none') {\n // enable stroke\n el[elStrokeProp] = true;\n }\n\n el.__inheritedStyle = zrStyle;\n}\n\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\n\nfunction getPaint(str, defs) {\n // if (str === 'none') {\n // return;\n // }\n var urlMatch = defs && str && str.match(urlRegex);\n\n if (urlMatch) {\n var url = trim(urlMatch[1]);\n var def = defs[url];\n return def;\n }\n\n return str;\n}\n\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\n\nfunction parseTransformAttribute(xmlNode, node) {\n var transform = xmlNode.getAttribute('transform');\n\n if (transform) {\n transform = transform.replace(/,/g, ' ');\n var m = null;\n var transformOps = [];\n transform.replace(transformRegex, function (str, type, value) {\n transformOps.push(type, value);\n });\n\n for (var i = transformOps.length - 1; i > 0; i -= 2) {\n var value = transformOps[i];\n var type = transformOps[i - 1];\n m = m || matrix.create();\n\n switch (type) {\n case 'translate':\n value = trim(value).split(DILIMITER_REG);\n matrix.translate(m, m, [parseFloat(value[0]), parseFloat(value[1] || 0)]);\n break;\n\n case 'scale':\n value = trim(value).split(DILIMITER_REG);\n matrix.scale(m, m, [parseFloat(value[0]), parseFloat(value[1] || value[0])]);\n break;\n\n case 'rotate':\n value = trim(value).split(DILIMITER_REG);\n matrix.rotate(m, m, parseFloat(value[0]));\n break;\n\n case 'skew':\n value = trim(value).split(DILIMITER_REG);\n console.warn('Skew transform is not supported yet');\n break;\n\n case 'matrix':\n var value = trim(value).split(DILIMITER_REG);\n m[0] = parseFloat(value[0]);\n m[1] = parseFloat(value[1]);\n m[2] = parseFloat(value[2]);\n m[3] = parseFloat(value[3]);\n m[4] = parseFloat(value[4]);\n m[5] = parseFloat(value[5]);\n break;\n }\n }\n\n node.setLocalTransform(m);\n }\n} // Value may contain space.\n\n\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\n\nfunction parseStyleAttribute(xmlNode) {\n var style = xmlNode.getAttribute('style');\n var result = {};\n\n if (!style) {\n return result;\n }\n\n var styleList = {};\n styleRegex.lastIndex = 0;\n var styleRegResult;\n\n while ((styleRegResult = styleRegex.exec(style)) != null) {\n styleList[styleRegResult[1]] = styleRegResult[2];\n }\n\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n }\n }\n\n return result;\n}\n/**\n * @param {Array.} viewBoxRect\n * @param {number} width\n * @param {number} height\n * @return {Object} {scale, position}\n */\n\n\nfunction makeViewBoxTransform(viewBoxRect, width, height) {\n var scaleX = width / viewBoxRect.width;\n var scaleY = height / viewBoxRect.height;\n var scale = Math.min(scaleX, scaleY); // preserveAspectRatio 'xMidYMid'\n\n var viewBoxScale = [scale, scale];\n var viewBoxPosition = [-(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2, -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2];\n return {\n scale: viewBoxScale,\n position: viewBoxPosition\n };\n}\n/**\n * @param {string|XMLElement} xml\n * @param {Object} [opt]\n * @param {number} [opt.width] Default width if svg width not specified or is a percent value.\n * @param {number} [opt.height] Default height if svg height not specified or is a percent value.\n * @param {boolean} [opt.ignoreViewBox]\n * @param {boolean} [opt.ignoreRootClip]\n * @return {Object} result:\n * {\n * root: Group, The root of the the result tree of zrender shapes,\n * width: number, the viewport width of the SVG,\n * height: number, the viewport height of the SVG,\n * viewBoxRect: {x, y, width, height}, the declared viewBox rect of the SVG, if exists,\n * viewBoxTransform: the {scale, position} calculated by viewBox and viewport, is exists.\n * }\n */\n\n\nfunction parseSVG(xml, opt) {\n var parser = new SVGParser();\n return parser.parse(xml, opt);\n}\n\nexports.parseXML = parseXML;\nexports.makeViewBoxTransform = makeViewBoxTransform;\nexports.parseSVG = parseSVG;\n\n/***/ }),\n/* 570 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Path = __webpack_require__(22);\n\nvar PathProxy = __webpack_require__(123);\n\nvar transformPath = __webpack_require__(1619);\n\n// command chars\n// var cc = [\n// 'm', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z',\n// 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A'\n// ];\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\n\nvar vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n};\n\nvar vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n};\n\nvar vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n};\n\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n var psi = psiDeg * (PI / 180.0);\n var xp = mathCos(psi) * (x1 - x2) / 2.0 + mathSin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0 + mathCos(psi) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\n if (lambda > 1) {\n rx *= mathSqrt(lambda);\n ry *= mathSqrt(lambda);\n }\n\n var f = (fa === fs ? -1 : 1) * mathSqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))) || 0;\n var cxp = f * rx * yp / ry;\n var cyp = f * -ry * xp / rx;\n var cx = (x1 + x2) / 2.0 + mathCos(psi) * cxp - mathSin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + mathSin(psi) * cxp + mathCos(psi) * cyp;\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n\n if (vRatio(u, v) <= -1) {\n dTheta = PI;\n }\n\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * PI;\n }\n\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * PI;\n }\n\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\n\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig; // Consider case:\n// (1) delimiter can be comma or space, where continuous commas\n// or spaces should be seen as one comma.\n// (2) value can be like:\n// '2e-4', 'l.5.9' (ignore 0), 'M-10-10', 'l-2.43e-1,34.9983',\n// 'l-.5E1,54', '121-23-44-11' (no delimiter)\n\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g; // var valueSplitReg = /[\\s,]+/;\n\nfunction createPathProxyFromString(data) {\n if (!data) {\n return new PathProxy();\n } // var data = data.replace(/-/g, ' -')\n // .replace(/ /g, ' ')\n // .replace(/ /g, ',')\n // .replace(/,,/g, ',');\n // var n;\n // create pipes so that we can split the data\n // for (n = 0; n < cc.length; n++) {\n // cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n // }\n // data = data.replace(/-/g, ',-');\n // create array\n // var arr = cs.split('|');\n // init context point\n\n\n var cpx = 0;\n var cpy = 0;\n var subpathX = cpx;\n var subpathY = cpy;\n var prevCmd;\n var path = new PathProxy();\n var CMD = PathProxy.CMD; // commandReg.lastIndex = 0;\n // var cmdResult;\n // while ((cmdResult = commandReg.exec(data)) != null) {\n // var cmdStr = cmdResult[1];\n // var cmdContent = cmdResult[2];\n\n var cmdList = data.match(commandReg);\n\n for (var l = 0; l < cmdList.length; l++) {\n var cmdText = cmdList[l];\n var cmdStr = cmdText.charAt(0);\n var cmd; // String#split is faster a little bit than String#replace or RegExp#exec.\n // var p = cmdContent.split(valueSplitReg);\n // var pLen = 0;\n // for (var i = 0; i < p.length; i++) {\n // // '' and other invalid str => NaN\n // var val = parseFloat(p[i]);\n // !isNaN(val) && (p[pLen++] = val);\n // }\n\n var p = cmdText.match(numberReg) || [];\n var pLen = p.length;\n\n for (var i = 0; i < pLen; i++) {\n p[i] = parseFloat(p[i]);\n }\n\n var off = 0;\n\n while (off < pLen) {\n var ctlPtx;\n var ctlPty;\n var rx;\n var ry;\n var psi;\n var fa;\n var fs;\n var x1 = cpx;\n var y1 = cpy; // convert l, H, h, V, and v to L\n\n switch (cmdStr) {\n case 'l':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'L':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'm':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'l';\n break;\n\n case 'M':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'L';\n break;\n\n case 'h':\n cpx += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'H':\n cpx = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'v':\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'V':\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'C':\n cmd = CMD.C;\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n cpx = p[off - 2];\n cpy = p[off - 1];\n break;\n\n case 'c':\n cmd = CMD.C;\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n cpx += p[off - 2];\n cpy += p[off - 1];\n break;\n\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cmd = CMD.C;\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cmd = CMD.C;\n x1 = cpx + p[off++];\n y1 = cpy + p[off++];\n cpx += p[off++];\n cpy += p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n\n case 'Q':\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n\n case 'q':\n x1 = p[off++] + cpx;\n y1 = p[off++] + cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\n case 'A':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n\n case 'a':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n }\n }\n\n if (cmdStr === 'z' || cmdStr === 'Z') {\n cmd = CMD.Z;\n path.addData(cmd); // z may be in the middle of the path.\n\n cpx = subpathX;\n cpy = subpathY;\n }\n\n prevCmd = cmd;\n }\n\n path.toStatic();\n return path;\n} // TODO Optimize double memory cost problem\n\n\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n opts = opts || {};\n\n opts.buildPath = function (path) {\n if (path.setData) {\n path.setData(pathProxy.data); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n } else {\n var ctx = path;\n pathProxy.rebuildPath(ctx);\n }\n };\n\n opts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirty(true);\n };\n\n return opts;\n}\n/**\n * Create a Path object from path string data\n * http://www.w3.org/TR/SVG/paths.html#PathData\n * @param {Object} opts Other options\n */\n\n\nfunction createFromString(str, opts) {\n return new Path(createPathOptions(str, opts));\n}\n/**\n * Create a Path class from path string data\n * @param {string} str\n * @param {Object} opts Other options\n */\n\n\nfunction extendFromString(str, opts) {\n return Path.extend(createPathOptions(str, opts));\n}\n/**\n * Merge multiple paths\n */\n// TODO Apply transform\n// TODO stroke dash\n// TODO Optimize double memory cost problem\n\n\nfunction mergePath(pathEls, opts) {\n var pathList = [];\n var len = pathEls.length;\n\n for (var i = 0; i < len; i++) {\n var pathEl = pathEls[i];\n\n if (!pathEl.path) {\n pathEl.createPathProxy();\n }\n\n if (pathEl.__dirtyPath) {\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\n }\n\n pathList.push(pathEl.path);\n }\n\n var pathBundle = new Path(opts); // Need path proxy.\n\n pathBundle.createPathProxy();\n\n pathBundle.buildPath = function (path) {\n path.appendPath(pathList); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n };\n\n return pathBundle;\n}\n\nexports.createFromString = createFromString;\nexports.extendFromString = extendFromString;\nexports.mergePath = mergePath;\n\n/***/ }),\n/* 571 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar env = __webpack_require__(27);\n\nvar urn = 'urn:schemas-microsoft-com:vml';\nvar win = typeof window === 'undefined' ? null : window;\nvar vmlInited = false;\nvar doc = win && win.document;\n\nfunction createNode(tagName) {\n return doCreateNode(tagName);\n} // Avoid assign to an exported variable, for transforming to cjs.\n\n\nvar doCreateNode;\n\nif (doc && !env.canvasSupported) {\n try {\n !doc.namespaces.zrvml && doc.namespaces.add('zrvml', urn);\n\n doCreateNode = function (tagName) {\n return doc.createElement('');\n };\n } catch (e) {\n doCreateNode = function (tagName) {\n return doc.createElement('<' + tagName + ' xmlns=\"' + urn + '\" class=\"zrvml\">');\n };\n }\n} // From raphael\n\n\nfunction initVML() {\n if (vmlInited || !doc) {\n return;\n }\n\n vmlInited = true;\n var styleSheets = doc.styleSheets;\n\n if (styleSheets.length < 31) {\n doc.createStyleSheet().addRule('.zrvml', 'behavior:url(#default#VML)');\n } else {\n // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx\n styleSheets[0].addRule('.zrvml', 'behavior:url(#default#VML)');\n }\n}\n\nexports.doc = doc;\nexports.createNode = createNode;\nexports.initVML = initVML;\n\n/***/ }),\n/* 572 */,\n/* 573 */,\n/* 574 */,\n/* 575 */,\n/* 576 */,\n/* 577 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\n__webpack_require__(922);\n\n__webpack_require__(923);\n\n__webpack_require__(723);\n\nif (global._babelPolyfill) {\n throw new Error(\"only one instance of babel-polyfill is allowed\");\n}\nglobal._babelPolyfill = true;\n\nvar DEFINE_PROPERTY = \"defineProperty\";\nfunction define(O, key, value) {\n O[key] || Object[DEFINE_PROPERTY](O, key, {\n writable: true,\n configurable: true,\n value: value\n });\n}\n\ndefine(String.prototype, \"padLeft\", \"\".padStart);\ndefine(String.prototype, \"padRight\", \"\".padEnd);\n\n\"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill\".split(\",\").forEach(function (key) {\n [][key] && define(Array, key, Function.call.bind([][key]));\n});\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(108)))\n\n/***/ }),\n/* 578 */,\n/* 579 */,\n/* 580 */,\n/* 581 */,\n/* 582 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Clipboard = __webpack_require__(936) // FIXME: workaround for browserify\n\nvar VueClipboardConfig = {\n autoSetContainer: false,\n appendToBody: true // This fixes IE, see #50\n}\n\nvar VueClipboard = {\n install: function (Vue) {\n Vue.prototype.$clipboardConfig = VueClipboardConfig\n Vue.prototype.$copyText = function (text, container) {\n return new Promise(function (resolve, reject) {\n var fakeElement = document.createElement('button')\n var clipboard = new Clipboard(fakeElement, {\n text: function () { return text },\n action: function () { return 'copy' },\n container: typeof container === 'object' ? container : document.body\n })\n clipboard.on('success', function (e) {\n clipboard.destroy()\n resolve(e)\n })\n clipboard.on('error', function (e) {\n clipboard.destroy()\n reject(e)\n })\n if (VueClipboardConfig.appendToBody) document.body.appendChild(fakeElement)\n fakeElement.click()\n if (VueClipboardConfig.appendToBody) document.body.removeChild(fakeElement)\n })\n }\n\n Vue.directive('clipboard', {\n bind: function (el, binding, vnode) {\n if (binding.arg === 'success') {\n el._vClipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._vClipboard_error = binding.value\n } else {\n var clipboard = new Clipboard(el, {\n text: function () { return binding.value },\n action: function () { return binding.arg === 'cut' ? 'cut' : 'copy' },\n container: VueClipboardConfig.autoSetContainer ? el : undefined\n })\n clipboard.on('success', function (e) {\n var callback = el._vClipboard_success\n callback && callback(e)\n })\n clipboard.on('error', function (e) {\n var callback = el._vClipboard_error\n callback && callback(e)\n })\n el._vClipboard = clipboard\n }\n },\n update: function (el, binding) {\n if (binding.arg === 'success') {\n el._vClipboard_success = binding.value\n } else if (binding.arg === 'error') {\n el._vClipboard_error = binding.value\n } else {\n el._vClipboard.text = function () { return binding.value }\n el._vClipboard.action = function () { return binding.arg === 'cut' ? 'cut' : 'copy' }\n }\n },\n unbind: function (el, binding) {\n if (binding.arg === 'success') {\n delete el._vClipboard_success\n } else if (binding.arg === 'error') {\n delete el._vClipboard_error\n } else {\n el._vClipboard.destroy()\n delete el._vClipboard\n }\n }\n })\n },\n config: VueClipboardConfig\n}\n\nif (true) {\n module.exports = VueClipboard\n} else if (typeof define === 'function' && define.amd) {\n define([], function () {\n return VueClipboard\n })\n}\n\n\n/***/ }),\n/* 583 */,\n/* 584 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__ = __webpack_require__(167);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__validator___ = __webpack_require__(596);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__messages__ = __webpack_require__(585);\n\n\n\n\n\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = __WEBPACK_IMPORTED_MODULE_4__messages__[\"a\" /* messages */];\n this.define(descriptor);\n}\n\nSchema.prototype = {\n messages: function messages(_messages) {\n if (_messages) {\n this._messages = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"a\" /* deepMerge */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__messages__[\"b\" /* newMessages */])(), _messages);\n }\n return this._messages;\n },\n define: function define(rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if ((typeof rules === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(rules)) !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n var z = void 0;\n var item = void 0;\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate: function validate(source_) {\n var _this = this;\n\n var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var oc = arguments[2];\n\n var source = source_;\n var options = o;\n var callback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n function complete(results) {\n var i = void 0;\n var field = void 0;\n var errors = [];\n var fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n errors = errors.concat.apply(errors, e);\n } else {\n errors.push(e);\n }\n }\n\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n for (i = 0; i < errors.length; i++) {\n field = errors[i].field;\n fields[field] = fields[field] || [];\n fields[field].push(errors[i]);\n }\n }\n callback(errors, fields);\n }\n\n if (options.messages) {\n var messages = this.messages();\n if (messages === __WEBPACK_IMPORTED_MODULE_4__messages__[\"a\" /* messages */]) {\n messages = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__messages__[\"b\" /* newMessages */])();\n }\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"a\" /* deepMerge */])(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n var arr = void 0;\n var value = void 0;\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n arr = _this.rules[z];\n value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, source);\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, rule);\n }\n rule.validator = _this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this.getType(rule);\n if (!rule.validator) {\n return;\n }\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"b\" /* asyncMap */])(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(rule.fields) === 'object' || __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(rule.defaultField) === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n function addFullfield(key, schema) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, schema, {\n fullField: rule.fullField + '.' + key\n });\n }\n\n function cb() {\n var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var errors = e;\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n if (errors.length) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"c\" /* warning */])('async-validator:', errors);\n }\n if (errors.length && rule.message) {\n errors = [].concat(rule.message);\n }\n\n errors = errors.map(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"d\" /* complementError */])(rule));\n\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n if (!deep) {\n doIt(errors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message) {\n errors = [].concat(rule.message).map(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"d\" /* complementError */])(rule));\n } else if (options.error) {\n errors = [options.error(rule, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"e\" /* format */])(options.messages.required, rule.field))];\n } else {\n errors = [];\n }\n return doIt(errors);\n }\n\n var fieldsSchema = {};\n if (rule.defaultField) {\n for (var k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n fieldsSchema = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, fieldsSchema, data.rule.fields);\n for (var f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n var schema = new Schema(fieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, function (errs) {\n doIt(errs && errs.length ? errors.concat(errs) : errs);\n });\n }\n }\n\n var res = rule.validator(rule, data.value, cb, data.source, options);\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n });\n },\n getType: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (typeof rule.validator !== 'function' && rule.type && !__WEBPACK_IMPORTED_MODULE_3__validator___[\"a\" /* default */].hasOwnProperty(rule.type)) {\n throw new Error(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"e\" /* format */])('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n },\n getValidationMethod: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return __WEBPACK_IMPORTED_MODULE_3__validator___[\"a\" /* default */].required;\n }\n return __WEBPACK_IMPORTED_MODULE_3__validator___[\"a\" /* default */][this.getType(rule)] || false;\n }\n};\n\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n __WEBPACK_IMPORTED_MODULE_3__validator___[\"a\" /* default */][type] = validator;\n};\n\nSchema.messages = __WEBPACK_IMPORTED_MODULE_4__messages__[\"a\" /* messages */];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = Schema;\n\n/***/ }),\n/* 585 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = newMessages;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return messages; });\nfunction newMessages() {\n return {\n 'default': 'Validation error on field %s',\n required: '%s is required',\n 'enum': '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\n\nvar messages = newMessages();\n\n/***/ }),\n/* 586 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(26);\n\nvar ENUM = 'enum';\n\n/**\n * Rule for validating a value exists in an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(__WEBPACK_IMPORTED_MODULE_0__util__[\"e\" /* format */](options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = enumerable;\n\n/***/ }),\n/* 587 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(26);\n\n\n/**\n * Rule for validating a regular expression pattern.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction pattern(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(__WEBPACK_IMPORTED_MODULE_0__util__[\"e\" /* format */](options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(__WEBPACK_IMPORTED_MODULE_0__util__[\"e\" /* format */](options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = pattern;\n\n/***/ }),\n/* 588 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(26);\n\n\n/**\n * Rule for validating minimum and maximum allowed values.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(__WEBPACK_IMPORTED_MODULE_0__util__[\"e\" /* format */](options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(__WEBPACK_IMPORTED_MODULE_0__util__[\"e\" /* format */](options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(__WEBPACK_IMPORTED_MODULE_0__util__[\"e\" /* format */](options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(__WEBPACK_IMPORTED_MODULE_0__util__[\"e\" /* format */](options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = range;\n\n/***/ }),\n/* 589 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(167);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__required__ = __webpack_require__(283);\n\n\n\n\n/* eslint max-len:0 */\n\nvar pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n url: new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$', 'i'),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\n\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float: function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object: function object(value) {\n return (typeof value === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(value)) === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\n\n/**\n * Rule for validating the type of a value.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__required__[\"a\" /* default */])(rule, value, source, errors, options);\n return;\n }\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(__WEBPACK_IMPORTED_MODULE_1__util__[\"e\" /* format */](options.messages.types[ruleType], rule.fullField, rule.type));\n }\n // straight typeof check\n } else if (ruleType && (typeof value === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(value)) !== rule.type) {\n errors.push(__WEBPACK_IMPORTED_MODULE_1__util__[\"e\" /* format */](options.messages.types[ruleType], rule.fullField, rule.type));\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = type;\n\n/***/ }),\n/* 590 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(26);\n\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(__WEBPACK_IMPORTED_MODULE_0__util__[\"e\" /* format */](options.messages.whitespace, rule.fullField));\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = whitespace;\n\n/***/ }),\n/* 591 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n/**\n * Validates an array.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value, 'array') && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options, 'array');\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value, 'array')) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = array;\n\n/***/ }),\n/* 592 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__rule___ = __webpack_require__(37);\n\n\n\n/**\n * Validates a boolean.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util__[\"f\" /* isEmptyValue */])(value) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_1__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (value !== undefined) {\n __WEBPACK_IMPORTED_MODULE_1__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = boolean;\n\n/***/ }),\n/* 593 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\nfunction date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n // console.log('validate on %s value', value);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value)) {\n var dateObject = void 0;\n\n if (typeof value === 'number') {\n dateObject = new Date(value);\n } else {\n dateObject = value;\n }\n\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, dateObject, source, errors, options);\n if (dateObject) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = date;\n\n/***/ }),\n/* 594 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\nvar ENUM = 'enum';\n\n/**\n * Validates an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (value) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */][ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = enumerable;\n\n/***/ }),\n/* 595 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\n/**\n * Validates a number is a floating point number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (value !== undefined) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = floatFn;\n\n/***/ }),\n/* 596 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__string__ = __webpack_require__(604);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__method__ = __webpack_require__(598);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__number__ = __webpack_require__(599);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__boolean__ = __webpack_require__(592);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__regexp__ = __webpack_require__(602);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__integer__ = __webpack_require__(597);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__float__ = __webpack_require__(595);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__array__ = __webpack_require__(591);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__object__ = __webpack_require__(600);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__enum__ = __webpack_require__(594);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__pattern__ = __webpack_require__(601);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__date__ = __webpack_require__(593);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__required__ = __webpack_require__(603);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__type__ = __webpack_require__(605);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = {\n string: __WEBPACK_IMPORTED_MODULE_0__string__[\"a\" /* default */],\n method: __WEBPACK_IMPORTED_MODULE_1__method__[\"a\" /* default */],\n number: __WEBPACK_IMPORTED_MODULE_2__number__[\"a\" /* default */],\n boolean: __WEBPACK_IMPORTED_MODULE_3__boolean__[\"a\" /* default */],\n regexp: __WEBPACK_IMPORTED_MODULE_4__regexp__[\"a\" /* default */],\n integer: __WEBPACK_IMPORTED_MODULE_5__integer__[\"a\" /* default */],\n float: __WEBPACK_IMPORTED_MODULE_6__float__[\"a\" /* default */],\n array: __WEBPACK_IMPORTED_MODULE_7__array__[\"a\" /* default */],\n object: __WEBPACK_IMPORTED_MODULE_8__object__[\"a\" /* default */],\n 'enum': __WEBPACK_IMPORTED_MODULE_9__enum__[\"a\" /* default */],\n pattern: __WEBPACK_IMPORTED_MODULE_10__pattern__[\"a\" /* default */],\n date: __WEBPACK_IMPORTED_MODULE_11__date__[\"a\" /* default */],\n url: __WEBPACK_IMPORTED_MODULE_13__type__[\"a\" /* default */],\n hex: __WEBPACK_IMPORTED_MODULE_13__type__[\"a\" /* default */],\n email: __WEBPACK_IMPORTED_MODULE_13__type__[\"a\" /* default */],\n required: __WEBPACK_IMPORTED_MODULE_12__required__[\"a\" /* default */]\n};\n\n/***/ }),\n/* 597 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\n/**\n * Validates a number is an integer.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (value !== undefined) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = integer;\n\n/***/ }),\n/* 598 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\n/**\n * Validates a function.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (value !== undefined) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = method;\n\n/***/ }),\n/* 599 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\n/**\n * Validates a number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (value !== undefined) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = number;\n\n/***/ }),\n/* 600 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\n/**\n * Validates an object.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (value !== undefined) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = object;\n\n/***/ }),\n/* 601 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\n/**\n * Validates a regular expression pattern.\n *\n * Performs validation when a rule only contains\n * a pattern property but is not declared as a string type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction pattern(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value, 'string') && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value, 'string')) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = pattern;\n\n/***/ }),\n/* 602 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\n/**\n * Validates the regular expression type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options);\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value)) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = regexp;\n\n/***/ }),\n/* 603 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(167);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__rule___ = __webpack_require__(37);\n\n\n\nfunction required(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(value);\n __WEBPACK_IMPORTED_MODULE_1__rule___[\"a\" /* default */].required(rule, value, source, errors, options, type);\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = required;\n\n/***/ }),\n/* 604 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\n/**\n * Performs validation for string types.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value, 'string') && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options, 'string');\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value, 'string')) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].range(rule, value, source, errors, options);\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = string;\n\n/***/ }),\n/* 605 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(26);\n\n\n\nfunction type(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value, ruleType) && !rule.required) {\n return callback();\n }\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].required(rule, value, source, errors, options, ruleType);\n if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__[\"f\" /* isEmptyValue */])(value, ruleType)) {\n __WEBPACK_IMPORTED_MODULE_0__rule___[\"a\" /* default */].type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = type;\n\n/***/ }),\n/* 606 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(607);\n\n/***/ }),\n/* 607 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(44);\nvar bind = __webpack_require__(288);\nvar Axios = __webpack_require__(609);\nvar defaults = __webpack_require__(194);\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = __webpack_require__(285);\naxios.CancelToken = __webpack_require__(608);\naxios.isCancel = __webpack_require__(286);\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = __webpack_require__(623);\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n/***/ }),\n/* 608 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Cancel = __webpack_require__(285);\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n/***/ }),\n/* 609 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar defaults = __webpack_require__(194);\nvar utils = __webpack_require__(44);\nvar InterceptorManager = __webpack_require__(610);\nvar dispatchRequest = __webpack_require__(611);\nvar isAbsoluteURL = __webpack_require__(619);\nvar combineURLs = __webpack_require__(617);\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\n config.method = config.method.toLowerCase();\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n/***/ }),\n/* 610 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(44);\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n/***/ }),\n/* 611 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(44);\nvar transformData = __webpack_require__(614);\nvar isCancel = __webpack_require__(286);\nvar defaults = __webpack_require__(194);\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n/***/ }),\n/* 612 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n\n\n/***/ }),\n/* 613 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createError = __webpack_require__(287);\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n/***/ }),\n/* 614 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(44);\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n/***/ }),\n/* 615 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n\n/***/ }),\n/* 616 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(44);\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n/***/ }),\n/* 617 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n/***/ }),\n/* 618 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(44);\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n/***/ }),\n/* 619 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n/***/ }),\n/* 620 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(44);\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n/***/ }),\n/* 621 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(44);\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n/***/ }),\n/* 622 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(44);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\n\n/***/ }),\n/* 623 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n/***/ }),\n/* 624 */\n/***/ (function(module, exports) {\n\nvar nestRE = /^(attrs|props|on|nativeOn|class|style|hook)$/\n\nmodule.exports = function mergeJSXProps (objs) {\n return objs.reduce(function (a, b) {\n var aa, bb, key, nestedKey, temp\n for (key in b) {\n aa = a[key]\n bb = b[key]\n if (aa && nestRE.test(key)) {\n // normalize class\n if (key === 'class') {\n if (typeof aa === 'string') {\n temp = aa\n a[key] = aa = {}\n aa[temp] = true\n }\n if (typeof bb === 'string') {\n temp = bb\n b[key] = bb = {}\n bb[temp] = true\n }\n }\n if (key === 'on' || key === 'nativeOn' || key === 'hook') {\n // merge functions\n for (nestedKey in bb) {\n aa[nestedKey] = mergeFn(aa[nestedKey], bb[nestedKey])\n }\n } else if (Array.isArray(aa)) {\n a[key] = aa.concat(bb)\n } else if (Array.isArray(bb)) {\n a[key] = [aa].concat(bb)\n } else {\n for (nestedKey in bb) {\n aa[nestedKey] = bb[nestedKey]\n }\n }\n } else {\n a[key] = b[key]\n }\n }\n return a\n }, {})\n}\n\nfunction mergeFn (a, b) {\n return function () {\n a && a.apply(this, arguments)\n b && b.apply(this, arguments)\n }\n}\n\n\n/***/ }),\n/* 625 */,\n/* 626 */,\n/* 627 */,\n/* 628 */,\n/* 629 */,\n/* 630 */,\n/* 631 */,\n/* 632 */,\n/* 633 */,\n/* 634 */,\n/* 635 */,\n/* 636 */,\n/* 637 */,\n/* 638 */,\n/* 639 */,\n/* 640 */,\n/* 641 */,\n/* 642 */,\n/* 643 */,\n/* 644 */,\n/* 645 */,\n/* 646 */,\n/* 647 */,\n/* 648 */,\n/* 649 */,\n/* 650 */,\n/* 651 */,\n/* 652 */,\n/* 653 */,\n/* 654 */,\n/* 655 */,\n/* 656 */,\n/* 657 */,\n/* 658 */,\n/* 659 */,\n/* 660 */,\n/* 661 */,\n/* 662 */,\n/* 663 */,\n/* 664 */,\n/* 665 */,\n/* 666 */,\n/* 667 */,\n/* 668 */,\n/* 669 */,\n/* 670 */,\n/* 671 */,\n/* 672 */,\n/* 673 */,\n/* 674 */,\n/* 675 */,\n/* 676 */,\n/* 677 */,\n/* 678 */,\n/* 679 */,\n/* 680 */,\n/* 681 */,\n/* 682 */,\n/* 683 */,\n/* 684 */,\n/* 685 */,\n/* 686 */,\n/* 687 */,\n/* 688 */,\n/* 689 */,\n/* 690 */,\n/* 691 */,\n/* 692 */,\n/* 693 */,\n/* 694 */,\n/* 695 */,\n/* 696 */,\n/* 697 */,\n/* 698 */,\n/* 699 */,\n/* 700 */,\n/* 701 */,\n/* 702 */,\n/* 703 */,\n/* 704 */,\n/* 705 */,\n/* 706 */,\n/* 707 */,\n/* 708 */,\n/* 709 */,\n/* 710 */,\n/* 711 */,\n/* 712 */,\n/* 713 */,\n/* 714 */,\n/* 715 */,\n/* 716 */,\n/* 717 */,\n/* 718 */,\n/* 719 */,\n/* 720 */,\n/* 721 */,\n/* 722 */,\n/* 723 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(730);\nmodule.exports = __webpack_require__(52).RegExp.escape;\n\n\n/***/ }),\n/* 724 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(15);\nvar isArray = __webpack_require__(156);\nvar SPECIES = __webpack_require__(18)('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n/***/ }),\n/* 725 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = __webpack_require__(14);\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n\n\n/***/ }),\n/* 726 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(10);\nvar toPrimitive = __webpack_require__(63);\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n\n\n/***/ }),\n/* 727 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(87);\nvar gOPS = __webpack_require__(160);\nvar pIE = __webpack_require__(127);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n\n/***/ }),\n/* 728 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(128)('native-function-to-string', Function.toString);\n\n\n/***/ }),\n/* 729 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (regExp, replace) {\n var replacer = replace === Object(replace) ? function (part) {\n return replace[part];\n } : replace;\n return function (it) {\n return String(it).replace(regExp, replacer);\n };\n};\n\n\n/***/ }),\n/* 730 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/benjamingr/RexExp.escape\nvar $export = __webpack_require__(1);\nvar $re = __webpack_require__(729)(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\n$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } });\n\n\n/***/ }),\n/* 731 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = __webpack_require__(1);\n\n$export($export.P, 'Array', { copyWithin: __webpack_require__(293) });\n\n__webpack_require__(73)('copyWithin');\n\n\n/***/ }),\n/* 732 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $every = __webpack_require__(60)(4);\n\n$export($export.P + $export.F * !__webpack_require__(54)([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n\n\n/***/ }),\n/* 733 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = __webpack_require__(1);\n\n$export($export.P, 'Array', { fill: __webpack_require__(197) });\n\n__webpack_require__(73)('fill');\n\n\n/***/ }),\n/* 734 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $filter = __webpack_require__(60)(2);\n\n$export($export.P + $export.F * !__webpack_require__(54)([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n\n\n/***/ }),\n/* 735 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = __webpack_require__(1);\nvar $find = __webpack_require__(60)(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n__webpack_require__(73)(KEY);\n\n\n/***/ }),\n/* 736 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = __webpack_require__(1);\nvar $find = __webpack_require__(60)(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n__webpack_require__(73)(KEY);\n\n\n/***/ }),\n/* 737 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $forEach = __webpack_require__(60)(0);\nvar STRICT = __webpack_require__(54)([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n\n\n/***/ }),\n/* 738 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx = __webpack_require__(53);\nvar $export = __webpack_require__(1);\nvar toObject = __webpack_require__(28);\nvar call = __webpack_require__(304);\nvar isArrayIter = __webpack_require__(205);\nvar toLength = __webpack_require__(20);\nvar createProperty = __webpack_require__(199);\nvar getIterFn = __webpack_require__(221);\n\n$export($export.S + $export.F * !__webpack_require__(158)(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n/***/ }),\n/* 739 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $indexOf = __webpack_require__(153)(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(54)($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n\n\n/***/ }),\n/* 740 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Array', { isArray: __webpack_require__(156) });\n\n\n/***/ }),\n/* 741 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = __webpack_require__(1);\nvar toIObject = __webpack_require__(48);\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (__webpack_require__(126) != Object || !__webpack_require__(54)(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n\n\n/***/ }),\n/* 742 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar toIObject = __webpack_require__(48);\nvar toInteger = __webpack_require__(55);\nvar toLength = __webpack_require__(20);\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(54)($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n\n\n/***/ }),\n/* 743 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $map = __webpack_require__(60)(1);\n\n$export($export.P + $export.F * !__webpack_require__(54)([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n\n\n/***/ }),\n/* 744 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar createProperty = __webpack_require__(199);\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * __webpack_require__(14)(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n\n\n/***/ }),\n/* 745 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $reduce = __webpack_require__(295);\n\n$export($export.P + $export.F * !__webpack_require__(54)([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n\n\n/***/ }),\n/* 746 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $reduce = __webpack_require__(295);\n\n$export($export.P + $export.F * !__webpack_require__(54)([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n\n\n/***/ }),\n/* 747 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar html = __webpack_require__(203);\nvar cof = __webpack_require__(51);\nvar toAbsoluteIndex = __webpack_require__(91);\nvar toLength = __webpack_require__(20);\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * __webpack_require__(14)(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n\n\n/***/ }),\n/* 748 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $some = __webpack_require__(60)(3);\n\n$export($export.P + $export.F * !__webpack_require__(54)([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n\n\n/***/ }),\n/* 749 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar aFunction = __webpack_require__(35);\nvar toObject = __webpack_require__(28);\nvar fails = __webpack_require__(14);\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !__webpack_require__(54)($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n\n\n/***/ }),\n/* 750 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(90)('Array');\n\n\n/***/ }),\n/* 751 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n\n\n/***/ }),\n/* 752 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = __webpack_require__(1);\nvar toISOString = __webpack_require__(725);\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n\n\n/***/ }),\n/* 753 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar toObject = __webpack_require__(28);\nvar toPrimitive = __webpack_require__(63);\n\n$export($export.P + $export.F * __webpack_require__(14)(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n\n\n/***/ }),\n/* 754 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_PRIMITIVE = __webpack_require__(18)('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) __webpack_require__(40)(proto, TO_PRIMITIVE, __webpack_require__(726));\n\n\n/***/ }),\n/* 755 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n __webpack_require__(41)(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n\n\n/***/ }),\n/* 756 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = __webpack_require__(1);\n\n$export($export.P, 'Function', { bind: __webpack_require__(296) });\n\n\n/***/ }),\n/* 757 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isObject = __webpack_require__(15);\nvar getPrototypeOf = __webpack_require__(47);\nvar HAS_INSTANCE = __webpack_require__(18)('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(24).f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n\n\n/***/ }),\n/* 758 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(24).f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || __webpack_require__(23) && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n\n\n/***/ }),\n/* 759 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.3 Math.acosh(x)\nvar $export = __webpack_require__(1);\nvar log1p = __webpack_require__(307);\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n\n\n/***/ }),\n/* 760 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.5 Math.asinh(x)\nvar $export = __webpack_require__(1);\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n\n\n/***/ }),\n/* 761 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.7 Math.atanh(x)\nvar $export = __webpack_require__(1);\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n\n\n/***/ }),\n/* 762 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.9 Math.cbrt(x)\nvar $export = __webpack_require__(1);\nvar sign = __webpack_require__(209);\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n\n\n/***/ }),\n/* 763 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.11 Math.clz32(x)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n\n\n/***/ }),\n/* 764 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.12 Math.cosh(x)\nvar $export = __webpack_require__(1);\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n\n\n/***/ }),\n/* 765 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.14 Math.expm1(x)\nvar $export = __webpack_require__(1);\nvar $expm1 = __webpack_require__(208);\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n\n\n/***/ }),\n/* 766 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.16 Math.fround(x)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', { fround: __webpack_require__(306) });\n\n\n/***/ }),\n/* 767 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = __webpack_require__(1);\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n\n\n/***/ }),\n/* 768 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.18 Math.imul(x, y)\nvar $export = __webpack_require__(1);\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * __webpack_require__(14)(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n\n\n/***/ }),\n/* 769 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.21 Math.log10(x)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n\n\n/***/ }),\n/* 770 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.20 Math.log1p(x)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', { log1p: __webpack_require__(307) });\n\n\n/***/ }),\n/* 771 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.22 Math.log2(x)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n\n\n/***/ }),\n/* 772 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.28 Math.sign(x)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', { sign: __webpack_require__(209) });\n\n\n/***/ }),\n/* 773 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.30 Math.sinh(x)\nvar $export = __webpack_require__(1);\nvar expm1 = __webpack_require__(208);\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * __webpack_require__(14)(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n\n\n/***/ }),\n/* 774 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.33 Math.tanh(x)\nvar $export = __webpack_require__(1);\nvar expm1 = __webpack_require__(208);\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n\n\n/***/ }),\n/* 775 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.34 Math.trunc(x)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n\n\n/***/ }),\n/* 776 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(12);\nvar has = __webpack_require__(45);\nvar cof = __webpack_require__(51);\nvar inheritIfRequired = __webpack_require__(204);\nvar toPrimitive = __webpack_require__(63);\nvar fails = __webpack_require__(14);\nvar gOPN = __webpack_require__(86).f;\nvar gOPD = __webpack_require__(46).f;\nvar dP = __webpack_require__(24).f;\nvar $trim = __webpack_require__(114).trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(__webpack_require__(85)(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = __webpack_require__(23) ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n __webpack_require__(41)(global, NUMBER, $Number);\n}\n\n\n/***/ }),\n/* 777 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.1 Number.EPSILON\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n\n\n/***/ }),\n/* 778 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.2 Number.isFinite(number)\nvar $export = __webpack_require__(1);\nvar _isFinite = __webpack_require__(12).isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n\n\n/***/ }),\n/* 779 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.3 Number.isInteger(number)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Number', { isInteger: __webpack_require__(303) });\n\n\n/***/ }),\n/* 780 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.4 Number.isNaN(number)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n\n\n/***/ }),\n/* 781 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = __webpack_require__(1);\nvar isInteger = __webpack_require__(303);\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n\n\n/***/ }),\n/* 782 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n\n\n/***/ }),\n/* 783 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n\n\n/***/ }),\n/* 784 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\nvar $parseFloat = __webpack_require__(315);\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n\n\n/***/ }),\n/* 785 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\nvar $parseInt = __webpack_require__(316);\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n\n\n/***/ }),\n/* 786 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar toInteger = __webpack_require__(55);\nvar aNumberValue = __webpack_require__(292);\nvar repeat = __webpack_require__(216);\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !__webpack_require__(14)(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n\n\n/***/ }),\n/* 787 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $fails = __webpack_require__(14);\nvar aNumberValue = __webpack_require__(292);\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n\n\n/***/ }),\n/* 788 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(1);\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(309) });\n\n\n/***/ }),\n/* 789 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(85) });\n\n\n/***/ }),\n/* 790 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !__webpack_require__(23), 'Object', { defineProperties: __webpack_require__(310) });\n\n\n/***/ }),\n/* 791 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(23), 'Object', { defineProperty: __webpack_require__(24).f });\n\n\n/***/ }),\n/* 792 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.5 Object.freeze(O)\nvar isObject = __webpack_require__(15);\nvar meta = __webpack_require__(75).onFreeze;\n\n__webpack_require__(62)('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n\n\n/***/ }),\n/* 793 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = __webpack_require__(48);\nvar $getOwnPropertyDescriptor = __webpack_require__(46).f;\n\n__webpack_require__(62)('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n/***/ }),\n/* 794 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.7 Object.getOwnPropertyNames(O)\n__webpack_require__(62)('getOwnPropertyNames', function () {\n return __webpack_require__(311).f;\n});\n\n\n/***/ }),\n/* 795 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = __webpack_require__(28);\nvar $getPrototypeOf = __webpack_require__(47);\n\n__webpack_require__(62)('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n/***/ }),\n/* 796 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.11 Object.isExtensible(O)\nvar isObject = __webpack_require__(15);\n\n__webpack_require__(62)('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n\n\n/***/ }),\n/* 797 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.12 Object.isFrozen(O)\nvar isObject = __webpack_require__(15);\n\n__webpack_require__(62)('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n\n\n/***/ }),\n/* 798 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.13 Object.isSealed(O)\nvar isObject = __webpack_require__(15);\n\n__webpack_require__(62)('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n\n\n/***/ }),\n/* 799 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.10 Object.is(value1, value2)\nvar $export = __webpack_require__(1);\n$export($export.S, 'Object', { is: __webpack_require__(319) });\n\n\n/***/ }),\n/* 800 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(28);\nvar $keys = __webpack_require__(87);\n\n__webpack_require__(62)('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n/* 801 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = __webpack_require__(15);\nvar meta = __webpack_require__(75).onFreeze;\n\n__webpack_require__(62)('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n\n\n/***/ }),\n/* 802 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.17 Object.seal(O)\nvar isObject = __webpack_require__(15);\nvar meta = __webpack_require__(75).onFreeze;\n\n__webpack_require__(62)('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n\n\n/***/ }),\n/* 803 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(1);\n$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(213).set });\n\n\n/***/ }),\n/* 804 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.3.6 Object.prototype.toString()\nvar classof = __webpack_require__(111);\nvar test = {};\ntest[__webpack_require__(18)('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n __webpack_require__(41)(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n\n/***/ }),\n/* 805 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\nvar $parseFloat = __webpack_require__(315);\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n\n\n/***/ }),\n/* 806 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\nvar $parseInt = __webpack_require__(316);\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n\n\n/***/ }),\n/* 807 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(74);\nvar global = __webpack_require__(12);\nvar ctx = __webpack_require__(53);\nvar classof = __webpack_require__(111);\nvar $export = __webpack_require__(1);\nvar isObject = __webpack_require__(15);\nvar aFunction = __webpack_require__(35);\nvar anInstance = __webpack_require__(83);\nvar forOf = __webpack_require__(84);\nvar speciesConstructor = __webpack_require__(129);\nvar task = __webpack_require__(218).set;\nvar microtask = __webpack_require__(210)();\nvar newPromiseCapabilityModule = __webpack_require__(211);\nvar perform = __webpack_require__(317);\nvar userAgent = __webpack_require__(166);\nvar promiseResolve = __webpack_require__(318);\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[__webpack_require__(18)('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = __webpack_require__(89)($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\n__webpack_require__(113)($Promise, PROMISE);\n__webpack_require__(90)(PROMISE);\nWrapper = __webpack_require__(52)[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(158)(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 808 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = __webpack_require__(1);\nvar aFunction = __webpack_require__(35);\nvar anObject = __webpack_require__(10);\nvar rApply = (__webpack_require__(12).Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !__webpack_require__(14)(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n\n\n/***/ }),\n/* 809 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = __webpack_require__(1);\nvar create = __webpack_require__(85);\nvar aFunction = __webpack_require__(35);\nvar anObject = __webpack_require__(10);\nvar isObject = __webpack_require__(15);\nvar fails = __webpack_require__(14);\nvar bind = __webpack_require__(296);\nvar rConstruct = (__webpack_require__(12).Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n\n\n/***/ }),\n/* 810 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = __webpack_require__(24);\nvar $export = __webpack_require__(1);\nvar anObject = __webpack_require__(10);\nvar toPrimitive = __webpack_require__(63);\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * __webpack_require__(14)(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n/***/ }),\n/* 811 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = __webpack_require__(1);\nvar gOPD = __webpack_require__(46).f;\nvar anObject = __webpack_require__(10);\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n\n\n/***/ }),\n/* 812 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 26.1.5 Reflect.enumerate(target)\nvar $export = __webpack_require__(1);\nvar anObject = __webpack_require__(10);\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\n__webpack_require__(206)(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n\n\n/***/ }),\n/* 813 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = __webpack_require__(46);\nvar $export = __webpack_require__(1);\nvar anObject = __webpack_require__(10);\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n\n\n/***/ }),\n/* 814 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = __webpack_require__(1);\nvar getProto = __webpack_require__(47);\nvar anObject = __webpack_require__(10);\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n\n\n/***/ }),\n/* 815 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = __webpack_require__(46);\nvar getPrototypeOf = __webpack_require__(47);\nvar has = __webpack_require__(45);\nvar $export = __webpack_require__(1);\nvar isObject = __webpack_require__(15);\nvar anObject = __webpack_require__(10);\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n\n\n/***/ }),\n/* 816 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n\n\n/***/ }),\n/* 817 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.10 Reflect.isExtensible(target)\nvar $export = __webpack_require__(1);\nvar anObject = __webpack_require__(10);\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n\n\n/***/ }),\n/* 818 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.11 Reflect.ownKeys(target)\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Reflect', { ownKeys: __webpack_require__(314) });\n\n\n/***/ }),\n/* 819 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.12 Reflect.preventExtensions(target)\nvar $export = __webpack_require__(1);\nvar anObject = __webpack_require__(10);\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n/***/ }),\n/* 820 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = __webpack_require__(1);\nvar setProto = __webpack_require__(213);\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n/***/ }),\n/* 821 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = __webpack_require__(24);\nvar gOPD = __webpack_require__(46);\nvar getPrototypeOf = __webpack_require__(47);\nvar has = __webpack_require__(45);\nvar $export = __webpack_require__(1);\nvar createDesc = __webpack_require__(88);\nvar anObject = __webpack_require__(10);\nvar isObject = __webpack_require__(15);\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n\n\n/***/ }),\n/* 822 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(12);\nvar inheritIfRequired = __webpack_require__(204);\nvar dP = __webpack_require__(24).f;\nvar gOPN = __webpack_require__(86).f;\nvar isRegExp = __webpack_require__(157);\nvar $flags = __webpack_require__(125);\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (__webpack_require__(23) && (!CORRECT_NEW || __webpack_require__(14)(function () {\n re2[__webpack_require__(18)('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n __webpack_require__(41)(global, 'RegExp', $RegExp);\n}\n\n__webpack_require__(90)('RegExp');\n\n\n/***/ }),\n/* 823 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(10);\nvar toLength = __webpack_require__(20);\nvar advanceStringIndex = __webpack_require__(196);\nvar regExpExec = __webpack_require__(161);\n\n// @@match logic\n__webpack_require__(155)('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n\n\n/***/ }),\n/* 824 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(10);\nvar toObject = __webpack_require__(28);\nvar toLength = __webpack_require__(20);\nvar toInteger = __webpack_require__(55);\nvar advanceStringIndex = __webpack_require__(196);\nvar regExpExec = __webpack_require__(161);\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(155)('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n/* 825 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(10);\nvar sameValue = __webpack_require__(319);\nvar regExpExec = __webpack_require__(161);\n\n// @@search logic\n__webpack_require__(155)('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n\n\n/***/ }),\n/* 826 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isRegExp = __webpack_require__(157);\nvar anObject = __webpack_require__(10);\nvar speciesConstructor = __webpack_require__(129);\nvar advanceStringIndex = __webpack_require__(196);\nvar toLength = __webpack_require__(20);\nvar callRegExpExec = __webpack_require__(161);\nvar regexpExec = __webpack_require__(212);\nvar fails = __webpack_require__(14);\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\n__webpack_require__(155)('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n\n\n/***/ }),\n/* 827 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(325);\nvar anObject = __webpack_require__(10);\nvar $flags = __webpack_require__(125);\nvar DESCRIPTORS = __webpack_require__(23);\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n __webpack_require__(41)(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (__webpack_require__(14)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n\n\n/***/ }),\n/* 828 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.2 String.prototype.anchor(name)\n__webpack_require__(42)('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n\n\n/***/ }),\n/* 829 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.3 String.prototype.big()\n__webpack_require__(42)('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n\n\n/***/ }),\n/* 830 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.4 String.prototype.blink()\n__webpack_require__(42)('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n\n\n/***/ }),\n/* 831 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.5 String.prototype.bold()\n__webpack_require__(42)('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n\n\n/***/ }),\n/* 832 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $at = __webpack_require__(164)(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n\n\n/***/ }),\n/* 833 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n\nvar $export = __webpack_require__(1);\nvar toLength = __webpack_require__(20);\nvar context = __webpack_require__(215);\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(202)(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n\n\n/***/ }),\n/* 834 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.6 String.prototype.fixed()\n__webpack_require__(42)('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n\n\n/***/ }),\n/* 835 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.7 String.prototype.fontcolor(color)\n__webpack_require__(42)('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n\n\n/***/ }),\n/* 836 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.8 String.prototype.fontsize(size)\n__webpack_require__(42)('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n\n\n/***/ }),\n/* 837 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\nvar toAbsoluteIndex = __webpack_require__(91);\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n\n\n/***/ }),\n/* 838 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(1);\nvar context = __webpack_require__(215);\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(202)(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n/* 839 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.9 String.prototype.italics()\n__webpack_require__(42)('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n\n\n/***/ }),\n/* 840 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(164)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(207)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 841 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.10 String.prototype.link(url)\n__webpack_require__(42)('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n\n\n/***/ }),\n/* 842 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\nvar toIObject = __webpack_require__(48);\nvar toLength = __webpack_require__(20);\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n\n\n/***/ }),\n/* 843 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: __webpack_require__(216)\n});\n\n\n/***/ }),\n/* 844 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.11 String.prototype.small()\n__webpack_require__(42)('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n\n\n/***/ }),\n/* 845 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(1);\nvar toLength = __webpack_require__(20);\nvar context = __webpack_require__(215);\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(202)(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n/* 846 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.12 String.prototype.strike()\n__webpack_require__(42)('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n\n\n/***/ }),\n/* 847 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.13 String.prototype.sub()\n__webpack_require__(42)('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n\n\n/***/ }),\n/* 848 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// B.2.3.14 String.prototype.sup()\n__webpack_require__(42)('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n\n\n/***/ }),\n/* 849 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.1.3.25 String.prototype.trim()\n__webpack_require__(114)('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n\n\n/***/ }),\n/* 850 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(12);\nvar has = __webpack_require__(45);\nvar DESCRIPTORS = __webpack_require__(23);\nvar $export = __webpack_require__(1);\nvar redefine = __webpack_require__(41);\nvar META = __webpack_require__(75).KEY;\nvar $fails = __webpack_require__(14);\nvar shared = __webpack_require__(128);\nvar setToStringTag = __webpack_require__(113);\nvar uid = __webpack_require__(92);\nvar wks = __webpack_require__(18);\nvar wksExt = __webpack_require__(322);\nvar wksDefine = __webpack_require__(220);\nvar enumKeys = __webpack_require__(727);\nvar isArray = __webpack_require__(156);\nvar anObject = __webpack_require__(10);\nvar isObject = __webpack_require__(15);\nvar toIObject = __webpack_require__(48);\nvar toPrimitive = __webpack_require__(63);\nvar createDesc = __webpack_require__(88);\nvar _create = __webpack_require__(85);\nvar gOPNExt = __webpack_require__(311);\nvar $GOPD = __webpack_require__(46);\nvar $DP = __webpack_require__(24);\nvar $keys = __webpack_require__(87);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(86).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(127).f = $propertyIsEnumerable;\n __webpack_require__(160).f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(74)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(40)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/***/ }),\n/* 851 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar $typed = __webpack_require__(165);\nvar buffer = __webpack_require__(219);\nvar anObject = __webpack_require__(10);\nvar toAbsoluteIndex = __webpack_require__(91);\nvar toLength = __webpack_require__(20);\nvar isObject = __webpack_require__(15);\nvar ArrayBuffer = __webpack_require__(12).ArrayBuffer;\nvar speciesConstructor = __webpack_require__(129);\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * __webpack_require__(14)(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\n__webpack_require__(90)(ARRAY_BUFFER);\n\n\n/***/ }),\n/* 852 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\n$export($export.G + $export.W + $export.F * !__webpack_require__(165).ABV, {\n DataView: __webpack_require__(219).DataView\n});\n\n\n/***/ }),\n/* 853 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69)('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n/* 854 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69)('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n/* 855 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69)('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n/* 856 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69)('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n/* 857 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69)('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n/* 858 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69)('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n/* 859 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69)('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n/* 860 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69)('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n/* 861 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(69)('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n\n\n/***/ }),\n/* 862 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar weak = __webpack_require__(299);\nvar validate = __webpack_require__(93);\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\n__webpack_require__(154)(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n\n\n/***/ }),\n/* 863 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = __webpack_require__(1);\nvar flattenIntoArray = __webpack_require__(300);\nvar toObject = __webpack_require__(28);\nvar toLength = __webpack_require__(20);\nvar aFunction = __webpack_require__(35);\nvar arraySpeciesCreate = __webpack_require__(198);\n\n$export($export.P, 'Array', {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen, A;\n aFunction(callbackfn);\n sourceLen = toLength(O.length);\n A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n return A;\n }\n});\n\n__webpack_require__(73)('flatMap');\n\n\n/***/ }),\n/* 864 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten\nvar $export = __webpack_require__(1);\nvar flattenIntoArray = __webpack_require__(300);\nvar toObject = __webpack_require__(28);\nvar toLength = __webpack_require__(20);\nvar toInteger = __webpack_require__(55);\nvar arraySpeciesCreate = __webpack_require__(198);\n\n$export($export.P, 'Array', {\n flatten: function flatten(/* depthArg = 1 */) {\n var depthArg = arguments[0];\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n\n__webpack_require__(73)('flatten');\n\n\n/***/ }),\n/* 865 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(1);\nvar $includes = __webpack_require__(153)(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(73)('includes');\n\n\n/***/ }),\n/* 866 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask\nvar $export = __webpack_require__(1);\nvar microtask = __webpack_require__(210)();\nvar process = __webpack_require__(12).process;\nvar isNode = __webpack_require__(51)(process) == 'process';\n\n$export($export.G, {\n asap: function asap(fn) {\n var domain = isNode && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});\n\n\n/***/ }),\n/* 867 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/ljharb/proposal-is-error\nvar $export = __webpack_require__(1);\nvar cof = __webpack_require__(51);\n\n$export($export.S, 'Error', {\n isError: function isError(it) {\n return cof(it) === 'Error';\n }\n});\n\n\n/***/ }),\n/* 868 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/tc39/proposal-global\nvar $export = __webpack_require__(1);\n\n$export($export.G, { global: __webpack_require__(12) });\n\n\n/***/ }),\n/* 869 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\n__webpack_require__(162)('Map');\n\n\n/***/ }),\n/* 870 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\n__webpack_require__(163)('Map');\n\n\n/***/ }),\n/* 871 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = __webpack_require__(1);\n\n$export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(298)('Map') });\n\n\n/***/ }),\n/* 872 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', {\n clamp: function clamp(x, lower, upper) {\n return Math.min(upper, Math.max(lower, x));\n }\n});\n\n\n/***/ }),\n/* 873 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 });\n\n\n/***/ }),\n/* 874 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = __webpack_require__(1);\nvar RAD_PER_DEG = 180 / Math.PI;\n\n$export($export.S, 'Math', {\n degrees: function degrees(radians) {\n return radians * RAD_PER_DEG;\n }\n});\n\n\n/***/ }),\n/* 875 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = __webpack_require__(1);\nvar scale = __webpack_require__(308);\nvar fround = __webpack_require__(306);\n\n$export($export.S, 'Math', {\n fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n return fround(scale(x, inLow, inHigh, outLow, outHigh));\n }\n});\n\n\n/***/ }),\n/* 876 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', {\n iaddh: function iaddh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});\n\n\n/***/ }),\n/* 877 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', {\n imulh: function imulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >> 16;\n var v1 = $v >> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});\n\n\n/***/ }),\n/* 878 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', {\n isubh: function isubh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});\n\n\n/***/ }),\n/* 879 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI });\n\n\n/***/ }),\n/* 880 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = __webpack_require__(1);\nvar DEG_PER_RAD = Math.PI / 180;\n\n$export($export.S, 'Math', {\n radians: function radians(degrees) {\n return degrees * DEG_PER_RAD;\n }\n});\n\n\n/***/ }),\n/* 881 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', { scale: __webpack_require__(308) });\n\n\n/***/ }),\n/* 882 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// http://jfbastien.github.io/papers/Math.signbit.html\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', { signbit: function signbit(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;\n} });\n\n\n/***/ }),\n/* 883 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'Math', {\n umulh: function umulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >>> 16;\n var v1 = $v >>> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});\n\n\n/***/ }),\n/* 884 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar toObject = __webpack_require__(28);\nvar aFunction = __webpack_require__(35);\nvar $defineProperty = __webpack_require__(24);\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\n__webpack_require__(23) && $export($export.P + __webpack_require__(159), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter) {\n $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n});\n\n\n/***/ }),\n/* 885 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar toObject = __webpack_require__(28);\nvar aFunction = __webpack_require__(35);\nvar $defineProperty = __webpack_require__(24);\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\n__webpack_require__(23) && $export($export.P + __webpack_require__(159), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter) {\n $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n});\n\n\n/***/ }),\n/* 886 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/tc39/proposal-object-values-entries\nvar $export = __webpack_require__(1);\nvar $entries = __webpack_require__(313)(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n\n\n/***/ }),\n/* 887 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = __webpack_require__(1);\nvar ownKeys = __webpack_require__(314);\nvar toIObject = __webpack_require__(48);\nvar gOPD = __webpack_require__(46);\nvar createProperty = __webpack_require__(199);\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n\n\n/***/ }),\n/* 888 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar toObject = __webpack_require__(28);\nvar toPrimitive = __webpack_require__(63);\nvar getPrototypeOf = __webpack_require__(47);\nvar getOwnPropertyDescriptor = __webpack_require__(46).f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\n__webpack_require__(23) && $export($export.P + __webpack_require__(159), 'Object', {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.get;\n } while (O = getPrototypeOf(O));\n }\n});\n\n\n/***/ }),\n/* 889 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $export = __webpack_require__(1);\nvar toObject = __webpack_require__(28);\nvar toPrimitive = __webpack_require__(63);\nvar getPrototypeOf = __webpack_require__(47);\nvar getOwnPropertyDescriptor = __webpack_require__(46).f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\n__webpack_require__(23) && $export($export.P + __webpack_require__(159), 'Object', {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.set;\n } while (O = getPrototypeOf(O));\n }\n});\n\n\n/***/ }),\n/* 890 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/tc39/proposal-object-values-entries\nvar $export = __webpack_require__(1);\nvar $values = __webpack_require__(313)(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n\n\n/***/ }),\n/* 891 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/zenparsing/es-observable\nvar $export = __webpack_require__(1);\nvar global = __webpack_require__(12);\nvar core = __webpack_require__(52);\nvar microtask = __webpack_require__(210)();\nvar OBSERVABLE = __webpack_require__(18)('observable');\nvar aFunction = __webpack_require__(35);\nvar anObject = __webpack_require__(10);\nvar anInstance = __webpack_require__(83);\nvar redefineAll = __webpack_require__(89);\nvar hide = __webpack_require__(40);\nvar forOf = __webpack_require__(84);\nvar RETURN = forOf.RETURN;\n\nvar getMethod = function (fn) {\n return fn == null ? undefined : aFunction(fn);\n};\n\nvar cleanupSubscription = function (subscription) {\n var cleanup = subscription._c;\n if (cleanup) {\n subscription._c = undefined;\n cleanup();\n }\n};\n\nvar subscriptionClosed = function (subscription) {\n return subscription._o === undefined;\n};\n\nvar closeSubscription = function (subscription) {\n if (!subscriptionClosed(subscription)) {\n subscription._o = undefined;\n cleanupSubscription(subscription);\n }\n};\n\nvar Subscription = function (observer, subscriber) {\n anObject(observer);\n this._c = undefined;\n this._o = observer;\n observer = new SubscriptionObserver(this);\n try {\n var cleanup = subscriber(observer);\n var subscription = cleanup;\n if (cleanup != null) {\n if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); };\n else aFunction(cleanup);\n this._c = cleanup;\n }\n } catch (e) {\n observer.error(e);\n return;\n } if (subscriptionClosed(this)) cleanupSubscription(this);\n};\n\nSubscription.prototype = redefineAll({}, {\n unsubscribe: function unsubscribe() { closeSubscription(this); }\n});\n\nvar SubscriptionObserver = function (subscription) {\n this._s = subscription;\n};\n\nSubscriptionObserver.prototype = redefineAll({}, {\n next: function next(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n try {\n var m = getMethod(observer.next);\n if (m) return m.call(observer, value);\n } catch (e) {\n try {\n closeSubscription(subscription);\n } finally {\n throw e;\n }\n }\n }\n },\n error: function error(value) {\n var subscription = this._s;\n if (subscriptionClosed(subscription)) throw value;\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.error);\n if (!m) throw value;\n value = m.call(observer, value);\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n },\n complete: function complete(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.complete);\n value = m ? m.call(observer, value) : undefined;\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n }\n }\n});\n\nvar $Observable = function Observable(subscriber) {\n anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);\n};\n\nredefineAll($Observable.prototype, {\n subscribe: function subscribe(observer) {\n return new Subscription(observer, this._f);\n },\n forEach: function forEach(fn) {\n var that = this;\n return new (core.Promise || global.Promise)(function (resolve, reject) {\n aFunction(fn);\n var subscription = that.subscribe({\n next: function (value) {\n try {\n return fn(value);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n});\n\nredefineAll($Observable, {\n from: function from(x) {\n var C = typeof this === 'function' ? this : $Observable;\n var method = getMethod(anObject(x)[OBSERVABLE]);\n if (method) {\n var observable = anObject(method.call(x));\n return observable.constructor === C ? observable : new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n return new C(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n try {\n if (forOf(x, false, function (it) {\n observer.next(it);\n if (done) return RETURN;\n }) === RETURN) return;\n } catch (e) {\n if (done) throw e;\n observer.error(e);\n return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n },\n of: function of() {\n for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++];\n return new (typeof this === 'function' ? this : $Observable)(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n for (var j = 0; j < items.length; ++j) {\n observer.next(items[j]);\n if (done) return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n }\n});\n\nhide($Observable.prototype, OBSERVABLE, function () { return this; });\n\n$export($export.G, { Observable: $Observable });\n\n__webpack_require__(90)('Observable');\n\n\n/***/ }),\n/* 892 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// https://github.com/tc39/proposal-promise-finally\n\nvar $export = __webpack_require__(1);\nvar core = __webpack_require__(52);\nvar global = __webpack_require__(12);\nvar speciesConstructor = __webpack_require__(129);\nvar promiseResolve = __webpack_require__(318);\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n\n\n/***/ }),\n/* 893 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-promise-try\nvar $export = __webpack_require__(1);\nvar newPromiseCapability = __webpack_require__(211);\nvar perform = __webpack_require__(317);\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n\n\n/***/ }),\n/* 894 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar metadata = __webpack_require__(68);\nvar anObject = __webpack_require__(10);\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n\n\n/***/ }),\n/* 895 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar metadata = __webpack_require__(68);\nvar anObject = __webpack_require__(10);\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n\n\n/***/ }),\n/* 896 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Set = __webpack_require__(326);\nvar from = __webpack_require__(294);\nvar metadata = __webpack_require__(68);\nvar anObject = __webpack_require__(10);\nvar getPrototypeOf = __webpack_require__(47);\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n\n\n/***/ }),\n/* 897 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar metadata = __webpack_require__(68);\nvar anObject = __webpack_require__(10);\nvar getPrototypeOf = __webpack_require__(47);\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n/***/ }),\n/* 898 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar metadata = __webpack_require__(68);\nvar anObject = __webpack_require__(10);\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n\n\n/***/ }),\n/* 899 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar metadata = __webpack_require__(68);\nvar anObject = __webpack_require__(10);\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n/***/ }),\n/* 900 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar metadata = __webpack_require__(68);\nvar anObject = __webpack_require__(10);\nvar getPrototypeOf = __webpack_require__(47);\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n/***/ }),\n/* 901 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar metadata = __webpack_require__(68);\nvar anObject = __webpack_require__(10);\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n/***/ }),\n/* 902 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $metadata = __webpack_require__(68);\nvar anObject = __webpack_require__(10);\nvar aFunction = __webpack_require__(35);\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n\n\n/***/ }),\n/* 903 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\n__webpack_require__(162)('Set');\n\n\n/***/ }),\n/* 904 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\n__webpack_require__(163)('Set');\n\n\n/***/ }),\n/* 905 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = __webpack_require__(1);\n\n$export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(298)('Set') });\n\n\n/***/ }),\n/* 906 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/mathiasbynens/String.prototype.at\nvar $export = __webpack_require__(1);\nvar $at = __webpack_require__(164)(true);\n\n$export($export.P, 'String', {\n at: function at(pos) {\n return $at(this, pos);\n }\n});\n\n\n/***/ }),\n/* 907 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://tc39.github.io/String.prototype.matchAll/\nvar $export = __webpack_require__(1);\nvar defined = __webpack_require__(61);\nvar toLength = __webpack_require__(20);\nvar isRegExp = __webpack_require__(157);\nvar getFlags = __webpack_require__(125);\nvar RegExpProto = RegExp.prototype;\n\nvar $RegExpStringIterator = function (regexp, string) {\n this._r = regexp;\n this._s = string;\n};\n\n__webpack_require__(206)($RegExpStringIterator, 'RegExp String', function next() {\n var match = this._r.exec(this._s);\n return { value: match, done: match === null };\n});\n\n$export($export.P, 'String', {\n matchAll: function matchAll(regexp) {\n defined(this);\n if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');\n var S = String(this);\n var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);\n var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);\n rx.lastIndex = toLength(regexp.lastIndex);\n return new $RegExpStringIterator(rx, S);\n }\n});\n\n\n/***/ }),\n/* 908 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = __webpack_require__(1);\nvar $pad = __webpack_require__(320);\nvar userAgent = __webpack_require__(166);\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n\n\n/***/ }),\n/* 909 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = __webpack_require__(1);\nvar $pad = __webpack_require__(320);\nvar userAgent = __webpack_require__(166);\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n\n\n/***/ }),\n/* 910 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\n__webpack_require__(114)('trimLeft', function ($trim) {\n return function trimLeft() {\n return $trim(this, 1);\n };\n}, 'trimStart');\n\n\n/***/ }),\n/* 911 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\n__webpack_require__(114)('trimRight', function ($trim) {\n return function trimRight() {\n return $trim(this, 2);\n };\n}, 'trimEnd');\n\n\n/***/ }),\n/* 912 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(220)('asyncIterator');\n\n\n/***/ }),\n/* 913 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(220)('observable');\n\n\n/***/ }),\n/* 914 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/tc39/proposal-global\nvar $export = __webpack_require__(1);\n\n$export($export.S, 'System', { global: __webpack_require__(12) });\n\n\n/***/ }),\n/* 915 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\n__webpack_require__(162)('WeakMap');\n\n\n/***/ }),\n/* 916 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\n__webpack_require__(163)('WeakMap');\n\n\n/***/ }),\n/* 917 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\n__webpack_require__(162)('WeakSet');\n\n\n/***/ }),\n/* 918 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\n__webpack_require__(163)('WeakSet');\n\n\n/***/ }),\n/* 919 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(222);\nvar getKeys = __webpack_require__(87);\nvar redefine = __webpack_require__(41);\nvar global = __webpack_require__(12);\nvar hide = __webpack_require__(40);\nvar Iterators = __webpack_require__(112);\nvar wks = __webpack_require__(18);\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n/* 920 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(1);\nvar $task = __webpack_require__(218);\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n\n\n/***/ }),\n/* 921 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// ie9- setTimeout & setInterval additional parameters fix\nvar global = __webpack_require__(12);\nvar $export = __webpack_require__(1);\nvar userAgent = __webpack_require__(166);\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n\n\n/***/ }),\n/* 922 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(850);\n__webpack_require__(789);\n__webpack_require__(791);\n__webpack_require__(790);\n__webpack_require__(793);\n__webpack_require__(795);\n__webpack_require__(800);\n__webpack_require__(794);\n__webpack_require__(792);\n__webpack_require__(802);\n__webpack_require__(801);\n__webpack_require__(797);\n__webpack_require__(798);\n__webpack_require__(796);\n__webpack_require__(788);\n__webpack_require__(799);\n__webpack_require__(803);\n__webpack_require__(804);\n__webpack_require__(756);\n__webpack_require__(758);\n__webpack_require__(757);\n__webpack_require__(806);\n__webpack_require__(805);\n__webpack_require__(776);\n__webpack_require__(786);\n__webpack_require__(787);\n__webpack_require__(777);\n__webpack_require__(778);\n__webpack_require__(779);\n__webpack_require__(780);\n__webpack_require__(781);\n__webpack_require__(782);\n__webpack_require__(783);\n__webpack_require__(784);\n__webpack_require__(785);\n__webpack_require__(759);\n__webpack_require__(760);\n__webpack_require__(761);\n__webpack_require__(762);\n__webpack_require__(763);\n__webpack_require__(764);\n__webpack_require__(765);\n__webpack_require__(766);\n__webpack_require__(767);\n__webpack_require__(768);\n__webpack_require__(769);\n__webpack_require__(770);\n__webpack_require__(771);\n__webpack_require__(772);\n__webpack_require__(773);\n__webpack_require__(774);\n__webpack_require__(775);\n__webpack_require__(837);\n__webpack_require__(842);\n__webpack_require__(849);\n__webpack_require__(840);\n__webpack_require__(832);\n__webpack_require__(833);\n__webpack_require__(838);\n__webpack_require__(843);\n__webpack_require__(845);\n__webpack_require__(828);\n__webpack_require__(829);\n__webpack_require__(830);\n__webpack_require__(831);\n__webpack_require__(834);\n__webpack_require__(835);\n__webpack_require__(836);\n__webpack_require__(839);\n__webpack_require__(841);\n__webpack_require__(844);\n__webpack_require__(846);\n__webpack_require__(847);\n__webpack_require__(848);\n__webpack_require__(751);\n__webpack_require__(753);\n__webpack_require__(752);\n__webpack_require__(755);\n__webpack_require__(754);\n__webpack_require__(740);\n__webpack_require__(738);\n__webpack_require__(744);\n__webpack_require__(741);\n__webpack_require__(747);\n__webpack_require__(749);\n__webpack_require__(737);\n__webpack_require__(743);\n__webpack_require__(734);\n__webpack_require__(748);\n__webpack_require__(732);\n__webpack_require__(746);\n__webpack_require__(745);\n__webpack_require__(739);\n__webpack_require__(742);\n__webpack_require__(731);\n__webpack_require__(733);\n__webpack_require__(736);\n__webpack_require__(735);\n__webpack_require__(750);\n__webpack_require__(222);\n__webpack_require__(822);\n__webpack_require__(324);\n__webpack_require__(827);\n__webpack_require__(325);\n__webpack_require__(823);\n__webpack_require__(824);\n__webpack_require__(825);\n__webpack_require__(826);\n__webpack_require__(807);\n__webpack_require__(323);\n__webpack_require__(326);\n__webpack_require__(327);\n__webpack_require__(862);\n__webpack_require__(851);\n__webpack_require__(852);\n__webpack_require__(857);\n__webpack_require__(860);\n__webpack_require__(861);\n__webpack_require__(855);\n__webpack_require__(858);\n__webpack_require__(856);\n__webpack_require__(859);\n__webpack_require__(853);\n__webpack_require__(854);\n__webpack_require__(808);\n__webpack_require__(809);\n__webpack_require__(810);\n__webpack_require__(811);\n__webpack_require__(812);\n__webpack_require__(815);\n__webpack_require__(813);\n__webpack_require__(814);\n__webpack_require__(816);\n__webpack_require__(817);\n__webpack_require__(818);\n__webpack_require__(819);\n__webpack_require__(821);\n__webpack_require__(820);\n__webpack_require__(865);\n__webpack_require__(863);\n__webpack_require__(864);\n__webpack_require__(906);\n__webpack_require__(909);\n__webpack_require__(908);\n__webpack_require__(910);\n__webpack_require__(911);\n__webpack_require__(907);\n__webpack_require__(912);\n__webpack_require__(913);\n__webpack_require__(887);\n__webpack_require__(890);\n__webpack_require__(886);\n__webpack_require__(884);\n__webpack_require__(885);\n__webpack_require__(888);\n__webpack_require__(889);\n__webpack_require__(871);\n__webpack_require__(905);\n__webpack_require__(870);\n__webpack_require__(904);\n__webpack_require__(916);\n__webpack_require__(918);\n__webpack_require__(869);\n__webpack_require__(903);\n__webpack_require__(915);\n__webpack_require__(917);\n__webpack_require__(868);\n__webpack_require__(914);\n__webpack_require__(867);\n__webpack_require__(872);\n__webpack_require__(873);\n__webpack_require__(874);\n__webpack_require__(875);\n__webpack_require__(876);\n__webpack_require__(878);\n__webpack_require__(877);\n__webpack_require__(879);\n__webpack_require__(880);\n__webpack_require__(881);\n__webpack_require__(883);\n__webpack_require__(882);\n__webpack_require__(892);\n__webpack_require__(893);\n__webpack_require__(894);\n__webpack_require__(895);\n__webpack_require__(897);\n__webpack_require__(896);\n__webpack_require__(899);\n__webpack_require__(898);\n__webpack_require__(900);\n__webpack_require__(901);\n__webpack_require__(902);\n__webpack_require__(866);\n__webpack_require__(891);\n__webpack_require__(921);\n__webpack_require__(920);\n__webpack_require__(919);\nmodule.exports = __webpack_require__(52);\n\n\n/***/ }),\n/* 923 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * https://raw.github.com/facebook/regenerator/master/LICENSE file. An\n * additional grant of patent rights can be found in the PATENTS file in\n * the same directory.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n if (typeof global.process === \"object\" && global.process.domain) {\n invoke = global.process.domain.bind(invoke);\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // Among the various tricks for obtaining a reference to the global\n // object, this seems to be the most reliable technique that does not\n // use indirect eval (which violates Content Security Policy).\n typeof global === \"object\" ? global :\n typeof window === \"object\" ? window :\n typeof self === \"object\" ? self : this\n);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(108)))\n\n/***/ }),\n/* 924 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(939), __esModule: true };\n\n/***/ }),\n/* 925 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(941), __esModule: true };\n\n/***/ }),\n/* 926 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(943), __esModule: true };\n\n/***/ }),\n/* 927 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(948), __esModule: true };\n\n/***/ }),\n/* 928 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(949), __esModule: true };\n\n/***/ }),\n/* 929 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction placeHoldersCount (b64) {\n var len = b64.length\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n}\n\nfunction byteLength (b64) {\n // base64 is 4/3 + up to two characters of the original data\n return b64.length * 3 / 4 - placeHoldersCount(b64)\n}\n\nfunction toByteArray (b64) {\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n placeHolders = placeHoldersCount(b64)\n\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n\n\n/***/ }),\n/* 930 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n}\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\n\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isTouchPad = ua.indexOf(\"TouchPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n if (\"ontouchmove\" in el) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touchObj = e.changedTouches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var factor = 1,\n touchObj = e.changedTouches[0];\n\n e.wheelX = -(touchObj.clientX - startx) / factor;\n e.wheelY = -(touchObj.clientY - starty) / factor;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n } \n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n pressedKeys[e.keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i= 53) {\n onInput();\n }\n };\n \n \n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule()});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule()});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule()});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n \n this.moveToMouse = function(e, bringToFront) {\n if (!bringToFront && useragent.isOldIE)\n return;\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n }; \n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin && !useragent.isOldIE)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, useragent.isOldIE ? 200 : 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar DRAG_OFFSET = 0; // pixels\n\nfunction DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n}\n\n(function() {\n\n this.onMouseDown = function(ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n editor.$blockScrolling++;\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n editor.$blockScrolling--;\n if (button == 2)\n editor.textInput.onContextMenu(ev.domEvent);\n return; // stopping event here breaks contextmenu on ff mac\n }\n\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n\n var t = ev.domEvent.timeStamp;\n var dt = t - (this.$lastScrollTime||0);\n \n var editor = this.editor;\n var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n if (isScrolable || dt < 200) {\n this.$lastScrollTime = t;\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n \n this.onTouchMove = function (ev) {\n var t = ev.domEvent.timeStamp;\n var dt = t - (this.$lastScrollTime || 0);\n\n var editor = this.editor;\n var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n if (isScrolable || dt < 200) {\n this.$lastScrollTime = t;\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"
\");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor._signal(\"showGutterTooltip\", tooltip);\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor._signal(\"hideGutterTooltip\", tooltip);\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n}\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(547).packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)\n else\n return new Range(this.start.row, 0, this.end.row, 0)\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column-tabSize, cursor.column).split(\" \").length-1 == tabSize)\n this.moveCursorBy(0, -tabSize);\n else\n this.moveCursorBy(0, -1);\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column, cursor.column+tabSize).split(\" \").length-1 == tabSize)\n this.moveCursorBy(0, tabSize);\n else\n this.moveCursorBy(0, 1);\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n if (chars === 0) {\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift()\n startState = stack.shift()\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\"\n ? rule\n : typeof rule.include == \"string\"\n ? rule.include\n : \"\";\n if (includeName) {\n toInsert = rules[includeName];\n }\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken }\n : function(value) {return keywords[value] || defaultToken };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n }\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n }\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n }\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n }\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {}\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n }\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n \n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function() {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n\nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n};\n\n(function() {\n this.$defaultBehaviour = new CstyleBehaviour();\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n}\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n }\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\")\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n if (token && /^comment|string/.test(token.type)) {\n var range = new Range();\n var re = new RegExp(token.type.replace(/\\..*/, \"\\\\.\"));\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n do {\n token = iterator.stepForward();\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n }\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n var splitIndex = Math.floor(screenRow - row);\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val)},\n get: function() {return this.doc.getNewLineMode()},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val) },\n get: function() { return this.$modeId }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(range, row, offset) {\n if (!range.start) {\n var column = range.offset + (offset || 0);\n firstRange = new Range(row, column, row, column + range.length);\n if (!range.length && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n } else\n firstRange = range;\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n\n var callback;\n if (options.$isMultiLine) {\n var len = re.length;\n var matchIterator = function(line, row, offset) {\n var startIndex = line.search(re[0]);\n if (startIndex == -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(row + i);\n if (line.search(re[i]) == -1)\n return;\n }\n\n var endIndex = line.match(re[len - 1])[0].length;\n\n var range = new Range(row, startIndex, row + len - 1, endIndex);\n if (re.offset == 1) {\n range.start.row--;\n range.start.column = Number.MAX_VALUE;\n } else if (offset)\n range.start.column += offset;\n\n if (callback(range))\n return true;\n };\n } else if (options.backwards) {\n var matchIterator = function(line, row, startIndex) {\n var matches = lang.getMatchOffsets(line, re);\n for (var i = matches.length-1; i >= 0; i--)\n if (callback(matches[i], row, startIndex))\n return true;\n };\n } else {\n var matchIterator = function(line, row, startIndex) {\n var matches = lang.getMatchOffsets(line, re);\n for (var i = 0; i < matches.length; i++)\n if (callback(matches[i], row, startIndex))\n return true;\n };\n }\n \n var lineIterator = this.$lineIterator(session, options);\n\n return {\n forEach: function(_callback) {\n callback = _callback;\n lineIterator.forEach(matchIterator);\n }\n };\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n if (parts[0] == \"\") {\n re.shift();\n re.offset = 1;\n } else {\n re.offset = 0;\n }\n return re;\n };\n\n this.$lineIterator = function(session, options) {\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n var forEach = backwards ? function(callback) {\n var row = start.row;\n\n var line = session.getLine(row).substring(0, start.column);\n if (callback(line, row))\n return;\n\n for (row--; row >= firstRow; row--)\n if (callback(session.getLine(row), row))\n return;\n\n if (options.wrap == false)\n return;\n\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (callback(session.getLine(row), row))\n return;\n } : function(callback) {\n var row = start.row;\n\n var line = session.getLine(row).substr(start.column);\n if (callback(line, row, start.column))\n return;\n\n for (row = row+1; row <= lastRow; row++)\n if (callback(session.getLine(row), row))\n return;\n\n if (options.wrap == false)\n return;\n\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (callback(session.getLine(row), row))\n return;\n };\n \n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nfunction addWordBoundary(needle, options) {\n function wordBoundary(c) {\n if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n return \"\";\n }\n return wordBoundary(needle[0]) + needle\n + wordBoundary(needle[needle.length - 1]);\n}\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position || 0;\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n if (position || command.isDefault)\n position = -100;\n else\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n \n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor)});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true)});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Ctrl-T\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.keyBinding = new KeyBinding(this);\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1]}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === ' 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite()) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val)}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text != cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\"},\n getText: function() {return \"\"}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n var config = config || this.config;\n if (!config)\n return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, \n clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end),\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n\n stringBuilder.push(\n \"
\"\n );\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n\n stringBuilder.push(\n \"
\"\n );\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"
\"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"
\"\n );\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"
\"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"
\"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n }\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n }\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"\" + spaceContent + \"\";\n this.$tabStrings[\"\\t\"] = \"\" + tabContent + \"\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"
\")\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"
\"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"\" + space + \"\";\n } else if (b) {\n return \"\" + self.SPACE_CHAR + \"\";\n } else {\n screenColumn += 1;\n return \"\" + c + \"\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"\", output, \"\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"\",\n \"
\"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"
\"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row\n\n stringBuilder.push(\n \"\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"
\");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + pos.column * this.config.characterWidth;\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n this.scrollHeight = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return this.isVisible ? this.width : 0;\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight =\n this.setScrollHeight = function(height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n } else if (this.coeff != 1) {\n this.coeff = 1\n }\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\ntext-align: left;\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_editor.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode()\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\")\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight,\n Math.max((this.$minLines || 1) * this.lineHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offset = (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var col = Math.round(\n (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth\n );\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0));\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + Math.round(pos.column * this.characterWidth);\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show)},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function(val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val) },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\")\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n try {\n var workerSrc = mod.src;\n var Blob = __webpack_require__(1587);\n var blob = new Blob([ workerSrc ], { type: 'application/javascript' });\n var blobUrl = (window.URL || window.webkitURL).createObjectURL(blob);\n\n this.$worker = new Worker(blobUrl);\n\n } catch(e) {\n if (e instanceof window.DOMException) {\n var blob = this.$workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n\n this.$worker = new Worker(blobURL);\n URL.revokeObjectURL(blobURL);\n } else {\n throw e;\n }\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch(msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if(this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n this.$workerBlob = function(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn),\n this.session.screenToDocumentPosition(row, endColumn)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row]\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
\");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\n\nif (true)\n exports.define = __webpack_require__(547);\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n}\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.6\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");\n\n/***/ }),\n/* 931 */\n/***/ (function(module, exports, __webpack_require__) {\n\nace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"invalid.illegal\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"invalid.illegal\", // comments are not allowed\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '[^\"\\\\\\\\]+'\n }, {\n token : \"string\",\n regex : '\"',\n next : \"start\"\n }, {\n token : \"string\",\n regex : \"\",\n next : \"start\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], __webpack_require__(934), \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n/***/ }),\n/* 932 */\n/***/ (function(module, exports) {\n\nace.define(\"ace/mode/sql_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar SqlHighlightRules = function() {\n\n var keywords = (\n \"select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|\" +\n \"when|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|\" +\n \"foreign|not|references|default|null|inner|cross|natural|database|drop|grant\"\n );\n\n var builtinConstants = (\n \"true|false\"\n );\n\n var builtinFunctions = (\n \"avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|\" + \n \"coalesce|ifnull|isnull|nvl\"\n );\n\n var dataTypes = (\n \"int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|\" +\n \"money|real|number|integer\"\n );\n\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": builtinFunctions,\n \"keyword\": keywords,\n \"constant.language\": builtinConstants,\n \"storage.type\": dataTypes\n }, \"identifier\", true);\n\n this.$rules = {\n \"start\" : [ {\n token : \"comment\",\n regex : \"--.*$\"\n }, {\n token : \"comment\",\n start : \"/\\\\*\",\n end : \"\\\\*/\"\n }, {\n token : \"string\", // \" string\n regex : '\".*?\"'\n }, {\n token : \"string\", // ' string\n regex : \"'.*?'\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : keywordMapper,\n regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }, {\n token : \"keyword.operator\",\n regex : \"\\\\+|\\\\-|\\\\/|\\\\/\\\\/|%|<@>|@>|<@|&|\\\\^|~|<|>|<=|=>|==|!=|<>|=\"\n }, {\n token : \"paren.lparen\",\n regex : \"[\\\\(]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\)]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n } ]\n };\n this.normalizeRules();\n};\n\noop.inherits(SqlHighlightRules, TextHighlightRules);\n\nexports.SqlHighlightRules = SqlHighlightRules;\n});\n\nace.define(\"ace/mode/sql\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/sql_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar SqlHighlightRules = acequire(\"./sql_highlight_rules\").SqlHighlightRules;\n\nvar Mode = function() {\n this.HighlightRules = SqlHighlightRules;\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"--\";\n\n this.$id = \"ace/mode/sql\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\n\n/***/ }),\n/* 933 */\n/***/ (function(module, exports) {\n\nace.define(\"ace/theme/monokai\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-monokai\";\nexports.cssText = \".ace-monokai .ace_gutter {\\\nbackground: #2F3129;\\\ncolor: #8F908A\\\n}\\\n.ace-monokai .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #555651\\\n}\\\n.ace-monokai {\\\nbackground-color: #272822;\\\ncolor: #F8F8F2\\\n}\\\n.ace-monokai .ace_cursor {\\\ncolor: #F8F8F0\\\n}\\\n.ace-monokai .ace_marker-layer .ace_selection {\\\nbackground: #49483E\\\n}\\\n.ace-monokai.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #272822;\\\n}\\\n.ace-monokai .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-monokai .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #49483E\\\n}\\\n.ace-monokai .ace_marker-layer .ace_active-line {\\\nbackground: #202020\\\n}\\\n.ace-monokai .ace_gutter-active-line {\\\nbackground-color: #272727\\\n}\\\n.ace-monokai .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #49483E\\\n}\\\n.ace-monokai .ace_invisible {\\\ncolor: #52524d\\\n}\\\n.ace-monokai .ace_entity.ace_name.ace_tag,\\\n.ace-monokai .ace_keyword,\\\n.ace-monokai .ace_meta.ace_tag,\\\n.ace-monokai .ace_storage {\\\ncolor: #F92672\\\n}\\\n.ace-monokai .ace_punctuation,\\\n.ace-monokai .ace_punctuation.ace_tag {\\\ncolor: #fff\\\n}\\\n.ace-monokai .ace_constant.ace_character,\\\n.ace-monokai .ace_constant.ace_language,\\\n.ace-monokai .ace_constant.ace_numeric,\\\n.ace-monokai .ace_constant.ace_other {\\\ncolor: #AE81FF\\\n}\\\n.ace-monokai .ace_invalid {\\\ncolor: #F8F8F0;\\\nbackground-color: #F92672\\\n}\\\n.ace-monokai .ace_invalid.ace_deprecated {\\\ncolor: #F8F8F0;\\\nbackground-color: #AE81FF\\\n}\\\n.ace-monokai .ace_support.ace_constant,\\\n.ace-monokai .ace_support.ace_function {\\\ncolor: #66D9EF\\\n}\\\n.ace-monokai .ace_fold {\\\nbackground-color: #A6E22E;\\\nborder-color: #F8F8F2\\\n}\\\n.ace-monokai .ace_storage.ace_type,\\\n.ace-monokai .ace_support.ace_class,\\\n.ace-monokai .ace_support.ace_type {\\\nfont-style: italic;\\\ncolor: #66D9EF\\\n}\\\n.ace-monokai .ace_entity.ace_name.ace_function,\\\n.ace-monokai .ace_entity.ace_other,\\\n.ace-monokai .ace_entity.ace_other.ace_attribute-name,\\\n.ace-monokai .ace_variable {\\\ncolor: #A6E22E\\\n}\\\n.ace-monokai .ace_variable.ace_parameter {\\\nfont-style: italic;\\\ncolor: #FD971F\\\n}\\\n.ace-monokai .ace_string {\\\ncolor: #E6DB74\\\n}\\\n.ace-monokai .ace_comment {\\\ncolor: #75715E\\\n}\\\n.ace-monokai .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\n\n/***/ }),\n/* 934 */\n/***/ (function(module, exports) {\n\nmodule.exports.id = 'ace/mode/json_worker';\nmodule.exports.src = \"\\\"no use strict\\\";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\\\"[object Object]\\\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";\n\n/***/ }),\n/* 935 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(929)\nvar ieee754 = __webpack_require__(1327)\nvar isArray = __webpack_require__(1329)\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(108)))\n\n/***/ }),\n/* 936 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n * clipboard.js v2.0.4\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n!function(t,e){ true?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=0)}([function(t,e,n){\"use strict\";var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=function(){function o(t,e){for(var n=0;n Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(78)\n , toLength = __webpack_require__(170)\n , toIndex = __webpack_require__(973);\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n/***/ }),\n/* 953 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = __webpack_require__(95)\n , IObject = __webpack_require__(230)\n , toObject = __webpack_require__(137)\n , toLength = __webpack_require__(170)\n , asc = __webpack_require__(955);\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n/***/ }),\n/* 954 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(97)\n , isArray = __webpack_require__(336)\n , SPECIES = __webpack_require__(39)('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n/***/ }),\n/* 955 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = __webpack_require__(954);\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};\n\n/***/ }),\n/* 956 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar dP = __webpack_require__(56).f\n , create = __webpack_require__(233)\n , redefineAll = __webpack_require__(235)\n , ctx = __webpack_require__(95)\n , anInstance = __webpack_require__(226)\n , defined = __webpack_require__(132)\n , forOf = __webpack_require__(168)\n , $iterDefine = __webpack_require__(231)\n , step = __webpack_require__(339)\n , setSpecies = __webpack_require__(346)\n , DESCRIPTORS = __webpack_require__(64)\n , fastKey = __webpack_require__(232).fastKey\n , SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n anInstance(that, C, NAME, '_i');\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n anInstance(this, C, 'forEach');\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)dP(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n/***/ }),\n/* 957 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = __webpack_require__(227)\n , from = __webpack_require__(951);\nmodule.exports = function(NAME){\n return function toJSON(){\n if(classof(this) != NAME)throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n\n/***/ }),\n/* 958 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(38)\n , $export = __webpack_require__(43)\n , meta = __webpack_require__(232)\n , fails = __webpack_require__(76)\n , hide = __webpack_require__(77)\n , redefineAll = __webpack_require__(235)\n , forOf = __webpack_require__(168)\n , anInstance = __webpack_require__(226)\n , isObject = __webpack_require__(97)\n , setToStringTag = __webpack_require__(136)\n , dP = __webpack_require__(56).f\n , each = __webpack_require__(953)(0)\n , DESCRIPTORS = __webpack_require__(64);\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n C = wrapper(function(target, iterable){\n anInstance(target, C, NAME, '_c');\n target._c = new Base;\n if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);\n });\n each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','),function(KEY){\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){\n anInstance(this, C, KEY);\n if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n if('size' in proto)dP(C.prototype, 'size', {\n get: function(){\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n/***/ }),\n/* 959 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $defineProperty = __webpack_require__(56)\n , createDesc = __webpack_require__(135);\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n/***/ }),\n/* 960 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(98)\n , gOPS = __webpack_require__(234)\n , pIE = __webpack_require__(134);\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n/***/ }),\n/* 961 */\n/***/ (function(module, exports) {\n\n// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function(fn, args, that){\n var un = that === undefined;\n switch(args.length){\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n/***/ }),\n/* 962 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(233)\n , descriptor = __webpack_require__(135)\n , setToStringTag = __webpack_require__(136)\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(77)(IteratorPrototype, __webpack_require__(39)('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 963 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getKeys = __webpack_require__(98)\n , toIObject = __webpack_require__(78);\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n/***/ }),\n/* 964 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(38)\n , macrotask = __webpack_require__(348).set\n , Observer = global.MutationObserver || global.WebKitMutationObserver\n , process = global.process\n , Promise = global.Promise\n , isNode = __webpack_require__(131)(process) == 'process';\n\nmodule.exports = function(){\n var head, last, notify;\n\n var flush = function(){\n var parent, fn;\n if(isNode && (parent = process.domain))parent.exit();\n while(head){\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch(e){\n if(head)notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if(parent)parent.enter();\n };\n\n // Node.js\n if(isNode){\n notify = function(){\n process.nextTick(flush);\n };\n // browsers with MutationObserver\n } else if(Observer){\n var toggle = true\n , node = document.createTextNode('');\n new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new\n notify = function(){\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if(Promise && Promise.resolve){\n var promise = Promise.resolve();\n notify = function(){\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function(){\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function(fn){\n var task = {fn: fn, next: undefined};\n if(last)last.next = task;\n if(!head){\n head = task;\n notify();\n } last = task;\n };\n};\n\n/***/ }),\n/* 965 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(98)\n , gOPS = __webpack_require__(234)\n , pIE = __webpack_require__(134)\n , toObject = __webpack_require__(137)\n , IObject = __webpack_require__(230)\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(76)(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;\n\n/***/ }),\n/* 966 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(56)\n , anObject = __webpack_require__(94)\n , getKeys = __webpack_require__(98);\n\nmodule.exports = __webpack_require__(64) ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n/***/ }),\n/* 967 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pIE = __webpack_require__(134)\n , createDesc = __webpack_require__(135)\n , toIObject = __webpack_require__(78)\n , toPrimitive = __webpack_require__(239)\n , has = __webpack_require__(96)\n , IE8_DOM_DEFINE = __webpack_require__(334)\n , gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(64) ? gOPD : function getOwnPropertyDescriptor(O, P){\n O = toIObject(O);\n P = toPrimitive(P, true);\n if(IE8_DOM_DEFINE)try {\n return gOPD(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n/***/ }),\n/* 968 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(96)\n , toObject = __webpack_require__(137)\n , IE_PROTO = __webpack_require__(236)('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 969 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $parseInt = __webpack_require__(38).parseInt\n , $trim = __webpack_require__(972).trim\n , ws = __webpack_require__(347)\n , hex = /^[\\-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n\n/***/ }),\n/* 970 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = __webpack_require__(94)\n , aFunction = __webpack_require__(225)\n , SPECIES = __webpack_require__(39)('species');\nmodule.exports = function(O, D){\n var C = anObject(O).constructor, S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n/***/ }),\n/* 971 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(238)\n , defined = __webpack_require__(132);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n/***/ }),\n/* 972 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(43)\n , defined = __webpack_require__(132)\n , fails = __webpack_require__(76)\n , spaces = __webpack_require__(347)\n , space = '[' + spaces + ']'\n , non = '\\u200b\\u0085'\n , ltrim = RegExp('^' + space + space + '*')\n , rtrim = RegExp(space + space + '*$');\n\nvar exporter = function(KEY, exec, ALIAS){\n var exp = {};\n var FORCE = fails(function(){\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if(ALIAS)exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function(string, TYPE){\n string = String(defined(string));\n if(TYPE & 1)string = string.replace(ltrim, '');\n if(TYPE & 2)string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n\n/***/ }),\n/* 973 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(238)\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 974 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx = __webpack_require__(95)\n , $export = __webpack_require__(43)\n , toObject = __webpack_require__(137)\n , call = __webpack_require__(337)\n , isArrayIter = __webpack_require__(335)\n , toLength = __webpack_require__(170)\n , createProperty = __webpack_require__(959)\n , getIterFn = __webpack_require__(349);\n\n$export($export.S + $export.F * !__webpack_require__(338)(function(iter){ Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n var O = toObject(arrayLike)\n , C = typeof this == 'function' ? this : Array\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , index = 0\n , iterFn = getIterFn(O)\n , length, result, step, iterator;\n if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for(result = new C(length); length > index; index++){\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n/***/ }),\n/* 975 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(950)\n , step = __webpack_require__(339)\n , Iterators = __webpack_require__(133)\n , toIObject = __webpack_require__(78);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(231)(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 976 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(43)\n , $parseInt = __webpack_require__(969);\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});\n\n/***/ }),\n/* 977 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(43);\n\n$export($export.S + $export.F, 'Object', {assign: __webpack_require__(965)});\n\n/***/ }),\n/* 978 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(43);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(64), 'Object', {defineProperty: __webpack_require__(56).f});\n\n/***/ }),\n/* 979 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.7 Object.getOwnPropertyNames(O)\n__webpack_require__(343)('getOwnPropertyNames', function(){\n return __webpack_require__(340).f;\n});\n\n/***/ }),\n/* 980 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(137)\n , $keys = __webpack_require__(98);\n\n__webpack_require__(343)('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n/***/ }),\n/* 981 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(169)\n , global = __webpack_require__(38)\n , ctx = __webpack_require__(95)\n , classof = __webpack_require__(227)\n , $export = __webpack_require__(43)\n , isObject = __webpack_require__(97)\n , aFunction = __webpack_require__(225)\n , anInstance = __webpack_require__(226)\n , forOf = __webpack_require__(168)\n , speciesConstructor = __webpack_require__(970)\n , task = __webpack_require__(348).set\n , microtask = __webpack_require__(964)()\n , PROMISE = 'Promise'\n , TypeError = global.TypeError\n , process = global.process\n , $Promise = global[PROMISE]\n , process = global.process\n , isNode = classof(process) == 'process'\n , empty = function(){ /* empty */ }\n , Internal, GenericPromiseCapability, Wrapper;\n\nvar USE_NATIVE = !!function(){\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1)\n , FakePromise = (promise.constructor = {})[__webpack_require__(39)('species')] = function(exec){ exec(empty, empty); };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n } catch(e){ /* empty */ }\n}();\n\n// helpers\nvar sameConstructor = function(a, b){\n // with library wrapper special case\n return a === b || a === $Promise && b === Wrapper;\n};\nvar isThenable = function(it){\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar newPromiseCapability = function(C){\n return sameConstructor($Promise, C)\n ? new PromiseCapability(C)\n : new GenericPromiseCapability(C);\n};\nvar PromiseCapability = GenericPromiseCapability = function(C){\n var resolve, reject;\n this.promise = new C(function($$resolve, $$reject){\n if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\nvar perform = function(exec){\n try {\n exec();\n } catch(e){\n return {error: e};\n }\n};\nvar notify = function(promise, isReject){\n if(promise._n)return;\n promise._n = true;\n var chain = promise._c;\n microtask(function(){\n var value = promise._v\n , ok = promise._s == 1\n , i = 0;\n var run = function(reaction){\n var handler = ok ? reaction.ok : reaction.fail\n , resolve = reaction.resolve\n , reject = reaction.reject\n , domain = reaction.domain\n , result, then;\n try {\n if(handler){\n if(!ok){\n if(promise._h == 2)onHandleUnhandled(promise);\n promise._h = 1;\n }\n if(handler === true)result = value;\n else {\n if(domain)domain.enter();\n result = handler(value);\n if(domain)domain.exit();\n }\n if(result === reaction.promise){\n reject(TypeError('Promise-chain cycle'));\n } else if(then = isThenable(result)){\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch(e){\n reject(e);\n }\n };\n while(chain.length > i)run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if(isReject && !promise._h)onUnhandled(promise);\n });\n};\nvar onUnhandled = function(promise){\n task.call(global, function(){\n var value = promise._v\n , abrupt, handler, console;\n if(isUnhandled(promise)){\n abrupt = perform(function(){\n if(isNode){\n process.emit('unhandledRejection', value, promise);\n } else if(handler = global.onunhandledrejection){\n handler({promise: promise, reason: value});\n } else if((console = global.console) && console.error){\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if(abrupt)throw abrupt.error;\n });\n};\nvar isUnhandled = function(promise){\n if(promise._h == 1)return false;\n var chain = promise._a || promise._c\n , i = 0\n , reaction;\n while(chain.length > i){\n reaction = chain[i++];\n if(reaction.fail || !isUnhandled(reaction.promise))return false;\n } return true;\n};\nvar onHandleUnhandled = function(promise){\n task.call(global, function(){\n var handler;\n if(isNode){\n process.emit('rejectionHandled', promise);\n } else if(handler = global.onrejectionhandled){\n handler({promise: promise, reason: promise._v});\n }\n });\n};\nvar $reject = function(value){\n var promise = this;\n if(promise._d)return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if(!promise._a)promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function(value){\n var promise = this\n , then;\n if(promise._d)return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if(promise === value)throw TypeError(\"Promise can't be resolved itself\");\n if(then = isThenable(value)){\n microtask(function(){\n var wrapper = {_w: promise, _d: false}; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch(e){\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch(e){\n $reject.call({_w: promise, _d: false}, e); // wrap\n }\n};\n\n// constructor polyfill\nif(!USE_NATIVE){\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor){\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch(err){\n $reject.call(this, err);\n }\n };\n Internal = function Promise(executor){\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = __webpack_require__(235)($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected){\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if(this._a)this._a.push(reaction);\n if(this._s)notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function(onRejected){\n return this.then(undefined, onRejected);\n }\n });\n PromiseCapability = function(){\n var promise = new Internal;\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});\n__webpack_require__(136)($Promise, PROMISE);\n__webpack_require__(346)(PROMISE);\nWrapper = __webpack_require__(33)[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r){\n var capability = newPromiseCapability(this)\n , $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x){\n // instanceof instead of internal slot check because we should fix it without replacement native Promise core\n if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;\n var capability = newPromiseCapability(this)\n , $$resolve = capability.resolve;\n $$resolve(x);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(338)(function(iter){\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable){\n var C = this\n , capability = newPromiseCapability(C)\n , resolve = capability.resolve\n , reject = capability.reject;\n var abrupt = perform(function(){\n var values = []\n , index = 0\n , remaining = 1;\n forOf(iterable, false, function(promise){\n var $index = index++\n , alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function(value){\n if(alreadyCalled)return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if(abrupt)reject(abrupt.error);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable){\n var C = this\n , capability = newPromiseCapability(C)\n , reject = capability.reject;\n var abrupt = perform(function(){\n forOf(iterable, false, function(promise){\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if(abrupt)reject(abrupt.error);\n return capability.promise;\n }\n});\n\n/***/ }),\n/* 982 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar strong = __webpack_require__(956);\n\n// 23.2 Set Objects\nmodule.exports = __webpack_require__(958)('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n/***/ }),\n/* 983 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(38)\n , has = __webpack_require__(96)\n , DESCRIPTORS = __webpack_require__(64)\n , $export = __webpack_require__(43)\n , redefine = __webpack_require__(345)\n , META = __webpack_require__(232).KEY\n , $fails = __webpack_require__(76)\n , shared = __webpack_require__(237)\n , setToStringTag = __webpack_require__(136)\n , uid = __webpack_require__(171)\n , wks = __webpack_require__(39)\n , wksExt = __webpack_require__(241)\n , wksDefine = __webpack_require__(240)\n , keyOf = __webpack_require__(963)\n , enumKeys = __webpack_require__(960)\n , isArray = __webpack_require__(336)\n , anObject = __webpack_require__(94)\n , toIObject = __webpack_require__(78)\n , toPrimitive = __webpack_require__(239)\n , createDesc = __webpack_require__(135)\n , _create = __webpack_require__(233)\n , gOPNExt = __webpack_require__(340)\n , $GOPD = __webpack_require__(967)\n , $DP = __webpack_require__(56)\n , $keys = __webpack_require__(98)\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(341).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(134).f = $propertyIsEnumerable;\n __webpack_require__(234).f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !__webpack_require__(169)){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(77)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 984 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/tc39/proposal-object-values-entries\nvar $export = __webpack_require__(43)\n , $entries = __webpack_require__(344)(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it){\n return $entries(it);\n }\n});\n\n/***/ }),\n/* 985 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/tc39/proposal-object-values-entries\nvar $export = __webpack_require__(43)\n , $values = __webpack_require__(344)(false);\n\n$export($export.S, 'Object', {\n values: function values(it){\n return $values(it);\n }\n});\n\n/***/ }),\n/* 986 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = __webpack_require__(43);\n\n$export($export.P + $export.R, 'Set', {toJSON: __webpack_require__(957)('Set')});\n\n/***/ }),\n/* 987 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(240)('asyncIterator');\n\n/***/ }),\n/* 988 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(240)('observable');\n\n/***/ }),\n/* 989 */,\n/* 990 */,\n/* 991 */,\n/* 992 */,\n/* 993 */,\n/* 994 */,\n/* 995 */,\n/* 996 */,\n/* 997 */,\n/* 998 */,\n/* 999 */,\n/* 1000 */,\n/* 1001 */,\n/* 1002 */,\n/* 1003 */,\n/* 1004 */,\n/* 1005 */,\n/* 1006 */,\n/* 1007 */,\n/* 1008 */,\n/* 1009 */,\n/* 1010 */,\n/* 1011 */,\n/* 1012 */,\n/* 1013 */,\n/* 1014 */,\n/* 1015 */,\n/* 1016 */,\n/* 1017 */,\n/* 1018 */,\n/* 1019 */,\n/* 1020 */,\n/* 1021 */,\n/* 1022 */,\n/* 1023 */,\n/* 1024 */,\n/* 1025 */,\n/* 1026 */,\n/* 1027 */,\n/* 1028 */,\n/* 1029 */,\n/* 1030 */,\n/* 1031 */,\n/* 1032 */,\n/* 1033 */,\n/* 1034 */,\n/* 1035 */,\n/* 1036 */,\n/* 1037 */,\n/* 1038 */,\n/* 1039 */,\n/* 1040 */,\n/* 1041 */,\n/* 1042 */,\n/* 1043 */,\n/* 1044 */,\n/* 1045 */,\n/* 1046 */,\n/* 1047 */,\n/* 1048 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function(e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function(key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function(key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneIfNecessary(source, optionsArgument)\n } else if (sourceIsArray) {\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n return arrayMerge(target, source, optionsArgument)\n } else {\n return mergeObject(target, source, optionsArgument)\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements')\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function(prev, next) {\n return deepmerge(prev, next, optionsArgument)\n })\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n\n\n/***/ }),\n/* 1049 */\n/***/ (function(module, exports) {\n\n/**\n * Diff Match and Patch\n * Copyright 2018 The diff-match-patch Authors.\n * https://github.com/google/diff-match-patch\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Computes the difference between two texts to create a patch.\n * Applies the patch onto another text, allowing for errors.\n * @author fraser@google.com (Neil Fraser)\n */\n\n/**\n * Class containing the diff, match and patch methods.\n * @constructor\n */\nfunction diff_match_patch() {\n\n // Defaults.\n // Redefine these in your program to override the defaults.\n\n // Number of seconds to map a diff before giving up (0 for infinity).\n this.Diff_Timeout = 1.0;\n // Cost of an empty edit operation in terms of edit characters.\n this.Diff_EditCost = 4;\n // At what point is no match declared (0.0 = perfection, 1.0 = very loose).\n this.Match_Threshold = 0.5;\n // How far to search for a match (0 = exact location, 1000+ = broad match).\n // A match this many characters away from the expected location will add\n // 1.0 to the score (0.0 is a perfect match).\n this.Match_Distance = 1000;\n // When deleting a large block of text (over ~64 characters), how close do\n // the contents have to be to match the expected contents. (0.0 = perfection,\n // 1.0 = very loose). Note that Match_Threshold controls how closely the\n // end points of a delete need to match.\n this.Patch_DeleteThreshold = 0.5;\n // Chunk size for context length.\n this.Patch_Margin = 4;\n\n // The number of bits in an int.\n this.Match_MaxBits = 32;\n}\n\n\n// DIFF FUNCTIONS\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n/** @typedef {{0: number, 1: string}} */\ndiff_match_patch.Diff;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {boolean=} opt_checklines Optional speedup flag. If present and false,\n * then don't run a line-level diff first to identify the changed areas.\n * Defaults to true, which does a faster, slightly less optimal diff.\n * @param {number} opt_deadline Optional time when the diff should be complete\n * by. Used internally for recursive calls. Users should set DiffTimeout\n * instead.\n * @return {!Array.} Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_main = function(text1, text2, opt_checklines,\n opt_deadline) {\n // Set a deadline by which time the diff must be complete.\n if (typeof opt_deadline == 'undefined') {\n if (this.Diff_Timeout <= 0) {\n opt_deadline = Number.MAX_VALUE;\n } else {\n opt_deadline = (new Date).getTime() + this.Diff_Timeout * 1000;\n }\n }\n var deadline = opt_deadline;\n\n // Check for null inputs.\n if (text1 == null || text2 == null) {\n throw new Error('Null input. (diff_main)');\n }\n\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (typeof opt_checklines == 'undefined') {\n opt_checklines = true;\n }\n var checklines = opt_checklines;\n\n // Trim off common prefix (speedup).\n var commonlength = this.diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = this.diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = this.diff_compute_(text1, text2, checklines, deadline);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n this.diff_cleanupMerge(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {boolean} checklines Speedup flag. If false, then don't run a\n * line-level diff first to identify the changed areas.\n * If true, then run a faster, slightly less optimal diff.\n * @param {number} deadline Time when the diff should be complete by.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_compute_ = function(text1, text2, checklines,\n deadline) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = this.diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = this.diff_main(text1_a, text2_a, checklines, deadline);\n var diffs_b = this.diff_main(text1_b, text2_b, checklines, deadline);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n if (checklines && text1.length > 100 && text2.length > 100) {\n return this.diff_lineMode_(text1, text2, deadline);\n }\n\n return this.diff_bisect_(text1, text2, deadline);\n};\n\n\n/**\n * Do a quick line-level diff on both strings, then rediff the parts for\n * greater accuracy.\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} deadline Time when the diff should be complete by.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_lineMode_ = function(text1, text2, deadline) {\n // Scan the text on a line-by-line basis first.\n var a = this.diff_linesToChars_(text1, text2);\n text1 = a.chars1;\n text2 = a.chars2;\n var linearray = a.lineArray;\n\n var diffs = this.diff_main(text1, text2, false, deadline);\n\n // Convert the diff back to original text.\n this.diff_charsToLines_(diffs, linearray);\n // Eliminate freak matches (e.g. blank lines)\n this.diff_cleanupSemantic(diffs);\n\n // Rediff any replacement blocks, this time character-by-character.\n // Add a dummy entry at the end.\n diffs.push([DIFF_EQUAL, '']);\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete >= 1 && count_insert >= 1) {\n // Delete the offending records and add the merged ones.\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert);\n pointer = pointer - count_delete - count_insert;\n var a = this.diff_main(text_delete, text_insert, false, deadline);\n for (var j = a.length - 1; j >= 0; j--) {\n diffs.splice(pointer, 0, a[j]);\n }\n pointer = pointer + a.length;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n pointer++;\n }\n diffs.pop(); // Remove the dummy entry at the end.\n\n return diffs;\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} deadline Time at which to bail if not yet complete.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_bisect_ = function(text1, text2, deadline) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Bail out if deadline is reached.\n if ((new Date()).getTime() > deadline) {\n break;\n }\n\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return this.diff_bisectSplit_(text1, text2, x1, y1, deadline);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return this.diff_bisectSplit_(text1, text2, x1, y1, deadline);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @param {number} deadline Time at which to bail if not yet complete.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_bisectSplit_ = function(text1, text2, x, y,\n deadline) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = this.diff_main(text1a, text2a, false, deadline);\n var diffsb = this.diff_main(text1b, text2b, false, deadline);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Split two texts into an array of strings. Reduce the texts to a string of\n * hashes where each Unicode character represents one line.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {{chars1: string, chars2: string, lineArray: !Array.}}\n * An object containing the encoded text1, the encoded text2 and\n * the array of unique strings.\n * The zeroth element of the array of unique strings is intentionally blank.\n * @private\n */\ndiff_match_patch.prototype.diff_linesToChars_ = function(text1, text2) {\n var lineArray = []; // e.g. lineArray[4] == 'Hello\\n'\n var lineHash = {}; // e.g. lineHash['Hello\\n'] == 4\n\n // '\\x00' is a valid character, but various debuggers don't like it.\n // So we'll insert a junk entry to avoid generating a null character.\n lineArray[0] = '';\n\n /**\n * Split a text into an array of strings. Reduce the texts to a string of\n * hashes where each Unicode character represents one line.\n * Modifies linearray and linehash through being a closure.\n * @param {string} text String to encode.\n * @return {string} Encoded string.\n * @private\n */\n function diff_linesToCharsMunge_(text) {\n var chars = '';\n // Walk the text, pulling out a substring for each line.\n // text.split('\\n') would would temporarily double our memory footprint.\n // Modifying text would create many large strings to garbage collect.\n var lineStart = 0;\n var lineEnd = -1;\n // Keeping our own length variable is faster than looking it up.\n var lineArrayLength = lineArray.length;\n while (lineEnd < text.length - 1) {\n lineEnd = text.indexOf('\\n', lineStart);\n if (lineEnd == -1) {\n lineEnd = text.length - 1;\n }\n var line = text.substring(lineStart, lineEnd + 1);\n lineStart = lineEnd + 1;\n\n if (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) :\n (lineHash[line] !== undefined)) {\n chars += String.fromCharCode(lineHash[line]);\n } else {\n chars += String.fromCharCode(lineArrayLength);\n lineHash[line] = lineArrayLength;\n lineArray[lineArrayLength++] = line;\n }\n }\n return chars;\n }\n\n var chars1 = diff_linesToCharsMunge_(text1);\n var chars2 = diff_linesToCharsMunge_(text2);\n return {chars1: chars1, chars2: chars2, lineArray: lineArray};\n};\n\n\n/**\n * Rehydrate the text in a diff from a string of line hashes to real lines of\n * text.\n * @param {!Array.} diffs Array of diff tuples.\n * @param {!Array.} lineArray Array of unique strings.\n * @private\n */\ndiff_match_patch.prototype.diff_charsToLines_ = function(diffs, lineArray) {\n for (var x = 0; x < diffs.length; x++) {\n var chars = diffs[x][1];\n var text = [];\n for (var y = 0; y < chars.length; y++) {\n text[y] = lineArray[chars.charCodeAt(y)];\n }\n diffs[x][1] = text.join('');\n }\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\ndiff_match_patch.prototype.diff_commonPrefix = function(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\ndiff_match_patch.prototype.diff_commonSuffix = function(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine if the suffix of one string is the prefix of another.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of the first\n * string and the start of the second string.\n * @private\n */\ndiff_match_patch.prototype.diff_commonOverlap_ = function(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n // Eliminate the null case.\n if (text1_length == 0 || text2_length == 0) {\n return 0;\n }\n // Truncate the longer string.\n if (text1_length > text2_length) {\n text1 = text1.substring(text1_length - text2_length);\n } else if (text1_length < text2_length) {\n text2 = text2.substring(0, text1_length);\n }\n var text_length = Math.min(text1_length, text2_length);\n // Quick check for the worst case.\n if (text1 == text2) {\n return text_length;\n }\n\n // Start by looking for a single character match\n // and increase length until no match is found.\n // Performance analysis: http://neil.fraser.name/news/2010/11/04/\n var best = 0;\n var length = 1;\n while (true) {\n var pattern = text1.substring(text_length - length);\n var found = text2.indexOf(pattern);\n if (found == -1) {\n return best;\n }\n length += found;\n if (found == 0 || text1.substring(text_length - length) ==\n text2.substring(0, length)) {\n best = length;\n length++;\n }\n }\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n * @private\n */\ndiff_match_patch.prototype.diff_halfMatch_ = function(text1, text2) {\n if (this.Diff_Timeout <= 0) {\n // Don't risk returning a non-optimal diff if we have unlimited time.\n return null;\n }\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n var dmp = this; // 'this' becomes 'window' in a closure.\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = dmp.diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = dmp.diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reduce the number of edits by eliminating semantically trivial equalities.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupSemantic = function(diffs) {\n var changes = false;\n var equalities = []; // Stack of indices where equalities are found.\n var equalitiesLength = 0; // Keeping our own length var is faster in JS.\n /** @type {?string} */\n var lastequality = null;\n // Always equal to diffs[equalities[equalitiesLength - 1]][1]\n var pointer = 0; // Index of current position.\n // Number of characters that changed prior to the equality.\n var length_insertions1 = 0;\n var length_deletions1 = 0;\n // Number of characters that changed after the equality.\n var length_insertions2 = 0;\n var length_deletions2 = 0;\n while (pointer < diffs.length) {\n if (diffs[pointer][0] == DIFF_EQUAL) { // Equality found.\n equalities[equalitiesLength++] = pointer;\n length_insertions1 = length_insertions2;\n length_deletions1 = length_deletions2;\n length_insertions2 = 0;\n length_deletions2 = 0;\n lastequality = diffs[pointer][1];\n } else { // An insertion or deletion.\n if (diffs[pointer][0] == DIFF_INSERT) {\n length_insertions2 += diffs[pointer][1].length;\n } else {\n length_deletions2 += diffs[pointer][1].length;\n }\n // Eliminate an equality that is smaller or equal to the edits on both\n // sides of it.\n if (lastequality && (lastequality.length <=\n Math.max(length_insertions1, length_deletions1)) &&\n (lastequality.length <= Math.max(length_insertions2,\n length_deletions2))) {\n // Duplicate record.\n diffs.splice(equalities[equalitiesLength - 1], 0,\n [DIFF_DELETE, lastequality]);\n // Change second copy to insert.\n diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;\n // Throw away the equality we just deleted.\n equalitiesLength--;\n // Throw away the previous equality (it needs to be reevaluated).\n equalitiesLength--;\n pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1;\n length_insertions1 = 0; // Reset the counters.\n length_deletions1 = 0;\n length_insertions2 = 0;\n length_deletions2 = 0;\n lastequality = null;\n changes = true;\n }\n }\n pointer++;\n }\n\n // Normalize the diff.\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n this.diff_cleanupSemanticLossless(diffs);\n\n // Find any overlaps between deletions and insertions.\n // e.g: abcxxxxxxdef\n // -> abcxxxdef\n // e.g: xxxabcdefxxx\n // -> defxxxabc\n // Only extract an overlap if it is as big as the edit ahead or behind it.\n pointer = 1;\n while (pointer < diffs.length) {\n if (diffs[pointer - 1][0] == DIFF_DELETE &&\n diffs[pointer][0] == DIFF_INSERT) {\n var deletion = diffs[pointer - 1][1];\n var insertion = diffs[pointer][1];\n var overlap_length1 = this.diff_commonOverlap_(deletion, insertion);\n var overlap_length2 = this.diff_commonOverlap_(insertion, deletion);\n if (overlap_length1 >= overlap_length2) {\n if (overlap_length1 >= deletion.length / 2 ||\n overlap_length1 >= insertion.length / 2) {\n // Overlap found. Insert an equality and trim the surrounding edits.\n diffs.splice(pointer, 0,\n [DIFF_EQUAL, insertion.substring(0, overlap_length1)]);\n diffs[pointer - 1][1] =\n deletion.substring(0, deletion.length - overlap_length1);\n diffs[pointer + 1][1] = insertion.substring(overlap_length1);\n pointer++;\n }\n } else {\n if (overlap_length2 >= deletion.length / 2 ||\n overlap_length2 >= insertion.length / 2) {\n // Reverse overlap found.\n // Insert an equality and swap and trim the surrounding edits.\n diffs.splice(pointer, 0,\n [DIFF_EQUAL, deletion.substring(0, overlap_length2)]);\n diffs[pointer - 1][0] = DIFF_INSERT;\n diffs[pointer - 1][1] =\n insertion.substring(0, insertion.length - overlap_length2);\n diffs[pointer + 1][0] = DIFF_DELETE;\n diffs[pointer + 1][1] =\n deletion.substring(overlap_length2);\n pointer++;\n }\n }\n pointer++;\n }\n pointer++;\n }\n};\n\n\n/**\n * Look for single edits surrounded on both sides by equalities\n * which can be shifted sideways to align the edit to a word boundary.\n * e.g: The cat came. -> The cat came.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupSemanticLossless = function(diffs) {\n /**\n * Given two strings, compute a score representing whether the internal\n * boundary falls on logical boundaries.\n * Scores range from 6 (best) to 0 (worst).\n * Closure, but does not reference any external variables.\n * @param {string} one First string.\n * @param {string} two Second string.\n * @return {number} The score.\n * @private\n */\n function diff_cleanupSemanticScore_(one, two) {\n if (!one || !two) {\n // Edges are the best.\n return 6;\n }\n\n // Each port of this function behaves slightly differently due to\n // subtle differences in each language's definition of things like\n // 'whitespace'. Since this function's purpose is largely cosmetic,\n // the choice has been made to use each language's native features\n // rather than force total conformity.\n var char1 = one.charAt(one.length - 1);\n var char2 = two.charAt(0);\n var nonAlphaNumeric1 = char1.match(diff_match_patch.nonAlphaNumericRegex_);\n var nonAlphaNumeric2 = char2.match(diff_match_patch.nonAlphaNumericRegex_);\n var whitespace1 = nonAlphaNumeric1 &&\n char1.match(diff_match_patch.whitespaceRegex_);\n var whitespace2 = nonAlphaNumeric2 &&\n char2.match(diff_match_patch.whitespaceRegex_);\n var lineBreak1 = whitespace1 &&\n char1.match(diff_match_patch.linebreakRegex_);\n var lineBreak2 = whitespace2 &&\n char2.match(diff_match_patch.linebreakRegex_);\n var blankLine1 = lineBreak1 &&\n one.match(diff_match_patch.blanklineEndRegex_);\n var blankLine2 = lineBreak2 &&\n two.match(diff_match_patch.blanklineStartRegex_);\n\n if (blankLine1 || blankLine2) {\n // Five points for blank lines.\n return 5;\n } else if (lineBreak1 || lineBreak2) {\n // Four points for line breaks.\n return 4;\n } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) {\n // Three points for end of sentences.\n return 3;\n } else if (whitespace1 || whitespace2) {\n // Two points for whitespace.\n return 2;\n } else if (nonAlphaNumeric1 || nonAlphaNumeric2) {\n // One point for non-alphanumeric.\n return 1;\n }\n return 0;\n }\n\n var pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n var equality1 = diffs[pointer - 1][1];\n var edit = diffs[pointer][1];\n var equality2 = diffs[pointer + 1][1];\n\n // First, shift the edit as far left as possible.\n var commonOffset = this.diff_commonSuffix(equality1, edit);\n if (commonOffset) {\n var commonString = edit.substring(edit.length - commonOffset);\n equality1 = equality1.substring(0, equality1.length - commonOffset);\n edit = commonString + edit.substring(0, edit.length - commonOffset);\n equality2 = commonString + equality2;\n }\n\n // Second, step character by character right, looking for the best fit.\n var bestEquality1 = equality1;\n var bestEdit = edit;\n var bestEquality2 = equality2;\n var bestScore = diff_cleanupSemanticScore_(equality1, edit) +\n diff_cleanupSemanticScore_(edit, equality2);\n while (edit.charAt(0) === equality2.charAt(0)) {\n equality1 += edit.charAt(0);\n edit = edit.substring(1) + equality2.charAt(0);\n equality2 = equality2.substring(1);\n var score = diff_cleanupSemanticScore_(equality1, edit) +\n diff_cleanupSemanticScore_(edit, equality2);\n // The >= encourages trailing rather than leading whitespace on edits.\n if (score >= bestScore) {\n bestScore = score;\n bestEquality1 = equality1;\n bestEdit = edit;\n bestEquality2 = equality2;\n }\n }\n\n if (diffs[pointer - 1][1] != bestEquality1) {\n // We have an improvement, save it back to the diff.\n if (bestEquality1) {\n diffs[pointer - 1][1] = bestEquality1;\n } else {\n diffs.splice(pointer - 1, 1);\n pointer--;\n }\n diffs[pointer][1] = bestEdit;\n if (bestEquality2) {\n diffs[pointer + 1][1] = bestEquality2;\n } else {\n diffs.splice(pointer + 1, 1);\n pointer--;\n }\n }\n }\n pointer++;\n }\n};\n\n// Define some regex patterns for matching boundaries.\ndiff_match_patch.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/;\ndiff_match_patch.whitespaceRegex_ = /\\s/;\ndiff_match_patch.linebreakRegex_ = /[\\r\\n]/;\ndiff_match_patch.blanklineEndRegex_ = /\\n\\r?\\n$/;\ndiff_match_patch.blanklineStartRegex_ = /^\\r?\\n\\r?\\n/;\n\n/**\n * Reduce the number of edits by eliminating operationally trivial equalities.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupEfficiency = function(diffs) {\n var changes = false;\n var equalities = []; // Stack of indices where equalities are found.\n var equalitiesLength = 0; // Keeping our own length var is faster in JS.\n /** @type {?string} */\n var lastequality = null;\n // Always equal to diffs[equalities[equalitiesLength - 1]][1]\n var pointer = 0; // Index of current position.\n // Is there an insertion operation before the last equality.\n var pre_ins = false;\n // Is there a deletion operation before the last equality.\n var pre_del = false;\n // Is there an insertion operation after the last equality.\n var post_ins = false;\n // Is there a deletion operation after the last equality.\n var post_del = false;\n while (pointer < diffs.length) {\n if (diffs[pointer][0] == DIFF_EQUAL) { // Equality found.\n if (diffs[pointer][1].length < this.Diff_EditCost &&\n (post_ins || post_del)) {\n // Candidate found.\n equalities[equalitiesLength++] = pointer;\n pre_ins = post_ins;\n pre_del = post_del;\n lastequality = diffs[pointer][1];\n } else {\n // Not a candidate, and can never become one.\n equalitiesLength = 0;\n lastequality = null;\n }\n post_ins = post_del = false;\n } else { // An insertion or deletion.\n if (diffs[pointer][0] == DIFF_DELETE) {\n post_del = true;\n } else {\n post_ins = true;\n }\n /*\n * Five types to be split:\n * ABXYCD\n * AXCD\n * ABXC\n * AXCD\n * ABXC\n */\n if (lastequality && ((pre_ins && pre_del && post_ins && post_del) ||\n ((lastequality.length < this.Diff_EditCost / 2) &&\n (pre_ins + pre_del + post_ins + post_del) == 3))) {\n // Duplicate record.\n diffs.splice(equalities[equalitiesLength - 1], 0,\n [DIFF_DELETE, lastequality]);\n // Change second copy to insert.\n diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;\n equalitiesLength--; // Throw away the equality we just deleted;\n lastequality = null;\n if (pre_ins && pre_del) {\n // No changes made which could affect previous entry, keep going.\n post_ins = post_del = true;\n equalitiesLength = 0;\n } else {\n equalitiesLength--; // Throw away the previous equality.\n pointer = equalitiesLength > 0 ?\n equalities[equalitiesLength - 1] : -1;\n post_ins = post_del = false;\n }\n changes = true;\n }\n }\n pointer++;\n }\n\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupMerge = function(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = this.diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = this.diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n};\n\n\n/**\n * loc is a location in text1, compute and return the equivalent location in\n * text2.\n * e.g. 'The cat' vs 'The big cat', 1->1, 5->8\n * @param {!Array.} diffs Array of diff tuples.\n * @param {number} loc Location within text1.\n * @return {number} Location within text2.\n */\ndiff_match_patch.prototype.diff_xIndex = function(diffs, loc) {\n var chars1 = 0;\n var chars2 = 0;\n var last_chars1 = 0;\n var last_chars2 = 0;\n var x;\n for (x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_INSERT) { // Equality or deletion.\n chars1 += diffs[x][1].length;\n }\n if (diffs[x][0] !== DIFF_DELETE) { // Equality or insertion.\n chars2 += diffs[x][1].length;\n }\n if (chars1 > loc) { // Overshot the location.\n break;\n }\n last_chars1 = chars1;\n last_chars2 = chars2;\n }\n // Was the location was deleted?\n if (diffs.length != x && diffs[x][0] === DIFF_DELETE) {\n return last_chars2;\n }\n // Add the remaining character length.\n return last_chars2 + (loc - last_chars1);\n};\n\n\n/**\n * Convert a diff array into a pretty HTML report.\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} HTML representation.\n */\ndiff_match_patch.prototype.diff_prettyHtml = function(diffs) {\n var html = [];\n var pattern_amp = /&/g;\n var pattern_lt = //g;\n var pattern_para = /\\n/g;\n for (var x = 0; x < diffs.length; x++) {\n var op = diffs[x][0]; // Operation (insert, delete, equal)\n var data = diffs[x][1]; // Text of change.\n var text = data.replace(pattern_amp, '&').replace(pattern_lt, '<')\n .replace(pattern_gt, '>').replace(pattern_para, '¶
');\n switch (op) {\n case DIFF_INSERT:\n html[x] = '' + text + '';\n break;\n case DIFF_DELETE:\n html[x] = '' + text + '';\n break;\n case DIFF_EQUAL:\n html[x] = '' + text + '';\n break;\n }\n }\n return html.join('');\n};\n\n\n/**\n * Compute and return the source text (all equalities and deletions).\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} Source text.\n */\ndiff_match_patch.prototype.diff_text1 = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_INSERT) {\n text[x] = diffs[x][1];\n }\n }\n return text.join('');\n};\n\n\n/**\n * Compute and return the destination text (all equalities and insertions).\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} Destination text.\n */\ndiff_match_patch.prototype.diff_text2 = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_DELETE) {\n text[x] = diffs[x][1];\n }\n }\n return text.join('');\n};\n\n\n/**\n * Compute the Levenshtein distance; the number of inserted, deleted or\n * substituted characters.\n * @param {!Array.} diffs Array of diff tuples.\n * @return {number} Number of changes.\n */\ndiff_match_patch.prototype.diff_levenshtein = function(diffs) {\n var levenshtein = 0;\n var insertions = 0;\n var deletions = 0;\n for (var x = 0; x < diffs.length; x++) {\n var op = diffs[x][0];\n var data = diffs[x][1];\n switch (op) {\n case DIFF_INSERT:\n insertions += data.length;\n break;\n case DIFF_DELETE:\n deletions += data.length;\n break;\n case DIFF_EQUAL:\n // A deletion and an insertion is one substitution.\n levenshtein += Math.max(insertions, deletions);\n insertions = 0;\n deletions = 0;\n break;\n }\n }\n levenshtein += Math.max(insertions, deletions);\n return levenshtein;\n};\n\n\n/**\n * Crush the diff into an encoded string which describes the operations\n * required to transform text1 into text2.\n * E.g. =3\\t-2\\t+ing -> Keep 3 chars, delete 2 chars, insert 'ing'.\n * Operations are tab-separated. Inserted text is escaped using %xx notation.\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} Delta text.\n */\ndiff_match_patch.prototype.diff_toDelta = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n switch (diffs[x][0]) {\n case DIFF_INSERT:\n text[x] = '+' + encodeURI(diffs[x][1]);\n break;\n case DIFF_DELETE:\n text[x] = '-' + diffs[x][1].length;\n break;\n case DIFF_EQUAL:\n text[x] = '=' + diffs[x][1].length;\n break;\n }\n }\n return text.join('\\t').replace(/%20/g, ' ');\n};\n\n\n/**\n * Given the original text1, and an encoded string which describes the\n * operations required to transform text1 into text2, compute the full diff.\n * @param {string} text1 Source string for the diff.\n * @param {string} delta Delta text.\n * @return {!Array.} Array of diff tuples.\n * @throws {!Error} If invalid input.\n */\ndiff_match_patch.prototype.diff_fromDelta = function(text1, delta) {\n var diffs = [];\n var diffsLength = 0; // Keeping our own length var is faster in JS.\n var pointer = 0; // Cursor in text1\n var tokens = delta.split(/\\t/g);\n for (var x = 0; x < tokens.length; x++) {\n // Each token begins with a one character parameter which specifies the\n // operation of this token (delete, insert, equality).\n var param = tokens[x].substring(1);\n switch (tokens[x].charAt(0)) {\n case '+':\n try {\n diffs[diffsLength++] = [DIFF_INSERT, decodeURI(param)];\n } catch (ex) {\n // Malformed URI sequence.\n throw new Error('Illegal escape in diff_fromDelta: ' + param);\n }\n break;\n case '-':\n // Fall through.\n case '=':\n var n = parseInt(param, 10);\n if (isNaN(n) || n < 0) {\n throw new Error('Invalid number in diff_fromDelta: ' + param);\n }\n var text = text1.substring(pointer, pointer += n);\n if (tokens[x].charAt(0) == '=') {\n diffs[diffsLength++] = [DIFF_EQUAL, text];\n } else {\n diffs[diffsLength++] = [DIFF_DELETE, text];\n }\n break;\n default:\n // Blank tokens are ok (from a trailing \\t).\n // Anything else is an error.\n if (tokens[x]) {\n throw new Error('Invalid diff operation in diff_fromDelta: ' +\n tokens[x]);\n }\n }\n }\n if (pointer != text1.length) {\n throw new Error('Delta length (' + pointer +\n ') does not equal source text length (' + text1.length + ').');\n }\n return diffs;\n};\n\n\n// MATCH FUNCTIONS\n\n\n/**\n * Locate the best instance of 'pattern' in 'text' near 'loc'.\n * @param {string} text The text to search.\n * @param {string} pattern The pattern to search for.\n * @param {number} loc The location to search around.\n * @return {number} Best match index or -1.\n */\ndiff_match_patch.prototype.match_main = function(text, pattern, loc) {\n // Check for null inputs.\n if (text == null || pattern == null || loc == null) {\n throw new Error('Null input. (match_main)');\n }\n\n loc = Math.max(0, Math.min(loc, text.length));\n if (text == pattern) {\n // Shortcut (potentially not guaranteed by the algorithm)\n return 0;\n } else if (!text.length) {\n // Nothing to match.\n return -1;\n } else if (text.substring(loc, loc + pattern.length) == pattern) {\n // Perfect match at the perfect spot! (Includes case of null pattern)\n return loc;\n } else {\n // Do a fuzzy compare.\n return this.match_bitap_(text, pattern, loc);\n }\n};\n\n\n/**\n * Locate the best instance of 'pattern' in 'text' near 'loc' using the\n * Bitap algorithm.\n * @param {string} text The text to search.\n * @param {string} pattern The pattern to search for.\n * @param {number} loc The location to search around.\n * @return {number} Best match index or -1.\n * @private\n */\ndiff_match_patch.prototype.match_bitap_ = function(text, pattern, loc) {\n if (pattern.length > this.Match_MaxBits) {\n throw new Error('Pattern too long for this browser.');\n }\n\n // Initialise the alphabet.\n var s = this.match_alphabet_(pattern);\n\n var dmp = this; // 'this' becomes 'window' in a closure.\n\n /**\n * Compute and return the score for a match with e errors and x location.\n * Accesses loc and pattern through being a closure.\n * @param {number} e Number of errors in match.\n * @param {number} x Location of match.\n * @return {number} Overall score for match (0.0 = good, 1.0 = bad).\n * @private\n */\n function match_bitapScore_(e, x) {\n var accuracy = e / pattern.length;\n var proximity = Math.abs(loc - x);\n if (!dmp.Match_Distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy;\n }\n return accuracy + (proximity / dmp.Match_Distance);\n }\n\n // Highest score beyond which we give up.\n var score_threshold = this.Match_Threshold;\n // Is there a nearby exact match? (speedup)\n var best_loc = text.indexOf(pattern, loc);\n if (best_loc != -1) {\n score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold);\n // What about in the other direction? (speedup)\n best_loc = text.lastIndexOf(pattern, loc + pattern.length);\n if (best_loc != -1) {\n score_threshold =\n Math.min(match_bitapScore_(0, best_loc), score_threshold);\n }\n }\n\n // Initialise the bit arrays.\n var matchmask = 1 << (pattern.length - 1);\n best_loc = -1;\n\n var bin_min, bin_mid;\n var bin_max = pattern.length + text.length;\n var last_rd;\n for (var d = 0; d < pattern.length; d++) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from 'loc' we can stray at this\n // error level.\n bin_min = 0;\n bin_mid = bin_max;\n while (bin_min < bin_mid) {\n if (match_bitapScore_(d, loc + bin_mid) <= score_threshold) {\n bin_min = bin_mid;\n } else {\n bin_max = bin_mid;\n }\n bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min);\n }\n // Use the result from this iteration as the maximum for the next.\n bin_max = bin_mid;\n var start = Math.max(1, loc - bin_mid + 1);\n var finish = Math.min(loc + bin_mid, text.length) + pattern.length;\n\n var rd = Array(finish + 2);\n rd[finish + 1] = (1 << d) - 1;\n for (var j = finish; j >= start; j--) {\n // The alphabet (s) is a sparse hash, so the following line generates\n // warnings.\n var charMatch = s[text.charAt(j - 1)];\n if (d === 0) { // First pass: exact match.\n rd[j] = ((rd[j + 1] << 1) | 1) & charMatch;\n } else { // Subsequent passes: fuzzy match.\n rd[j] = (((rd[j + 1] << 1) | 1) & charMatch) |\n (((last_rd[j + 1] | last_rd[j]) << 1) | 1) |\n last_rd[j + 1];\n }\n if (rd[j] & matchmask) {\n var score = match_bitapScore_(d, j - 1);\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (score <= score_threshold) {\n // Told you so.\n score_threshold = score;\n best_loc = j - 1;\n if (best_loc > loc) {\n // When passing loc, don't exceed our current distance from loc.\n start = Math.max(1, 2 * loc - best_loc);\n } else {\n // Already passed loc, downhill from here on in.\n break;\n }\n }\n }\n }\n // No hope for a (better) match at greater error levels.\n if (match_bitapScore_(d + 1, loc) > score_threshold) {\n break;\n }\n last_rd = rd;\n }\n return best_loc;\n};\n\n\n/**\n * Initialise the alphabet for the Bitap algorithm.\n * @param {string} pattern The text to encode.\n * @return {!Object} Hash of character locations.\n * @private\n */\ndiff_match_patch.prototype.match_alphabet_ = function(pattern) {\n var s = {};\n for (var i = 0; i < pattern.length; i++) {\n s[pattern.charAt(i)] = 0;\n }\n for (var i = 0; i < pattern.length; i++) {\n s[pattern.charAt(i)] |= 1 << (pattern.length - i - 1);\n }\n return s;\n};\n\n\n// PATCH FUNCTIONS\n\n\n/**\n * Increase the context until it is unique,\n * but don't let the pattern expand beyond Match_MaxBits.\n * @param {!diff_match_patch.patch_obj} patch The patch to grow.\n * @param {string} text Source text.\n * @private\n */\ndiff_match_patch.prototype.patch_addContext_ = function(patch, text) {\n if (text.length == 0) {\n return;\n }\n var pattern = text.substring(patch.start2, patch.start2 + patch.length1);\n var padding = 0;\n\n // Look for the first and last matches of pattern in text. If two different\n // matches are found, increase the pattern length.\n while (text.indexOf(pattern) != text.lastIndexOf(pattern) &&\n pattern.length < this.Match_MaxBits - this.Patch_Margin -\n this.Patch_Margin) {\n padding += this.Patch_Margin;\n pattern = text.substring(patch.start2 - padding,\n patch.start2 + patch.length1 + padding);\n }\n // Add one chunk for good luck.\n padding += this.Patch_Margin;\n\n // Add the prefix.\n var prefix = text.substring(patch.start2 - padding, patch.start2);\n if (prefix) {\n patch.diffs.unshift([DIFF_EQUAL, prefix]);\n }\n // Add the suffix.\n var suffix = text.substring(patch.start2 + patch.length1,\n patch.start2 + patch.length1 + padding);\n if (suffix) {\n patch.diffs.push([DIFF_EQUAL, suffix]);\n }\n\n // Roll back the start points.\n patch.start1 -= prefix.length;\n patch.start2 -= prefix.length;\n // Extend the lengths.\n patch.length1 += prefix.length + suffix.length;\n patch.length2 += prefix.length + suffix.length;\n};\n\n\n/**\n * Compute a list of patches to turn text1 into text2.\n * Use diffs if provided, otherwise compute it ourselves.\n * There are four ways to call this function, depending on what data is\n * available to the caller:\n * Method 1:\n * a = text1, b = text2\n * Method 2:\n * a = diffs\n * Method 3 (optimal):\n * a = text1, b = diffs\n * Method 4 (deprecated, use method 3):\n * a = text1, b = text2, c = diffs\n *\n * @param {string|!Array.} a text1 (methods 1,3,4) or\n * Array of diff tuples for text1 to text2 (method 2).\n * @param {string|!Array.} opt_b text2 (methods 1,4) or\n * Array of diff tuples for text1 to text2 (method 3) or undefined (method 2).\n * @param {string|!Array.} opt_c Array of diff tuples\n * for text1 to text2 (method 4) or undefined (methods 1,2,3).\n * @return {!Array.} Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_make = function(a, opt_b, opt_c) {\n var text1, diffs;\n if (typeof a == 'string' && typeof opt_b == 'string' &&\n typeof opt_c == 'undefined') {\n // Method 1: text1, text2\n // Compute diffs from text1 and text2.\n text1 = /** @type {string} */(a);\n diffs = this.diff_main(text1, /** @type {string} */(opt_b), true);\n if (diffs.length > 2) {\n this.diff_cleanupSemantic(diffs);\n this.diff_cleanupEfficiency(diffs);\n }\n } else if (a && typeof a == 'object' && typeof opt_b == 'undefined' &&\n typeof opt_c == 'undefined') {\n // Method 2: diffs\n // Compute text1 from diffs.\n diffs = /** @type {!Array.} */(a);\n text1 = this.diff_text1(diffs);\n } else if (typeof a == 'string' && opt_b && typeof opt_b == 'object' &&\n typeof opt_c == 'undefined') {\n // Method 3: text1, diffs\n text1 = /** @type {string} */(a);\n diffs = /** @type {!Array.} */(opt_b);\n } else if (typeof a == 'string' && typeof opt_b == 'string' &&\n opt_c && typeof opt_c == 'object') {\n // Method 4: text1, text2, diffs\n // text2 is not used.\n text1 = /** @type {string} */(a);\n diffs = /** @type {!Array.} */(opt_c);\n } else {\n throw new Error('Unknown call format to patch_make.');\n }\n\n if (diffs.length === 0) {\n return []; // Get rid of the null case.\n }\n var patches = [];\n var patch = new diff_match_patch.patch_obj();\n var patchDiffLength = 0; // Keeping our own length var is faster in JS.\n var char_count1 = 0; // Number of characters into the text1 string.\n var char_count2 = 0; // Number of characters into the text2 string.\n // Start with text1 (prepatch_text) and apply the diffs until we arrive at\n // text2 (postpatch_text). We recreate the patches one by one to determine\n // context info.\n var prepatch_text = text1;\n var postpatch_text = text1;\n for (var x = 0; x < diffs.length; x++) {\n var diff_type = diffs[x][0];\n var diff_text = diffs[x][1];\n\n if (!patchDiffLength && diff_type !== DIFF_EQUAL) {\n // A new patch starts here.\n patch.start1 = char_count1;\n patch.start2 = char_count2;\n }\n\n switch (diff_type) {\n case DIFF_INSERT:\n patch.diffs[patchDiffLength++] = diffs[x];\n patch.length2 += diff_text.length;\n postpatch_text = postpatch_text.substring(0, char_count2) + diff_text +\n postpatch_text.substring(char_count2);\n break;\n case DIFF_DELETE:\n patch.length1 += diff_text.length;\n patch.diffs[patchDiffLength++] = diffs[x];\n postpatch_text = postpatch_text.substring(0, char_count2) +\n postpatch_text.substring(char_count2 +\n diff_text.length);\n break;\n case DIFF_EQUAL:\n if (diff_text.length <= 2 * this.Patch_Margin &&\n patchDiffLength && diffs.length != x + 1) {\n // Small equality inside a patch.\n patch.diffs[patchDiffLength++] = diffs[x];\n patch.length1 += diff_text.length;\n patch.length2 += diff_text.length;\n } else if (diff_text.length >= 2 * this.Patch_Margin) {\n // Time for a new patch.\n if (patchDiffLength) {\n this.patch_addContext_(patch, prepatch_text);\n patches.push(patch);\n patch = new diff_match_patch.patch_obj();\n patchDiffLength = 0;\n // Unlike Unidiff, our patch lists have a rolling context.\n // http://code.google.com/p/google-diff-match-patch/wiki/Unidiff\n // Update prepatch text & pos to reflect the application of the\n // just completed patch.\n prepatch_text = postpatch_text;\n char_count1 = char_count2;\n }\n }\n break;\n }\n\n // Update the current character count.\n if (diff_type !== DIFF_INSERT) {\n char_count1 += diff_text.length;\n }\n if (diff_type !== DIFF_DELETE) {\n char_count2 += diff_text.length;\n }\n }\n // Pick up the leftover patch if not empty.\n if (patchDiffLength) {\n this.patch_addContext_(patch, prepatch_text);\n patches.push(patch);\n }\n\n return patches;\n};\n\n\n/**\n * Given an array of patches, return another array that is identical.\n * @param {!Array.} patches Array of Patch objects.\n * @return {!Array.} Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_deepCopy = function(patches) {\n // Making deep copies is hard in JavaScript.\n var patchesCopy = [];\n for (var x = 0; x < patches.length; x++) {\n var patch = patches[x];\n var patchCopy = new diff_match_patch.patch_obj();\n patchCopy.diffs = [];\n for (var y = 0; y < patch.diffs.length; y++) {\n patchCopy.diffs[y] = patch.diffs[y].slice();\n }\n patchCopy.start1 = patch.start1;\n patchCopy.start2 = patch.start2;\n patchCopy.length1 = patch.length1;\n patchCopy.length2 = patch.length2;\n patchesCopy[x] = patchCopy;\n }\n return patchesCopy;\n};\n\n\n/**\n * Merge a set of patches onto the text. Return a patched text, as well\n * as a list of true/false values indicating which patches were applied.\n * @param {!Array.} patches Array of Patch objects.\n * @param {string} text Old text.\n * @return {!Array.>} Two element Array, containing the\n * new text and an array of boolean values.\n */\ndiff_match_patch.prototype.patch_apply = function(patches, text) {\n if (patches.length == 0) {\n return [text, []];\n }\n\n // Deep copy the patches so that no changes are made to originals.\n patches = this.patch_deepCopy(patches);\n\n var nullPadding = this.patch_addPadding(patches);\n text = nullPadding + text + nullPadding;\n\n this.patch_splitMax(patches);\n // delta keeps track of the offset between the expected and actual location\n // of the previous patch. If there are patches expected at positions 10 and\n // 20, but the first patch was found at 12, delta is 2 and the second patch\n // has an effective expected position of 22.\n var delta = 0;\n var results = [];\n for (var x = 0; x < patches.length; x++) {\n var expected_loc = patches[x].start2 + delta;\n var text1 = this.diff_text1(patches[x].diffs);\n var start_loc;\n var end_loc = -1;\n if (text1.length > this.Match_MaxBits) {\n // patch_splitMax will only provide an oversized pattern in the case of\n // a monster delete.\n start_loc = this.match_main(text, text1.substring(0, this.Match_MaxBits),\n expected_loc);\n if (start_loc != -1) {\n end_loc = this.match_main(text,\n text1.substring(text1.length - this.Match_MaxBits),\n expected_loc + text1.length - this.Match_MaxBits);\n if (end_loc == -1 || start_loc >= end_loc) {\n // Can't find valid trailing context. Drop this patch.\n start_loc = -1;\n }\n }\n } else {\n start_loc = this.match_main(text, text1, expected_loc);\n }\n if (start_loc == -1) {\n // No match found. :(\n results[x] = false;\n // Subtract the delta for this failed patch from subsequent patches.\n delta -= patches[x].length2 - patches[x].length1;\n } else {\n // Found a match. :)\n results[x] = true;\n delta = start_loc - expected_loc;\n var text2;\n if (end_loc == -1) {\n text2 = text.substring(start_loc, start_loc + text1.length);\n } else {\n text2 = text.substring(start_loc, end_loc + this.Match_MaxBits);\n }\n if (text1 == text2) {\n // Perfect match, just shove the replacement text in.\n text = text.substring(0, start_loc) +\n this.diff_text2(patches[x].diffs) +\n text.substring(start_loc + text1.length);\n } else {\n // Imperfect match. Run a diff to get a framework of equivalent\n // indices.\n var diffs = this.diff_main(text1, text2, false);\n if (text1.length > this.Match_MaxBits &&\n this.diff_levenshtein(diffs) / text1.length >\n this.Patch_DeleteThreshold) {\n // The end points match, but the content is unacceptably bad.\n results[x] = false;\n } else {\n this.diff_cleanupSemanticLossless(diffs);\n var index1 = 0;\n var index2;\n for (var y = 0; y < patches[x].diffs.length; y++) {\n var mod = patches[x].diffs[y];\n if (mod[0] !== DIFF_EQUAL) {\n index2 = this.diff_xIndex(diffs, index1);\n }\n if (mod[0] === DIFF_INSERT) { // Insertion\n text = text.substring(0, start_loc + index2) + mod[1] +\n text.substring(start_loc + index2);\n } else if (mod[0] === DIFF_DELETE) { // Deletion\n text = text.substring(0, start_loc + index2) +\n text.substring(start_loc + this.diff_xIndex(diffs,\n index1 + mod[1].length));\n }\n if (mod[0] !== DIFF_DELETE) {\n index1 += mod[1].length;\n }\n }\n }\n }\n }\n }\n // Strip the padding off.\n text = text.substring(nullPadding.length, text.length - nullPadding.length);\n return [text, results];\n};\n\n\n/**\n * Add some padding on text start and end so that edges can match something.\n * Intended to be called only from within patch_apply.\n * @param {!Array.} patches Array of Patch objects.\n * @return {string} The padding string added to each side.\n */\ndiff_match_patch.prototype.patch_addPadding = function(patches) {\n var paddingLength = this.Patch_Margin;\n var nullPadding = '';\n for (var x = 1; x <= paddingLength; x++) {\n nullPadding += String.fromCharCode(x);\n }\n\n // Bump all the patches forward.\n for (var x = 0; x < patches.length; x++) {\n patches[x].start1 += paddingLength;\n patches[x].start2 += paddingLength;\n }\n\n // Add some padding on start of first diff.\n var patch = patches[0];\n var diffs = patch.diffs;\n if (diffs.length == 0 || diffs[0][0] != DIFF_EQUAL) {\n // Add nullPadding equality.\n diffs.unshift([DIFF_EQUAL, nullPadding]);\n patch.start1 -= paddingLength; // Should be 0.\n patch.start2 -= paddingLength; // Should be 0.\n patch.length1 += paddingLength;\n patch.length2 += paddingLength;\n } else if (paddingLength > diffs[0][1].length) {\n // Grow first equality.\n var extraLength = paddingLength - diffs[0][1].length;\n diffs[0][1] = nullPadding.substring(diffs[0][1].length) + diffs[0][1];\n patch.start1 -= extraLength;\n patch.start2 -= extraLength;\n patch.length1 += extraLength;\n patch.length2 += extraLength;\n }\n\n // Add some padding on end of last diff.\n patch = patches[patches.length - 1];\n diffs = patch.diffs;\n if (diffs.length == 0 || diffs[diffs.length - 1][0] != DIFF_EQUAL) {\n // Add nullPadding equality.\n diffs.push([DIFF_EQUAL, nullPadding]);\n patch.length1 += paddingLength;\n patch.length2 += paddingLength;\n } else if (paddingLength > diffs[diffs.length - 1][1].length) {\n // Grow last equality.\n var extraLength = paddingLength - diffs[diffs.length - 1][1].length;\n diffs[diffs.length - 1][1] += nullPadding.substring(0, extraLength);\n patch.length1 += extraLength;\n patch.length2 += extraLength;\n }\n\n return nullPadding;\n};\n\n\n/**\n * Look through the patches and break up any which are longer than the maximum\n * limit of the match algorithm.\n * Intended to be called only from within patch_apply.\n * @param {!Array.} patches Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_splitMax = function(patches) {\n var patch_size = this.Match_MaxBits;\n for (var x = 0; x < patches.length; x++) {\n if (patches[x].length1 <= patch_size) {\n continue;\n }\n var bigpatch = patches[x];\n // Remove the big old patch.\n patches.splice(x--, 1);\n var start1 = bigpatch.start1;\n var start2 = bigpatch.start2;\n var precontext = '';\n while (bigpatch.diffs.length !== 0) {\n // Create one of several smaller patches.\n var patch = new diff_match_patch.patch_obj();\n var empty = true;\n patch.start1 = start1 - precontext.length;\n patch.start2 = start2 - precontext.length;\n if (precontext !== '') {\n patch.length1 = patch.length2 = precontext.length;\n patch.diffs.push([DIFF_EQUAL, precontext]);\n }\n while (bigpatch.diffs.length !== 0 &&\n patch.length1 < patch_size - this.Patch_Margin) {\n var diff_type = bigpatch.diffs[0][0];\n var diff_text = bigpatch.diffs[0][1];\n if (diff_type === DIFF_INSERT) {\n // Insertions are harmless.\n patch.length2 += diff_text.length;\n start2 += diff_text.length;\n patch.diffs.push(bigpatch.diffs.shift());\n empty = false;\n } else if (diff_type === DIFF_DELETE && patch.diffs.length == 1 &&\n patch.diffs[0][0] == DIFF_EQUAL &&\n diff_text.length > 2 * patch_size) {\n // This is a large deletion. Let it pass in one chunk.\n patch.length1 += diff_text.length;\n start1 += diff_text.length;\n empty = false;\n patch.diffs.push([diff_type, diff_text]);\n bigpatch.diffs.shift();\n } else {\n // Deletion or equality. Only take as much as we can stomach.\n diff_text = diff_text.substring(0,\n patch_size - patch.length1 - this.Patch_Margin);\n patch.length1 += diff_text.length;\n start1 += diff_text.length;\n if (diff_type === DIFF_EQUAL) {\n patch.length2 += diff_text.length;\n start2 += diff_text.length;\n } else {\n empty = false;\n }\n patch.diffs.push([diff_type, diff_text]);\n if (diff_text == bigpatch.diffs[0][1]) {\n bigpatch.diffs.shift();\n } else {\n bigpatch.diffs[0][1] =\n bigpatch.diffs[0][1].substring(diff_text.length);\n }\n }\n }\n // Compute the head context for the next patch.\n precontext = this.diff_text2(patch.diffs);\n precontext =\n precontext.substring(precontext.length - this.Patch_Margin);\n // Append the end context for this patch.\n var postcontext = this.diff_text1(bigpatch.diffs)\n .substring(0, this.Patch_Margin);\n if (postcontext !== '') {\n patch.length1 += postcontext.length;\n patch.length2 += postcontext.length;\n if (patch.diffs.length !== 0 &&\n patch.diffs[patch.diffs.length - 1][0] === DIFF_EQUAL) {\n patch.diffs[patch.diffs.length - 1][1] += postcontext;\n } else {\n patch.diffs.push([DIFF_EQUAL, postcontext]);\n }\n }\n if (!empty) {\n patches.splice(++x, 0, patch);\n }\n }\n }\n};\n\n\n/**\n * Take a list of patches and return a textual representation.\n * @param {!Array.} patches Array of Patch objects.\n * @return {string} Text representation of patches.\n */\ndiff_match_patch.prototype.patch_toText = function(patches) {\n var text = [];\n for (var x = 0; x < patches.length; x++) {\n text[x] = patches[x];\n }\n return text.join('');\n};\n\n\n/**\n * Parse a textual representation of patches and return a list of Patch objects.\n * @param {string} textline Text representation of patches.\n * @return {!Array.} Array of Patch objects.\n * @throws {!Error} If invalid input.\n */\ndiff_match_patch.prototype.patch_fromText = function(textline) {\n var patches = [];\n if (!textline) {\n return patches;\n }\n var text = textline.split('\\n');\n var textPointer = 0;\n var patchHeader = /^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;\n while (textPointer < text.length) {\n var m = text[textPointer].match(patchHeader);\n if (!m) {\n throw new Error('Invalid patch string: ' + text[textPointer]);\n }\n var patch = new diff_match_patch.patch_obj();\n patches.push(patch);\n patch.start1 = parseInt(m[1], 10);\n if (m[2] === '') {\n patch.start1--;\n patch.length1 = 1;\n } else if (m[2] == '0') {\n patch.length1 = 0;\n } else {\n patch.start1--;\n patch.length1 = parseInt(m[2], 10);\n }\n\n patch.start2 = parseInt(m[3], 10);\n if (m[4] === '') {\n patch.start2--;\n patch.length2 = 1;\n } else if (m[4] == '0') {\n patch.length2 = 0;\n } else {\n patch.start2--;\n patch.length2 = parseInt(m[4], 10);\n }\n textPointer++;\n\n while (textPointer < text.length) {\n var sign = text[textPointer].charAt(0);\n try {\n var line = decodeURI(text[textPointer].substring(1));\n } catch (ex) {\n // Malformed URI sequence.\n throw new Error('Illegal escape in patch_fromText: ' + line);\n }\n if (sign == '-') {\n // Deletion.\n patch.diffs.push([DIFF_DELETE, line]);\n } else if (sign == '+') {\n // Insertion.\n patch.diffs.push([DIFF_INSERT, line]);\n } else if (sign == ' ') {\n // Minor equality.\n patch.diffs.push([DIFF_EQUAL, line]);\n } else if (sign == '@') {\n // Start of next patch.\n break;\n } else if (sign === '') {\n // Blank line? Whatever.\n } else {\n // WTF?\n throw new Error('Invalid patch mode \"' + sign + '\" in: ' + line);\n }\n textPointer++;\n }\n }\n return patches;\n};\n\n\n/**\n * Class representing one patch operation.\n * @constructor\n */\ndiff_match_patch.patch_obj = function() {\n /** @type {!Array.} */\n this.diffs = [];\n /** @type {?number} */\n this.start1 = null;\n /** @type {?number} */\n this.start2 = null;\n /** @type {number} */\n this.length1 = 0;\n /** @type {number} */\n this.length2 = 0;\n};\n\n\n/**\n * Emmulate GNU diff's format.\n * Header: @@ -382,8 +481,9 @@\n * Indicies are printed as 1-based, not 0-based.\n * @return {string} The GNU diff string.\n */\ndiff_match_patch.patch_obj.prototype.toString = function() {\n var coords1, coords2;\n if (this.length1 === 0) {\n coords1 = this.start1 + ',0';\n } else if (this.length1 == 1) {\n coords1 = this.start1 + 1;\n } else {\n coords1 = (this.start1 + 1) + ',' + this.length1;\n }\n if (this.length2 === 0) {\n coords2 = this.start2 + ',0';\n } else if (this.length2 == 1) {\n coords2 = this.start2 + 1;\n } else {\n coords2 = (this.start2 + 1) + ',' + this.length2;\n }\n var text = ['@@ -' + coords1 + ' +' + coords2 + ' @@\\n'];\n var op;\n // Escape the body of the patch with %xx notation.\n for (var x = 0; x < this.diffs.length; x++) {\n switch (this.diffs[x][0]) {\n case DIFF_INSERT:\n op = '+';\n break;\n case DIFF_DELETE:\n op = '-';\n break;\n case DIFF_EQUAL:\n op = ' ';\n break;\n }\n text[x + 1] = op + encodeURI(this.diffs[x][1]) + '\\n';\n }\n return text.join('').replace(/%20/g, ' ');\n};\n\n\n// The following export code was added by @ForbesLindesay\nmodule.exports = diff_match_patch;\nmodule.exports['diff_match_patch'] = diff_match_patch;\nmodule.exports['DIFF_DELETE'] = DIFF_DELETE;\nmodule.exports['DIFF_INSERT'] = DIFF_INSERT;\nmodule.exports['DIFF_EQUAL'] = DIFF_EQUAL;\n\n/***/ }),\n/* 1050 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar BaseBarSeries = __webpack_require__(354);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = BaseBarSeries.extend({\n type: 'series.bar',\n dependencies: ['grid', 'polar'],\n brushSelector: 'rect',\n\n /**\n * @override\n */\n getProgressive: function () {\n // Do not support progressive in normal mode.\n return this.get('large') ? this.get('progressive') : false;\n },\n\n /**\n * @override\n */\n getProgressiveThreshold: function () {\n // Do not support progressive in normal mode.\n var progressiveThreshold = this.get('progressiveThreshold');\n var largeThreshold = this.get('largeThreshold');\n\n if (largeThreshold > progressiveThreshold) {\n progressiveThreshold = largeThreshold;\n }\n\n return progressiveThreshold;\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1051 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar _helper = __webpack_require__(355);\n\nvar setLabel = _helper.setLabel;\n\nvar Model = __webpack_require__(31);\n\nvar barItemStyle = __webpack_require__(1054);\n\nvar Path = __webpack_require__(22);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'barBorderWidth']; // FIXME\n// Just for compatible with ec2.\n\nzrUtil.extend(Model.prototype, barItemStyle);\n\nvar _default = echarts.extendChartView({\n type: 'bar',\n render: function (seriesModel, ecModel, api) {\n this._updateDrawMode(seriesModel);\n\n var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api);\n } else {}\n\n return this.group;\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n },\n incrementalRender: function (params, seriesModel, ecModel, api) {\n // Do not support progressive in normal mode.\n this._incrementalRenderLarge(params, seriesModel);\n },\n _updateDrawMode: function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw ^ this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n },\n _renderNormal: function (seriesModel, ecModel, api) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var coord = seriesModel.coordinateSystem;\n var baseAxis = coord.getBaseAxis();\n var isHorizontalOrRadial;\n\n if (coord.type === 'cartesian2d') {\n isHorizontalOrRadial = baseAxis.isHorizontal();\n } else if (coord.type === 'polar') {\n isHorizontalOrRadial = baseAxis.dim === 'angle';\n }\n\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n data.diff(oldData).add(function (dataIndex) {\n if (!data.hasValue(dataIndex)) {\n return;\n }\n\n var itemModel = data.getItemModel(dataIndex);\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\n var el = elementCreator[coord.type](data, dataIndex, itemModel, layout, isHorizontalOrRadial, animationModel);\n data.setItemGraphicEl(dataIndex, el);\n group.add(el);\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n }).update(function (newIndex, oldIndex) {\n var el = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex)) {\n group.remove(el);\n return;\n }\n\n var itemModel = data.getItemModel(newIndex);\n var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n if (el) {\n graphic.updateProps(el, {\n shape: layout\n }, animationModel, newIndex);\n } else {\n el = elementCreator[coord.type](data, newIndex, itemModel, layout, isHorizontalOrRadial, animationModel, true);\n }\n\n data.setItemGraphicEl(newIndex, el); // Add back\n\n group.add(el);\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n }).remove(function (dataIndex) {\n var el = oldData.getItemGraphicEl(dataIndex);\n\n if (coord.type === 'cartesian2d') {\n el && removeRect(dataIndex, animationModel, el);\n } else {\n el && removeSector(dataIndex, animationModel, el);\n }\n }).execute();\n this._data = data;\n },\n _renderLarge: function (seriesModel, ecModel, api) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n },\n _incrementalRenderLarge: function (params, seriesModel) {\n createLarge(seriesModel, this.group, true);\n },\n dispose: zrUtil.noop,\n remove: function (ecModel) {\n this._clear(ecModel);\n },\n _clear: function (ecModel) {\n var group = this.group;\n var data = this._data;\n\n if (ecModel && ecModel.get('animation') && data && !this._isLargeDraw) {\n data.eachItemGraphicEl(function (el) {\n if (el.type === 'sector') {\n removeSector(el.dataIndex, ecModel, el);\n } else {\n removeRect(el.dataIndex, ecModel, el);\n }\n });\n } else {\n group.removeAll();\n }\n\n this._data = null;\n }\n});\n\nvar elementCreator = {\n cartesian2d: function (data, dataIndex, itemModel, layout, isHorizontal, animationModel, isUpdate) {\n var rect = new graphic.Rect({\n shape: zrUtil.extend({}, layout)\n }); // Animation\n\n if (animationModel) {\n var rectShape = rect.shape;\n var animateProperty = isHorizontal ? 'height' : 'width';\n var animateTarget = {};\n rectShape[animateProperty] = 0;\n animateTarget[animateProperty] = layout[animateProperty];\n graphic[isUpdate ? 'updateProps' : 'initProps'](rect, {\n shape: animateTarget\n }, animationModel, dataIndex);\n }\n\n return rect;\n },\n polar: function (data, dataIndex, itemModel, layout, isRadial, animationModel, isUpdate) {\n // Keep the same logic with bar in catesion: use end value to control\n // direction. Notice that if clockwise is true (by default), the sector\n // will always draw clockwisely, no matter whether endAngle is greater\n // or less than startAngle.\n var clockwise = layout.startAngle < layout.endAngle;\n var sector = new graphic.Sector({\n shape: zrUtil.defaults({\n clockwise: clockwise\n }, layout)\n }); // Animation\n\n if (animationModel) {\n var sectorShape = sector.shape;\n var animateProperty = isRadial ? 'r' : 'endAngle';\n var animateTarget = {};\n sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n animateTarget[animateProperty] = layout[animateProperty];\n graphic[isUpdate ? 'updateProps' : 'initProps'](sector, {\n shape: animateTarget\n }, animationModel, dataIndex);\n }\n\n return sector;\n }\n};\n\nfunction removeRect(dataIndex, animationModel, el) {\n // Not show text when animating\n el.style.text = null;\n graphic.updateProps(el, {\n shape: {\n width: 0\n }\n }, animationModel, dataIndex, function () {\n el.parent && el.parent.remove(el);\n });\n}\n\nfunction removeSector(dataIndex, animationModel, el) {\n // Not show text when animating\n el.style.text = null;\n graphic.updateProps(el, {\n shape: {\n r: el.shape.r0\n }\n }, animationModel, dataIndex, function () {\n el.parent && el.parent.remove(el);\n });\n}\n\nvar getLayout = {\n cartesian2d: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n var fixedLineWidth = getLineWidth(itemModel, layout); // fix layout with lineWidth\n\n var signX = layout.width > 0 ? 1 : -1;\n var signY = layout.height > 0 ? 1 : -1;\n return {\n x: layout.x + signX * fixedLineWidth / 2,\n y: layout.y + signY * fixedLineWidth / 2,\n width: layout.width - signX * fixedLineWidth,\n height: layout.height - signY * fixedLineWidth\n };\n },\n polar: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n return {\n cx: layout.cx,\n cy: layout.cy,\n r0: layout.r0,\n r: layout.r,\n startAngle: layout.startAngle,\n endAngle: layout.endAngle\n };\n }\n};\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n var color = data.getItemVisual(dataIndex, 'color');\n var opacity = data.getItemVisual(dataIndex, 'opacity');\n var itemStyleModel = itemModel.getModel('itemStyle');\n var hoverStyle = itemModel.getModel('emphasis.itemStyle').getBarItemStyle();\n\n if (!isPolar) {\n el.setShape('r', itemStyleModel.get('barBorderRadius') || 0);\n }\n\n el.useStyle(zrUtil.defaults({\n fill: color,\n opacity: opacity\n }, itemStyleModel.getBarItemStyle()));\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && el.attr('cursor', cursorStyle);\n var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n\n if (!isPolar) {\n setLabel(el.style, hoverStyle, itemModel, color, seriesModel, dataIndex, labelPositionOutside);\n }\n\n graphic.setHoverStyle(el, hoverStyle);\n} // In case width or height are too small.\n\n\nfunction getLineWidth(itemModel, rawLayout) {\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n return Math.min(lineWidth, Math.abs(rawLayout.width), Math.abs(rawLayout.height));\n}\n\nvar LargePath = Path.extend({\n type: 'largeBar',\n shape: {\n points: []\n },\n buildPath: function (ctx, shape) {\n // Drawing lines is more efficient than drawing\n // a whole line or drawing rects.\n var points = shape.points;\n var startPoint = this.__startPoint;\n var valueIdx = this.__valueIdx;\n\n for (var i = 0; i < points.length; i += 2) {\n startPoint[this.__valueIdx] = points[i + valueIdx];\n ctx.moveTo(startPoint[0], startPoint[1]);\n ctx.lineTo(points[i], points[i + 1]);\n }\n }\n});\n\nfunction createLarge(seriesModel, group, incremental) {\n // TODO support polar\n var data = seriesModel.getData();\n var startPoint = [];\n var valueIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n startPoint[1 - valueIdx] = data.getLayout('valueAxisStart');\n var el = new LargePath({\n shape: {\n points: data.getLayout('largePoints')\n },\n incremental: !!incremental,\n __startPoint: startPoint,\n __valueIdx: valueIdx\n });\n group.add(el);\n setLargeStyle(el, seriesModel, data);\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n var borderColor = data.getVisual('borderColor') || data.getVisual('color');\n var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(['color', 'borderColor']);\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor;\n el.style.lineWidth = data.getLayout('barWidth');\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1052 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar BaseBarSeries = __webpack_require__(354);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PictorialBarSeries = BaseBarSeries.extend({\n type: 'series.pictorialBar',\n dependencies: ['grid'],\n defaultOption: {\n symbol: 'circle',\n // Customized bar shape\n symbolSize: null,\n // Can be ['100%', '100%'], null means auto.\n symbolRotate: null,\n symbolPosition: null,\n // 'start' or 'end' or 'center', null means auto.\n symbolOffset: null,\n symbolMargin: null,\n // start margin and end margin. Can be a number or a percent string.\n // Auto margin by defualt.\n symbolRepeat: false,\n // false/null/undefined, means no repeat.\n // Can be true, means auto calculate repeat times and cut by data.\n // Can be a number, specifies repeat times, and do not cut by data.\n // Can be 'fixed', means auto calculate repeat times but do not cut by data.\n symbolRepeatDirection: 'end',\n // 'end' means from 'start' to 'end'.\n symbolClip: false,\n symbolBoundingData: null,\n // Can be 60 or -40 or [-40, 60]\n symbolPatternSize: 400,\n // 400 * 400 px\n barGap: '-100%',\n // In most case, overlap is needed.\n // z can be set in data item, which is z2 actually.\n // Disable progressive\n progressive: 0,\n hoverAnimation: false // Open only when needed.\n\n },\n getInitialData: function (option) {\n // Disable stack.\n option.stack = null;\n return PictorialBarSeries.superApply(this, 'getInitialData', arguments);\n }\n});\nvar _default = PictorialBarSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1053 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar _symbol = __webpack_require__(50);\n\nvar createSymbol = _symbol.createSymbol;\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\nvar isNumeric = _number.isNumeric;\n\nvar _helper = __webpack_require__(355);\n\nvar setLabel = _helper.setLabel;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth']; // index: +isHorizontal\n\nvar LAYOUT_ATTRS = [{\n xy: 'x',\n wh: 'width',\n index: 0,\n posDesc: ['left', 'right']\n}, {\n xy: 'y',\n wh: 'height',\n index: 1,\n posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\nvar BarView = echarts.extendChartView({\n type: 'pictorialBar',\n render: function (seriesModel, ecModel, api) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var isHorizontal = !!baseAxis.isHorizontal();\n var coordSysRect = cartesian.grid.getRect();\n var opt = {\n ecSize: {\n width: api.getWidth(),\n height: api.getHeight()\n },\n seriesModel: seriesModel,\n coordSys: cartesian,\n coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n isHorizontal: isHorizontal,\n valueDim: LAYOUT_ATTRS[+isHorizontal],\n categoryDim: LAYOUT_ATTRS[1 - isHorizontal]\n };\n data.diff(oldData).add(function (dataIndex) {\n if (!data.hasValue(dataIndex)) {\n return;\n }\n\n var itemModel = getItemModel(data, dataIndex);\n var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n var bar = createBar(data, opt, symbolMeta);\n data.setItemGraphicEl(dataIndex, bar);\n group.add(bar);\n updateCommon(bar, opt, symbolMeta);\n }).update(function (newIndex, oldIndex) {\n var bar = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex)) {\n group.remove(bar);\n return;\n }\n\n var itemModel = getItemModel(data, newIndex);\n var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n group.remove(bar);\n data.setItemGraphicEl(newIndex, null);\n bar = null;\n }\n\n if (bar) {\n updateBar(bar, opt, symbolMeta);\n } else {\n bar = createBar(data, opt, symbolMeta, true);\n }\n\n data.setItemGraphicEl(newIndex, bar);\n bar.__pictorialSymbolMeta = symbolMeta; // Add back\n\n group.add(bar);\n updateCommon(bar, opt, symbolMeta);\n }).remove(function (dataIndex) {\n var bar = oldData.getItemGraphicEl(dataIndex);\n bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n }).execute();\n this._data = data;\n return this.group;\n },\n dispose: zrUtil.noop,\n remove: function (ecModel, api) {\n var group = this.group;\n var data = this._data;\n\n if (ecModel.get('animation')) {\n if (data) {\n data.eachItemGraphicEl(function (bar) {\n removeBar(data, bar.dataIndex, ecModel, bar);\n });\n }\n } else {\n group.removeAll();\n }\n }\n}); // Set or calculate default value about symbol, and calculate layout info.\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n var layout = data.getItemLayout(dataIndex);\n var symbolRepeat = itemModel.get('symbolRepeat');\n var symbolClip = itemModel.get('symbolClip');\n var symbolPosition = itemModel.get('symbolPosition') || 'start';\n var symbolRotate = itemModel.get('symbolRotate');\n var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n var isAnimationEnabled = itemModel.isAnimationEnabled();\n var symbolMeta = {\n dataIndex: dataIndex,\n layout: layout,\n itemModel: itemModel,\n symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n color: data.getItemVisual(dataIndex, 'color'),\n symbolClip: symbolClip,\n symbolRepeat: symbolRepeat,\n symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n symbolPatternSize: symbolPatternSize,\n rotation: rotation,\n animationModel: isAnimationEnabled ? itemModel : null,\n hoverAnimation: isAnimationEnabled && itemModel.get('hoverAnimation'),\n z2: itemModel.getShallow('z', true) || 0\n };\n prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n var symbolSize = symbolMeta.symbolSize;\n var symbolOffset = itemModel.get('symbolOffset');\n\n if (zrUtil.isArray(symbolOffset)) {\n symbolOffset = [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])];\n }\n\n prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n return symbolMeta;\n} // bar length can be negative.\n\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, output) {\n var valueDim = opt.valueDim;\n var symbolBoundingData = itemModel.get('symbolBoundingData');\n var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n var boundingLength;\n\n if (zrUtil.isArray(symbolBoundingData)) {\n var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n boundingLength = symbolBoundingExtent[pxSignIdx];\n } else if (symbolBoundingData != null) {\n boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n } else if (symbolRepeat) {\n boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n } else {\n boundingLength = layout[valueDim.wh];\n }\n\n output.boundingLength = boundingLength;\n\n if (symbolRepeat) {\n output.repeatCutLength = layout[valueDim.wh];\n }\n\n output.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n} // Support ['100%', '100%']\n\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, output) {\n var valueDim = opt.valueDim;\n var categoryDim = opt.categoryDim;\n var categorySize = Math.abs(layout[categoryDim.wh]);\n var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n\n if (zrUtil.isArray(symbolSize)) {\n symbolSize = symbolSize.slice();\n } else {\n if (symbolSize == null) {\n symbolSize = '100%';\n }\n\n symbolSize = [symbolSize, symbolSize];\n } // Note: percentage symbolSize (like '100%') do not consider lineWidth, because it is\n // to complicated to calculate real percent value if considering scaled lineWidth.\n // So the actual size will bigger than layout size if lineWidth is bigger than zero,\n // which can be tolerated in pictorial chart.\n\n\n symbolSize[categoryDim.index] = parsePercent(symbolSize[categoryDim.index], categorySize);\n symbolSize[valueDim.index] = parsePercent(symbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n output.symbolSize = symbolSize; // If x or y is less than zero, show reversed shape.\n\n var symbolScale = output.symbolScale = [symbolSize[0] / symbolPatternSize, symbolSize[1] / symbolPatternSize]; // Follow convention, 'right' and 'top' is the normal scale.\n\n symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, output) {\n // In symbols are drawn with scale, so do not need to care about the case that width\n // or height are too small. But symbol use strokeNoScale, where acture lineWidth should\n // be calculated.\n var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n if (valueLineWidth) {\n pathForLineWidth.attr({\n scale: symbolScale.slice(),\n rotation: rotation\n });\n pathForLineWidth.updateTransform();\n valueLineWidth /= pathForLineWidth.getLineScale();\n valueLineWidth *= symbolScale[opt.valueDim.index];\n }\n\n output.valueLineWidth = valueLineWidth;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, output) {\n var categoryDim = opt.categoryDim;\n var valueDim = opt.valueDim;\n var pxSign = output.pxSign;\n var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n var pathLen = unitLength; // Note: rotation will not effect the layout of symbols, because user may\n // want symbols to rotate on its center, which should not be translated\n // when rotating.\n\n if (symbolRepeat) {\n var absBoundingLength = Math.abs(boundingLength);\n var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n var hasEndGap = false;\n\n if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n hasEndGap = true;\n symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n }\n\n symbolMargin = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n var uLenWithMargin = Math.max(unitLength + symbolMargin * 2, 0); // When symbol margin is less than 0, margin at both ends will be subtracted\n // to ensure that all of the symbols will not be overflow the given area.\n\n var endFix = hasEndGap ? 0 : symbolMargin * 2; // Both final repeatTimes and final symbolMargin area calculated based on\n // boundingLength.\n\n var repeatSpecified = isNumeric(symbolRepeat);\n var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin); // Adjust calculate margin, to ensure each symbol is displayed\n // entirely in the given layout area.\n\n var mDiff = absBoundingLength - repeatTimes * unitLength;\n symbolMargin = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\n uLenWithMargin = unitLength + symbolMargin * 2;\n endFix = hasEndGap ? 0 : symbolMargin * 2; // Update repeatTimes when not all symbol will be shown.\n\n if (!repeatSpecified && symbolRepeat !== 'fixed') {\n repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n }\n\n pathLen = repeatTimes * uLenWithMargin - endFix;\n output.repeatTimes = repeatTimes;\n output.symbolMargin = symbolMargin;\n }\n\n var sizeFix = pxSign * (pathLen / 2);\n var pathPosition = output.pathPosition = [];\n pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2; // 'center'\n\n if (symbolOffset) {\n pathPosition[0] += symbolOffset[0];\n pathPosition[1] += symbolOffset[1];\n }\n\n var bundlePosition = output.bundlePosition = [];\n bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n bundlePosition[valueDim.index] = layout[valueDim.xy];\n var barRectShape = output.barRectShape = zrUtil.extend({}, layout);\n barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n var clipShape = output.clipShape = {}; // Consider that symbol may be overflow layout rect.\n\n clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n clipShape[valueDim.xy] = 0;\n clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n var symbolPatternSize = symbolMeta.symbolPatternSize;\n var path = createSymbol( // Consider texture img, make a big size.\n symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize, symbolMeta.color);\n path.attr({\n culling: true\n });\n path.type !== 'image' && path.setStyle({\n strokeNoScale: true\n });\n return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n var bundle = bar.__pictorialBundle;\n var symbolSize = symbolMeta.symbolSize;\n var valueLineWidth = symbolMeta.valueLineWidth;\n var pathPosition = symbolMeta.pathPosition;\n var valueDim = opt.valueDim;\n var repeatTimes = symbolMeta.repeatTimes || 0;\n var index = 0;\n var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n eachPath(bar, function (path) {\n path.__pictorialAnimationIndex = index;\n path.__pictorialRepeatTimes = repeatTimes;\n\n if (index < repeatTimes) {\n updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n } else {\n updateAttr(path, null, {\n scale: [0, 0]\n }, symbolMeta, isUpdate, function () {\n bundle.remove(path);\n });\n }\n\n updateHoverAnimation(path, symbolMeta);\n index++;\n });\n\n for (; index < repeatTimes; index++) {\n var path = createPath(symbolMeta);\n path.__pictorialAnimationIndex = index;\n path.__pictorialRepeatTimes = repeatTimes;\n bundle.add(path);\n var target = makeTarget(index);\n updateAttr(path, {\n position: target.position,\n scale: [0, 0]\n }, {\n scale: target.scale,\n rotation: target.rotation\n }, symbolMeta, isUpdate); // FIXME\n // If all emphasis/normal through action.\n\n path.on('mouseover', onMouseOver).on('mouseout', onMouseOut);\n updateHoverAnimation(path, symbolMeta);\n }\n\n function makeTarget(index) {\n var position = pathPosition.slice(); // (start && pxSign > 0) || (end && pxSign < 0): i = repeatTimes - index\n // Otherwise: i = index;\n\n var pxSign = symbolMeta.pxSign;\n var i = index;\n\n if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n i = repeatTimes - 1 - index;\n }\n\n position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n return {\n position: position,\n scale: symbolMeta.symbolScale.slice(),\n rotation: symbolMeta.rotation\n };\n }\n\n function onMouseOver() {\n eachPath(bar, function (path) {\n path.trigger('emphasis');\n });\n }\n\n function onMouseOut() {\n eachPath(bar, function (path) {\n path.trigger('normal');\n });\n }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n var bundle = bar.__pictorialBundle;\n var mainPath = bar.__pictorialMainPath;\n\n if (!mainPath) {\n mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n bundle.add(mainPath);\n updateAttr(mainPath, {\n position: symbolMeta.pathPosition.slice(),\n scale: [0, 0],\n rotation: symbolMeta.rotation\n }, {\n scale: symbolMeta.symbolScale.slice()\n }, symbolMeta, isUpdate);\n mainPath.on('mouseover', onMouseOver).on('mouseout', onMouseOut);\n } else {\n updateAttr(mainPath, null, {\n position: symbolMeta.pathPosition.slice(),\n scale: symbolMeta.symbolScale.slice(),\n rotation: symbolMeta.rotation\n }, symbolMeta, isUpdate);\n }\n\n updateHoverAnimation(mainPath, symbolMeta);\n\n function onMouseOver() {\n this.trigger('emphasis');\n }\n\n function onMouseOut() {\n this.trigger('normal');\n }\n} // bar rect is used for label.\n\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n var barRect = bar.__pictorialBarRect;\n\n if (!barRect) {\n barRect = bar.__pictorialBarRect = new graphic.Rect({\n z2: 2,\n shape: rectShape,\n silent: true,\n style: {\n stroke: 'transparent',\n fill: 'transparent',\n lineWidth: 0\n }\n });\n bar.add(barRect);\n } else {\n updateAttr(barRect, null, {\n shape: rectShape\n }, symbolMeta, isUpdate);\n }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n // If not clip, symbol will be remove and rebuilt.\n if (symbolMeta.symbolClip) {\n var clipPath = bar.__pictorialClipPath;\n var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n var valueDim = opt.valueDim;\n var animationModel = symbolMeta.animationModel;\n var dataIndex = symbolMeta.dataIndex;\n\n if (clipPath) {\n graphic.updateProps(clipPath, {\n shape: clipShape\n }, animationModel, dataIndex);\n } else {\n clipShape[valueDim.wh] = 0;\n clipPath = new graphic.Rect({\n shape: clipShape\n });\n\n bar.__pictorialBundle.setClipPath(clipPath);\n\n bar.__pictorialClipPath = clipPath;\n var target = {};\n target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n shape: target\n }, animationModel, dataIndex);\n }\n }\n}\n\nfunction getItemModel(data, dataIndex) {\n var itemModel = data.getItemModel(dataIndex);\n itemModel.getAnimationDelayParams = getAnimationDelayParams;\n itemModel.isAnimationEnabled = isAnimationEnabled;\n return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n // The order is the same as the z-order, see `symbolRepeatDiretion`.\n return {\n index: path.__pictorialAnimationIndex,\n count: path.__pictorialRepeatTimes\n };\n}\n\nfunction isAnimationEnabled() {\n // `animation` prop can be set on itemModel in pictorial bar chart.\n return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction updateHoverAnimation(path, symbolMeta) {\n path.off('emphasis').off('normal');\n var scale = symbolMeta.symbolScale.slice();\n symbolMeta.hoverAnimation && path.on('emphasis', function () {\n this.animateTo({\n scale: [scale[0] * 1.1, scale[1] * 1.1]\n }, 400, 'elasticOut');\n }).on('normal', function () {\n this.animateTo({\n scale: scale.slice()\n }, 400, 'elasticOut');\n });\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n // bar is the main element for each data.\n var bar = new graphic.Group(); // bundle is used for location and clip.\n\n var bundle = new graphic.Group();\n bar.add(bundle);\n bar.__pictorialBundle = bundle;\n bundle.attr('position', symbolMeta.bundlePosition.slice());\n\n if (symbolMeta.symbolRepeat) {\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n } else {\n createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n }\n\n createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n bar.__pictorialSymbolMeta = symbolMeta;\n return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n var animationModel = symbolMeta.animationModel;\n var dataIndex = symbolMeta.dataIndex;\n var bundle = bar.__pictorialBundle;\n graphic.updateProps(bundle, {\n position: symbolMeta.bundlePosition.slice()\n }, animationModel, dataIndex);\n\n if (symbolMeta.symbolRepeat) {\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n } else {\n createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n }\n\n createOrUpdateBarRect(bar, symbolMeta, true);\n createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n // Not show text when animating\n var labelRect = bar.__pictorialBarRect;\n labelRect && (labelRect.style.text = null);\n var pathes = [];\n eachPath(bar, function (path) {\n pathes.push(path);\n });\n bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath); // I do not find proper remove animation for clip yet.\n\n bar.__pictorialClipPath && (animationModel = null);\n zrUtil.each(pathes, function (path) {\n graphic.updateProps(path, {\n scale: [0, 0]\n }, animationModel, dataIndex, function () {\n bar.parent && bar.parent.remove(bar);\n });\n });\n data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n // Do not use Group#eachChild, because it do not support remove.\n zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n el !== bar.__pictorialBarRect && cb.call(context, el);\n });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n immediateAttrs && el.attr(immediateAttrs); // when symbolCip used, only clip path has init animation, otherwise it would be weird effect.\n\n if (symbolMeta.symbolClip && !isUpdate) {\n animationAttrs && el.attr(animationAttrs);\n } else {\n animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n var color = symbolMeta.color;\n var dataIndex = symbolMeta.dataIndex;\n var itemModel = symbolMeta.itemModel; // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var normalStyle = itemModel.getModel('itemStyle').getItemStyle(['color']);\n var hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var cursorStyle = itemModel.getShallow('cursor');\n eachPath(bar, function (path) {\n // PENDING setColor should be before setStyle!!!\n path.setColor(color);\n path.setStyle(zrUtil.defaults({\n fill: color,\n opacity: symbolMeta.opacity\n }, normalStyle));\n graphic.setHoverStyle(path, hoverStyle);\n cursorStyle && (path.cursor = cursorStyle);\n path.z2 = symbolMeta.z2;\n });\n var barRectHoverStyle = {};\n var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n var barRect = bar.__pictorialBarRect;\n setLabel(barRect.style, barRectHoverStyle, itemModel, color, opt.seriesModel, dataIndex, barPositionOutside);\n graphic.setHoverStyle(barRect, barRectHoverStyle);\n}\n\nfunction toIntTimes(times) {\n var roundedTimes = Math.round(times); // Escapse accurate error\n\n return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nvar _default = BarView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1054 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar makeStyleMapper = __webpack_require__(119);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar getBarItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], // Compatitable with 2\n['stroke', 'barBorderColor'], ['lineWidth', 'barBorderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\nvar _default = {\n getBarItemStyle: function (excludes) {\n var style = getBarItemStyle(this, excludes);\n\n if (this.getBorderLineDash) {\n var lineDash = this.getBorderLineDash();\n lineDash && (style.lineDash = lineDash);\n }\n\n return style;\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1055 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1056);\n\n__webpack_require__(1057);\n\nvar boxplotVisual = __webpack_require__(1059);\n\nvar boxplotLayout = __webpack_require__(1058);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(boxplotVisual);\necharts.registerLayout(boxplotLayout);\n\n/***/ }),\n/* 1056 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar SeriesModel = __webpack_require__(30);\n\nvar _whiskerBoxCommon = __webpack_require__(362);\n\nvar seriesModelMixin = _whiskerBoxCommon.seriesModelMixin;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar BoxplotSeries = SeriesModel.extend({\n type: 'series.boxplot',\n dependencies: ['xAxis', 'yAxis', 'grid'],\n // TODO\n // box width represents group size, so dimension should have 'size'.\n\n /**\n * @see \n * The meanings of 'min' and 'max' depend on user,\n * and echarts do not need to know it.\n * @readOnly\n */\n defaultValueDimensions: [{\n name: 'min',\n defaultTooltip: true\n }, {\n name: 'Q1',\n defaultTooltip: true\n }, {\n name: 'median',\n defaultTooltip: true\n }, {\n name: 'Q3',\n defaultTooltip: true\n }, {\n name: 'max',\n defaultTooltip: true\n }],\n\n /**\n * @type {Array.}\n * @readOnly\n */\n dimensions: null,\n\n /**\n * @override\n */\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n hoverAnimation: true,\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n layout: null,\n // 'horizontal' or 'vertical'\n boxWidth: [7, 50],\n // [min, max] can be percent of band width.\n itemStyle: {\n color: '#fff',\n borderWidth: 1\n },\n emphasis: {\n itemStyle: {\n borderWidth: 2,\n shadowBlur: 5,\n shadowOffsetX: 2,\n shadowOffsetY: 2,\n shadowColor: 'rgba(0,0,0,0.4)'\n }\n },\n animationEasing: 'elasticOut',\n animationDuration: 800\n }\n});\nzrUtil.mixin(BoxplotSeries, seriesModelMixin, true);\nvar _default = BoxplotSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1057 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar ChartView = __webpack_require__(65);\n\nvar graphic = __webpack_require__(5);\n\nvar Path = __webpack_require__(22);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Update common properties\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar BoxplotView = ChartView.extend({\n type: 'boxplot',\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var group = this.group;\n var oldData = this._data; // There is no old data only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!this._data) {\n group.removeAll();\n }\n\n var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var itemLayout = data.getItemLayout(newIdx);\n var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n if (!data.hasValue(newIdx)) {\n group.remove(symbolEl);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (!symbolEl) {\n symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n } else {\n updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n }\n\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n },\n remove: function (ecModel) {\n var group = this.group;\n var data = this._data;\n this._data = null;\n data && data.eachItemGraphicEl(function (el) {\n el && group.remove(el);\n });\n },\n dispose: zrUtil.noop\n});\nvar BoxPath = Path.extend({\n type: 'boxplotBoxPath',\n shape: {},\n buildPath: function (ctx, shape) {\n var ends = shape.points;\n var i = 0;\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n\n for (; i < 4; i++) {\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n\n ctx.closePath();\n\n for (; i < ends.length; i++) {\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n }\n});\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n var ends = itemLayout.ends;\n var el = new BoxPath({\n shape: {\n points: isInit ? transInit(ends, constDim, itemLayout) : ends\n }\n });\n updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n var seriesModel = data.hostModel;\n var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n updateMethod(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, dataIndex);\n var itemModel = data.getItemModel(dataIndex);\n var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n var borderColor = data.getItemVisual(dataIndex, 'color'); // Exclude borderColor.\n\n var itemStyle = normalItemStyleModel.getItemStyle(['borderColor']);\n itemStyle.stroke = borderColor;\n itemStyle.strokeNoScale = true;\n el.useStyle(itemStyle);\n el.z2 = 100;\n var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n graphic.setHoverStyle(el, hoverStyle);\n}\n\nfunction transInit(points, dim, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[dim] = itemLayout.initBaseline;\n return point;\n });\n}\n\nvar _default = BoxplotView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1058 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\n\nfunction _default(ecModel) {\n var groupResult = groupSeriesByAxis(ecModel);\n each(groupResult, function (groupItem) {\n var seriesModels = groupItem.seriesModels;\n\n if (!seriesModels.length) {\n return;\n }\n\n calculateBase(groupItem);\n each(seriesModels, function (seriesModel, idx) {\n layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n });\n });\n}\n/**\n * Group series by axis.\n */\n\n\nfunction groupSeriesByAxis(ecModel) {\n var result = [];\n var axisList = [];\n ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n var baseAxis = seriesModel.getBaseAxis();\n var idx = zrUtil.indexOf(axisList, baseAxis);\n\n if (idx < 0) {\n idx = axisList.length;\n axisList[idx] = baseAxis;\n result[idx] = {\n axis: baseAxis,\n seriesModels: []\n };\n }\n\n result[idx].seriesModels.push(seriesModel);\n });\n return result;\n}\n/**\n * Calculate offset and box width for each series.\n */\n\n\nfunction calculateBase(groupItem) {\n var extent;\n var baseAxis = groupItem.axis;\n var seriesModels = groupItem.seriesModels;\n var seriesCount = seriesModels.length;\n var boxWidthList = groupItem.boxWidthList = [];\n var boxOffsetList = groupItem.boxOffsetList = [];\n var boundList = [];\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else {\n var maxDataCount = 0;\n each(seriesModels, function (seriesModel) {\n maxDataCount = Math.max(maxDataCount, seriesModel.getData().count());\n });\n extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount;\n }\n\n each(seriesModels, function (seriesModel) {\n var boxWidthBound = seriesModel.get('boxWidth');\n\n if (!zrUtil.isArray(boxWidthBound)) {\n boxWidthBound = [boxWidthBound, boxWidthBound];\n }\n\n boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n });\n var availableWidth = bandWidth * 0.8 - 2;\n var boxGap = availableWidth / seriesCount * 0.3;\n var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n var base = boxWidth / 2 - availableWidth / 2;\n each(seriesModels, function (seriesModel, idx) {\n boxOffsetList.push(base);\n base += boxGap + boxWidth;\n boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n });\n}\n/**\n * Calculate points location for each series.\n */\n\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var halfWidth = boxWidth / 2;\n var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n var vDimIdx = 1 - cDimIdx;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimension(coordDims[vDimIdx], true);\n\n if (cDim == null || vDims.length < 5) {\n return;\n }\n\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n var axisDimVal = data.get(cDim, dataIndex);\n var median = getPoint(axisDimVal, vDims[2], dataIndex);\n var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n var ends = [];\n addBodyEnd(ends, end2, 0);\n addBodyEnd(ends, end4, 1);\n ends.push(end1, end2, end5, end4);\n layEndLine(ends, end1);\n layEndLine(ends, end5);\n layEndLine(ends, median);\n data.setItemLayout(dataIndex, {\n initBaseline: median[vDimIdx],\n ends: ends\n });\n }\n\n function getPoint(axisDimVal, dimIdx, dataIndex) {\n var val = data.get(dimIdx, dataIndex);\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n var point;\n\n if (isNaN(axisDimVal) || isNaN(val)) {\n point = [NaN, NaN];\n } else {\n point = coordSys.dataToPoint(p);\n point[cDimIdx] += offset;\n }\n\n return point;\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] += halfWidth;\n point2[cDimIdx] -= halfWidth;\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function layEndLine(ends, endCenter) {\n var from = endCenter.slice();\n var to = endCenter.slice();\n from[cDimIdx] -= halfWidth;\n to[cDimIdx] += halfWidth;\n ends.push(from, to);\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1059 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar borderColorQuery = ['itemStyle', 'borderColor'];\n\nfunction _default(ecModel, api) {\n var globalColors = ecModel.get('color');\n ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n var defaulColor = globalColors[seriesModel.seriesIndex % globalColors.length];\n var data = seriesModel.getData();\n data.setVisual({\n legendSymbol: 'roundRect',\n // Use name 'color' but not 'borderColor' for legend usage and\n // visual coding from other component like dataRange.\n color: seriesModel.get(borderColorQuery) || defaulColor\n }); // Only visible series has each data be visual encoded\n\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n data.setItemVisual(idx, {\n color: itemModel.get(borderColorQuery, true)\n });\n });\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1060 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1061);\n\n__webpack_require__(1062);\n\nvar preprocessor = __webpack_require__(1065);\n\nvar candlestickVisual = __webpack_require__(1064);\n\nvar candlestickLayout = __webpack_require__(1063);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerPreprocessor(preprocessor);\necharts.registerVisual(candlestickVisual);\necharts.registerLayout(candlestickLayout);\n\n/***/ }),\n/* 1061 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar SeriesModel = __webpack_require__(30);\n\nvar _whiskerBoxCommon = __webpack_require__(362);\n\nvar seriesModelMixin = _whiskerBoxCommon.seriesModelMixin;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar CandlestickSeries = SeriesModel.extend({\n type: 'series.candlestick',\n dependencies: ['xAxis', 'yAxis', 'grid'],\n\n /**\n * @readOnly\n */\n defaultValueDimensions: [{\n name: 'open',\n defaultTooltip: true\n }, {\n name: 'close',\n defaultTooltip: true\n }, {\n name: 'lowest',\n defaultTooltip: true\n }, {\n name: 'highest',\n defaultTooltip: true\n }],\n\n /**\n * @type {Array.}\n * @readOnly\n */\n dimensions: null,\n\n /**\n * @override\n */\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n hoverAnimation: true,\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n layout: null,\n // 'horizontal' or 'vertical'\n itemStyle: {\n color: '#c23531',\n // 阳线 positive\n color0: '#314656',\n // 阴线 negative '#c23531', '#314656'\n borderWidth: 1,\n // FIXME\n // ec2中使用的是lineStyle.color 和 lineStyle.color0\n borderColor: '#c23531',\n borderColor0: '#314656'\n },\n emphasis: {\n itemStyle: {\n borderWidth: 2\n }\n },\n barMaxWidth: null,\n barMinWidth: null,\n barWidth: null,\n large: true,\n largeThreshold: 600,\n progressive: 3e3,\n progressiveThreshold: 1e4,\n progressiveChunkMode: 'mod',\n animationUpdate: false,\n animationEasing: 'linear',\n animationDuration: 300\n },\n\n /**\n * Get dimension for shadow in dataZoom\n * @return {string} dimension name\n */\n getShadowDim: function () {\n return 'open';\n },\n brushSelector: function (dataIndex, data, selectors) {\n var itemLayout = data.getItemLayout(dataIndex);\n return itemLayout && selectors.rect(itemLayout.brushRect);\n }\n});\nzrUtil.mixin(CandlestickSeries, seriesModelMixin, true);\nvar _default = CandlestickSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1062 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar ChartView = __webpack_require__(65);\n\nvar graphic = __webpack_require__(5);\n\nvar Path = __webpack_require__(22);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar SKIP_PROPS = ['color', 'color0', 'borderColor', 'borderColor0'];\nvar CandlestickView = ChartView.extend({\n type: 'candlestick',\n render: function (seriesModel, ecModel, api) {\n this._updateDrawMode(seriesModel);\n\n this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n },\n incrementalRender: function (params, seriesModel, ecModel, api) {\n this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n },\n _updateDrawMode: function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw ^ this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n },\n _renderNormal: function (seriesModel) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var isSimpleBox = data.getLayout('isSimpleBox'); // There is no old data only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!this._data) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var el;\n var itemLayout = data.getItemLayout(newIdx);\n el = createNormalBox(itemLayout, newIdx, true);\n graphic.initProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }\n }).update(function (newIdx, oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n if (!data.hasValue(newIdx)) {\n group.remove(el);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (!el) {\n el = createNormalBox(itemLayout, newIdx);\n } else {\n graphic.updateProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n }\n\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n },\n _renderLarge: function (seriesModel) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n },\n _incrementalRenderNormal: function (params, seriesModel) {\n var data = seriesModel.getData();\n var isSimpleBox = data.getLayout('isSimpleBox');\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var el;\n var itemLayout = data.getItemLayout(dataIndex);\n el = createNormalBox(itemLayout, dataIndex);\n setBoxCommon(el, data, dataIndex, isSimpleBox);\n el.incremental = true;\n this.group.add(el);\n }\n },\n _incrementalRenderLarge: function (params, seriesModel) {\n createLarge(seriesModel, this.group, true);\n },\n remove: function (ecModel) {\n this._clear();\n },\n _clear: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: zrUtil.noop\n});\nvar NormalBoxPath = Path.extend({\n type: 'normalCandlestickBox',\n shape: {},\n buildPath: function (ctx, shape) {\n var ends = shape.points;\n\n if (this.__simpleBox) {\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[6][0], ends[6][1]);\n } else {\n ctx.moveTo(ends[0][0], ends[0][1]);\n ctx.lineTo(ends[1][0], ends[1][1]);\n ctx.lineTo(ends[2][0], ends[2][1]);\n ctx.lineTo(ends[3][0], ends[3][1]);\n ctx.closePath();\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[5][0], ends[5][1]);\n ctx.moveTo(ends[6][0], ends[6][1]);\n ctx.lineTo(ends[7][0], ends[7][1]);\n }\n }\n});\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n var ends = itemLayout.ends;\n return new NormalBoxPath({\n shape: {\n points: isInit ? transInit(ends, itemLayout) : ends\n },\n z2: 100\n });\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n var itemModel = data.getItemModel(dataIndex);\n var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n var color = data.getItemVisual(dataIndex, 'color');\n var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color; // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = normalItemStyleModel.getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.strokeNoScale = true;\n el.style.fill = color;\n el.style.stroke = borderColor;\n el.__simpleBox = isSimpleBox;\n var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n graphic.setHoverStyle(el, hoverStyle);\n}\n\nfunction transInit(points, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[1] = itemLayout.initBaseline;\n return point;\n });\n}\n\nvar LargeBoxPath = Path.extend({\n type: 'largeCandlestickBox',\n shape: {},\n buildPath: function (ctx, shape) {\n // Drawing lines is more efficient than drawing\n // a whole line or drawing rects.\n var points = shape.points;\n\n for (var i = 0; i < points.length;) {\n if (this.__sign === points[i++]) {\n var x = points[i++];\n ctx.moveTo(x, points[i++]);\n ctx.lineTo(x, points[i++]);\n } else {\n i += 3;\n }\n }\n }\n});\n\nfunction createLarge(seriesModel, group, incremental) {\n var data = seriesModel.getData();\n var largePoints = data.getLayout('largePoints');\n var elP = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: 1\n });\n group.add(elP);\n var elN = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: -1\n });\n group.add(elN);\n setLargeStyle(1, elP, seriesModel, data);\n setLargeStyle(-1, elN, seriesModel, data);\n\n if (incremental) {\n elP.incremental = true;\n elN.incremental = true;\n }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n var suffix = sign > 0 ? 'P' : 'N';\n var borderColor = data.getVisual('borderColor' + suffix) || data.getVisual('color' + suffix); // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = seriesModel.getModel(NORMAL_ITEM_STYLE_PATH).getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor; // No different\n // el.style.lineWidth = .5;\n}\n\nvar _default = CandlestickView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1063 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _graphic = __webpack_require__(5);\n\nvar subPixelOptimize = _graphic.subPixelOptimize;\n\nvar createRenderPlanner = __webpack_require__(116);\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\n\nvar _util = __webpack_require__(0);\n\nvar retrieve2 = _util.retrieve2;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Float32Array */\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar _default = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var candleWidth = calculateCandleWidth(seriesModel, data);\n var cDimIdx = 0;\n var vDimIdx = 1;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimension(coordDims[vDimIdx], true);\n var openDim = vDims[0];\n var closeDim = vDims[1];\n var lowestDim = vDims[2];\n var highestDim = vDims[3];\n data.setLayout({\n candleWidth: candleWidth,\n // The value is experimented visually.\n isSimpleBox: candleWidth <= 1.3\n });\n\n if (cDim == null || vDims.length < 4) {\n return;\n }\n\n return {\n progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n };\n\n function normalProgress(params, data) {\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n var ocLow = Math.min(openVal, closeVal);\n var ocHigh = Math.max(openVal, closeVal);\n var ocLowPoint = getPoint(ocLow, axisDimVal);\n var ocHighPoint = getPoint(ocHigh, axisDimVal);\n var lowestPoint = getPoint(lowestVal, axisDimVal);\n var highestPoint = getPoint(highestVal, axisDimVal);\n var ends = [];\n addBodyEnd(ends, ocHighPoint, 0);\n addBodyEnd(ends, ocLowPoint, 1);\n ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n data.setItemLayout(dataIndex, {\n sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n // open point.\n ends: ends,\n brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n });\n }\n\n function getPoint(val, axisDimVal) {\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n var pmin = getPoint(lowestVal, axisDimVal);\n var pmax = getPoint(highestVal, axisDimVal);\n pmin[cDimIdx] -= candleWidth / 2;\n pmax[cDimIdx] -= candleWidth / 2;\n return {\n x: pmin[0],\n y: pmin[1],\n width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n };\n }\n\n function subPixelOptimizePoint(point) {\n point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n return point;\n }\n }\n\n function largeProgress(params, data) {\n // Structure: [sign, x, yhigh, ylow, sign, x, yhigh, ylow, ...]\n var points = new LargeArr(params.count * 5);\n var offset = 0;\n var point;\n var tmpIn = [];\n var tmpOut = [];\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n\n if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n points[offset++] = NaN;\n offset += 4;\n continue;\n }\n\n points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n tmpIn[cDimIdx] = axisDimVal;\n tmpIn[vDimIdx] = lowestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[0] : NaN;\n points[offset++] = point ? point[1] : NaN;\n tmpIn[vDimIdx] = highestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[1] : NaN;\n }\n\n data.setLayout('largePoints', points);\n }\n }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n var sign;\n\n if (openVal > closeVal) {\n sign = -1;\n } else if (openVal < closeVal) {\n sign = 1;\n } else {\n sign = dataIndex > 0 // If close === open, compare with close of last record\n ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : // No record of previous, set to be positive\n 1;\n }\n\n return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n var baseAxis = seriesModel.getBaseAxis();\n var extent;\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n var barWidth = seriesModel.get('barWidth');\n return barWidth != null ? parsePercent(barWidth, bandWidth) // Put max outer to ensure bar visible in spite of overlap.\n : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1064 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar createRenderPlanner = __webpack_require__(116);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar _default = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n // For legend.\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n var isLargeRender = seriesModel.pipelineContext.large;\n data.setVisual({\n legendSymbol: 'roundRect',\n colorP: getColor(1, seriesModel),\n colorN: getColor(-1, seriesModel),\n borderColorP: getBorderColor(1, seriesModel),\n borderColorN: getBorderColor(-1, seriesModel)\n }); // Only visible series has each data be visual encoded\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n return !isLargeRender && {\n progress: progress\n };\n\n function progress(params, data) {\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var itemModel = data.getItemModel(dataIndex);\n var sign = data.getItemLayout(dataIndex).sign;\n data.setItemVisual(dataIndex, {\n color: getColor(sign, itemModel),\n borderColor: getBorderColor(sign, itemModel)\n });\n }\n }\n\n function getColor(sign, model) {\n return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n }\n\n function getBorderColor(sign, model) {\n return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n }\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1065 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(option) {\n if (!option || !zrUtil.isArray(option.series)) {\n return;\n } // Translate 'k' to 'candlestick'.\n\n\n zrUtil.each(option.series, function (seriesItem) {\n if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n seriesItem.type = 'candlestick';\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1066 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphicUtil = __webpack_require__(5);\n\nvar _labelHelper = __webpack_require__(248);\n\nvar getDefaultLabel = _labelHelper.getDefaultLabel;\n\nvar createListFromArray = __webpack_require__(70);\n\nvar _barGrid = __webpack_require__(180);\n\nvar getLayoutOnAxis = _barGrid.getLayoutOnAxis;\n\nvar DataDiffer = __webpack_require__(102);\n\nvar SeriesModel = __webpack_require__(30);\n\nvar ChartView = __webpack_require__(65);\n\nvar prepareCartesian2d = __webpack_require__(1257);\n\nvar prepareGeo = __webpack_require__(1266);\n\nvar prepareSingleAxis = __webpack_require__(1284);\n\nvar preparePolar = __webpack_require__(1277);\n\nvar prepareCalendar = __webpack_require__(1252);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ITEM_STYLE_NORMAL_PATH = ['itemStyle'];\nvar ITEM_STYLE_EMPHASIS_PATH = ['emphasis', 'itemStyle'];\nvar LABEL_NORMAL = ['label'];\nvar LABEL_EMPHASIS = ['emphasis', 'label']; // Use prefix to avoid index to be the same as el.name,\n// which will cause weird udpate animation.\n\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\n/**\n * To reduce total package size of each coordinate systems, the modules `prepareCustom`\n * of each coordinate systems are not required by each coordinate systems directly, but\n * required by the module `custom`.\n *\n * prepareInfoForCustomSeries {Function}: optional\n * @return {Object} {coordSys: {...}, api: {\n * coord: function (data, clamp) {}, // return point in global.\n * size: function (dataSize, dataItem) {} // return size of each axis in coordSys.\n * }}\n */\n\nvar prepareCustoms = {\n cartesian2d: prepareCartesian2d,\n geo: prepareGeo,\n singleAxis: prepareSingleAxis,\n polar: preparePolar,\n calendar: prepareCalendar\n}; // ------\n// Model\n// ------\n\nSeriesModel.extend({\n type: 'series.custom',\n dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],\n defaultOption: {\n coordinateSystem: 'cartesian2d',\n // Can be set as 'none'\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n useTransform: true // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Polar coordinate system\n // polarIndex: 0,\n // Geo coordinate system\n // geoIndex: 0,\n // label: {}\n // itemStyle: {}\n\n },\n\n /**\n * @override\n */\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this);\n },\n\n /**\n * @override\n */\n getDataParams: function (dataIndex, dataType, el) {\n var params = SeriesModel.prototype.getDataParams.apply(this, arguments);\n el && (params.info = el.info);\n return params;\n }\n}); // -----\n// View\n// -----\n\nChartView.extend({\n type: 'custom',\n\n /**\n * @private\n * @type {module:echarts/data/List}\n */\n _data: null,\n\n /**\n * @override\n */\n render: function (customSeries, ecModel, api, payload) {\n var oldData = this._data;\n var data = customSeries.getData();\n var group = this.group;\n var renderItem = makeRenderItem(customSeries, data, ecModel, api); // By default, merge mode is applied. In most cases, custom series is\n // used in the scenario that data amount is not large but graphic elements\n // is complicated, where merge mode is probably necessary for optimization.\n // For example, reuse graphic elements and only update the transform when\n // roam or data zoom according to `actionType`.\n\n data.diff(oldData).add(function (newIdx) {\n createOrUpdate(null, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n }).update(function (newIdx, oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n createOrUpdate(el, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n },\n incrementalPrepareRender: function (customSeries, ecModel, api) {\n this.group.removeAll();\n this._data = null;\n },\n incrementalRender: function (params, customSeries, ecModel, api, payload) {\n var data = customSeries.getData();\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n function setIncrementalAndHoverLayer(el) {\n if (!el.isGroup) {\n el.incremental = true;\n el.useHoverLayer = true;\n }\n }\n\n for (var idx = params.start; idx < params.end; idx++) {\n var el = createOrUpdate(null, idx, renderItem(idx, payload), customSeries, this.group, data);\n el.traverse(setIncrementalAndHoverLayer);\n }\n },\n\n /**\n * @override\n */\n dispose: zrUtil.noop,\n\n /**\n * @override\n */\n filterForExposedEvent: function (eventType, query, targetEl, packedEvent) {\n var elementName = query.element;\n\n if (elementName == null || targetEl.name === elementName) {\n return true;\n } // Enable to give a name on a group made by `renderItem`, and listen\n // events that triggerd by its descendents.\n\n\n while ((targetEl = targetEl.parent) && targetEl !== this.group) {\n if (targetEl.name === elementName) {\n return true;\n }\n }\n\n return false;\n }\n});\n\nfunction createEl(elOption) {\n var graphicType = elOption.type;\n var el;\n\n if (graphicType === 'path') {\n var shape = elOption.shape; // Using pathRect brings convenience to users sacle svg path.\n\n var pathRect = shape.width != null && shape.height != null ? {\n x: shape.x || 0,\n y: shape.y || 0,\n width: shape.width,\n height: shape.height\n } : null;\n var pathData = getPathData(shape); // Path is also used for icon, so layout 'center' by default.\n\n el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n el.__customPathData = pathData;\n } else if (graphicType === 'image') {\n el = new graphicUtil.Image({});\n el.__customImagePath = elOption.style.image;\n } else if (graphicType === 'text') {\n el = new graphicUtil.Text({});\n el.__customText = elOption.style.text;\n } else {\n var Clz = graphicUtil[graphicType.charAt(0).toUpperCase() + graphicType.slice(1)];\n el = new Clz();\n }\n\n el.__customGraphicType = graphicType;\n el.name = elOption.name;\n return el;\n}\n\nfunction updateEl(el, dataIndex, elOption, animatableModel, data, isInit, isRoot) {\n var transitionProps = {};\n var elOptionStyle = elOption.style || {};\n elOption.shape && (transitionProps.shape = zrUtil.clone(elOption.shape));\n elOption.position && (transitionProps.position = elOption.position.slice());\n elOption.scale && (transitionProps.scale = elOption.scale.slice());\n elOption.origin && (transitionProps.origin = elOption.origin.slice());\n elOption.rotation && (transitionProps.rotation = elOption.rotation);\n\n if (el.type === 'image' && elOption.style) {\n var targetStyle = transitionProps.style = {};\n zrUtil.each(['x', 'y', 'width', 'height'], function (prop) {\n prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);\n });\n }\n\n if (el.type === 'text' && elOption.style) {\n var targetStyle = transitionProps.style = {};\n zrUtil.each(['x', 'y'], function (prop) {\n prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);\n }); // Compatible with previous: both support\n // textFill and fill, textStroke and stroke in 'text' element.\n\n !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\n !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\n }\n\n if (el.type !== 'group') {\n el.useStyle(elOptionStyle); // Init animation.\n\n if (isInit) {\n el.style.opacity = 0;\n var targetOpacity = elOptionStyle.opacity;\n targetOpacity == null && (targetOpacity = 1);\n graphicUtil.initProps(el, {\n style: {\n opacity: targetOpacity\n }\n }, animatableModel, dataIndex);\n }\n }\n\n if (isInit) {\n el.attr(transitionProps);\n } else {\n graphicUtil.updateProps(el, transitionProps, animatableModel, dataIndex);\n } // Merge by default.\n // z2 must not be null/undefined, otherwise sort error may occur.\n\n\n elOption.hasOwnProperty('z2') && el.attr('z2', elOption.z2 || 0);\n elOption.hasOwnProperty('silent') && el.attr('silent', elOption.silent);\n elOption.hasOwnProperty('invisible') && el.attr('invisible', elOption.invisible);\n elOption.hasOwnProperty('ignore') && el.attr('ignore', elOption.ignore); // `elOption.info` enables user to mount some info on\n // elements and use them in event handlers.\n // Update them only when user specified, otherwise, remain.\n\n elOption.hasOwnProperty('info') && el.attr('info', elOption.info); // If `elOption.styleEmphasis` is `false`, remove hover style. The\n // logic is ensured by `graphicUtil.setElementHoverStyle`.\n\n var styleEmphasis = elOption.styleEmphasis;\n var disableStyleEmphasis = styleEmphasis === false;\n\n if (!( // Try to escapse setting hover style for performance.\n el.__cusHasEmphStl && styleEmphasis == null || !el.__cusHasEmphStl && disableStyleEmphasis)) {\n // Should not use graphicUtil.setHoverStyle, since the styleEmphasis\n // should not be share by group and its descendants.\n graphicUtil.setElementHoverStyle(el, styleEmphasis);\n el.__cusHasEmphStl = !disableStyleEmphasis;\n }\n\n isRoot && graphicUtil.setAsHoverStyleTrigger(el, !disableStyleEmphasis);\n}\n\nfunction prepareStyleTransition(prop, targetStyle, elOptionStyle, oldElStyle, isInit) {\n if (elOptionStyle[prop] != null && !isInit) {\n targetStyle[prop] = elOptionStyle[prop];\n elOptionStyle[prop] = oldElStyle[prop];\n }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n var renderItem = customSeries.get('renderItem');\n var coordSys = customSeries.coordinateSystem;\n var prepareResult = {};\n\n if (coordSys) {\n prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms() : prepareCustoms[coordSys.type](coordSys);\n }\n\n var userAPI = zrUtil.defaults({\n getWidth: api.getWidth,\n getHeight: api.getHeight,\n getZr: api.getZr,\n getDevicePixelRatio: api.getDevicePixelRatio,\n value: value,\n style: style,\n styleEmphasis: styleEmphasis,\n visual: visual,\n barLayout: barLayout,\n currentSeriesIndices: currentSeriesIndices,\n font: font\n }, prepareResult.api || {});\n var userParams = {\n // The life cycle of context: current round of rendering.\n // The global life cycle is probably not necessary, because\n // user can store global status by themselves.\n context: {},\n seriesId: customSeries.id,\n seriesName: customSeries.name,\n seriesIndex: customSeries.seriesIndex,\n coordSys: prepareResult.coordSys,\n dataInsideLength: data.count(),\n encode: wrapEncodeDef(customSeries.getData())\n }; // Do not support call `api` asynchronously without dataIndexInside input.\n\n var currDataIndexInside;\n var currDirty = true;\n var currItemModel;\n var currLabelNormalModel;\n var currLabelEmphasisModel;\n var currVisualColor;\n return function (dataIndexInside, payload) {\n currDataIndexInside = dataIndexInside;\n currDirty = true;\n return renderItem && renderItem(zrUtil.defaults({\n dataIndexInside: dataIndexInside,\n dataIndex: data.getRawIndex(dataIndexInside),\n // Can be used for optimization when zoom or roam.\n actionType: payload ? payload.type : null\n }, userParams), userAPI);\n }; // Do not update cache until api called.\n\n function updateCache(dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n if (currDirty) {\n currItemModel = data.getItemModel(dataIndexInside);\n currLabelNormalModel = currItemModel.getModel(LABEL_NORMAL);\n currLabelEmphasisModel = currItemModel.getModel(LABEL_EMPHASIS);\n currVisualColor = data.getItemVisual(dataIndexInside, 'color');\n currDirty = false;\n }\n }\n /**\n * @public\n * @param {number|string} dim\n * @param {number} [dataIndexInside=currDataIndexInside]\n * @return {number|string} value\n */\n\n\n function value(dim, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n return data.get(data.getDimension(dim || 0), dataIndexInside);\n }\n /**\n * By default, `visual` is applied to style (to support visualMap).\n * `visual.color` is applied at `fill`. If user want apply visual.color on `stroke`,\n * it can be implemented as:\n * `api.style({stroke: api.visual('color'), fill: null})`;\n * @public\n * @param {Object} [extra]\n * @param {number} [dataIndexInside=currDataIndexInside]\n */\n\n\n function style(extra, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n updateCache(dataIndexInside);\n var itemStyle = currItemModel.getModel(ITEM_STYLE_NORMAL_PATH).getItemStyle();\n currVisualColor != null && (itemStyle.fill = currVisualColor);\n var opacity = data.getItemVisual(dataIndexInside, 'opacity');\n opacity != null && (itemStyle.opacity = opacity);\n graphicUtil.setTextStyle(itemStyle, currLabelNormalModel, null, {\n autoColor: currVisualColor,\n isRectText: true\n });\n itemStyle.text = currLabelNormalModel.getShallow('show') ? zrUtil.retrieve2(customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null;\n extra && zrUtil.extend(itemStyle, extra);\n return itemStyle;\n }\n /**\n * @public\n * @param {Object} [extra]\n * @param {number} [dataIndexInside=currDataIndexInside]\n */\n\n\n function styleEmphasis(extra, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n updateCache(dataIndexInside);\n var itemStyle = currItemModel.getModel(ITEM_STYLE_EMPHASIS_PATH).getItemStyle();\n graphicUtil.setTextStyle(itemStyle, currLabelEmphasisModel, null, {\n isRectText: true\n }, true);\n itemStyle.text = currLabelEmphasisModel.getShallow('show') ? zrUtil.retrieve3(customSeries.getFormattedLabel(dataIndexInside, 'emphasis'), customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null;\n extra && zrUtil.extend(itemStyle, extra);\n return itemStyle;\n }\n /**\n * @public\n * @param {string} visualType\n * @param {number} [dataIndexInside=currDataIndexInside]\n */\n\n\n function visual(visualType, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n return data.getItemVisual(dataIndexInside, visualType);\n }\n /**\n * @public\n * @param {number} opt.count Positive interger.\n * @param {number} [opt.barWidth]\n * @param {number} [opt.barMaxWidth]\n * @param {number} [opt.barGap]\n * @param {number} [opt.barCategoryGap]\n * @return {Object} {width, offset, offsetCenter} is not support, return undefined.\n */\n\n\n function barLayout(opt) {\n if (coordSys.getBaseAxis) {\n var baseAxis = coordSys.getBaseAxis();\n return getLayoutOnAxis(zrUtil.defaults({\n axis: baseAxis\n }, opt), api);\n }\n }\n /**\n * @public\n * @return {Array.}\n */\n\n\n function currentSeriesIndices() {\n return ecModel.getCurrentSeriesIndices();\n }\n /**\n * @public\n * @param {Object} opt\n * @param {string} [opt.fontStyle]\n * @param {number} [opt.fontWeight]\n * @param {number} [opt.fontSize]\n * @param {string} [opt.fontFamily]\n * @return {string} font string\n */\n\n\n function font(opt) {\n return graphicUtil.getFont(opt, ecModel);\n }\n}\n\nfunction wrapEncodeDef(data) {\n var encodeDef = {};\n zrUtil.each(data.dimensions, function (dimName, dataDimIndex) {\n var dimInfo = data.getDimensionInfo(dimName);\n\n if (!dimInfo.isExtraCoord) {\n var coordDim = dimInfo.coordDim;\n var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n dataDims[dimInfo.coordDimIndex] = dataDimIndex;\n }\n });\n return encodeDef;\n}\n\nfunction createOrUpdate(el, dataIndex, elOption, animatableModel, group, data) {\n el = doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data, true);\n el && data.setItemGraphicEl(dataIndex, el);\n return el;\n}\n\nfunction doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data, isRoot) {\n // [Rule]\n // By default, follow merge mode.\n // (It probably brings benifit for performance in some cases of large data, where\n // user program can be optimized to that only updated props needed to be re-calculated,\n // or according to `actionType` some calculation can be skipped.)\n // If `renderItem` returns `null`/`undefined`/`false`, remove the previous el if existing.\n // (It seems that violate the \"merge\" principle, but most of users probably intuitively\n // regard \"return;\" as \"show nothing element whatever\", so make a exception to meet the\n // most cases.)\n var simplyRemove = !elOption; // `null`/`undefined`/`false`\n\n elOption = elOption || {};\n var elOptionType = elOption.type;\n var elOptionShape = elOption.shape;\n var elOptionStyle = elOption.style;\n\n if (el && (simplyRemove // || elOption.$merge === false\n // If `elOptionType` is `null`, follow the merge principle.\n || elOptionType != null && elOptionType !== el.__customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== el.__customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== el.__customImagePath // FIXME test and remove this restriction?\n || elOptionType === 'text' && hasOwn(elOptionShape, 'text') && elOptionStyle.text !== el.__customText)) {\n group.remove(el);\n el = null;\n } // `elOption.type` is undefined when `renderItem` returns nothing.\n\n\n if (simplyRemove) {\n return;\n }\n\n var isInit = !el;\n !el && (el = createEl(elOption));\n updateEl(el, dataIndex, elOption, animatableModel, data, isInit, isRoot);\n\n if (elOptionType === 'group') {\n mergeChildren(el, dataIndex, elOption, animatableModel, data);\n } // Always add whatever already added to ensure sequence.\n\n\n group.add(el);\n return el;\n} // Usage:\n// (1) By default, `elOption.$mergeChildren` is `'byIndex'`, which indicates that\n// the existing children will not be removed, and enables the feature that\n// update some of the props of some of the children simply by construct\n// the returned children of `renderItem` like:\n// `var children = group.children = []; children[3] = {opacity: 0.5};`\n// (2) If `elOption.$mergeChildren` is `'byName'`, add/update/remove children\n// by child.name. But that might be lower performance.\n// (3) If `elOption.$mergeChildren` is `false`, the existing children will be\n// replaced totally.\n// (4) If `!elOption.children`, following the \"merge\" principle, nothing will happen.\n//\n// For implementation simpleness, do not provide a direct way to remove sinlge\n// child (otherwise the total indicies of the children array have to be modified).\n// User can remove a single child by set its `ignore` as `true` or replace\n// it by another element, where its `$merge` can be set as `true` if necessary.\n\n\nfunction mergeChildren(el, dataIndex, elOption, animatableModel, data) {\n var newChildren = elOption.children;\n var newLen = newChildren ? newChildren.length : 0;\n var mergeChildren = elOption.$mergeChildren; // `diffChildrenByName` has been deprecated.\n\n var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n var notMerge = mergeChildren === false; // For better performance on roam update, only enter if necessary.\n\n if (!newLen && !byName && !notMerge) {\n return;\n }\n\n if (byName) {\n diffGroupChildren({\n oldChildren: el.children() || [],\n newChildren: newChildren || [],\n dataIndex: dataIndex,\n animatableModel: animatableModel,\n group: el,\n data: data\n });\n return;\n }\n\n notMerge && el.removeAll(); // Mapping children of a group simply by index, which\n // might be better performance.\n\n var index = 0;\n\n for (; index < newLen; index++) {\n newChildren[index] && doCreateOrUpdate(el.childAt(index), dataIndex, newChildren[index], animatableModel, el, data);\n }\n}\n\nfunction diffGroupChildren(context) {\n new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n var name = item && item.name;\n return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n var context = this.context;\n var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n doCreateOrUpdate(child, context.dataIndex, childOption, context.animatableModel, context.group, context.data);\n}\n\nfunction processRemove(oldIndex) {\n var context = this.context;\n var child = context.oldChildren[oldIndex];\n child && context.group.remove(child);\n}\n\nfunction getPathData(shape) {\n // \"d\" follows the SVG convention.\n return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n return shape && (shape.hasOwnProperty('pathData') || shape.hasOwnProperty('d'));\n}\n\nfunction hasOwn(host, prop) {\n return host && host.hasOwnProperty(prop);\n}\n\n/***/ }),\n/* 1067 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1068);\n\n__webpack_require__(1069);\n\nvar visualSymbol = __webpack_require__(107);\n\nvar layoutPoints = __webpack_require__(148);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(visualSymbol('effectScatter', 'circle'));\necharts.registerLayout(layoutPoints('effectScatter'));\n\n/***/ }),\n/* 1068 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar createListFromArray = __webpack_require__(70);\n\nvar SeriesModel = __webpack_require__(30);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.effectScatter',\n dependencies: ['grid', 'polar'],\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this);\n },\n brushSelector: 'point',\n defaultOption: {\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n effectType: 'ripple',\n progressive: 0,\n // When to show the effect, option: 'render'|'emphasis'\n showEffectOn: 'render',\n // Ripple effect config\n rippleEffect: {\n period: 4,\n // Scale of ripple\n scale: 2.5,\n // Brush type can be fill or stroke\n brushType: 'fill'\n },\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Polar coordinate system\n // polarIndex: 0,\n // Geo coordinate system\n // geoIndex: 0,\n // symbol: null, // 图形类型\n symbolSize: 10 // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2\n // symbolRotate: null, // 图形旋转控制\n // large: false,\n // Available when large is true\n // largeThreshold: 2000,\n // itemStyle: {\n // opacity: 1\n // }\n\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1069 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar SymbolDraw = __webpack_require__(138);\n\nvar EffectSymbol = __webpack_require__(1096);\n\nvar matrix = __webpack_require__(36);\n\nvar pointsLayout = __webpack_require__(148);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendChartView({\n type: 'effectScatter',\n init: function () {\n this._symbolDraw = new SymbolDraw(EffectSymbol);\n },\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var effectSymbolDraw = this._symbolDraw;\n effectSymbolDraw.updateData(data);\n this.group.add(effectSymbolDraw.group);\n },\n updateTransform: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n this.group.dirty();\n var res = pointsLayout().reset(seriesModel);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count()\n }, data);\n }\n\n this._symbolDraw.updateLayout(data);\n },\n _updateGroupTransform: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.getRoamTransform) {\n this.group.transform = matrix.clone(coordSys.getRoamTransform());\n this.group.decomposeTransform();\n }\n },\n remove: function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove(api);\n },\n dispose: function () {}\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1070 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1071);\n\n__webpack_require__(1072);\n\nvar dataColor = __webpack_require__(184);\n\nvar funnelLayout = __webpack_require__(1073);\n\nvar dataFilter = __webpack_require__(149);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(dataColor('funnel'));\necharts.registerLayout(funnelLayout);\necharts.registerProcessor(dataFilter('funnel'));\n\n/***/ }),\n/* 1071 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar createListSimply = __webpack_require__(115);\n\nvar _model = __webpack_require__(9);\n\nvar defaultEmphasis = _model.defaultEmphasis;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar FunnelSeries = echarts.extendSeriesModel({\n type: 'series.funnel',\n init: function (option) {\n FunnelSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n this.legendDataProvider = function () {\n return this.getRawData();\n }; // Extend labelLine emphasis\n\n\n this._defaultLabelLine(option);\n },\n getInitialData: function (option, ecModel) {\n return createListSimply(this, ['value']);\n },\n _defaultLabelLine: function (option) {\n // Extend labelLine emphasis\n defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n },\n // Overwrite\n getDataParams: function (dataIndex) {\n var data = this.getData();\n var params = FunnelSeries.superCall(this, 'getDataParams', dataIndex);\n var valueDim = data.mapDimension('value');\n var sum = data.getSum(valueDim); // Percent is 0 if sum is 0\n\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n params.$vars.push('percent');\n return params;\n },\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n legendHoverLink: true,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n // 默认取数据最小最大值\n // min: 0,\n // max: 100,\n minSize: '0%',\n maxSize: '100%',\n sort: 'descending',\n // 'ascending', 'descending'\n gap: 0,\n funnelAlign: 'center',\n label: {\n show: true,\n position: 'outer' // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n\n },\n labelLine: {\n show: true,\n length: 20,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n // color: 各异,\n borderColor: '#fff',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true\n }\n }\n }\n});\nvar _default = FunnelSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1072 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = __webpack_require__(5);\n\nvar zrUtil = __webpack_require__(0);\n\nvar ChartView = __webpack_require__(65);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Piece of pie including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\nfunction FunnelPiece(data, idx) {\n graphic.Group.call(this);\n var polygon = new graphic.Polygon();\n var labelLine = new graphic.Polyline();\n var text = new graphic.Text();\n this.add(polygon);\n this.add(labelLine);\n this.add(text);\n this.updateData(data, idx, true); // Hover to change label and labelLine\n\n function onEmphasis() {\n labelLine.ignore = labelLine.hoverIgnore;\n text.ignore = text.hoverIgnore;\n }\n\n function onNormal() {\n labelLine.ignore = labelLine.normalIgnore;\n text.ignore = text.normalIgnore;\n }\n\n this.on('emphasis', onEmphasis).on('normal', onNormal).on('mouseover', onEmphasis).on('mouseout', onNormal);\n}\n\nvar funnelPieceProto = FunnelPiece.prototype;\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n\nfunnelPieceProto.updateData = function (data, idx, firstCreate) {\n var polygon = this.childAt(0);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var opacity = data.getItemModel(idx).get(opacityAccessPath);\n opacity = opacity == null ? 1 : opacity; // Reset style\n\n polygon.useStyle({});\n\n if (firstCreate) {\n polygon.setShape({\n points: layout.points\n });\n polygon.setStyle({\n opacity: 0\n });\n graphic.initProps(polygon, {\n style: {\n opacity: opacity\n }\n }, seriesModel, idx);\n } else {\n graphic.updateProps(polygon, {\n style: {\n opacity: opacity\n },\n shape: {\n points: layout.points\n }\n }, seriesModel, idx);\n } // Update common style\n\n\n var itemStyleModel = itemModel.getModel('itemStyle');\n var visualColor = data.getItemVisual(idx, 'color');\n polygon.setStyle(zrUtil.defaults({\n lineJoin: 'round',\n fill: visualColor\n }, itemStyleModel.getItemStyle(['opacity'])));\n polygon.hoverStyle = itemStyleModel.getModel('emphasis').getItemStyle();\n\n this._updateLabel(data, idx);\n\n graphic.setHoverStyle(this);\n};\n\nfunnelPieceProto._updateLabel = function (data, idx) {\n var labelLine = this.childAt(1);\n var labelText = this.childAt(2);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var labelLayout = layout.label;\n var visualColor = data.getItemVisual(idx, 'color');\n graphic.updateProps(labelLine, {\n shape: {\n points: labelLayout.linePoints || labelLayout.linePoints\n }\n }, seriesModel, idx);\n graphic.updateProps(labelText, {\n style: {\n x: labelLayout.x,\n y: labelLayout.y\n }\n }, seriesModel, idx);\n labelText.attr({\n rotation: labelLayout.rotation,\n origin: [labelLayout.x, labelLayout.y],\n z2: 10\n });\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineHoverModel = itemModel.getModel('emphasis.labelLine');\n var visualColor = data.getItemVisual(idx, 'color');\n graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n defaultText: data.getName(idx),\n autoColor: visualColor,\n useInsideStyle: !!labelLayout.inside\n }, {\n textAlign: labelLayout.textAlign,\n textVerticalAlign: labelLayout.verticalAlign\n });\n labelText.ignore = labelText.normalIgnore = !labelModel.get('show');\n labelText.hoverIgnore = !labelHoverModel.get('show');\n labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show');\n labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color\n\n labelLine.setStyle({\n stroke: visualColor\n });\n labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());\n labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();\n};\n\nzrUtil.inherits(FunnelPiece, graphic.Group);\nvar FunnelView = ChartView.extend({\n type: 'funnel',\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n data.diff(oldData).add(function (idx) {\n var funnelPiece = new FunnelPiece(data, idx);\n data.setItemGraphicEl(idx, funnelPiece);\n group.add(funnelPiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n piePiece.updateData(data, newIdx);\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n group.remove(piePiece);\n }).execute();\n this._data = data;\n },\n remove: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: function () {}\n});\nvar _default = FunnelView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1073 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar layout = __webpack_require__(16);\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction getSortedIndices(data, sort) {\n var valueDim = data.mapDimension('value');\n var valueArr = data.mapArray(valueDim, function (val) {\n return val;\n });\n var indices = [];\n var isAscending = sort === 'ascending';\n\n for (var i = 0, len = data.count(); i < len; i++) {\n indices[i] = i;\n } // Add custom sortable function & none sortable opetion by \"options.sort\"\n\n\n if (typeof sort === 'function') {\n indices.sort(sort);\n } else if (sort !== 'none') {\n indices.sort(function (a, b) {\n return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n });\n }\n\n return indices;\n}\n\nfunction labelLayout(data) {\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelPosition = labelModel.get('position');\n var labelLineModel = itemModel.getModel('labelLine');\n var layout = data.getItemLayout(idx);\n var points = layout.points;\n var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center';\n var textAlign;\n var textX;\n var textY;\n var linePoints;\n\n if (isLabelInside) {\n textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n textAlign = 'center';\n linePoints = [[textX, textY], [textX, textY]];\n } else {\n var x1;\n var y1;\n var x2;\n var labelLineLen = labelLineModel.get('length');\n\n if (labelPosition === 'left') {\n // Left side\n x1 = (points[3][0] + points[0][0]) / 2;\n y1 = (points[3][1] + points[0][1]) / 2;\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else {\n // Right side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n }\n\n var y2 = y1;\n linePoints = [[x1, y1], [x2, y2]];\n textY = y2;\n }\n\n layout.label = {\n linePoints: linePoints,\n x: textX,\n y: textY,\n verticalAlign: 'middle',\n textAlign: textAlign,\n inside: isLabelInside\n };\n });\n}\n\nfunction _default(ecModel, api, payload) {\n ecModel.eachSeriesByType('funnel', function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var sort = seriesModel.get('sort');\n var viewRect = getViewRect(seriesModel, api);\n var indices = getSortedIndices(data, sort);\n var sizeExtent = [parsePercent(seriesModel.get('minSize'), viewRect.width), parsePercent(seriesModel.get('maxSize'), viewRect.width)];\n var dataExtent = data.getDataExtent(valueDim);\n var min = seriesModel.get('min');\n var max = seriesModel.get('max');\n\n if (min == null) {\n min = Math.min(dataExtent[0], 0);\n }\n\n if (max == null) {\n max = dataExtent[1];\n }\n\n var funnelAlign = seriesModel.get('funnelAlign');\n var gap = seriesModel.get('gap');\n var itemHeight = (viewRect.height - gap * (data.count() - 1)) / data.count();\n var y = viewRect.y;\n\n var getLinePoints = function (idx, offY) {\n // End point index is data.count() and we assign it 0\n var val = data.get(valueDim, idx) || 0;\n var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n var x0;\n\n switch (funnelAlign) {\n case 'left':\n x0 = viewRect.x;\n break;\n\n case 'center':\n x0 = viewRect.x + (viewRect.width - itemWidth) / 2;\n break;\n\n case 'right':\n x0 = viewRect.x + viewRect.width - itemWidth;\n break;\n }\n\n return [[x0, offY], [x0 + itemWidth, offY]];\n };\n\n if (sort === 'ascending') {\n // From bottom to top\n itemHeight = -itemHeight;\n gap = -gap;\n y += viewRect.height;\n indices = indices.reverse();\n }\n\n for (var i = 0; i < indices.length; i++) {\n var idx = indices[i];\n var nextIdx = indices[i + 1];\n var itemModel = data.getItemModel(idx);\n var height = itemModel.get('itemStyle.height');\n\n if (height == null) {\n height = itemHeight;\n } else {\n height = parsePercent(height, viewRect.height);\n\n if (sort === 'ascending') {\n height = -height;\n }\n }\n\n var start = getLinePoints(idx, y);\n var end = getLinePoints(nextIdx, y + height);\n y += height + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n }\n\n labelLayout(data);\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1074 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(1075);\n\n__webpack_require__(1076);\n\n/***/ }),\n/* 1075 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar createListSimply = __webpack_require__(115);\n\nvar SeriesModel = __webpack_require__(30);\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GaugeSeries = SeriesModel.extend({\n type: 'series.gauge',\n getInitialData: function (option, ecModel) {\n var dataOpt = option.data || [];\n\n if (!zrUtil.isArray(dataOpt)) {\n dataOpt = [dataOpt];\n }\n\n option.data = dataOpt;\n return createListSimply(this, ['value']);\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n // 默认全局居中\n center: ['50%', '50%'],\n legendHoverLink: true,\n radius: '75%',\n startAngle: 225,\n endAngle: -45,\n clockwise: true,\n // 最小值\n min: 0,\n // 最大值\n max: 100,\n // 分割段数,默认为10\n splitNumber: 10,\n // 坐标轴线\n axisLine: {\n // 默认显示,属性show控制显示与否\n show: true,\n lineStyle: {\n // 属性lineStyle控制线条样式\n color: [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']],\n width: 30\n }\n },\n // 分隔线\n splitLine: {\n // 默认显示,属性show控制显示与否\n show: true,\n // 属性length控制线长\n length: 30,\n // 属性lineStyle(详见lineStyle)控制线条样式\n lineStyle: {\n color: '#eee',\n width: 2,\n type: 'solid'\n }\n },\n // 坐标轴小标记\n axisTick: {\n // 属性show控制显示与否,默认不显示\n show: true,\n // 每份split细分多少段\n splitNumber: 5,\n // 属性length控制线长\n length: 8,\n // 属性lineStyle控制线条样式\n lineStyle: {\n color: '#eee',\n width: 1,\n type: 'solid'\n }\n },\n axisLabel: {\n show: true,\n distance: 5,\n // formatter: null,\n color: 'auto'\n },\n pointer: {\n show: true,\n length: '80%',\n width: 8\n },\n itemStyle: {\n color: 'auto'\n },\n title: {\n show: true,\n // x, y,单位px\n offsetCenter: [0, '-40%'],\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#333',\n fontSize: 15\n },\n detail: {\n show: true,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n borderColor: '#ccc',\n width: 100,\n height: null,\n // self-adaption\n padding: [5, 10],\n // x, y,单位px\n offsetCenter: [0, '40%'],\n // formatter: null,\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: 'auto',\n fontSize: 30\n }\n }\n});\nvar _default = GaugeSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1076 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar PointerPath = __webpack_require__(1077);\n\nvar graphic = __webpack_require__(5);\n\nvar ChartView = __webpack_require__(65);\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\nvar round = _number.round;\nvar linearMap = _number.linearMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction parsePosition(seriesModel, api) {\n var center = seriesModel.get('center');\n var width = api.getWidth();\n var height = api.getHeight();\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], api.getWidth());\n var cy = parsePercent(center[1], api.getHeight());\n var r = parsePercent(seriesModel.get('radius'), size / 2);\n return {\n cx: cx,\n cy: cy,\n r: r\n };\n}\n\nfunction formatLabel(label, labelFormatter) {\n if (labelFormatter) {\n if (typeof labelFormatter === 'string') {\n label = labelFormatter.replace('{value}', label != null ? label : '');\n } else if (typeof labelFormatter === 'function') {\n label = labelFormatter(label);\n }\n }\n\n return label;\n}\n\nvar PI2 = Math.PI * 2;\nvar GaugeView = ChartView.extend({\n type: 'gauge',\n render: function (seriesModel, ecModel, api) {\n this.group.removeAll();\n var colorList = seriesModel.get('axisLine.lineStyle.color');\n var posInfo = parsePosition(seriesModel, api);\n\n this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n },\n dispose: function () {},\n _renderMain: function (seriesModel, ecModel, api, colorList, posInfo) {\n var group = this.group;\n var axisLineModel = seriesModel.getModel('axisLine');\n var lineStyleModel = axisLineModel.getModel('lineStyle');\n var clockwise = seriesModel.get('clockwise');\n var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n var angleRangeSpan = (endAngle - startAngle) % PI2;\n var prevEndAngle = startAngle;\n var axisLineWidth = lineStyleModel.get('width');\n\n for (var i = 0; i < colorList.length; i++) {\n // Clamp\n var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n var endAngle = startAngle + angleRangeSpan * percent;\n var sector = new graphic.Sector({\n shape: {\n startAngle: prevEndAngle,\n endAngle: endAngle,\n cx: posInfo.cx,\n cy: posInfo.cy,\n clockwise: clockwise,\n r0: posInfo.r - axisLineWidth,\n r: posInfo.r\n },\n silent: true\n });\n sector.setStyle({\n fill: colorList[i][1]\n });\n sector.setStyle(lineStyleModel.getLineStyle( // Because we use sector to simulate arc\n // so the properties for stroking are useless\n ['color', 'borderWidth', 'borderColor']));\n group.add(sector);\n prevEndAngle = endAngle;\n }\n\n var getColor = function (percent) {\n // Less than 0\n if (percent <= 0) {\n return colorList[0][1];\n }\n\n for (var i = 0; i < colorList.length; i++) {\n if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n return colorList[i][1];\n }\n } // More than 1\n\n\n return colorList[i - 1][1];\n };\n\n if (!clockwise) {\n var tmp = startAngle;\n startAngle = endAngle;\n endAngle = tmp;\n }\n\n this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\n\n this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\n\n this._renderTitle(seriesModel, ecModel, api, getColor, posInfo);\n\n this._renderDetail(seriesModel, ecModel, api, getColor, posInfo);\n },\n _renderTicks: function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\n var group = this.group;\n var cx = posInfo.cx;\n var cy = posInfo.cy;\n var r = posInfo.r;\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var splitLineModel = seriesModel.getModel('splitLine');\n var tickModel = seriesModel.getModel('axisTick');\n var labelModel = seriesModel.getModel('axisLabel');\n var splitNumber = seriesModel.get('splitNumber');\n var subSplitNumber = tickModel.get('splitNumber');\n var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n var tickLen = parsePercent(tickModel.get('length'), r);\n var angle = startAngle;\n var step = (endAngle - startAngle) / splitNumber;\n var subStep = step / subSplitNumber;\n var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n\n for (var i = 0; i <= splitNumber; i++) {\n var unitX = Math.cos(angle);\n var unitY = Math.sin(angle); // Split line\n\n if (splitLineModel.get('show')) {\n var splitLine = new graphic.Line({\n shape: {\n x1: unitX * r + cx,\n y1: unitY * r + cy,\n x2: unitX * (r - splitLineLen) + cx,\n y2: unitY * (r - splitLineLen) + cy\n },\n style: splitLineStyle,\n silent: true\n });\n\n if (splitLineStyle.stroke === 'auto') {\n splitLine.setStyle({\n stroke: getColor(i / splitNumber)\n });\n }\n\n group.add(splitLine);\n } // Label\n\n\n if (labelModel.get('show')) {\n var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n var distance = labelModel.get('distance');\n var autoColor = getColor(i / splitNumber);\n group.add(new graphic.Text({\n style: graphic.setTextStyle({}, labelModel, {\n text: label,\n x: unitX * (r - splitLineLen - distance) + cx,\n y: unitY * (r - splitLineLen - distance) + cy,\n textVerticalAlign: unitY < -0.4 ? 'top' : unitY > 0.4 ? 'bottom' : 'middle',\n textAlign: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n }, {\n autoColor: autoColor\n }),\n silent: true\n }));\n } // Axis tick\n\n\n if (tickModel.get('show') && i !== splitNumber) {\n for (var j = 0; j <= subSplitNumber; j++) {\n var unitX = Math.cos(angle);\n var unitY = Math.sin(angle);\n var tickLine = new graphic.Line({\n shape: {\n x1: unitX * r + cx,\n y1: unitY * r + cy,\n x2: unitX * (r - tickLen) + cx,\n y2: unitY * (r - tickLen) + cy\n },\n silent: true,\n style: tickLineStyle\n });\n\n if (tickLineStyle.stroke === 'auto') {\n tickLine.setStyle({\n stroke: getColor((i + j / subSplitNumber) / splitNumber)\n });\n }\n\n group.add(tickLine);\n angle += subStep;\n }\n\n angle -= subStep;\n } else {\n angle += step;\n }\n }\n },\n _renderPointer: function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\n var group = this.group;\n var oldData = this._data;\n\n if (!seriesModel.get('pointer.show')) {\n // Remove old element\n oldData && oldData.eachItemGraphicEl(function (el) {\n group.remove(el);\n });\n return;\n }\n\n var valueExtent = [+seriesModel.get('min'), +seriesModel.get('max')];\n var angleExtent = [startAngle, endAngle];\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n data.diff(oldData).add(function (idx) {\n var pointer = new PointerPath({\n shape: {\n angle: startAngle\n }\n });\n graphic.initProps(pointer, {\n shape: {\n angle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true)\n }\n }, seriesModel);\n group.add(pointer);\n data.setItemGraphicEl(idx, pointer);\n }).update(function (newIdx, oldIdx) {\n var pointer = oldData.getItemGraphicEl(oldIdx);\n graphic.updateProps(pointer, {\n shape: {\n angle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true)\n }\n }, seriesModel);\n group.add(pointer);\n data.setItemGraphicEl(newIdx, pointer);\n }).remove(function (idx) {\n var pointer = oldData.getItemGraphicEl(idx);\n group.remove(pointer);\n }).execute();\n data.eachItemGraphicEl(function (pointer, idx) {\n var itemModel = data.getItemModel(idx);\n var pointerModel = itemModel.getModel('pointer');\n pointer.setShape({\n x: posInfo.cx,\n y: posInfo.cy,\n width: parsePercent(pointerModel.get('width'), posInfo.r),\n r: parsePercent(pointerModel.get('length'), posInfo.r)\n });\n pointer.useStyle(itemModel.getModel('itemStyle').getItemStyle());\n\n if (pointer.style.fill === 'auto') {\n pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n }\n\n graphic.setHoverStyle(pointer, itemModel.getModel('emphasis.itemStyle').getItemStyle());\n });\n this._data = data;\n },\n _renderTitle: function (seriesModel, ecModel, api, getColor, posInfo) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var titleModel = seriesModel.getModel('title');\n\n if (titleModel.get('show')) {\n var offsetCenter = titleModel.get('offsetCenter');\n var x = posInfo.cx + parsePercent(offsetCenter[0], posInfo.r);\n var y = posInfo.cy + parsePercent(offsetCenter[1], posInfo.r);\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var value = seriesModel.getData().get(valueDim, 0);\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n this.group.add(new graphic.Text({\n silent: true,\n style: graphic.setTextStyle({}, titleModel, {\n x: x,\n y: y,\n // FIXME First data name ?\n text: data.getName(0),\n textAlign: 'center',\n textVerticalAlign: 'middle'\n }, {\n autoColor: autoColor,\n forceRich: true\n })\n }));\n }\n },\n _renderDetail: function (seriesModel, ecModel, api, getColor, posInfo) {\n var detailModel = seriesModel.getModel('detail');\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n\n if (detailModel.get('show')) {\n var offsetCenter = detailModel.get('offsetCenter');\n var x = posInfo.cx + parsePercent(offsetCenter[0], posInfo.r);\n var y = posInfo.cy + parsePercent(offsetCenter[1], posInfo.r);\n var width = parsePercent(detailModel.get('width'), posInfo.r);\n var height = parsePercent(detailModel.get('height'), posInfo.r);\n var data = seriesModel.getData();\n var value = data.get(data.mapDimension('value'), 0);\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n this.group.add(new graphic.Text({\n silent: true,\n style: graphic.setTextStyle({}, detailModel, {\n x: x,\n y: y,\n text: formatLabel( // FIXME First data name ?\n value, detailModel.get('formatter')),\n textWidth: isNaN(width) ? null : width,\n textHeight: isNaN(height) ? null : height,\n textAlign: 'center',\n textVerticalAlign: 'middle'\n }, {\n autoColor: autoColor,\n forceRich: true\n })\n }));\n }\n }\n});\nvar _default = GaugeView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1077 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar Path = __webpack_require__(22);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = Path.extend({\n type: 'echartsGaugePointer',\n shape: {\n angle: 0,\n width: 10,\n r: 10,\n x: 0,\n y: 0\n },\n buildPath: function (ctx, shape) {\n var mathCos = Math.cos;\n var mathSin = Math.sin;\n var r = shape.r;\n var width = shape.width;\n var angle = shape.angle;\n var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n angle = shape.angle - Math.PI / 2;\n ctx.moveTo(x, y);\n ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n ctx.lineTo(x, y);\n return;\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1078 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1079);\n\n__webpack_require__(1080);\n\n__webpack_require__(1089);\n\nvar categoryFilter = __webpack_require__(1082);\n\nvar visualSymbol = __webpack_require__(107);\n\nvar categoryVisual = __webpack_require__(1083);\n\nvar edgeVisual = __webpack_require__(1086);\n\nvar simpleLayout = __webpack_require__(1090);\n\nvar circularLayout = __webpack_require__(1084);\n\nvar forceLayout = __webpack_require__(1088);\n\nvar createView = __webpack_require__(1085);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerProcessor(categoryFilter);\necharts.registerVisual(visualSymbol('graph', 'circle', null));\necharts.registerVisual(categoryVisual);\necharts.registerVisual(edgeVisual);\necharts.registerLayout(simpleLayout);\necharts.registerLayout(circularLayout);\necharts.registerLayout(forceLayout); // Graph view coordinate system\n\necharts.registerCoordinateSystem('graphView', {\n create: createView\n});\n\n/***/ }),\n/* 1079 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar List = __webpack_require__(49);\n\nvar zrUtil = __webpack_require__(0);\n\nvar _model = __webpack_require__(9);\n\nvar defaultEmphasis = _model.defaultEmphasis;\n\nvar Model = __webpack_require__(31);\n\nvar _format = __webpack_require__(19);\n\nvar encodeHTML = _format.encodeHTML;\n\nvar createGraphFromNodeEdge = __webpack_require__(360);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GraphSeries = echarts.extendSeriesModel({\n type: 'series.graph',\n init: function (option) {\n GraphSeries.superApply(this, 'init', arguments); // Provide data for legend select\n\n this.legendDataProvider = function () {\n return this._categoriesData;\n };\n\n this.fillDataTextStyle(option.edges || option.links);\n\n this._updateCategoriesData();\n },\n mergeOption: function (option) {\n GraphSeries.superApply(this, 'mergeOption', arguments);\n this.fillDataTextStyle(option.edges || option.links);\n\n this._updateCategoriesData();\n },\n mergeDefaultAndTheme: function (option) {\n GraphSeries.superApply(this, 'mergeDefaultAndTheme', arguments);\n defaultEmphasis(option, ['edgeLabel'], ['show']);\n },\n getInitialData: function (option, ecModel) {\n var edges = option.edges || option.links || [];\n var nodes = option.data || option.nodes || [];\n var self = this;\n\n if (nodes && edges) {\n return createGraphFromNodeEdge(nodes, edges, this, true, beforeLink).data;\n }\n\n function beforeLink(nodeData, edgeData) {\n // Overwrite nodeData.getItemModel to\n nodeData.wrapMethod('getItemModel', function (model) {\n var categoriesModels = self._categoriesModels;\n var categoryIdx = model.getShallow('category');\n var categoryModel = categoriesModels[categoryIdx];\n\n if (categoryModel) {\n categoryModel.parentModel = model.parentModel;\n model.parentModel = categoryModel;\n }\n\n return model;\n });\n var edgeLabelModel = self.getModel('edgeLabel'); // For option `edgeLabel` can be found by label.xxx.xxx on item mode.\n\n var fakeSeriesModel = new Model({\n label: edgeLabelModel.option\n }, edgeLabelModel.parentModel, ecModel);\n var emphasisEdgeLabelModel = self.getModel('emphasis.edgeLabel');\n var emphasisFakeSeriesModel = new Model({\n emphasis: {\n label: emphasisEdgeLabelModel.option\n }\n }, emphasisEdgeLabelModel.parentModel, ecModel);\n edgeData.wrapMethod('getItemModel', function (model) {\n model.customizeGetParent(edgeGetParent);\n return model;\n });\n\n function edgeGetParent(path) {\n path = this.parsePath(path);\n return path && path[0] === 'label' ? fakeSeriesModel : path && path[0] === 'emphasis' && path[1] === 'label' ? emphasisFakeSeriesModel : this.parentModel;\n }\n }\n },\n\n /**\n * @return {module:echarts/data/Graph}\n */\n getGraph: function () {\n return this.getData().graph;\n },\n\n /**\n * @return {module:echarts/data/List}\n */\n getEdgeData: function () {\n return this.getGraph().edgeData;\n },\n\n /**\n * @return {module:echarts/data/List}\n */\n getCategoriesData: function () {\n return this._categoriesData;\n },\n\n /**\n * @override\n */\n formatTooltip: function (dataIndex, multipleSeries, dataType) {\n if (dataType === 'edge') {\n var nodeData = this.getData();\n var params = this.getDataParams(dataIndex, dataType);\n var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n var sourceName = nodeData.getName(edge.node1.dataIndex);\n var targetName = nodeData.getName(edge.node2.dataIndex);\n var html = [];\n sourceName != null && html.push(sourceName);\n targetName != null && html.push(targetName);\n html = encodeHTML(html.join(' > '));\n\n if (params.value) {\n html += ' : ' + encodeHTML(params.value);\n }\n\n return html;\n } else {\n // dataType === 'node' or empty\n return GraphSeries.superApply(this, 'formatTooltip', arguments);\n }\n },\n _updateCategoriesData: function () {\n var categories = zrUtil.map(this.option.categories || [], function (category) {\n // Data must has value\n return category.value != null ? category : zrUtil.extend({\n value: 0\n }, category);\n });\n var categoriesData = new List(['value'], this);\n categoriesData.initData(categories);\n this._categoriesData = categoriesData;\n this._categoriesModels = categoriesData.mapArray(function (idx) {\n return categoriesData.getItemModel(idx, true);\n });\n },\n setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n },\n isAnimationEnabled: function () {\n return GraphSeries.superCall(this, 'isAnimationEnabled') // Not enable animation when do force layout\n && !(this.get('layout') === 'force' && this.get('force.layoutAnimation'));\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n // Default option for all coordinate systems\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // polarIndex: 0,\n // geoIndex: 0,\n legendHoverLink: true,\n hoverAnimation: true,\n layout: null,\n focusNodeAdjacency: false,\n // Configuration of circular layout\n circular: {\n rotateLabel: false\n },\n // Configuration of force directed layout\n force: {\n initLayout: null,\n // Node repulsion. Can be an array to represent range.\n repulsion: [0, 50],\n gravity: 0.1,\n // Edge length. Can be an array to represent range.\n edgeLength: 30,\n layoutAnimation: true\n },\n left: 'center',\n top: 'center',\n // right: null,\n // bottom: null,\n // width: '80%',\n // height: '80%',\n symbol: 'circle',\n symbolSize: 10,\n edgeSymbol: ['none', 'none'],\n edgeSymbolSize: 10,\n edgeLabel: {\n position: 'middle'\n },\n draggable: false,\n roam: false,\n // Default on center of graph\n center: null,\n zoom: 1,\n // Symbol size scale ratio in roam\n nodeScaleRatio: 0.6,\n // cursor: null,\n // categories: [],\n // data: []\n // Or\n // nodes: []\n //\n // links: []\n // Or\n // edges: []\n label: {\n show: false,\n formatter: '{b}'\n },\n itemStyle: {},\n lineStyle: {\n color: '#aaa',\n width: 1,\n curveness: 0,\n opacity: 0.5\n },\n emphasis: {\n label: {\n show: true\n }\n }\n }\n});\nvar _default = GraphSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1080 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar SymbolDraw = __webpack_require__(138);\n\nvar LineDraw = __webpack_require__(247);\n\nvar RoamController = __webpack_require__(143);\n\nvar roamHelper = __webpack_require__(252);\n\nvar _cursorHelper = __webpack_require__(176);\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\nvar graphic = __webpack_require__(5);\n\nvar adjustEdge = __webpack_require__(1081);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar FOCUS_ADJACENCY = '__focusNodeAdjacency';\nvar UNFOCUS_ADJACENCY = '__unfocusNodeAdjacency';\nvar nodeOpacityPath = ['itemStyle', 'opacity'];\nvar lineOpacityPath = ['lineStyle', 'opacity'];\n\nfunction getItemOpacity(item, opacityPath) {\n return item.getVisual('opacity') || item.getModel().get(opacityPath);\n}\n\nfunction fadeOutItem(item, opacityPath, opacityRatio) {\n var el = item.getGraphicEl();\n var opacity = getItemOpacity(item, opacityPath);\n\n if (opacityRatio != null) {\n opacity == null && (opacity = 1);\n opacity *= opacityRatio;\n }\n\n el.downplay && el.downplay();\n el.traverse(function (child) {\n if (child.type !== 'group') {\n var opct = child.lineLabelOriginalOpacity;\n\n if (opct == null || opacityRatio != null) {\n opct = opacity;\n }\n\n child.setStyle('opacity', opct);\n }\n });\n}\n\nfunction fadeInItem(item, opacityPath) {\n var opacity = getItemOpacity(item, opacityPath);\n var el = item.getGraphicEl();\n el.highlight && el.highlight();\n el.traverse(function (child) {\n if (child.type !== 'group') {\n child.setStyle('opacity', opacity);\n }\n });\n}\n\nvar _default = echarts.extendChartView({\n type: 'graph',\n init: function (ecModel, api) {\n var symbolDraw = new SymbolDraw();\n var lineDraw = new LineDraw();\n var group = this.group;\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: group\n };\n group.add(symbolDraw.group);\n group.add(lineDraw.group);\n this._symbolDraw = symbolDraw;\n this._lineDraw = lineDraw;\n this._firstRender = true;\n },\n render: function (seriesModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n this._model = seriesModel;\n this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n var symbolDraw = this._symbolDraw;\n var lineDraw = this._lineDraw;\n var group = this.group;\n\n if (coordSys.type === 'view') {\n var groupNewProp = {\n position: coordSys.position,\n scale: coordSys.scale\n };\n\n if (this._firstRender) {\n group.attr(groupNewProp);\n } else {\n graphic.updateProps(group, groupNewProp, seriesModel);\n }\n } // Fix edge contact point with node\n\n\n adjustEdge(seriesModel.getGraph(), this._getNodeGlobalScale(seriesModel));\n var data = seriesModel.getData();\n symbolDraw.updateData(data);\n var edgeData = seriesModel.getEdgeData();\n lineDraw.updateData(edgeData);\n\n this._updateNodeAndLinkScale();\n\n this._updateController(seriesModel, ecModel, api);\n\n clearTimeout(this._layoutTimeout);\n var forceLayout = seriesModel.forceLayout;\n var layoutAnimation = seriesModel.get('force.layoutAnimation');\n\n if (forceLayout) {\n this._startForceLayoutIteration(forceLayout, layoutAnimation);\n }\n\n data.eachItemGraphicEl(function (el, idx) {\n var itemModel = data.getItemModel(idx); // Update draggable\n\n el.off('drag').off('dragend');\n var draggable = itemModel.get('draggable');\n\n if (draggable) {\n el.on('drag', function () {\n if (forceLayout) {\n forceLayout.warmUp();\n !this._layouting && this._startForceLayoutIteration(forceLayout, layoutAnimation);\n forceLayout.setFixed(idx); // Write position back to layout\n\n data.setItemLayout(idx, el.position);\n }\n }, this).on('dragend', function () {\n if (forceLayout) {\n forceLayout.setUnfixed(idx);\n }\n }, this);\n }\n\n el.setDraggable(draggable && forceLayout);\n el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]);\n el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]);\n\n if (itemModel.get('focusNodeAdjacency')) {\n el.on('mouseover', el[FOCUS_ADJACENCY] = function () {\n api.dispatchAction({\n type: 'focusNodeAdjacency',\n seriesId: seriesModel.id,\n dataIndex: el.dataIndex\n });\n });\n el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () {\n api.dispatchAction({\n type: 'unfocusNodeAdjacency',\n seriesId: seriesModel.id\n });\n });\n }\n }, this);\n data.graph.eachEdge(function (edge) {\n var el = edge.getGraphicEl();\n el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]);\n el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]);\n\n if (edge.getModel().get('focusNodeAdjacency')) {\n el.on('mouseover', el[FOCUS_ADJACENCY] = function () {\n api.dispatchAction({\n type: 'focusNodeAdjacency',\n seriesId: seriesModel.id,\n edgeDataIndex: edge.dataIndex\n });\n });\n el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () {\n api.dispatchAction({\n type: 'unfocusNodeAdjacency',\n seriesId: seriesModel.id\n });\n });\n }\n });\n var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get('circular.rotateLabel');\n var cx = data.getLayout('cx');\n var cy = data.getLayout('cy');\n data.eachItemGraphicEl(function (el, idx) {\n var symbolPath = el.getSymbolPath();\n\n if (circularRotateLabel) {\n var pos = data.getItemLayout(idx);\n var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n var isLeft = pos[0] < cx;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n\n var textPosition = isLeft ? 'left' : 'right';\n symbolPath.setStyle({\n textRotation: -rad,\n textPosition: textPosition,\n textOrigin: 'center'\n });\n symbolPath.hoverStyle && (symbolPath.hoverStyle.textPosition = textPosition);\n } else {\n symbolPath.setStyle({\n textRotation: 0\n });\n }\n });\n this._firstRender = false;\n },\n dispose: function () {\n this._controller && this._controller.dispose();\n this._controllerHost = {};\n },\n focusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n var data = this._model.getData();\n\n var graph = data.graph;\n var dataIndex = payload.dataIndex;\n var edgeDataIndex = payload.edgeDataIndex;\n var node = graph.getNodeByIndex(dataIndex);\n var edge = graph.getEdgeByIndex(edgeDataIndex);\n\n if (!node && !edge) {\n return;\n }\n\n graph.eachNode(function (node) {\n fadeOutItem(node, nodeOpacityPath, 0.1);\n });\n graph.eachEdge(function (edge) {\n fadeOutItem(edge, lineOpacityPath, 0.1);\n });\n\n if (node) {\n fadeInItem(node, nodeOpacityPath);\n zrUtil.each(node.edges, function (adjacentEdge) {\n if (adjacentEdge.dataIndex < 0) {\n return;\n }\n\n fadeInItem(adjacentEdge, lineOpacityPath);\n fadeInItem(adjacentEdge.node1, nodeOpacityPath);\n fadeInItem(adjacentEdge.node2, nodeOpacityPath);\n });\n }\n\n if (edge) {\n fadeInItem(edge, lineOpacityPath);\n fadeInItem(edge.node1, nodeOpacityPath);\n fadeInItem(edge.node2, nodeOpacityPath);\n }\n },\n unfocusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n var graph = this._model.getData().graph;\n\n graph.eachNode(function (node) {\n fadeOutItem(node, nodeOpacityPath);\n });\n graph.eachEdge(function (edge) {\n fadeOutItem(edge, lineOpacityPath);\n });\n },\n _startForceLayoutIteration: function (forceLayout, layoutAnimation) {\n var self = this;\n\n (function step() {\n forceLayout.step(function (stopped) {\n self.updateLayout(self._model);\n (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n });\n })();\n },\n _updateController: function (seriesModel, ecModel, api) {\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n var group = this.group;\n controller.setPointerChecker(function (e, x, y) {\n var rect = group.getBoundingRect();\n rect.applyTransform(group.transform);\n return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n });\n\n if (seriesModel.coordinateSystem.type !== 'view') {\n controller.disable();\n return;\n }\n\n controller.enable(seriesModel.get('roam'));\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n controller.off('pan').off('zoom').on('pan', function (e) {\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'graphRoam',\n dx: e.dx,\n dy: e.dy\n });\n }).on('zoom', function (e) {\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'graphRoam',\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n });\n\n this._updateNodeAndLinkScale();\n\n adjustEdge(seriesModel.getGraph(), this._getNodeGlobalScale(seriesModel));\n\n this._lineDraw.updateLayout();\n }, this);\n },\n _updateNodeAndLinkScale: function () {\n var seriesModel = this._model;\n var data = seriesModel.getData();\n\n var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n var invScale = [nodeScale, nodeScale];\n data.eachItemGraphicEl(function (el, idx) {\n el.attr('scale', invScale);\n });\n },\n _getNodeGlobalScale: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys.type !== 'view') {\n return 1;\n }\n\n var nodeScaleRatio = this._nodeScaleRatio;\n var groupScale = coordSys.scale;\n var groupZoom = groupScale && groupScale[0] || 1; // Scale node when zoom changes\n\n var roamZoom = coordSys.getZoom();\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n return nodeScale / groupZoom;\n },\n updateLayout: function (seriesModel) {\n adjustEdge(seriesModel.getGraph(), this._getNodeGlobalScale(seriesModel));\n\n this._symbolDraw.updateLayout();\n\n this._lineDraw.updateLayout();\n },\n remove: function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove();\n this._lineDraw && this._lineDraw.remove();\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1081 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar curveTool = __webpack_require__(82);\n\nvar vec2 = __webpack_require__(17);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n var p0 = curvePoints[0];\n var p1 = curvePoints[1];\n var p2 = curvePoints[2];\n var d = Infinity;\n var t;\n var radiusSquare = radius * radius;\n var interval = 0.1;\n\n for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n if (diff < d) {\n d = diff;\n t = _t;\n }\n } // Assume the segment is monotone,Find root through Bisection method\n // At most 32 iteration\n\n\n for (var i = 0; i < 32; i++) {\n // var prev = t - interval;\n var next = t + interval; // v1[0] = quadraticAt(p0[0], p1[0], p2[0], prev);\n // v1[1] = quadraticAt(p0[1], p1[1], p2[1], prev);\n\n v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n var diff = v2DistSquare(v2, center) - radiusSquare;\n\n if (mathAbs(diff) < 1e-2) {\n break;\n } // var prevDiff = v2DistSquare(v1, center) - radiusSquare;\n\n\n var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n interval /= 2;\n\n if (diff < 0) {\n if (nextDiff >= 0) {\n t = t + interval;\n } else {\n t = t - interval;\n }\n } else {\n if (nextDiff >= 0) {\n t = t - interval;\n } else {\n t = t + interval;\n }\n }\n }\n\n return t;\n} // Adjust edge to avoid\n\n\nfunction _default(graph, scale) {\n var tmp0 = [];\n var quadraticSubdivide = curveTool.quadraticSubdivide;\n var pts = [[], [], []];\n var pts2 = [[], []];\n var v = [];\n scale /= 2;\n\n function getSymbolSize(node) {\n var symbolSize = node.getVisual('symbolSize');\n\n if (symbolSize instanceof Array) {\n symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\n }\n\n return symbolSize;\n }\n\n graph.eachEdge(function (edge, idx) {\n var linePoints = edge.getLayout();\n var fromSymbol = edge.getVisual('fromSymbol');\n var toSymbol = edge.getVisual('toSymbol');\n\n if (!linePoints.__original) {\n linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n if (linePoints[2]) {\n linePoints.__original.push(vec2.clone(linePoints[2]));\n }\n }\n\n var originalPoints = linePoints.__original; // Quadratic curve\n\n if (linePoints[2] != null) {\n vec2.copy(pts[0], originalPoints[0]);\n vec2.copy(pts[1], originalPoints[2]);\n vec2.copy(pts[2], originalPoints[1]);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale); // Subdivide and get the second\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[0][0] = tmp0[3];\n pts[1][0] = tmp0[4];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[0][1] = tmp0[3];\n pts[1][1] = tmp0[4];\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale); // Subdivide and get the first\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[1][0] = tmp0[1];\n pts[2][0] = tmp0[2];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[1][1] = tmp0[1];\n pts[2][1] = tmp0[2];\n } // Copy back to layout\n\n\n vec2.copy(linePoints[0], pts[0]);\n vec2.copy(linePoints[1], pts[2]);\n vec2.copy(linePoints[2], pts[1]);\n } // Line\n else {\n vec2.copy(pts2[0], originalPoints[0]);\n vec2.copy(pts2[1], originalPoints[1]);\n vec2.sub(v, pts2[1], pts2[0]);\n vec2.normalize(v, v);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n }\n\n vec2.copy(linePoints[0], pts2[0]);\n vec2.copy(linePoints[1], pts2[1]);\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1082 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (!legendModels || !legendModels.length) {\n return;\n }\n\n ecModel.eachSeriesByType('graph', function (graphSeries) {\n var categoriesData = graphSeries.getCategoriesData();\n var graph = graphSeries.getGraph();\n var data = graph.data;\n var categoryNames = categoriesData.mapArray(categoriesData.getName);\n data.filterSelf(function (idx) {\n var model = data.getItemModel(idx);\n var category = model.getShallow('category');\n\n if (category != null) {\n if (typeof category === 'number') {\n category = categoryNames[category];\n } // If in any legend component the status is not selected.\n\n\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(category)) {\n return false;\n }\n }\n }\n\n return true;\n });\n }, this);\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1083 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n var paletteScope = {};\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var categoriesData = seriesModel.getCategoriesData();\n var data = seriesModel.getData();\n var categoryNameIdxMap = {};\n categoriesData.each(function (idx) {\n var name = categoriesData.getName(idx); // Add prefix to avoid conflict with Object.prototype.\n\n categoryNameIdxMap['ec-' + name] = idx;\n var itemModel = categoriesData.getItemModel(idx);\n var color = itemModel.get('itemStyle.color') || seriesModel.getColorFromPalette(name, paletteScope);\n categoriesData.setItemVisual(idx, 'color', color);\n }); // Assign category color to visual\n\n if (categoriesData.count()) {\n data.each(function (idx) {\n var model = data.getItemModel(idx);\n var category = model.getShallow('category');\n\n if (category != null) {\n if (typeof category === 'string') {\n category = categoryNameIdxMap['ec-' + category];\n }\n\n if (!data.getItemVisual(idx, 'color', true)) {\n data.setItemVisual(idx, 'color', categoriesData.getItemVisual(category, 'color'));\n }\n }\n });\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1084 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _circularLayoutHelper = __webpack_require__(356);\n\nvar circularLayout = _circularLayoutHelper.circularLayout;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n if (seriesModel.get('layout') === 'circular') {\n circularLayout(seriesModel);\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1085 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar View = __webpack_require__(257);\n\nvar _layout = __webpack_require__(16);\n\nvar getLayoutRect = _layout.getLayoutRect;\n\nvar bbox = __webpack_require__(188);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME Where to create the simple view coordinate system\nfunction getViewRect(seriesModel, api, aspect) {\n var option = seriesModel.getBoxLayoutParams();\n option.aspect = aspect;\n return getLayoutRect(option, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction _default(ecModel, api) {\n var viewList = [];\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var coordSysType = seriesModel.get('coordinateSystem');\n\n if (!coordSysType || coordSysType === 'view') {\n var data = seriesModel.getData();\n var positions = data.mapArray(function (idx) {\n var itemModel = data.getItemModel(idx);\n return [+itemModel.get('x'), +itemModel.get('y')];\n });\n var min = [];\n var max = [];\n bbox.fromPoints(positions, min, max); // If width or height is 0\n\n if (max[0] - min[0] === 0) {\n max[0] += 1;\n min[0] -= 1;\n }\n\n if (max[1] - min[1] === 0) {\n max[1] += 1;\n min[1] -= 1;\n }\n\n var aspect = (max[0] - min[0]) / (max[1] - min[1]); // FIXME If get view rect after data processed?\n\n var viewRect = getViewRect(seriesModel, api, aspect); // Position may be NaN, use view rect instead\n\n if (isNaN(aspect)) {\n min = [viewRect.x, viewRect.y];\n max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\n }\n\n var bbWidth = max[0] - min[0];\n var bbHeight = max[1] - min[1];\n var viewWidth = viewRect.width;\n var viewHeight = viewRect.height;\n var viewCoordSys = seriesModel.coordinateSystem = new View();\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\n viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight); // Update roam info\n\n viewCoordSys.setCenter(seriesModel.get('center'));\n viewCoordSys.setZoom(seriesModel.get('zoom'));\n viewList.push(viewCoordSys);\n }\n });\n return viewList;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1086 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalize(a) {\n if (!(a instanceof Array)) {\n a = [a, a];\n }\n\n return a;\n}\n\nfunction _default(ecModel) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var edgeData = seriesModel.getEdgeData();\n var symbolType = normalize(seriesModel.get('edgeSymbol'));\n var symbolSize = normalize(seriesModel.get('edgeSymbolSize'));\n var colorQuery = 'lineStyle.color'.split('.');\n var opacityQuery = 'lineStyle.opacity'.split('.');\n edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n edgeData.setVisual('color', seriesModel.get(colorQuery));\n edgeData.setVisual('opacity', seriesModel.get(opacityQuery));\n edgeData.each(function (idx) {\n var itemModel = edgeData.getItemModel(idx);\n var edge = graph.getEdgeByIndex(idx);\n var symbolType = normalize(itemModel.getShallow('symbol', true));\n var symbolSize = normalize(itemModel.getShallow('symbolSize', true)); // Edge visual must after node visual\n\n var color = itemModel.get(colorQuery);\n var opacity = itemModel.get(opacityQuery);\n\n switch (color) {\n case 'source':\n color = edge.node1.getVisual('color');\n break;\n\n case 'target':\n color = edge.node2.getVisual('color');\n break;\n }\n\n symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n edge.setVisual('color', color);\n edge.setVisual('opacity', opacity);\n });\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1087 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar vec2 = __webpack_require__(17);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* Some formulas were originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment of the method \"step\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\nvar scaleAndAdd = vec2.scaleAndAdd; // function adjacentNode(n, e) {\n// return e.n1 === n ? e.n2 : e.n1;\n// }\n\nfunction forceLayout(nodes, edges, opts) {\n var rect = opts.rect;\n var width = rect.width;\n var height = rect.height;\n var center = [rect.x + width / 2, rect.y + height / 2]; // var scale = opts.scale || 1;\n\n var gravity = opts.gravity == null ? 0.1 : opts.gravity; // for (var i = 0; i < edges.length; i++) {\n // var e = edges[i];\n // var n1 = e.n1;\n // var n2 = e.n2;\n // n1.edges = n1.edges || [];\n // n2.edges = n2.edges || [];\n // n1.edges.push(e);\n // n2.edges.push(e);\n // }\n // Init position\n\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n\n if (!n.p) {\n n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\n }\n\n n.pp = vec2.clone(n.p);\n n.edges = null;\n } // Formula in 'Graph Drawing by Force-directed Placement'\n // var k = scale * Math.sqrt(width * height / nodes.length);\n // var k2 = k * k;\n\n\n var friction = 0.6;\n return {\n warmUp: function () {\n friction = 0.5;\n },\n setFixed: function (idx) {\n nodes[idx].fixed = true;\n },\n setUnfixed: function (idx) {\n nodes[idx].fixed = false;\n },\n\n /**\n * Some formulas were originally copied from \"d3.js\"\n * https://github.com/d3/d3/blob/b516d77fb8566b576088e73410437494717ada26/src/layout/force.js\n * with some modifications made for this project.\n * See the license statement at the head of this file.\n */\n step: function (cb) {\n var v12 = [];\n var nLen = nodes.length;\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n var n1 = e.n1;\n var n2 = e.n2;\n vec2.sub(v12, n2.p, n1.p);\n var d = vec2.len(v12) - e.d;\n var w = n2.w / (n1.w + n2.w);\n\n if (isNaN(w)) {\n w = 0;\n }\n\n vec2.normalize(v12, v12);\n !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n } // Gravity\n\n\n for (var i = 0; i < nLen; i++) {\n var n = nodes[i];\n\n if (!n.fixed) {\n vec2.sub(v12, center, n.p); // var d = vec2.len(v12);\n // vec2.scale(v12, v12, 1 / d);\n // var gravityFactor = gravity;\n\n scaleAndAdd(n.p, n.p, v12, gravity * friction);\n }\n } // Repulsive\n // PENDING\n\n\n for (var i = 0; i < nLen; i++) {\n var n1 = nodes[i];\n\n for (var j = i + 1; j < nLen; j++) {\n var n2 = nodes[j];\n vec2.sub(v12, n2.p, n1.p);\n var d = vec2.len(v12);\n\n if (d === 0) {\n // Random repulse\n vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n d = 1;\n }\n\n var repFact = (n1.rep + n2.rep) / d / d;\n !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n }\n }\n\n var v = [];\n\n for (var i = 0; i < nLen; i++) {\n var n = nodes[i];\n\n if (!n.fixed) {\n vec2.sub(v, n.p, n.pp);\n scaleAndAdd(n.p, n.p, v, friction);\n vec2.copy(n.pp, n.p);\n }\n }\n\n friction = friction * 0.992;\n cb && cb(nodes, edges, friction < 0.01);\n }\n };\n}\n\nexports.forceLayout = forceLayout;\n\n/***/ }),\n/* 1088 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _forceHelper = __webpack_require__(1087);\n\nvar forceLayout = _forceHelper.forceLayout;\n\nvar _simpleLayoutHelper = __webpack_require__(357);\n\nvar simpleLayout = _simpleLayoutHelper.simpleLayout;\n\nvar _circularLayoutHelper = __webpack_require__(356);\n\nvar circularLayout = _circularLayoutHelper.circularLayout;\n\nvar _number = __webpack_require__(8);\n\nvar linearMap = _number.linearMap;\n\nvar vec2 = __webpack_require__(17);\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n ecModel.eachSeriesByType('graph', function (graphSeries) {\n var coordSys = graphSeries.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n if (graphSeries.get('layout') === 'force') {\n var preservedPoints = graphSeries.preservedPoints || {};\n var graph = graphSeries.getGraph();\n var nodeData = graph.data;\n var edgeData = graph.edgeData;\n var forceModel = graphSeries.getModel('force');\n var initLayout = forceModel.get('initLayout');\n\n if (graphSeries.preservedPoints) {\n nodeData.each(function (idx) {\n var id = nodeData.getId(idx);\n nodeData.setItemLayout(idx, preservedPoints[id] || [NaN, NaN]);\n });\n } else if (!initLayout || initLayout === 'none') {\n simpleLayout(graphSeries);\n } else if (initLayout === 'circular') {\n circularLayout(graphSeries);\n }\n\n var nodeDataExtent = nodeData.getDataExtent('value');\n var edgeDataExtent = edgeData.getDataExtent('value'); // var edgeDataExtent = edgeData.getDataExtent('value');\n\n var repulsion = forceModel.get('repulsion');\n var edgeLength = forceModel.get('edgeLength');\n\n if (!zrUtil.isArray(repulsion)) {\n repulsion = [repulsion, repulsion];\n }\n\n if (!zrUtil.isArray(edgeLength)) {\n edgeLength = [edgeLength, edgeLength];\n } // Larger value has smaller length\n\n\n edgeLength = [edgeLength[1], edgeLength[0]];\n var nodes = nodeData.mapArray('value', function (value, idx) {\n var point = nodeData.getItemLayout(idx);\n var rep = linearMap(value, nodeDataExtent, repulsion);\n\n if (isNaN(rep)) {\n rep = (repulsion[0] + repulsion[1]) / 2;\n }\n\n return {\n w: rep,\n rep: rep,\n fixed: nodeData.getItemModel(idx).get('fixed'),\n p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point\n };\n });\n var edges = edgeData.mapArray('value', function (value, idx) {\n var edge = graph.getEdgeByIndex(idx);\n var d = linearMap(value, edgeDataExtent, edgeLength);\n\n if (isNaN(d)) {\n d = (edgeLength[0] + edgeLength[1]) / 2;\n }\n\n return {\n n1: nodes[edge.node1.dataIndex],\n n2: nodes[edge.node2.dataIndex],\n d: d,\n curveness: edge.getModel().get('lineStyle.curveness') || 0\n };\n });\n var coordSys = graphSeries.coordinateSystem;\n var rect = coordSys.getBoundingRect();\n var forceInstance = forceLayout(nodes, edges, {\n rect: rect,\n gravity: forceModel.get('gravity')\n });\n var oldStep = forceInstance.step;\n\n forceInstance.step = function (cb) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n if (nodes[i].fixed) {\n // Write back to layout instance\n vec2.copy(nodes[i].p, graph.getNodeByIndex(i).getLayout());\n }\n }\n\n oldStep(function (nodes, edges, stopped) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n if (!nodes[i].fixed) {\n graph.getNodeByIndex(i).setLayout(nodes[i].p);\n }\n\n preservedPoints[nodeData.getId(i)] = nodes[i].p;\n }\n\n for (var i = 0, l = edges.length; i < l; i++) {\n var e = edges[i];\n var edge = graph.getEdgeByIndex(i);\n var p1 = e.n1.p;\n var p2 = e.n2.p;\n var points = edge.getLayout();\n points = points ? points.slice() : [];\n points[0] = points[0] || [];\n points[1] = points[1] || [];\n vec2.copy(points[0], p1);\n vec2.copy(points[1], p2);\n\n if (+e.curveness) {\n points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];\n }\n\n edge.setLayout(points);\n } // Update layout\n\n\n cb && cb(stopped);\n });\n };\n\n graphSeries.forceLayout = forceInstance;\n graphSeries.preservedPoints = preservedPoints; // Step to get the layout\n\n forceInstance.step();\n } else {\n // Remove prev injected forceLayout instance\n graphSeries.forceLayout = null;\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1089 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar _roamHelper = __webpack_require__(245);\n\nvar updateCenterAndZoom = _roamHelper.updateCenterAndZoom;\n\n__webpack_require__(361);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar actionInfo = {\n type: 'graphRoam',\n event: 'graphRoam',\n update: 'none'\n};\n/**\n * @payload\n * @property {string} name Series name\n * @property {number} [dx]\n * @property {number} [dy]\n * @property {number} [zoom]\n * @property {number} [originX]\n * @property {number} [originY]\n */\n\necharts.registerAction(actionInfo, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n query: payload\n }, function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var res = updateCenterAndZoom(coordSys, payload);\n seriesModel.setCenter && seriesModel.setCenter(res.center);\n seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n });\n});\n\n/***/ }),\n/* 1090 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = __webpack_require__(0);\n\nvar each = _util.each;\n\nvar _simpleLayoutHelper = __webpack_require__(357);\n\nvar simpleLayout = _simpleLayoutHelper.simpleLayout;\nvar simpleLayoutEdge = _simpleLayoutHelper.simpleLayoutEdge;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel, api) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var layout = seriesModel.get('layout');\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n var data = seriesModel.getData();\n var dimensions = [];\n each(coordSys.dimensions, function (coordDim) {\n dimensions = dimensions.concat(data.mapDimension(coordDim, true));\n });\n\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n var value = [];\n var hasValue = false;\n\n for (var i = 0; i < dimensions.length; i++) {\n var val = data.get(dimensions[i], dataIndex);\n\n if (!isNaN(val)) {\n hasValue = true;\n }\n\n value.push(val);\n }\n\n if (hasValue) {\n data.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n } else {\n // Also {Array.}, not undefined to avoid if...else... statement\n data.setItemLayout(dataIndex, [NaN, NaN]);\n }\n }\n\n simpleLayoutEdge(data.graph);\n } else if (!layout || layout === 'none') {\n simpleLayout(seriesModel);\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1091 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(1093);\n\n__webpack_require__(1094);\n\n/***/ }),\n/* 1092 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Uint8ClampedArray */\n\n/**\n * @file defines echarts Heatmap Chart\n * @author Ovilia (me@zhangwenli.com)\n * Inspired by https://github.com/mourner/simpleheat\n *\n * @module\n */\nvar GRADIENT_LEVELS = 256;\n/**\n * Heatmap Chart\n *\n * @class\n */\n\nfunction Heatmap() {\n var canvas = zrUtil.createCanvas();\n this.canvas = canvas;\n this.blurSize = 30;\n this.pointSize = 20;\n this.maxOpacity = 1;\n this.minOpacity = 0;\n this._gradientPixels = {};\n}\n\nHeatmap.prototype = {\n /**\n * Renders Heatmap and returns the rendered canvas\n * @param {Array} data array of data, each has x, y, value\n * @param {number} width canvas width\n * @param {number} height canvas height\n */\n update: function (data, width, height, normalize, colorFunc, isInRange) {\n var brush = this._getBrush();\n\n var gradientInRange = this._getGradient(data, colorFunc, 'inRange');\n\n var gradientOutOfRange = this._getGradient(data, colorFunc, 'outOfRange');\n\n var r = this.pointSize + this.blurSize;\n var canvas = this.canvas;\n var ctx = canvas.getContext('2d');\n var len = data.length;\n canvas.width = width;\n canvas.height = height;\n\n for (var i = 0; i < len; ++i) {\n var p = data[i];\n var x = p[0];\n var y = p[1];\n var value = p[2]; // calculate alpha using value\n\n var alpha = normalize(value); // draw with the circle brush with alpha\n\n ctx.globalAlpha = alpha;\n ctx.drawImage(brush, x - r, y - r);\n }\n\n if (!canvas.width || !canvas.height) {\n // Avoid \"Uncaught DOMException: Failed to execute 'getImageData' on\n // 'CanvasRenderingContext2D': The source height is 0.\"\n return canvas;\n } // colorize the canvas using alpha value and set with gradient\n\n\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n var pixels = imageData.data;\n var offset = 0;\n var pixelLen = pixels.length;\n var minOpacity = this.minOpacity;\n var maxOpacity = this.maxOpacity;\n var diffOpacity = maxOpacity - minOpacity;\n\n while (offset < pixelLen) {\n var alpha = pixels[offset + 3] / 256;\n var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4; // Simple optimize to ignore the empty data\n\n if (alpha > 0) {\n var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange; // Any alpha > 0 will be mapped to [minOpacity, maxOpacity]\n\n alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n pixels[offset++] = gradient[gradientOffset];\n pixels[offset++] = gradient[gradientOffset + 1];\n pixels[offset++] = gradient[gradientOffset + 2];\n pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n } else {\n offset += 4;\n }\n }\n\n ctx.putImageData(imageData, 0, 0);\n return canvas;\n },\n\n /**\n * get canvas of a black circle brush used for canvas to draw later\n * @private\n * @returns {Object} circle brush canvas\n */\n _getBrush: function () {\n var brushCanvas = this._brushCanvas || (this._brushCanvas = zrUtil.createCanvas()); // set brush size\n\n var r = this.pointSize + this.blurSize;\n var d = r * 2;\n brushCanvas.width = d;\n brushCanvas.height = d;\n var ctx = brushCanvas.getContext('2d');\n ctx.clearRect(0, 0, d, d); // in order to render shadow without the distinct circle,\n // draw the distinct circle in an invisible place,\n // and use shadowOffset to draw shadow in the center of the canvas\n\n ctx.shadowOffsetX = d;\n ctx.shadowBlur = this.blurSize; // draw the shadow in black, and use alpha and shadow blur to generate\n // color in color map\n\n ctx.shadowColor = '#000'; // draw circle in the left to the canvas\n\n ctx.beginPath();\n ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n return brushCanvas;\n },\n\n /**\n * get gradient color map\n * @private\n */\n _getGradient: function (data, colorFunc, state) {\n var gradientPixels = this._gradientPixels;\n var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n var color = [0, 0, 0, 0];\n var off = 0;\n\n for (var i = 0; i < 256; i++) {\n colorFunc[state](i / 255, true, color);\n pixelsSingleState[off++] = color[0];\n pixelsSingleState[off++] = color[1];\n pixelsSingleState[off++] = color[2];\n pixelsSingleState[off++] = color[3];\n }\n\n return pixelsSingleState;\n }\n};\nvar _default = Heatmap;\nmodule.exports = _default;\n\n/***/ }),\n/* 1093 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = __webpack_require__(30);\n\nvar createListFromArray = __webpack_require__(70);\n\nvar CoordinateSystem = __webpack_require__(57);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.heatmap',\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n generateCoord: 'value'\n });\n },\n preventIncremental: function () {\n var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n if (coordSysCreator && coordSysCreator.dimensions) {\n return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n }\n },\n defaultOption: {\n // Cartesian2D or geo\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Geo coordinate system\n geoIndex: 0,\n blurSize: 30,\n pointSize: 20,\n maxOpacity: 1,\n minOpacity: 0\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1094 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = __webpack_require__(3);\n\nvar graphic = __webpack_require__(5);\n\nvar HeatmapLayer = __webpack_require__(1092);\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getIsInPiecewiseRange(dataExtent, pieceList, selected) {\n var dataSpan = dataExtent[1] - dataExtent[0];\n pieceList = zrUtil.map(pieceList, function (piece) {\n return {\n interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]\n };\n });\n var len = pieceList.length;\n var lastIndex = 0;\n return function (val) {\n // Try to find in the location of the last found\n for (var i = lastIndex; i < len; i++) {\n var interval = pieceList[i].interval;\n\n if (interval[0] <= val && val <= interval[1]) {\n lastIndex = i;\n break;\n }\n }\n\n if (i === len) {\n // Not found, back interation\n for (var i = lastIndex - 1; i >= 0; i--) {\n var interval = pieceList[i].interval;\n\n if (interval[0] <= val && val <= interval[1]) {\n lastIndex = i;\n break;\n }\n }\n }\n\n return i >= 0 && i < len && selected[i];\n };\n}\n\nfunction getIsInContinuousRange(dataExtent, range) {\n var dataSpan = dataExtent[1] - dataExtent[0];\n range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];\n return function (val) {\n return val >= range[0] && val <= range[1];\n };\n}\n\nfunction isGeoCoordSys(coordSys) {\n var dimensions = coordSys.dimensions; // Not use coorSys.type === 'geo' because coordSys maybe extended\n\n return dimensions[0] === 'lng' && dimensions[1] === 'lat';\n}\n\nvar _default = echarts.extendChartView({\n type: 'heatmap',\n render: function (seriesModel, ecModel, api) {\n var visualMapOfThisSeries;\n ecModel.eachComponent('visualMap', function (visualMap) {\n visualMap.eachTargetSeries(function (targetSeries) {\n if (targetSeries === seriesModel) {\n visualMapOfThisSeries = visualMap;\n }\n });\n });\n this.group.removeAll();\n this._incrementalDisplayable = null;\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\n this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\n } else if (isGeoCoordSys(coordSys)) {\n this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\n }\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n this.group.removeAll();\n },\n incrementalRender: function (params, seriesModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys) {\n this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\n }\n },\n _renderOnCartesianAndCalendar: function (seriesModel, api, start, end, incremental) {\n var coordSys = seriesModel.coordinateSystem;\n var width;\n var height;\n\n if (coordSys.type === 'cartesian2d') {\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n width = xAxis.getBandWidth();\n height = yAxis.getBandWidth();\n }\n\n var group = this.group;\n var data = seriesModel.getData();\n var itemStyleQuery = 'itemStyle';\n var hoverItemStyleQuery = 'emphasis.itemStyle';\n var labelQuery = 'label';\n var hoverLabelQuery = 'emphasis.label';\n var style = seriesModel.getModel(itemStyleQuery).getItemStyle(['color']);\n var hoverStl = seriesModel.getModel(hoverItemStyleQuery).getItemStyle();\n var labelModel = seriesModel.getModel(labelQuery);\n var hoverLabelModel = seriesModel.getModel(hoverLabelQuery);\n var coordSysType = coordSys.type;\n var dataDims = coordSysType === 'cartesian2d' ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')];\n\n for (var idx = start; idx < end; idx++) {\n var rect;\n\n if (coordSysType === 'cartesian2d') {\n // Ignore empty data\n if (isNaN(data.get(dataDims[2], idx))) {\n continue;\n }\n\n var point = coordSys.dataToPoint([data.get(dataDims[0], idx), data.get(dataDims[1], idx)]);\n rect = new graphic.Rect({\n shape: {\n x: point[0] - width / 2,\n y: point[1] - height / 2,\n width: width,\n height: height\n },\n style: {\n fill: data.getItemVisual(idx, 'color'),\n opacity: data.getItemVisual(idx, 'opacity')\n }\n });\n } else {\n // Ignore empty data\n if (isNaN(data.get(dataDims[1], idx))) {\n continue;\n }\n\n rect = new graphic.Rect({\n z2: 1,\n shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\n style: {\n fill: data.getItemVisual(idx, 'color'),\n opacity: data.getItemVisual(idx, 'opacity')\n }\n });\n }\n\n var itemModel = data.getItemModel(idx); // Optimization for large datset\n\n if (data.hasItemOption) {\n style = itemModel.getModel(itemStyleQuery).getItemStyle(['color']);\n hoverStl = itemModel.getModel(hoverItemStyleQuery).getItemStyle();\n labelModel = itemModel.getModel(labelQuery);\n hoverLabelModel = itemModel.getModel(hoverLabelQuery);\n }\n\n var rawValue = seriesModel.getRawValue(idx);\n var defaultText = '-';\n\n if (rawValue && rawValue[2] != null) {\n defaultText = rawValue[2];\n }\n\n graphic.setLabelStyle(style, hoverStl, labelModel, hoverLabelModel, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultText: defaultText,\n isRectText: true\n });\n rect.setStyle(style);\n graphic.setHoverStyle(rect, data.hasItemOption ? hoverStl : zrUtil.extend({}, hoverStl));\n rect.incremental = incremental; // PENDING\n\n if (incremental) {\n // Rect must use hover layer if it's incremental.\n rect.useHoverLayer = true;\n }\n\n group.add(rect);\n data.setItemGraphicEl(idx, rect);\n }\n },\n _renderOnGeo: function (geo, seriesModel, visualMapModel, api) {\n var inRangeVisuals = visualMapModel.targetVisuals.inRange;\n var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange; // if (!visualMapping) {\n // throw new Error('Data range must have color visuals');\n // }\n\n var data = seriesModel.getData();\n var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer();\n hmLayer.blurSize = seriesModel.get('blurSize');\n hmLayer.pointSize = seriesModel.get('pointSize');\n hmLayer.minOpacity = seriesModel.get('minOpacity');\n hmLayer.maxOpacity = seriesModel.get('maxOpacity');\n var rect = geo.getViewRect().clone();\n var roamTransform = geo.getRoamTransform();\n rect.applyTransform(roamTransform); // Clamp on viewport\n\n var x = Math.max(rect.x, 0);\n var y = Math.max(rect.y, 0);\n var x2 = Math.min(rect.width + rect.x, api.getWidth());\n var y2 = Math.min(rect.height + rect.y, api.getHeight());\n var width = x2 - x;\n var height = y2 - y;\n var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')];\n var points = data.mapArray(dims, function (lng, lat, value) {\n var pt = geo.dataToPoint([lng, lat]);\n pt[0] -= x;\n pt[1] -= y;\n pt.push(value);\n return pt;\n });\n var dataExtent = visualMapModel.getExtent();\n var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\n hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\n inRange: inRangeVisuals.color.getColorMapper(),\n outOfRange: outOfRangeVisuals.color.getColorMapper()\n }, isInRange);\n var img = new graphic.Image({\n style: {\n width: width,\n height: height,\n x: x,\n y: y,\n image: hmLayer.canvas\n },\n silent: true\n });\n this.group.add(img);\n },\n dispose: function () {}\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1095 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar Polyline = __webpack_require__(359);\n\nvar zrUtil = __webpack_require__(0);\n\nvar EffectLine = __webpack_require__(358);\n\nvar vec2 = __webpack_require__(17);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Provide effect for line\n * @module echarts/chart/helper/EffectLine\n */\n\n/**\n * @constructor\n * @extends {module:echarts/chart/helper/EffectLine}\n * @alias {module:echarts/chart/helper/Polyline}\n */\nfunction EffectPolyline(lineData, idx, seriesScope) {\n EffectLine.call(this, lineData, idx, seriesScope);\n this._lastFrame = 0;\n this._lastFramePercent = 0;\n}\n\nvar effectPolylineProto = EffectPolyline.prototype; // Overwrite\n\neffectPolylineProto.createLine = function (lineData, idx, seriesScope) {\n return new Polyline(lineData, idx, seriesScope);\n}; // Overwrite\n\n\neffectPolylineProto.updateAnimationPoints = function (symbol, points) {\n this._points = points;\n var accLenArr = [0];\n var len = 0;\n\n for (var i = 1; i < points.length; i++) {\n var p1 = points[i - 1];\n var p2 = points[i];\n len += vec2.dist(p1, p2);\n accLenArr.push(len);\n }\n\n if (len === 0) {\n return;\n }\n\n for (var i = 0; i < accLenArr.length; i++) {\n accLenArr[i] /= len;\n }\n\n this._offsets = accLenArr;\n this._length = len;\n}; // Overwrite\n\n\neffectPolylineProto.getLineLength = function (symbol) {\n return this._length;\n}; // Overwrite\n\n\neffectPolylineProto.updateSymbolPosition = function (symbol) {\n var t = symbol.__t;\n var points = this._points;\n var offsets = this._offsets;\n var len = points.length;\n\n if (!offsets) {\n // Has length 0\n return;\n }\n\n var lastFrame = this._lastFrame;\n var frame;\n\n if (t < this._lastFramePercent) {\n // Start from the next frame\n // PENDING start from lastFrame ?\n var start = Math.min(lastFrame + 1, len - 1);\n\n for (frame = start; frame >= 0; frame--) {\n if (offsets[frame] <= t) {\n break;\n }\n } // PENDING really need to do this ?\n\n\n frame = Math.min(frame, len - 2);\n } else {\n for (var frame = lastFrame; frame < len; frame++) {\n if (offsets[frame] > t) {\n break;\n }\n }\n\n frame = Math.min(frame - 1, len - 2);\n }\n\n vec2.lerp(symbol.position, points[frame], points[frame + 1], (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]));\n var tx = points[frame + 1][0] - points[frame][0];\n var ty = points[frame + 1][1] - points[frame][1];\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n this._lastFrame = frame;\n this._lastFramePercent = t;\n symbol.ignore = false;\n};\n\nzrUtil.inherits(EffectPolyline, EffectLine);\nvar _default = EffectPolyline;\nmodule.exports = _default;\n\n/***/ }),\n/* 1096 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar _symbol = __webpack_require__(50);\n\nvar createSymbol = _symbol.createSymbol;\n\nvar _graphic = __webpack_require__(5);\n\nvar Group = _graphic.Group;\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\n\nvar SymbolClz = __webpack_require__(173);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Symbol with ripple effect\n * @module echarts/chart/helper/EffectSymbol\n */\nvar EFFECT_RIPPLE_NUMBER = 3;\n\nfunction normalizeSymbolSize(symbolSize) {\n if (!zrUtil.isArray(symbolSize)) {\n symbolSize = [+symbolSize, +symbolSize];\n }\n\n return symbolSize;\n}\n\nfunction updateRipplePath(rippleGroup, effectCfg) {\n rippleGroup.eachChild(function (ripplePath) {\n ripplePath.attr({\n z: effectCfg.z,\n zlevel: effectCfg.zlevel,\n style: {\n stroke: effectCfg.brushType === 'stroke' ? effectCfg.color : null,\n fill: effectCfg.brushType === 'fill' ? effectCfg.color : null\n }\n });\n });\n}\n/**\n * @constructor\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @extends {module:zrender/graphic/Group}\n */\n\n\nfunction EffectSymbol(data, idx) {\n Group.call(this);\n var symbol = new SymbolClz(data, idx);\n var rippleGroup = new Group();\n this.add(symbol);\n this.add(rippleGroup);\n\n rippleGroup.beforeUpdate = function () {\n this.attr(symbol.getScale());\n };\n\n this.updateData(data, idx);\n}\n\nvar effectSymbolProto = EffectSymbol.prototype;\n\neffectSymbolProto.stopEffectAnimation = function () {\n this.childAt(1).removeAll();\n};\n\neffectSymbolProto.startEffectAnimation = function (effectCfg) {\n var symbolType = effectCfg.symbolType;\n var color = effectCfg.color;\n var rippleGroup = this.childAt(1);\n\n for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\n // var ripplePath = createSymbol(\n // symbolType, -0.5, -0.5, 1, 1, color\n // );\n // If width/height are set too small (e.g., set to 1) on ios10\n // and macOS Sierra, a circle stroke become a rect, no matter what\n // the scale is set. So we set width/height as 2. See #4136.\n var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\n ripplePath.attr({\n style: {\n strokeNoScale: true\n },\n z2: 99,\n silent: true,\n scale: [0.5, 0.5]\n });\n var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset; // TODO Configurable effectCfg.period\n\n ripplePath.animate('', true).when(effectCfg.period, {\n scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\n }).delay(delay).start();\n ripplePath.animateStyle(true).when(effectCfg.period, {\n opacity: 0\n }).delay(delay).start();\n rippleGroup.add(ripplePath);\n }\n\n updateRipplePath(rippleGroup, effectCfg);\n};\n/**\n * Update effect symbol\n */\n\n\neffectSymbolProto.updateEffectAnimation = function (effectCfg) {\n var oldEffectCfg = this._effectCfg;\n var rippleGroup = this.childAt(1); // Must reinitialize effect if following configuration changed\n\n var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\n\n for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\n var propName = DIFFICULT_PROPS[i];\n\n if (oldEffectCfg[propName] !== effectCfg[propName]) {\n this.stopEffectAnimation();\n this.startEffectAnimation(effectCfg);\n return;\n }\n }\n\n updateRipplePath(rippleGroup, effectCfg);\n};\n/**\n * Highlight symbol\n */\n\n\neffectSymbolProto.highlight = function () {\n this.trigger('emphasis');\n};\n/**\n * Downplay symbol\n */\n\n\neffectSymbolProto.downplay = function () {\n this.trigger('normal');\n};\n/**\n * Update symbol properties\n * @param {module:echarts/data/List} data\n * @param {number} idx\n */\n\n\neffectSymbolProto.updateData = function (data, idx) {\n var seriesModel = data.hostModel;\n this.childAt(0).updateData(data, idx);\n var rippleGroup = this.childAt(1);\n var itemModel = data.getItemModel(idx);\n var symbolType = data.getItemVisual(idx, 'symbol');\n var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n var color = data.getItemVisual(idx, 'color');\n rippleGroup.attr('scale', symbolSize);\n rippleGroup.traverse(function (ripplePath) {\n ripplePath.attr({\n fill: color\n });\n });\n var symbolOffset = itemModel.getShallow('symbolOffset');\n\n if (symbolOffset) {\n var pos = rippleGroup.position;\n pos[0] = parsePercent(symbolOffset[0], symbolSize[0]);\n pos[1] = parsePercent(symbolOffset[1], symbolSize[1]);\n }\n\n rippleGroup.rotation = (itemModel.getShallow('symbolRotate') || 0) * Math.PI / 180 || 0;\n var effectCfg = {};\n effectCfg.showEffectOn = seriesModel.get('showEffectOn');\n effectCfg.rippleScale = itemModel.get('rippleEffect.scale');\n effectCfg.brushType = itemModel.get('rippleEffect.brushType');\n effectCfg.period = itemModel.get('rippleEffect.period') * 1000;\n effectCfg.effectOffset = idx / data.count();\n effectCfg.z = itemModel.getShallow('z') || 0;\n effectCfg.zlevel = itemModel.getShallow('zlevel') || 0;\n effectCfg.symbolType = symbolType;\n effectCfg.color = color;\n this.off('mouseover').off('mouseout').off('emphasis').off('normal');\n\n if (effectCfg.showEffectOn === 'render') {\n this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);\n this._effectCfg = effectCfg;\n } else {\n // Not keep old effect config\n this._effectCfg = null;\n this.stopEffectAnimation();\n var symbol = this.childAt(0);\n\n var onEmphasis = function () {\n symbol.highlight();\n\n if (effectCfg.showEffectOn !== 'render') {\n this.startEffectAnimation(effectCfg);\n }\n };\n\n var onNormal = function () {\n symbol.downplay();\n\n if (effectCfg.showEffectOn !== 'render') {\n this.stopEffectAnimation();\n }\n };\n\n this.on('mouseover', onEmphasis, this).on('mouseout', onNormal, this).on('emphasis', onEmphasis, this).on('normal', onNormal, this);\n }\n\n this._effectCfg = effectCfg;\n};\n\neffectSymbolProto.fadeOut = function (cb) {\n this.off('mouseover').off('mouseout').off('emphasis').off('normal');\n cb && cb();\n};\n\nzrUtil.inherits(EffectSymbol, Group);\nvar _default = EffectSymbol;\nmodule.exports = _default;\n\n/***/ }),\n/* 1097 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = __webpack_require__(5);\n\nvar IncrementalDisplayable = __webpack_require__(273);\n\nvar lineContain = __webpack_require__(551);\n\nvar quadraticContain = __webpack_require__(553);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Batch by color\nvar LargeLineShape = graphic.extendShape({\n shape: {\n polyline: false,\n curveness: 0,\n segs: []\n },\n buildPath: function (path, shape) {\n var segs = shape.segs;\n var curveness = shape.curveness;\n\n if (shape.polyline) {\n for (var i = 0; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n path.moveTo(segs[i++], segs[i++]);\n\n for (var k = 1; k < count; k++) {\n path.lineTo(segs[i++], segs[i++]);\n }\n }\n }\n } else {\n for (var i = 0; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n path.moveTo(x0, y0);\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n path.quadraticCurveTo(x2, y2, x1, y1);\n } else {\n path.lineTo(x1, y1);\n }\n }\n }\n },\n findDataIndex: function (x, y) {\n var shape = this.shape;\n var segs = shape.segs;\n var curveness = shape.curveness;\n\n if (shape.polyline) {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n\n for (var k = 1; k < count; k++) {\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (lineContain.containStroke(x0, y0, x1, y1)) {\n return dataIndex;\n }\n }\n }\n\n dataIndex++;\n }\n } else {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1)) {\n return dataIndex;\n }\n } else {\n if (lineContain.containStroke(x0, y0, x1, y1)) {\n return dataIndex;\n }\n }\n\n dataIndex++;\n }\n }\n\n return -1;\n }\n});\n\nfunction LargeLineDraw() {\n this.group = new graphic.Group();\n}\n\nvar largeLineProto = LargeLineDraw.prototype;\n\nlargeLineProto.isPersistent = function () {\n return !this._incremental;\n};\n/**\n * Update symbols draw by new data\n * @param {module:echarts/data/List} data\n */\n\n\nlargeLineProto.updateData = function (data) {\n this.group.removeAll();\n var lineEl = new LargeLineShape({\n rectHover: true,\n cursor: 'default'\n });\n lineEl.setShape({\n segs: data.getLayout('linesPoints')\n });\n\n this._setCommon(lineEl, data); // Add back\n\n\n this.group.add(lineEl);\n this._incremental = null;\n};\n/**\n * @override\n */\n\n\nlargeLineProto.incrementalPrepareUpdate = function (data) {\n this.group.removeAll();\n\n this._clearIncremental();\n\n if (data.count() > 5e5) {\n if (!this._incremental) {\n this._incremental = new IncrementalDisplayable({\n silent: true\n });\n }\n\n this.group.add(this._incremental);\n } else {\n this._incremental = null;\n }\n};\n/**\n * @override\n */\n\n\nlargeLineProto.incrementalUpdate = function (taskParams, data) {\n var lineEl = new LargeLineShape();\n lineEl.setShape({\n segs: data.getLayout('linesPoints')\n });\n\n this._setCommon(lineEl, data, !!this._incremental);\n\n if (!this._incremental) {\n lineEl.rectHover = true;\n lineEl.cursor = 'default';\n lineEl.__startIndex = taskParams.start;\n this.group.add(lineEl);\n } else {\n this._incremental.addDisplayable(lineEl, true);\n }\n};\n/**\n * @override\n */\n\n\nlargeLineProto.remove = function () {\n this._clearIncremental();\n\n this._incremental = null;\n this.group.removeAll();\n};\n\nlargeLineProto._setCommon = function (lineEl, data, isIncremental) {\n var hostModel = data.hostModel;\n lineEl.setShape({\n polyline: hostModel.get('polyline'),\n curveness: hostModel.get('lineStyle.curveness')\n });\n lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n lineEl.style.strokeNoScale = true;\n var visualColor = data.getVisual('color');\n\n if (visualColor) {\n lineEl.setStyle('stroke', visualColor);\n }\n\n lineEl.setStyle('fill');\n\n if (!isIncremental) {\n // Enable tooltip\n // PENDING May have performance issue when path is extremely large\n lineEl.seriesIndex = hostModel.seriesIndex;\n lineEl.on('mousemove', function (e) {\n lineEl.dataIndex = null;\n var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\n\n if (dataIndex > 0) {\n // Provide dataIndex for tooltip\n lineEl.dataIndex = dataIndex + lineEl.__startIndex;\n }\n });\n }\n};\n\nlargeLineProto._clearIncremental = function () {\n var incremental = this._incremental;\n\n if (incremental) {\n incremental.clearDisplaybles();\n }\n};\n\nvar _default = LargeLineDraw;\nmodule.exports = _default;\n\n/***/ }),\n/* 1098 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = __webpack_require__(5);\n\nvar _symbol = __webpack_require__(50);\n\nvar createSymbol = _symbol.createSymbol;\n\nvar IncrementalDisplayable = __webpack_require__(273);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Float32Array */\n// TODO Batch by color\nvar BOOST_SIZE_THRESHOLD = 4;\nvar LargeSymbolPath = graphic.extendShape({\n shape: {\n points: null\n },\n symbolProxy: null,\n buildPath: function (path, shape) {\n var points = shape.points;\n var size = shape.size;\n var symbolProxy = this.symbolProxy;\n var symbolProxyShape = symbolProxy.shape;\n var ctx = path.getContext ? path.getContext() : path;\n var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD; // Do draw in afterBrush.\n\n if (canBoost) {\n return;\n }\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n\n if (isNaN(x) || isNaN(y)) {\n continue;\n }\n\n symbolProxyShape.x = x - size[0] / 2;\n symbolProxyShape.y = y - size[1] / 2;\n symbolProxyShape.width = size[0];\n symbolProxyShape.height = size[1];\n symbolProxy.buildPath(path, symbolProxyShape, true);\n }\n },\n afterBrush: function (ctx) {\n var shape = this.shape;\n var points = shape.points;\n var size = shape.size;\n var canBoost = size[0] < BOOST_SIZE_THRESHOLD;\n\n if (!canBoost) {\n return;\n }\n\n this.setTransform(ctx); // PENDING If style or other canvas status changed?\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n\n if (isNaN(x) || isNaN(y)) {\n continue;\n } // fillRect is faster than building a rect path and draw.\n // And it support light globalCompositeOperation.\n\n\n ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n }\n\n this.restoreTransform(ctx);\n },\n findDataIndex: function (x, y) {\n // TODO ???\n // Consider transform\n var shape = this.shape;\n var points = shape.points;\n var size = shape.size;\n var w = Math.max(size[0], 4);\n var h = Math.max(size[1], 4); // Not consider transform\n // Treat each element as a rect\n // top down traverse\n\n for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n var i = idx * 2;\n var x0 = points[i] - w / 2;\n var y0 = points[i + 1] - h / 2;\n\n if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n return idx;\n }\n }\n\n return -1;\n }\n});\n\nfunction LargeSymbolDraw() {\n this.group = new graphic.Group();\n}\n\nvar largeSymbolProto = LargeSymbolDraw.prototype;\n\nlargeSymbolProto.isPersistent = function () {\n return !this._incremental;\n};\n/**\n * Update symbols draw by new data\n * @param {module:echarts/data/List} data\n */\n\n\nlargeSymbolProto.updateData = function (data) {\n this.group.removeAll();\n var symbolEl = new LargeSymbolPath({\n rectHover: true,\n cursor: 'default'\n });\n symbolEl.setShape({\n points: data.getLayout('symbolPoints')\n });\n\n this._setCommon(symbolEl, data);\n\n this.group.add(symbolEl);\n this._incremental = null;\n};\n\nlargeSymbolProto.updateLayout = function (data) {\n if (this._incremental) {\n return;\n }\n\n var points = data.getLayout('symbolPoints');\n this.group.eachChild(function (child) {\n if (child.startIndex != null) {\n var len = (child.endIndex - child.startIndex) * 2;\n var byteOffset = child.startIndex * 4 * 2;\n points = new Float32Array(points.buffer, byteOffset, len);\n }\n\n child.setShape('points', points);\n });\n};\n\nlargeSymbolProto.incrementalPrepareUpdate = function (data) {\n this.group.removeAll();\n\n this._clearIncremental(); // Only use incremental displayables when data amount is larger than 2 million.\n // PENDING Incremental data?\n\n\n if (data.count() > 2e6) {\n if (!this._incremental) {\n this._incremental = new IncrementalDisplayable({\n silent: true\n });\n }\n\n this.group.add(this._incremental);\n } else {\n this._incremental = null;\n }\n};\n\nlargeSymbolProto.incrementalUpdate = function (taskParams, data) {\n var symbolEl;\n\n if (this._incremental) {\n symbolEl = new LargeSymbolPath();\n\n this._incremental.addDisplayable(symbolEl, true);\n } else {\n symbolEl = new LargeSymbolPath({\n rectHover: true,\n cursor: 'default',\n startIndex: taskParams.start,\n endIndex: taskParams.end\n });\n symbolEl.incremental = true;\n this.group.add(symbolEl);\n }\n\n symbolEl.setShape({\n points: data.getLayout('symbolPoints')\n });\n\n this._setCommon(symbolEl, data, !!this._incremental);\n};\n\nlargeSymbolProto._setCommon = function (symbolEl, data, isIncremental) {\n var hostModel = data.hostModel; // TODO\n // if (data.hasItemVisual.symbolSize) {\n // // TODO typed array?\n // symbolEl.setShape('sizes', data.mapArray(\n // function (idx) {\n // var size = data.getItemVisual(idx, 'symbolSize');\n // return (size instanceof Array) ? size : [size, size];\n // }\n // ));\n // }\n // else {\n\n var size = data.getVisual('symbolSize');\n symbolEl.setShape('size', size instanceof Array ? size : [size, size]); // }\n // Create symbolProxy to build path for each data\n\n symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0); // Use symbolProxy setColor method\n\n symbolEl.setColor = symbolEl.symbolProxy.setColor;\n var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n symbolEl.useStyle( // Draw shadow when doing fillRect is extremely slow.\n hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n var visualColor = data.getVisual('color');\n\n if (visualColor) {\n symbolEl.setColor(visualColor);\n }\n\n if (!isIncremental) {\n // Enable tooltip\n // PENDING May have performance issue when path is extremely large\n symbolEl.seriesIndex = hostModel.seriesIndex;\n symbolEl.on('mousemove', function (e) {\n symbolEl.dataIndex = null;\n var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\n\n if (dataIndex >= 0) {\n // Provide dataIndex for tooltip\n symbolEl.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n }\n });\n }\n};\n\nlargeSymbolProto.remove = function () {\n this._clearIncremental();\n\n this._incremental = null;\n this.group.removeAll();\n};\n\nlargeSymbolProto._clearIncremental = function () {\n var incremental = this._incremental;\n\n if (incremental) {\n incremental.clearDisplaybles();\n }\n};\n\nvar _default = LargeSymbolDraw;\nmodule.exports = _default;\n\n/***/ }),\n/* 1099 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = __webpack_require__(5);\n\nvar vec2 = __webpack_require__(17);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Line path for bezier and straight line draw\n */\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nfunction isLine(shape) {\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar _default = graphic.extendShape({\n type: 'ec-line',\n style: {\n stroke: '#000',\n fill: null\n },\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n percent: 1,\n cpx1: null,\n cpy1: null\n },\n buildPath: function (ctx, shape) {\n (isLine(shape) ? straightLineProto : bezierCurveProto).buildPath(ctx, shape);\n },\n pointAt: function (t) {\n return isLine(this.shape) ? straightLineProto.pointAt.call(this, t) : bezierCurveProto.pointAt.call(this, t);\n },\n tangentAt: function (t) {\n var shape = this.shape;\n var p = isLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n return vec2.normalize(p, p);\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar createListFromArray = __webpack_require__(70);\n\nvar SeriesModel = __webpack_require__(30);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.line',\n dependencies: ['grid', 'polar'],\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this);\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n hoverAnimation: true,\n // stack: null\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // polarIndex: 0,\n // If clip the overflow value\n clipOverflow: true,\n // cursor: null,\n label: {\n position: 'top'\n },\n // itemStyle: {\n // },\n lineStyle: {\n width: 2,\n type: 'solid'\n },\n // areaStyle: {\n // origin of areaStyle. Valid values:\n // `'auto'/null/undefined`: from axisLine to data\n // `'start'`: from min to data\n // `'end'`: from data to max\n // origin: 'auto'\n // },\n // false, 'start', 'end', 'middle'\n step: false,\n // Disabled if step is true\n smooth: false,\n smoothMonotone: null,\n symbol: 'emptyCircle',\n symbolSize: 4,\n symbolRotate: null,\n showSymbol: true,\n // `false`: follow the label interval strategy.\n // `true`: show all symbols.\n // `'auto'`: If possible, show all symbols, otherwise\n // follow the label interval strategy.\n showAllSymbol: 'auto',\n // Whether to connect break point.\n connectNulls: false,\n // Sampling for large data. Can be: 'average', 'max', 'min', 'sum'.\n sampling: 'none',\n animationEasing: 'linear',\n // Disable progressive\n progressive: 0,\n hoverLayerThreshold: Infinity\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = __webpack_require__(0);\n\nvar SymbolDraw = __webpack_require__(138);\n\nvar SymbolClz = __webpack_require__(173);\n\nvar lineAnimationDiff = __webpack_require__(1102);\n\nvar graphic = __webpack_require__(5);\n\nvar modelUtil = __webpack_require__(9);\n\nvar _poly = __webpack_require__(365);\n\nvar Polyline = _poly.Polyline;\nvar Polygon = _poly.Polygon;\n\nvar ChartView = __webpack_require__(65);\n\nvar _number = __webpack_require__(8);\n\nvar round = _number.round;\n\nvar _helper = __webpack_require__(364);\n\nvar prepareDataCoordInfo = _helper.prepareDataCoordInfo;\nvar getStackedOnPoint = _helper.getStackedOnPoint;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME step not support polar\nfunction isPointsSame(points1, points2) {\n if (points1.length !== points2.length) {\n return;\n }\n\n for (var i = 0; i < points1.length; i++) {\n var p1 = points1[i];\n var p2 = points2[i];\n\n if (p1[0] !== p2[0] || p1[1] !== p2[1]) {\n return;\n }\n }\n\n return true;\n}\n\nfunction getSmooth(smooth) {\n return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getAxisExtentWithGap(axis) {\n var extent = axis.getGlobalExtent();\n\n if (axis.onBand) {\n // Remove extra 1px to avoid line miter in clipped edge\n var halfBandWidth = axis.getBandWidth() / 2 - 1;\n var dir = extent[1] > extent[0] ? 1 : -1;\n extent[0] += dir * halfBandWidth;\n extent[1] -= dir * halfBandWidth;\n }\n\n return extent;\n}\n/**\n * @param {module:echarts/coord/cartesian/Cartesian2D|module:echarts/coord/polar/Polar} coordSys\n * @param {module:echarts/data/List} data\n * @param {Object} dataCoordInfo\n * @param {Array.>} points\n */\n\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n if (!dataCoordInfo.valueDim) {\n return [];\n }\n\n var points = [];\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx));\n }\n\n return points;\n}\n\nfunction createGridClipShape(cartesian, hasAnimation, forSymbol, seriesModel) {\n var xExtent = getAxisExtentWithGap(cartesian.getAxis('x'));\n var yExtent = getAxisExtentWithGap(cartesian.getAxis('y'));\n var isHorizontal = cartesian.getBaseAxis().isHorizontal();\n var x = Math.min(xExtent[0], xExtent[1]);\n var y = Math.min(yExtent[0], yExtent[1]);\n var width = Math.max(xExtent[0], xExtent[1]) - x;\n var height = Math.max(yExtent[0], yExtent[1]) - y; // Avoid float number rounding error for symbol on the edge of axis extent.\n // See #7913 and `test/dataZoom-clip.html`.\n\n if (forSymbol) {\n x -= 0.5;\n width += 0.5;\n y -= 0.5;\n height += 0.5;\n } else {\n var lineWidth = seriesModel.get('lineStyle.width') || 2; // Expand clip shape to avoid clipping when line value exceeds axis\n\n var expandSize = seriesModel.get('clipOverflow') ? lineWidth / 2 : Math.max(width, height);\n\n if (isHorizontal) {\n y -= expandSize;\n height += expandSize * 2;\n } else {\n x -= expandSize;\n width += expandSize * 2;\n }\n }\n\n var clipPath = new graphic.Rect({\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n }\n });\n\n if (hasAnimation) {\n clipPath.shape[isHorizontal ? 'width' : 'height'] = 0;\n graphic.initProps(clipPath, {\n shape: {\n width: width,\n height: height\n }\n }, seriesModel);\n }\n\n return clipPath;\n}\n\nfunction createPolarClipShape(polar, hasAnimation, forSymbol, seriesModel) {\n var angleAxis = polar.getAngleAxis();\n var radiusAxis = polar.getRadiusAxis();\n var radiusExtent = radiusAxis.getExtent().slice();\n radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n var angleExtent = angleAxis.getExtent();\n var RADIAN = Math.PI / 180; // Avoid float number rounding error for symbol on the edge of axis extent.\n\n if (forSymbol) {\n radiusExtent[0] -= 0.5;\n radiusExtent[1] += 0.5;\n }\n\n var clipPath = new graphic.Sector({\n shape: {\n cx: round(polar.cx, 1),\n cy: round(polar.cy, 1),\n r0: round(radiusExtent[0], 1),\n r: round(radiusExtent[1], 1),\n startAngle: -angleExtent[0] * RADIAN,\n endAngle: -angleExtent[1] * RADIAN,\n clockwise: angleAxis.inverse\n }\n });\n\n if (hasAnimation) {\n clipPath.shape.endAngle = -angleExtent[0] * RADIAN;\n graphic.initProps(clipPath, {\n shape: {\n endAngle: -angleExtent[1] * RADIAN\n }\n }, seriesModel);\n }\n\n return clipPath;\n}\n\nfunction createClipShape(coordSys, hasAnimation, forSymbol, seriesModel) {\n return coordSys.type === 'polar' ? createPolarClipShape(coordSys, hasAnimation, forSymbol, seriesModel) : createGridClipShape(coordSys, hasAnimation, forSymbol, seriesModel);\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n var baseAxis = coordSys.getBaseAxis();\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n var stepPoints = [];\n\n for (var i = 0; i < points.length - 1; i++) {\n var nextPt = points[i + 1];\n var pt = points[i];\n stepPoints.push(pt);\n var stepPt = [];\n\n switch (stepTurnAt) {\n case 'end':\n stepPt[baseIndex] = nextPt[baseIndex];\n stepPt[1 - baseIndex] = pt[1 - baseIndex]; // default is start\n\n stepPoints.push(stepPt);\n break;\n\n case 'middle':\n // default is start\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n var stepPt2 = [];\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n stepPoints.push(stepPt);\n stepPoints.push(stepPt2);\n break;\n\n default:\n stepPt[baseIndex] = pt[baseIndex];\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex]; // default is start\n\n stepPoints.push(stepPt);\n }\n } // Last points\n\n\n points[i] && stepPoints.push(points[i]);\n return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n var visualMetaList = data.getVisual('visualMeta');\n\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\n // When data.count() is 0, gradient range can not be calculated.\n return;\n }\n\n if (coordSys.type !== 'cartesian2d') {\n return;\n }\n\n var coordDim;\n var visualMeta;\n\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\n var dimIndex = visualMetaList[i].dimension;\n var dimName = data.dimensions[dimIndex];\n var dimInfo = data.getDimensionInfo(dimName);\n coordDim = dimInfo && dimInfo.coordDim; // Can only be x or y\n\n if (coordDim === 'x' || coordDim === 'y') {\n visualMeta = visualMetaList[i];\n break;\n }\n }\n\n if (!visualMeta) {\n return;\n } // If the area to be rendered is bigger than area defined by LinearGradient,\n // the canvas spec prescribes that the color of the first stop and the last\n // stop should be used. But if two stops are added at offset 0, in effect\n // browsers use the color of the second stop to render area outside\n // LinearGradient. So we can only infinitesimally extend area defined in\n // LinearGradient to render `outerColors`.\n\n\n var axis = coordSys.getAxis(coordDim); // dataToCoor mapping may not be linear, but must be monotonic.\n\n var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n return {\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n color: stop.color\n };\n });\n var stopLen = colorStops.length;\n var outerColors = visualMeta.outerColors.slice();\n\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n colorStops.reverse();\n outerColors.reverse();\n }\n\n var tinyExtent = 10; // Arbitrary value: 10px\n\n var minCoord = colorStops[0].coord - tinyExtent;\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n var coordSpan = maxCoord - minCoord;\n\n if (coordSpan < 1e-3) {\n return 'transparent';\n }\n\n zrUtil.each(colorStops, function (stop) {\n stop.offset = (stop.coord - minCoord) / coordSpan;\n });\n colorStops.push({\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n color: outerColors[1] || 'transparent'\n });\n colorStops.unshift({\n // notice colorStops.length have been changed.\n offset: stopLen ? colorStops[0].offset : 0.5,\n color: outerColors[0] || 'transparent'\n }); // zrUtil.each(colorStops, function (colorStop) {\n // // Make sure each offset has rounded px to avoid not sharp edge\n // colorStop.offset = (Math.round(colorStop.offset * (end - start) + start) - start) / (end - start);\n // });\n\n var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n gradient[coordDim] = minCoord;\n gradient[coordDim + '2'] = maxCoord;\n return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n var showAllSymbol = seriesModel.get('showAllSymbol');\n var isAuto = showAllSymbol === 'auto';\n\n if (showAllSymbol && !isAuto) {\n return;\n }\n\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (!categoryAxis) {\n return;\n } // Note that category label interval strategy might bring some weird effect\n // in some scenario: users may wonder why some of the symbols are not\n // displayed. So we show all symbols as possible as we can.\n\n\n if (isAuto // Simplify the logic, do not determine label overlap here.\n && canShowAllSymbolForCategory(categoryAxis, data)) {\n return;\n } // Otherwise follow the label interval strategy on category axis.\n\n\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\n var labelMap = {};\n zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n labelMap[labelItem.tickValue] = 1;\n });\n return function (dataIndex) {\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n // In mose cases, line is monotonous on category axis, and the label size\n // is close with each other. So we check the symbol size and some of the\n // label size alone with the category axis to estimate whether all symbol\n // can be shown without overlap.\n var axisExtent = categoryAxis.getExtent();\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n isNaN(availSize) && (availSize = 0); // 0/0 is NaN.\n // Sampling some points, max 5.\n\n var dataLen = data.count();\n var step = Math.max(1, Math.round(dataLen / 5));\n\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n if (SymbolClz.getSymbolSize(data, dataIndex // Only for cartesian, where `isHorizontal` exists.\n )[categoryAxis.isHorizontal() ? 1 : 0] // Empirical number\n * 1.5 > availSize) {\n return false;\n }\n }\n\n return true;\n}\n\nvar _default = ChartView.extend({\n type: 'line',\n init: function () {\n var lineGroup = new graphic.Group();\n var symbolDraw = new SymbolDraw();\n this.group.add(symbolDraw.group);\n this._symbolDraw = symbolDraw;\n this._lineGroup = lineGroup;\n },\n render: function (seriesModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var group = this.group;\n var data = seriesModel.getData();\n var lineStyleModel = seriesModel.getModel('lineStyle');\n var areaStyleModel = seriesModel.getModel('areaStyle');\n var points = data.mapArray(data.getItemLayout);\n var isCoordSysPolar = coordSys.type === 'polar';\n var prevCoordSys = this._coordSys;\n var symbolDraw = this._symbolDraw;\n var polyline = this._polyline;\n var polygon = this._polygon;\n var lineGroup = this._lineGroup;\n var hasAnimation = seriesModel.get('animation');\n var isAreaChart = !areaStyleModel.isEmpty();\n var valueOrigin = areaStyleModel.get('origin');\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo);\n var showSymbol = seriesModel.get('showSymbol');\n var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys); // Remove temporary symbols\n\n var oldData = this._data;\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n }); // Remove previous created symbols if showSymbol changed to false\n\n if (!showSymbol) {\n symbolDraw.remove();\n }\n\n group.add(lineGroup); // FIXME step not support polar\n\n var step = !isCoordSysPolar && seriesModel.get('step'); // Initialization animation or coordinate system changed\n\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: createClipShape(coordSys, false, true, seriesModel)\n });\n\n if (step) {\n // TODO If stacked series is not step\n points = turnPointsIntoStep(points, coordSys, step);\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n }\n\n polyline = this._newPolyline(points, coordSys, hasAnimation);\n\n if (isAreaChart) {\n polygon = this._newPolygon(points, stackedOnPoints, coordSys, hasAnimation);\n }\n\n lineGroup.setClipPath(createClipShape(coordSys, true, false, seriesModel));\n } else {\n if (isAreaChart && !polygon) {\n // If areaStyle is added\n polygon = this._newPolygon(points, stackedOnPoints, coordSys, hasAnimation);\n } else if (polygon && !isAreaChart) {\n // If areaStyle is removed\n lineGroup.remove(polygon);\n polygon = this._polygon = null;\n } // Update clipPath\n\n\n lineGroup.setClipPath(createClipShape(coordSys, false, false, seriesModel)); // Always update, or it is wrong in the case turning on legend\n // because points are not changed\n\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: createClipShape(coordSys, false, true, seriesModel)\n }); // Stop symbol animation and sync with line points\n // FIXME performance?\n\n data.eachItemGraphicEl(function (el) {\n el.stopAnimation(true);\n }); // In the case data zoom triggerred refreshing frequently\n // Data may not change if line has a category axis. So it should animate nothing\n\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n if (hasAnimation) {\n this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n } else {\n // Not do it in update with animation\n if (step) {\n // TODO If stacked series is not step\n points = turnPointsIntoStep(points, coordSys, step);\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n }\n\n polyline.setShape({\n points: points\n });\n polygon && polygon.setShape({\n points: points,\n stackedOnPoints: stackedOnPoints\n });\n }\n }\n }\n\n var visualColor = getVisualGradient(data, coordSys) || data.getVisual('color');\n polyline.useStyle(zrUtil.defaults( // Use color in lineStyle first\n lineStyleModel.getLineStyle(), {\n fill: 'none',\n stroke: visualColor,\n lineJoin: 'bevel'\n }));\n var smooth = seriesModel.get('smooth');\n smooth = getSmooth(seriesModel.get('smooth'));\n polyline.setShape({\n smooth: smooth,\n smoothMonotone: seriesModel.get('smoothMonotone'),\n connectNulls: seriesModel.get('connectNulls')\n });\n\n if (polygon) {\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n var stackedOnSmooth = 0;\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: visualColor,\n opacity: 0.7,\n lineJoin: 'bevel'\n }));\n\n if (stackedOnSeries) {\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n }\n\n polygon.setShape({\n smooth: smooth,\n stackedOnSmooth: stackedOnSmooth,\n smoothMonotone: seriesModel.get('smoothMonotone'),\n connectNulls: seriesModel.get('connectNulls')\n });\n }\n\n this._data = data; // Save the coordinate system for transition animation when data changed\n\n this._coordSys = coordSys;\n this._stackedOnPoints = stackedOnPoints;\n this._points = points;\n this._step = step;\n this._valueOrigin = valueOrigin;\n },\n dispose: function () {},\n highlight: function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (!symbol) {\n // Create a temporary symbol if it is not exists\n var pt = data.getItemLayout(dataIndex);\n\n if (!pt) {\n // Null data\n return;\n }\n\n symbol = new SymbolClz(data, dataIndex);\n symbol.position = pt;\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]);\n symbol.__temp = true;\n data.setItemGraphicEl(dataIndex, symbol); // Stop scale animation\n\n symbol.stopSymbolAnimation(true);\n this.group.add(symbol);\n }\n\n symbol.highlight();\n } else {\n // Highlight whole series\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n }\n },\n downplay: function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n if (dataIndex != null && dataIndex >= 0) {\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (symbol) {\n if (symbol.__temp) {\n data.setItemGraphicEl(dataIndex, null);\n this.group.remove(symbol);\n } else {\n symbol.downplay();\n }\n }\n } else {\n // FIXME\n // can not downplay completely.\n // Downplay whole series\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n }\n },\n\n /**\n * @param {module:zrender/container/Group} group\n * @param {Array.>} points\n * @private\n */\n _newPolyline: function (points) {\n var polyline = this._polyline; // Remove previous created polyline\n\n if (polyline) {\n this._lineGroup.remove(polyline);\n }\n\n polyline = new Polyline({\n shape: {\n points: points\n },\n silent: true,\n z2: 10\n });\n\n this._lineGroup.add(polyline);\n\n this._polyline = polyline;\n return polyline;\n },\n\n /**\n * @param {module:zrender/container/Group} group\n * @param {Array.>} stackedOnPoints\n * @param {Array.>} points\n * @private\n */\n _newPolygon: function (points, stackedOnPoints) {\n var polygon = this._polygon; // Remove previous created polygon\n\n if (polygon) {\n this._lineGroup.remove(polygon);\n }\n\n polygon = new Polygon({\n shape: {\n points: points,\n stackedOnPoints: stackedOnPoints\n },\n silent: true\n });\n\n this._lineGroup.add(polygon);\n\n this._polygon = polygon;\n return polygon;\n },\n\n /**\n * @private\n */\n // FIXME Two value axis\n _updateAnimation: function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n var polyline = this._polyline;\n var polygon = this._polygon;\n var seriesModel = data.hostModel;\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n var current = diff.current;\n var stackedOnCurrent = diff.stackedOnCurrent;\n var next = diff.next;\n var stackedOnNext = diff.stackedOnNext;\n\n if (step) {\n // TODO If stacked series is not step\n current = turnPointsIntoStep(diff.current, coordSys, step);\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n next = turnPointsIntoStep(diff.next, coordSys, step);\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n } // `diff.current` is subset of `current` (which should be ensured by\n // turnPointsIntoStep), so points in `__points` can be updated when\n // points in `current` are update during animation.\n\n\n polyline.shape.__points = diff.current;\n polyline.shape.points = current;\n graphic.updateProps(polyline, {\n shape: {\n points: next\n }\n }, seriesModel);\n\n if (polygon) {\n polygon.setShape({\n points: current,\n stackedOnPoints: stackedOnCurrent\n });\n graphic.updateProps(polygon, {\n shape: {\n points: next,\n stackedOnPoints: stackedOnNext\n }\n }, seriesModel);\n }\n\n var updatedDataInfo = [];\n var diffStatus = diff.status;\n\n for (var i = 0; i < diffStatus.length; i++) {\n var cmd = diffStatus[i].cmd;\n\n if (cmd === '=') {\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n if (el) {\n updatedDataInfo.push({\n el: el,\n ptIdx: i // Index of points\n\n });\n }\n }\n }\n\n if (polyline.animators && polyline.animators.length) {\n polyline.animators[0].during(function () {\n for (var i = 0; i < updatedDataInfo.length; i++) {\n var el = updatedDataInfo[i].el;\n el.attr('position', polyline.shape.__points[updatedDataInfo[i].ptIdx]);\n }\n });\n }\n },\n remove: function (ecModel) {\n var group = this.group;\n var oldData = this._data;\n\n this._lineGroup.removeAll();\n\n this._symbolDraw.remove(true); // Remove temporary created elements when highlighting\n\n\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n });\n this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._data = null;\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _helper = __webpack_require__(364);\n\nvar prepareDataCoordInfo = _helper.prepareDataCoordInfo;\nvar getStackedOnPoint = _helper.getStackedOnPoint;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// var arrayDiff = require('zrender/src/core/arrayDiff');\n// 'zrender/src/core/arrayDiff' has been used before, but it did\n// not do well in performance when roam with fixed dataZoom window.\n// function convertToIntId(newIdList, oldIdList) {\n// // Generate int id instead of string id.\n// // Compare string maybe slow in score function of arrDiff\n// // Assume id in idList are all unique\n// var idIndicesMap = {};\n// var idx = 0;\n// for (var i = 0; i < newIdList.length; i++) {\n// idIndicesMap[newIdList[i]] = idx;\n// newIdList[i] = idx++;\n// }\n// for (var i = 0; i < oldIdList.length; i++) {\n// var oldId = oldIdList[i];\n// // Same with newIdList\n// if (idIndicesMap[oldId]) {\n// oldIdList[i] = idIndicesMap[oldId];\n// }\n// else {\n// oldIdList[i] = idx++;\n// }\n// }\n// }\nfunction diffData(oldData, newData) {\n var diffResult = [];\n newData.diff(oldData).add(function (idx) {\n diffResult.push({\n cmd: '+',\n idx: idx\n });\n }).update(function (newIdx, oldIdx) {\n diffResult.push({\n cmd: '=',\n idx: oldIdx,\n idx1: newIdx\n });\n }).remove(function (idx) {\n diffResult.push({\n cmd: '-',\n idx: idx\n });\n }).execute();\n return diffResult;\n}\n\nfunction _default(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n var diff = diffData(oldData, newData); // var newIdList = newData.mapArray(newData.getId);\n // var oldIdList = oldData.mapArray(oldData.getId);\n // convertToIntId(newIdList, oldIdList);\n // // FIXME One data ?\n // diff = arrayDiff(oldIdList, newIdList);\n\n var currPoints = [];\n var nextPoints = []; // Points for stacking base line\n\n var currStackedPoints = [];\n var nextStackedPoints = [];\n var status = [];\n var sortedIndices = [];\n var rawIndices = [];\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n\n for (var i = 0; i < diff.length; i++) {\n var diffItem = diff[i];\n var pointAdded = true; // FIXME, animation is not so perfect when dataZoom window moves fast\n // Which is in case remvoing or add more than one data in the tail or head\n\n switch (diffItem.cmd) {\n case '=':\n var currentPt = oldData.getItemLayout(diffItem.idx);\n var nextPt = newData.getItemLayout(diffItem.idx1); // If previous data is NaN, use next point directly\n\n if (isNaN(currentPt[0]) || isNaN(currentPt[1])) {\n currentPt = nextPt.slice();\n }\n\n currPoints.push(currentPt);\n nextPoints.push(nextPt);\n currStackedPoints.push(oldStackedOnPoints[diffItem.idx]);\n nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]);\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\n break;\n\n case '+':\n var idx = diffItem.idx;\n currPoints.push(oldCoordSys.dataToPoint([newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idx), newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idx)]));\n nextPoints.push(newData.getItemLayout(idx).slice());\n currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idx));\n nextStackedPoints.push(newStackedOnPoints[idx]);\n rawIndices.push(newData.getRawIndex(idx));\n break;\n\n case '-':\n var idx = diffItem.idx;\n var rawIndex = oldData.getRawIndex(idx); // Data is replaced. In the case of dynamic data queue\n // FIXME FIXME FIXME\n\n if (rawIndex !== idx) {\n currPoints.push(oldData.getItemLayout(idx));\n nextPoints.push(newCoordSys.dataToPoint([oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idx), oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idx)]));\n currStackedPoints.push(oldStackedOnPoints[idx]);\n nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idx));\n rawIndices.push(rawIndex);\n } else {\n pointAdded = false;\n }\n\n } // Original indices\n\n\n if (pointAdded) {\n status.push(diffItem);\n sortedIndices.push(sortedIndices.length);\n }\n } // Diff result may be crossed if all items are changed\n // Sort by data index\n\n\n sortedIndices.sort(function (a, b) {\n return rawIndices[a] - rawIndices[b];\n });\n var sortedCurrPoints = [];\n var sortedNextPoints = [];\n var sortedCurrStackedPoints = [];\n var sortedNextStackedPoints = [];\n var sortedStatus = [];\n\n for (var i = 0; i < sortedIndices.length; i++) {\n var idx = sortedIndices[i];\n sortedCurrPoints[i] = currPoints[idx];\n sortedNextPoints[i] = nextPoints[idx];\n sortedCurrStackedPoints[i] = currStackedPoints[idx];\n sortedNextStackedPoints[i] = nextStackedPoints[idx];\n sortedStatus[i] = status[idx];\n }\n\n return {\n current: sortedCurrPoints,\n next: sortedNextPoints,\n stackedOnCurrent: sortedCurrStackedPoints,\n stackedOnNext: sortedNextStackedPoints,\n status: sortedStatus\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1104);\n\n__webpack_require__(1105);\n\nvar linesLayout = __webpack_require__(366);\n\nvar linesVisual = __webpack_require__(1106);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(linesLayout);\necharts.registerVisual(linesVisual);\n\n/***/ }),\n/* 1104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar SeriesModel = __webpack_require__(30);\n\nvar List = __webpack_require__(49);\n\nvar _util = __webpack_require__(0);\n\nvar concatArray = _util.concatArray;\nvar mergeAll = _util.mergeAll;\nvar map = _util.map;\n\nvar _format = __webpack_require__(19);\n\nvar encodeHTML = _format.encodeHTML;\n\nvar CoordinateSystem = __webpack_require__(57);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Uint32Array, Float64Array, Float32Array */\nvar Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\nvar Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\n\nfunction compatEc2(seriesOpt) {\n var data = seriesOpt.data;\n\n if (data && data[0] && data[0][0] && data[0][0].coord) {\n seriesOpt.data = map(data, function (itemOpt) {\n var coords = [itemOpt[0].coord, itemOpt[1].coord];\n var target = {\n coords: coords\n };\n\n if (itemOpt[0].name) {\n target.fromName = itemOpt[0].name;\n }\n\n if (itemOpt[1].name) {\n target.toName = itemOpt[1].name;\n }\n\n return mergeAll([target, itemOpt[0], itemOpt[1]]);\n });\n }\n}\n\nvar LinesSeries = SeriesModel.extend({\n type: 'series.lines',\n dependencies: ['grid', 'polar'],\n visualColorAccessPath: 'lineStyle.color',\n init: function (option) {\n // The input data may be null/undefined.\n option.data = option.data || []; // Not using preprocessor because mergeOption may not have series.type\n\n compatEc2(option);\n\n var result = this._processFlatCoordsArray(option.data);\n\n this._flatCoords = result.flatCoords;\n this._flatCoordsOffset = result.flatCoordsOffset;\n\n if (result.flatCoords) {\n option.data = new Float32Array(result.count);\n }\n\n LinesSeries.superApply(this, 'init', arguments);\n },\n mergeOption: function (option) {\n // The input data may be null/undefined.\n option.data = option.data || [];\n compatEc2(option);\n\n if (option.data) {\n // Only update when have option data to merge.\n var result = this._processFlatCoordsArray(option.data);\n\n this._flatCoords = result.flatCoords;\n this._flatCoordsOffset = result.flatCoordsOffset;\n\n if (result.flatCoords) {\n option.data = new Float32Array(result.count);\n }\n }\n\n LinesSeries.superApply(this, 'mergeOption', arguments);\n },\n appendData: function (params) {\n var result = this._processFlatCoordsArray(params.data);\n\n if (result.flatCoords) {\n if (!this._flatCoords) {\n this._flatCoords = result.flatCoords;\n this._flatCoordsOffset = result.flatCoordsOffset;\n } else {\n this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\n this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\n }\n\n params.data = new Float32Array(result.count);\n }\n\n this.getRawData().appendData(params.data);\n },\n _getCoordsFromItemModel: function (idx) {\n var itemModel = this.getData().getItemModel(idx);\n var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords');\n return coords;\n },\n getLineCoordsCount: function (idx) {\n if (this._flatCoordsOffset) {\n return this._flatCoordsOffset[idx * 2 + 1];\n } else {\n return this._getCoordsFromItemModel(idx).length;\n }\n },\n getLineCoords: function (idx, out) {\n if (this._flatCoordsOffset) {\n var offset = this._flatCoordsOffset[idx * 2];\n var len = this._flatCoordsOffset[idx * 2 + 1];\n\n for (var i = 0; i < len; i++) {\n out[i] = out[i] || [];\n out[i][0] = this._flatCoords[offset + i * 2];\n out[i][1] = this._flatCoords[offset + i * 2 + 1];\n }\n\n return len;\n } else {\n var coords = this._getCoordsFromItemModel(idx);\n\n for (var i = 0; i < coords.length; i++) {\n out[i] = out[i] || [];\n out[i][0] = coords[i][0];\n out[i][1] = coords[i][1];\n }\n\n return coords.length;\n }\n },\n _processFlatCoordsArray: function (data) {\n var startOffset = 0;\n\n if (this._flatCoords) {\n startOffset = this._flatCoords.length;\n } // Stored as a typed array. In format\n // Points Count(2) | x | y | x | y | Points Count(3) | x | y | x | y | x | y |\n\n\n if (typeof data[0] === 'number') {\n var len = data.length; // Store offset and len of each segment\n\n var coordsOffsetAndLenStorage = new Uint32Arr(len);\n var coordsStorage = new Float64Arr(len);\n var coordsCursor = 0;\n var offsetCursor = 0;\n var dataCount = 0;\n\n for (var i = 0; i < len;) {\n dataCount++;\n var count = data[i++]; // Offset\n\n coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset; // Len\n\n coordsOffsetAndLenStorage[offsetCursor++] = count;\n\n for (var k = 0; k < count; k++) {\n var x = data[i++];\n var y = data[i++];\n coordsStorage[coordsCursor++] = x;\n coordsStorage[coordsCursor++] = y;\n\n if (i > len) {}\n }\n }\n\n return {\n flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\n flatCoords: coordsStorage,\n count: dataCount\n };\n }\n\n return {\n flatCoordsOffset: null,\n flatCoords: null,\n count: data.length\n };\n },\n getInitialData: function (option, ecModel) {\n var lineData = new List(['value'], this);\n lineData.hasItemOption = false;\n lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\n // dataItem is simply coords\n if (dataItem instanceof Array) {\n return NaN;\n } else {\n lineData.hasItemOption = true;\n var value = dataItem.value;\n\n if (value != null) {\n return value instanceof Array ? value[dimIndex] : value;\n }\n }\n });\n return lineData;\n },\n formatTooltip: function (dataIndex) {\n var data = this.getData();\n var itemModel = data.getItemModel(dataIndex);\n var name = itemModel.get('name');\n\n if (name) {\n return name;\n }\n\n var fromName = itemModel.get('fromName');\n var toName = itemModel.get('toName');\n var html = [];\n fromName != null && html.push(fromName);\n toName != null && html.push(toName);\n return encodeHTML(html.join(' > '));\n },\n preventIncremental: function () {\n return !!this.get('effect.show');\n },\n getProgressive: function () {\n var progressive = this.option.progressive;\n\n if (progressive == null) {\n return this.option.large ? 1e4 : this.get('progressive');\n }\n\n return progressive;\n },\n getProgressiveThreshold: function () {\n var progressiveThreshold = this.option.progressiveThreshold;\n\n if (progressiveThreshold == null) {\n return this.option.large ? 2e4 : this.get('progressiveThreshold');\n }\n\n return progressiveThreshold;\n },\n defaultOption: {\n coordinateSystem: 'geo',\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n hoverAnimation: true,\n // Cartesian coordinate system\n xAxisIndex: 0,\n yAxisIndex: 0,\n symbol: ['none', 'none'],\n symbolSize: [10, 10],\n // Geo coordinate system\n geoIndex: 0,\n effect: {\n show: false,\n period: 4,\n // Animation delay. support callback\n // delay: 0,\n // If move with constant speed px/sec\n // period will be ignored if this property is > 0,\n constantSpeed: 0,\n symbol: 'circle',\n symbolSize: 3,\n loop: true,\n // Length of trail, 0 - 1\n trailLength: 0.2 // Same with lineStyle.color\n // color\n\n },\n large: false,\n // Available when large is true\n largeThreshold: 2000,\n // If lines are polyline\n // polyline not support curveness, label, animation\n polyline: false,\n label: {\n show: false,\n position: 'end' // distance: 5,\n // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n\n },\n lineStyle: {\n opacity: 0.5\n }\n }\n});\nvar _default = LinesSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = __webpack_require__(3);\n\nvar LineDraw = __webpack_require__(247);\n\nvar EffectLine = __webpack_require__(358);\n\nvar Line = __webpack_require__(246);\n\nvar Polyline = __webpack_require__(359);\n\nvar EffectPolyline = __webpack_require__(1095);\n\nvar LargeLineDraw = __webpack_require__(1097);\n\nvar linesLayout = __webpack_require__(366);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendChartView({\n type: 'lines',\n init: function () {},\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var lineDraw = this._updateLineDraw(data, seriesModel);\n\n var zlevel = seriesModel.get('zlevel');\n var trailLength = seriesModel.get('effect.trailLength');\n var zr = api.getZr(); // Avoid the drag cause ghost shadow\n // FIXME Better way ?\n // SVG doesn't support\n\n var isSvg = zr.painter.getType() === 'svg';\n\n if (!isSvg) {\n zr.painter.getLayer(zlevel).clear(true);\n } // Config layer with motion blur\n\n\n if (this._lastZlevel != null && !isSvg) {\n zr.configLayer(this._lastZlevel, {\n motionBlur: false\n });\n }\n\n if (this._showEffect(seriesModel) && trailLength) {\n if (!isSvg) {\n zr.configLayer(zlevel, {\n motionBlur: true,\n lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\n });\n }\n }\n\n lineDraw.updateData(data);\n this._lastZlevel = zlevel;\n this._finished = true;\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var lineDraw = this._updateLineDraw(data, seriesModel);\n\n lineDraw.incrementalPrepareUpdate(data);\n\n this._clearLayer(api);\n\n this._finished = false;\n },\n incrementalRender: function (taskParams, seriesModel, ecModel) {\n this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n this._finished = taskParams.end === seriesModel.getData().count();\n },\n updateTransform: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var pipelineContext = seriesModel.pipelineContext;\n\n if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\n // TODO Don't have to do update in large mode. Only do it when there are millions of data.\n return {\n update: true\n };\n } else {\n // TODO Use same logic with ScatterView.\n // Manually update layout\n var res = linesLayout.reset(seriesModel);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count()\n }, data);\n }\n\n this._lineDraw.updateLayout();\n\n this._clearLayer(api);\n }\n },\n _updateLineDraw: function (data, seriesModel) {\n var lineDraw = this._lineDraw;\n\n var hasEffect = this._showEffect(seriesModel);\n\n var isPolyline = !!seriesModel.get('polyline');\n var pipelineContext = seriesModel.pipelineContext;\n var isLargeDraw = pipelineContext.large;\n\n if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {\n if (lineDraw) {\n lineDraw.remove();\n }\n\n lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line);\n this._hasEffet = hasEffect;\n this._isPolyline = isPolyline;\n this._isLargeDraw = isLargeDraw;\n this.group.removeAll();\n }\n\n this.group.add(lineDraw.group);\n return lineDraw;\n },\n _showEffect: function (seriesModel) {\n return !!seriesModel.get('effect.show');\n },\n _clearLayer: function (api) {\n // Not use motion when dragging or zooming\n var zr = api.getZr();\n var isSvg = zr.painter.getType() === 'svg';\n\n if (!isSvg && this._lastZlevel != null) {\n zr.painter.getLayer(this._lastZlevel).clear(true);\n }\n },\n remove: function (ecModel, api) {\n this._lineDraw && this._lineDraw.remove();\n this._lineDraw = null; // Clear motion when lineDraw is removed\n\n this._clearLayer(api);\n },\n dispose: function () {}\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1106 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalize(a) {\n if (!(a instanceof Array)) {\n a = [a, a];\n }\n\n return a;\n}\n\nvar opacityQuery = 'lineStyle.opacity'.split('.');\nvar _default = {\n seriesType: 'lines',\n reset: function (seriesModel, ecModel, api) {\n var symbolType = normalize(seriesModel.get('symbol'));\n var symbolSize = normalize(seriesModel.get('symbolSize'));\n var data = seriesModel.getData();\n data.setVisual('fromSymbol', symbolType && symbolType[0]);\n data.setVisual('toSymbol', symbolType && symbolType[1]);\n data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n data.setVisual('opacity', seriesModel.get(opacityQuery));\n\n function dataEach(data, idx) {\n var itemModel = data.getItemModel(idx);\n var symbolType = normalize(itemModel.getShallow('symbol', true));\n var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n var opacity = itemModel.get(opacityQuery);\n symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n data.setItemVisual(idx, 'opacity', opacity);\n }\n\n return {\n dataEach: data.hasItemOption ? dataEach : null\n };\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1108);\n\n__webpack_require__(1109);\n\n__webpack_require__(352);\n\n__webpack_require__(259);\n\nvar mapSymbolLayout = __webpack_require__(1112);\n\nvar mapVisual = __webpack_require__(1113);\n\nvar mapDataStatistic = __webpack_require__(1111);\n\nvar backwardCompat = __webpack_require__(1110);\n\nvar createDataSelectAction = __webpack_require__(351);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(mapSymbolLayout);\necharts.registerVisual(mapVisual);\necharts.registerProcessor(echarts.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\necharts.registerPreprocessor(backwardCompat);\ncreateDataSelectAction('map', [{\n type: 'mapToggleSelect',\n event: 'mapselectchanged',\n method: 'toggleSelected'\n}, {\n type: 'mapSelect',\n event: 'mapselected',\n method: 'select'\n}, {\n type: 'mapUnSelect',\n event: 'mapunselected',\n method: 'unSelect'\n}]);\n\n/***/ }),\n/* 1108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar createListSimply = __webpack_require__(115);\n\nvar SeriesModel = __webpack_require__(30);\n\nvar _format = __webpack_require__(19);\n\nvar encodeHTML = _format.encodeHTML;\nvar addCommas = _format.addCommas;\n\nvar dataSelectableMixin = __webpack_require__(253);\n\nvar _dataProvider = __webpack_require__(103);\n\nvar retrieveRawAttr = _dataProvider.retrieveRawAttr;\n\nvar geoSourceManager = __webpack_require__(178);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar MapSeries = SeriesModel.extend({\n type: 'series.map',\n dependencies: ['geo'],\n layoutMode: 'box',\n\n /**\n * Only first map series of same mapType will drawMap\n * @type {boolean}\n */\n needsDrawMap: false,\n\n /**\n * Group of all map series with same mapType\n * @type {boolean}\n */\n seriesGroup: [],\n getInitialData: function (option) {\n var data = createListSimply(this, ['value']);\n var valueDim = data.mapDimension('value');\n var dataNameMap = zrUtil.createHashMap();\n var selectTargetList = [];\n var toAppendNames = [];\n\n for (var i = 0, len = data.count(); i < len; i++) {\n var name = data.getName(i);\n dataNameMap.set(name, true);\n selectTargetList.push({\n name: name,\n value: data.get(valueDim, i),\n selected: retrieveRawAttr(data, i, 'selected')\n });\n }\n\n var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap);\n zrUtil.each(geoSource.regions, function (region) {\n var name = region.name;\n\n if (!dataNameMap.get(name)) {\n selectTargetList.push({\n name: name\n });\n toAppendNames.push(name);\n }\n });\n this.updateSelectedMap(selectTargetList); // Complete data with missing regions. The consequent processes (like visual\n // map and render) can not be performed without a \"full data\". For example,\n // find `dataIndex` by name.\n\n data.appendValues([], toAppendNames);\n return data;\n },\n\n /**\n * If no host geo model, return null, which means using a\n * inner exclusive geo model.\n */\n getHostGeoModel: function () {\n var geoIndex = this.option.geoIndex;\n return geoIndex != null ? this.dependentModels.geo[geoIndex] : null;\n },\n getMapType: function () {\n return (this.getHostGeoModel() || this).option.map;\n },\n // _fillOption: function (option, mapName) {\n // Shallow clone\n // option = zrUtil.extend({}, option);\n // option.data = geoCreator.getFilledRegions(option.data, mapName, option.nameMap);\n // return option;\n // },\n getRawValue: function (dataIndex) {\n // Use value stored in data instead because it is calculated from multiple series\n // FIXME Provide all value of multiple series ?\n var data = this.getData();\n return data.get(data.mapDimension('value'), dataIndex);\n },\n\n /**\n * Get model of region\n * @param {string} name\n * @return {module:echarts/model/Model}\n */\n getRegionModel: function (regionName) {\n var data = this.getData();\n return data.getItemModel(data.indexOfName(regionName));\n },\n\n /**\n * Map tooltip formatter\n *\n * @param {number} dataIndex\n */\n formatTooltip: function (dataIndex) {\n // FIXME orignalData and data is a bit confusing\n var data = this.getData();\n var formattedValue = addCommas(this.getRawValue(dataIndex));\n var name = data.getName(dataIndex);\n var seriesGroup = this.seriesGroup;\n var seriesNames = [];\n\n for (var i = 0; i < seriesGroup.length; i++) {\n var otherIndex = seriesGroup[i].originalData.indexOfName(name);\n var valueDim = data.mapDimension('value');\n\n if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\n seriesNames.push(encodeHTML(seriesGroup[i].name));\n }\n }\n\n return seriesNames.join(', ') + '
' + encodeHTML(name + ' : ' + formattedValue);\n },\n\n /**\n * @implement\n */\n getTooltipPosition: function (dataIndex) {\n if (dataIndex != null) {\n var name = this.getData().getName(dataIndex);\n var geo = this.coordinateSystem;\n var region = geo.getRegion(name);\n return region && geo.dataToPoint(region.center);\n }\n },\n setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n },\n defaultOption: {\n // 一级层叠\n zlevel: 0,\n // 二级层叠\n z: 2,\n coordinateSystem: 'geo',\n // map should be explicitly specified since ec3.\n map: '',\n // If `geoIndex` is not specified, a exclusive geo will be\n // created. Otherwise use the specified geo component, and\n // `map` and `mapType` are ignored.\n // geoIndex: 0,\n // 'center' | 'left' | 'right' | 'x%' | {number}\n left: 'center',\n // 'center' | 'top' | 'bottom' | 'x%' | {number}\n top: 'center',\n // right\n // bottom\n // width:\n // height\n // Aspect is width / height. Inited to be geoJson bbox aspect\n // This parameter is used for scale this aspect\n aspectScale: 0.75,\n ///// Layout with center and size\n // If you wan't to put map in a fixed size box with right aspect ratio\n // This two properties may more conveninet\n // layoutCenter: [50%, 50%]\n // layoutSize: 100\n // 数值合并方式,默认加和,可选为:\n // 'sum' | 'average' | 'max' | 'min'\n // mapValueCalculation: 'sum',\n // 地图数值计算结果小数精度\n // mapValuePrecision: 0,\n // 显示图例颜色标识(系列标识的小圆点),图例开启时有效\n showLegendSymbol: true,\n // 选择模式,默认关闭,可选single,multiple\n // selectedMode: false,\n dataRangeHoverLink: true,\n // 是否开启缩放及漫游模式\n // roam: false,\n // Define left-top, right-bottom coords to control view\n // For example, [ [180, 90], [-180, -90] ],\n // higher priority than center and zoom\n boundingCoords: null,\n // Default on center of map\n center: null,\n zoom: 1,\n scaleLimit: null,\n label: {\n show: false,\n color: '#000'\n },\n // scaleLimit: null,\n itemStyle: {\n borderWidth: 0.5,\n borderColor: '#444',\n areaColor: '#eee'\n },\n emphasis: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n areaColor: 'rgba(255,215,0,0.8)'\n }\n }\n }\n});\nzrUtil.mixin(MapSeries, dataSelectableMixin);\nvar _default = MapSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar MapDraw = __webpack_require__(378);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar HIGH_DOWN_PROP = '__seriesMapHighDown';\nvar RECORD_VERSION_PROP = '__seriesMapCallKey';\n\nvar _default = echarts.extendChartView({\n type: 'map',\n render: function (mapModel, ecModel, api, payload) {\n // Not render if it is an toggleSelect action from self\n if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) {\n return;\n }\n\n var group = this.group;\n group.removeAll();\n\n if (mapModel.getHostGeoModel()) {\n return;\n } // Not update map if it is an roam action from self\n\n\n if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) {\n if (mapModel.needsDrawMap) {\n var mapDraw = this._mapDraw || new MapDraw(api, true);\n group.add(mapDraw.group);\n mapDraw.draw(mapModel, ecModel, api, this, payload);\n this._mapDraw = mapDraw;\n } else {\n // Remove drawed map\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n }\n } else {\n var mapDraw = this._mapDraw;\n mapDraw && group.add(mapDraw.group);\n }\n\n mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api);\n },\n remove: function () {\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n this.group.removeAll();\n },\n dispose: function () {\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n },\n _renderSymbols: function (mapModel, ecModel, api) {\n var originalData = mapModel.originalData;\n var group = this.group;\n originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\n if (isNaN(value)) {\n return;\n }\n\n var layout = originalData.getItemLayout(originalDataIndex);\n\n if (!layout || !layout.point) {\n // Not exists in map\n return;\n }\n\n var point = layout.point;\n var offset = layout.offset;\n var circle = new graphic.Circle({\n style: {\n // Because the special of map draw.\n // Which needs statistic of multiple series and draw on one map.\n // And each series also need a symbol with legend color\n //\n // Layout and visual are put one the different data\n fill: mapModel.getData().getVisual('color')\n },\n shape: {\n cx: point[0] + offset * 9,\n cy: point[1],\n r: 3\n },\n silent: true,\n // Do not overlap the first series, on which labels are displayed.\n z2: 8 + (!offset ? graphic.Z2_EMPHASIS_LIFT + 1 : 0)\n }); // Only the series that has the first value on the same region is in charge of rendering the label.\n // But consider the case:\n // series: [\n // {id: 'X', type: 'map', map: 'm', {data: [{name: 'A', value: 11}, {name: 'B', {value: 22}]},\n // {id: 'Y', type: 'map', map: 'm', {data: [{name: 'A', value: 21}, {name: 'C', {value: 33}]}\n // ]\n // The offset `0` of item `A` is at series `X`, but of item `C` is at series `Y`.\n // For backward compatibility, we follow the rule that render label `A` by the\n // settings on series `X` but render label `C` by the settings on series `Y`.\n\n if (!offset) {\n var fullData = mapModel.mainSeries.getData();\n var name = originalData.getName(originalDataIndex);\n var fullIndex = fullData.indexOfName(name);\n var itemModel = originalData.getItemModel(originalDataIndex);\n var labelModel = itemModel.getModel('label');\n var hoverLabelModel = itemModel.getModel('emphasis.label');\n var regionGroup = fullData.getItemGraphicEl(fullIndex); // `getFormattedLabel` needs to use `getData` inside. Here\n // `mapModel.getData()` is shallow cloned from `mainSeries.getData()`.\n // FIXME\n // If this is not the `mainSeries`, the item model (like label formatter)\n // set on original data item will never get. But it has been working\n // like that from the begining, and this scenario is rarely encountered.\n // So it won't be fixed until have to.\n\n var normalText = zrUtil.retrieve2(mapModel.getFormattedLabel(fullIndex, 'normal'), name);\n var emphasisText = zrUtil.retrieve2(mapModel.getFormattedLabel(fullIndex, 'emphasis'), normalText);\n var highDownRecord = regionGroup[HIGH_DOWN_PROP];\n var recordVersion = Math.random(); // Prevent from register listeners duplicatedly when roaming.\n\n if (!highDownRecord) {\n highDownRecord = regionGroup[HIGH_DOWN_PROP] = {};\n var onEmphasis = zrUtil.curry(onRegionHighDown, true);\n var onNormal = zrUtil.curry(onRegionHighDown, false);\n regionGroup.on('mouseover', onEmphasis).on('mouseout', onNormal).on('emphasis', onEmphasis).on('normal', onNormal);\n } // Prevent removed regions effect current grapics.\n\n\n regionGroup[RECORD_VERSION_PROP] = recordVersion;\n zrUtil.extend(highDownRecord, {\n recordVersion: recordVersion,\n circle: circle,\n labelModel: labelModel,\n hoverLabelModel: hoverLabelModel,\n emphasisText: emphasisText,\n normalText: normalText\n }); // FIXME\n // Consider set option when emphasis.\n\n enterRegionHighDown(highDownRecord, false);\n }\n\n group.add(circle);\n });\n }\n});\n\nfunction onRegionHighDown(toHighOrDown) {\n var highDownRecord = this[HIGH_DOWN_PROP];\n\n if (highDownRecord && highDownRecord.recordVersion === this[RECORD_VERSION_PROP]) {\n enterRegionHighDown(highDownRecord, toHighOrDown);\n }\n}\n\nfunction enterRegionHighDown(highDownRecord, toHighOrDown) {\n var circle = highDownRecord.circle;\n var labelModel = highDownRecord.labelModel;\n var hoverLabelModel = highDownRecord.hoverLabelModel;\n var emphasisText = highDownRecord.emphasisText;\n var normalText = highDownRecord.normalText;\n\n if (toHighOrDown) {\n circle.style.extendFrom(graphic.setTextStyle({}, hoverLabelModel, {\n text: hoverLabelModel.get('show') ? emphasisText : null\n }, {\n isRectText: true,\n useInsideStyle: false\n }, true)); // Make label upper than others if overlaps.\n\n circle.__mapOriginalZ2 = circle.z2;\n circle.z2 += graphic.Z2_EMPHASIS_LIFT;\n } else {\n graphic.setTextStyle(circle.style, labelModel, {\n text: labelModel.get('show') ? normalText : null,\n textPosition: labelModel.getShallow('position') || 'bottom'\n }, {\n isRectText: true,\n useInsideStyle: false\n }); // Trigger normalize style like padding.\n\n circle.dirty(false);\n\n if (circle.__mapOriginalZ2 != null) {\n circle.z2 = circle.__mapOriginalZ2;\n circle.__mapOriginalZ2 = null;\n }\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(option) {\n // Save geoCoord\n var mapSeries = [];\n zrUtil.each(option.series, function (seriesOpt) {\n if (seriesOpt && seriesOpt.type === 'map') {\n mapSeries.push(seriesOpt);\n seriesOpt.map = seriesOpt.map || seriesOpt.mapType; // Put x, y, width, height, x2, y2 in the top level\n\n zrUtil.defaults(seriesOpt, seriesOpt.mapLocation);\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME 公用?\n\n/**\n * @param {Array.} datas\n * @param {string} statisticType 'average' 'sum'\n * @inner\n */\nfunction dataStatistics(datas, statisticType) {\n var dataNameMap = {};\n zrUtil.each(datas, function (data) {\n data.each(data.mapDimension('value'), function (value, idx) {\n // Add prefix to avoid conflict with Object.prototype.\n var mapKey = 'ec-' + data.getName(idx);\n dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n if (!isNaN(value)) {\n dataNameMap[mapKey].push(value);\n }\n });\n });\n return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n var mapKey = 'ec-' + datas[0].getName(idx);\n var sum = 0;\n var min = Infinity;\n var max = -Infinity;\n var len = dataNameMap[mapKey].length;\n\n for (var i = 0; i < len; i++) {\n min = Math.min(min, dataNameMap[mapKey][i]);\n max = Math.max(max, dataNameMap[mapKey][i]);\n sum += dataNameMap[mapKey][i];\n }\n\n var result;\n\n if (statisticType === 'min') {\n result = min;\n } else if (statisticType === 'max') {\n result = max;\n } else if (statisticType === 'average') {\n result = sum / len;\n } else {\n result = sum;\n }\n\n return len === 0 ? NaN : result;\n });\n}\n\nfunction _default(ecModel) {\n var seriesGroups = {};\n ecModel.eachSeriesByType('map', function (seriesModel) {\n var hostGeoModel = seriesModel.getHostGeoModel();\n var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n });\n zrUtil.each(seriesGroups, function (seriesList, key) {\n var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n return seriesModel.getData();\n }), seriesList[0].get('mapValueCalculation'));\n\n for (var i = 0; i < seriesList.length; i++) {\n seriesList[i].originalData = seriesList[i].getData();\n } // FIXME Put where?\n\n\n for (var i = 0; i < seriesList.length; i++) {\n seriesList[i].seriesGroup = seriesList;\n seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n seriesList[i].setData(data.cloneShallow());\n seriesList[i].mainSeries = seriesList[0];\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n var processedMapType = {};\n ecModel.eachSeriesByType('map', function (mapSeries) {\n var mapType = mapSeries.getMapType();\n\n if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\n return;\n }\n\n var mapSymbolOffsets = {};\n zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) {\n var geo = subMapSeries.coordinateSystem;\n var data = subMapSeries.originalData;\n\n if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\n data.each(data.mapDimension('value'), function (value, idx) {\n var name = data.getName(idx);\n var region = geo.getRegion(name); // If input series.data is [11, 22, '-'/null/undefined, 44],\n // it will be filled with NaN: [11, 22, NaN, 44] and NaN will\n // not be drawn. So here must validate if value is NaN.\n\n if (!region || isNaN(value)) {\n return;\n }\n\n var offset = mapSymbolOffsets[name] || 0;\n var point = geo.dataToPoint(region.center);\n mapSymbolOffsets[name] = offset + 1;\n data.setItemLayout(idx, {\n point: point,\n offset: offset\n });\n });\n }\n }); // Show label of those region not has legendSymbol(which is offset 0)\n\n var data = mapSeries.getData();\n data.each(function (idx) {\n var name = data.getName(idx);\n var layout = data.getItemLayout(idx) || {};\n layout.showLabel = !mapSymbolOffsets[name];\n data.setItemLayout(idx, layout);\n });\n processedMapType[mapType] = true;\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1113 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n ecModel.eachSeriesByType('map', function (seriesModel) {\n var colorList = seriesModel.get('color');\n var itemStyleModel = seriesModel.getModel('itemStyle');\n var areaColor = itemStyleModel.get('areaColor');\n var color = itemStyleModel.get('color') || colorList[seriesModel.seriesIndex % colorList.length];\n seriesModel.getData().setVisual({\n 'areaColor': areaColor,\n 'color': color\n });\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(384);\n\n__webpack_require__(1115);\n\n__webpack_require__(1116);\n\nvar parallelVisual = __webpack_require__(1117);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(parallelVisual);\n\n/***/ }),\n/* 1115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = __webpack_require__(0);\n\nvar each = _util.each;\nvar createHashMap = _util.createHashMap;\n\nvar SeriesModel = __webpack_require__(30);\n\nvar createListFromArray = __webpack_require__(70);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.parallel',\n dependencies: ['parallel'],\n visualColorAccessPath: 'lineStyle.color',\n getInitialData: function (option, ecModel) {\n var source = this.getSource();\n setEncodeAndDimensions(source, this);\n return createListFromArray(source, this);\n },\n\n /**\n * User can get data raw indices on 'axisAreaSelected' event received.\n *\n * @public\n * @param {string} activeState 'active' or 'inactive' or 'normal'\n * @return {Array.} Raw indices\n */\n getRawIndicesByActiveState: function (activeState) {\n var coordSys = this.coordinateSystem;\n var data = this.getData();\n var indices = [];\n coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n if (activeState === theActiveState) {\n indices.push(data.getRawIndex(dataIndex));\n }\n });\n return indices;\n },\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n coordinateSystem: 'parallel',\n parallelIndex: 0,\n label: {\n show: false\n },\n inactiveOpacity: 0.05,\n activeOpacity: 1,\n lineStyle: {\n width: 1,\n opacity: 0.45,\n type: 'solid'\n },\n emphasis: {\n label: {\n show: false\n }\n },\n progressive: 500,\n smooth: false,\n // true | false | number\n animationEasing: 'linear'\n }\n});\n\nfunction setEncodeAndDimensions(source, seriesModel) {\n // The mapping of parallelAxis dimension to data dimension can\n // be specified in parallelAxis.option.dim. For example, if\n // parallelAxis.option.dim is 'dim3', it mapping to the third\n // dimension of data. But `data.encode` has higher priority.\n // Moreover, parallelModel.dimension should not be regarded as data\n // dimensions. Consider dimensions = ['dim4', 'dim2', 'dim6'];\n if (source.encodeDefine) {\n return;\n }\n\n var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n if (!parallelModel) {\n return;\n }\n\n var encodeDefine = source.encodeDefine = createHashMap();\n each(parallelModel.dimensions, function (axisDim) {\n var dataDimIndex = convertDimNameToNumber(axisDim);\n encodeDefine.set(axisDim, dataDimIndex);\n });\n}\n\nfunction convertDimNameToNumber(dimName) {\n return +dimName.replace('dim', '');\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = __webpack_require__(5);\n\nvar ChartView = __webpack_require__(65);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DEFAULT_SMOOTH = 0.3;\nvar ParallelView = ChartView.extend({\n type: 'parallel',\n init: function () {\n /**\n * @type {module:zrender/container/Group}\n * @private\n */\n this._dataGroup = new graphic.Group();\n this.group.add(this._dataGroup);\n /**\n * @type {module:echarts/data/List}\n */\n\n this._data;\n /**\n * @type {boolean}\n */\n\n this._initialized;\n },\n\n /**\n * @override\n */\n render: function (seriesModel, ecModel, api, payload) {\n var dataGroup = this._dataGroup;\n var data = seriesModel.getData();\n var oldData = this._data;\n var coordSys = seriesModel.coordinateSystem;\n var dimensions = coordSys.dimensions;\n var seriesScope = makeSeriesScope(seriesModel);\n data.diff(oldData).add(add).update(update).remove(remove).execute();\n\n function add(newDataIndex) {\n var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\n updateElCommon(line, data, newDataIndex, seriesScope);\n }\n\n function update(newDataIndex, oldDataIndex) {\n var line = oldData.getItemGraphicEl(oldDataIndex);\n var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\n data.setItemGraphicEl(newDataIndex, line);\n var animationModel = payload && payload.animation === false ? null : seriesModel;\n graphic.updateProps(line, {\n shape: {\n points: points\n }\n }, animationModel, newDataIndex);\n updateElCommon(line, data, newDataIndex, seriesScope);\n }\n\n function remove(oldDataIndex) {\n var line = oldData.getItemGraphicEl(oldDataIndex);\n dataGroup.remove(line);\n } // First create\n\n\n if (!this._initialized) {\n this._initialized = true;\n var clipPath = createGridClipShape(coordSys, seriesModel, function () {\n // Callback will be invoked immediately if there is no animation\n setTimeout(function () {\n dataGroup.removeClipPath();\n });\n });\n dataGroup.setClipPath(clipPath);\n }\n\n this._data = data;\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n this._initialized = true;\n this._data = null;\n\n this._dataGroup.removeAll();\n },\n incrementalRender: function (taskParams, seriesModel, ecModel) {\n var data = seriesModel.getData();\n var coordSys = seriesModel.coordinateSystem;\n var dimensions = coordSys.dimensions;\n var seriesScope = makeSeriesScope(seriesModel);\n\n for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\n var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\n line.incremental = true;\n updateElCommon(line, data, dataIndex, seriesScope);\n }\n },\n dispose: function () {},\n // _renderForProgressive: function (seriesModel) {\n // var dataGroup = this._dataGroup;\n // var data = seriesModel.getData();\n // var oldData = this._data;\n // var coordSys = seriesModel.coordinateSystem;\n // var dimensions = coordSys.dimensions;\n // var option = seriesModel.option;\n // var progressive = option.progressive;\n // var smooth = option.smooth ? SMOOTH : null;\n // // In progressive animation is disabled, so use simple data diff,\n // // which effects performance less.\n // // (Typically performance for data with length 7000+ like:\n // // simpleDiff: 60ms, addEl: 184ms,\n // // in RMBP 2.4GHz intel i7, OSX 10.9 chrome 50.0.2661.102 (64-bit))\n // if (simpleDiff(oldData, data, dimensions)) {\n // dataGroup.removeAll();\n // data.each(function (dataIndex) {\n // addEl(data, dataGroup, dataIndex, dimensions, coordSys);\n // });\n // }\n // updateElCommon(data, progressive, smooth);\n // // Consider switch between progressive and not.\n // data.__plProgressive = true;\n // this._data = data;\n // },\n\n /**\n * @override\n */\n remove: function () {\n this._dataGroup && this._dataGroup.removeAll();\n this._data = null;\n }\n});\n\nfunction createGridClipShape(coordSys, seriesModel, cb) {\n var parallelModel = coordSys.model;\n var rect = coordSys.getRect();\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n }\n });\n var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\n rectEl.setShape(dim, 0);\n graphic.initProps(rectEl, {\n shape: {\n width: rect.width,\n height: rect.height\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nfunction createLinePoints(data, dataIndex, dimensions, coordSys) {\n var points = [];\n\n for (var i = 0; i < dimensions.length; i++) {\n var dimName = dimensions[i];\n var value = data.get(data.mapDimension(dimName), dataIndex);\n\n if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\n points.push(coordSys.dataToPoint(value, dimName));\n }\n }\n\n return points;\n}\n\nfunction addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\n var points = createLinePoints(data, dataIndex, dimensions, coordSys);\n var line = new graphic.Polyline({\n shape: {\n points: points\n },\n silent: true,\n z2: 10\n });\n dataGroup.add(line);\n data.setItemGraphicEl(dataIndex, line);\n return line;\n}\n\nfunction makeSeriesScope(seriesModel) {\n var smooth = seriesModel.get('smooth', true);\n smooth === true && (smooth = DEFAULT_SMOOTH);\n return {\n lineStyle: seriesModel.getModel('lineStyle').getLineStyle(),\n smooth: smooth != null ? smooth : DEFAULT_SMOOTH\n };\n}\n\nfunction updateElCommon(el, data, dataIndex, seriesScope) {\n var lineStyle = seriesScope.lineStyle;\n\n if (data.hasItemOption) {\n var lineStyleModel = data.getItemModel(dataIndex).getModel('lineStyle');\n lineStyle = lineStyleModel.getLineStyle();\n }\n\n el.useStyle(lineStyle);\n var elStyle = el.style;\n elStyle.fill = null; // lineStyle.color have been set to itemVisual in module:echarts/visual/seriesColor.\n\n elStyle.stroke = data.getItemVisual(dataIndex, 'color'); // lineStyle.opacity have been set to itemVisual in parallelVisual.\n\n elStyle.opacity = data.getItemVisual(dataIndex, 'opacity');\n seriesScope.smooth && (el.shape.smooth = seriesScope.smooth);\n} // function simpleDiff(oldData, newData, dimensions) {\n// var oldLen;\n// if (!oldData\n// || !oldData.__plProgressive\n// || (oldLen = oldData.count()) !== newData.count()\n// ) {\n// return true;\n// }\n// var dimLen = dimensions.length;\n// for (var i = 0; i < oldLen; i++) {\n// for (var j = 0; j < dimLen; j++) {\n// if (oldData.get(dimensions[j], i) !== newData.get(dimensions[j], i)) {\n// return true;\n// }\n// }\n// }\n// return false;\n// }\n// FIXME\n// 公用方法?\n\n\nfunction isEmptyValue(val, axisType) {\n return axisType === 'category' ? val == null : val == null || isNaN(val); // axisType === 'value'\n}\n\nvar _default = ParallelView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1117 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar opacityAccessPath = ['lineStyle', 'normal', 'opacity'];\nvar _default = {\n seriesType: 'parallel',\n reset: function (seriesModel, ecModel, api) {\n var itemStyleModel = seriesModel.getModel('itemStyle');\n var lineStyleModel = seriesModel.getModel('lineStyle');\n var globalColors = ecModel.get('color');\n var color = lineStyleModel.get('color') || itemStyleModel.get('color') || globalColors[seriesModel.seriesIndex % globalColors.length];\n var inactiveOpacity = seriesModel.get('inactiveOpacity');\n var activeOpacity = seriesModel.get('activeOpacity');\n var lineStyle = seriesModel.getModel('lineStyle').getLineStyle();\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var opacityMap = {\n normal: lineStyle.opacity,\n active: activeOpacity,\n inactive: inactiveOpacity\n };\n data.setVisual('color', color);\n\n function progress(params, data) {\n coordSys.eachActiveState(data, function (activeState, dataIndex) {\n var opacity = opacityMap[activeState];\n\n if (activeState === 'normal' && data.hasItemOption) {\n var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true);\n itemOpacity != null && (opacity = itemOpacity);\n }\n\n data.setItemVisual(dataIndex, 'opacity', opacity);\n }, params.start, params.end);\n }\n\n return {\n progress: progress\n };\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\n__webpack_require__(258);\n\n__webpack_require__(1052);\n\n__webpack_require__(1053);\n\nvar _barGrid = __webpack_require__(180);\n\nvar layout = _barGrid.layout;\n\nvar visualSymbol = __webpack_require__(107);\n\n__webpack_require__(142);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// In case developer forget to include grid component\necharts.registerLayout(zrUtil.curry(layout, 'pictorialBar'));\necharts.registerVisual(visualSymbol('pictorialBar', 'roundRect'));\n\n/***/ }),\n/* 1119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar createListSimply = __webpack_require__(115);\n\nvar zrUtil = __webpack_require__(0);\n\nvar modelUtil = __webpack_require__(9);\n\nvar _number = __webpack_require__(8);\n\nvar getPercentWithPrecision = _number.getPercentWithPrecision;\n\nvar dataSelectableMixin = __webpack_require__(253);\n\nvar _dataProvider = __webpack_require__(103);\n\nvar retrieveRawAttr = _dataProvider.retrieveRawAttr;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PieSeries = echarts.extendSeriesModel({\n type: 'series.pie',\n // Overwrite\n init: function (option) {\n PieSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n this.legendDataProvider = function () {\n return this.getRawData();\n };\n\n this.updateSelectedMap(this._createSelectableList());\n\n this._defaultLabelLine(option);\n },\n // Overwrite\n mergeOption: function (newOption) {\n PieSeries.superCall(this, 'mergeOption', newOption);\n this.updateSelectedMap(this._createSelectableList());\n },\n getInitialData: function (option, ecModel) {\n return createListSimply(this, ['value']);\n },\n _createSelectableList: function () {\n var data = this.getRawData();\n var valueDim = data.mapDimension('value');\n var targetList = [];\n\n for (var i = 0, len = data.count(); i < len; i++) {\n targetList.push({\n name: data.getName(i),\n value: data.get(valueDim, i),\n selected: retrieveRawAttr(data, i, 'selected')\n });\n }\n\n return targetList;\n },\n // Overwrite\n getDataParams: function (dataIndex) {\n var data = this.getData();\n var params = PieSeries.superCall(this, 'getDataParams', dataIndex); // FIXME toFixed?\n\n var valueList = [];\n data.each(data.mapDimension('value'), function (value) {\n valueList.push(value);\n });\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n params.$vars.push('percent');\n return params;\n },\n _defaultLabelLine: function (option) {\n // Extend labelLine emphasis\n modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n hoverAnimation: true,\n // 默认全局居中\n center: ['50%', '50%'],\n radius: [0, '75%'],\n // 默认顺时针\n clockwise: true,\n startAngle: 90,\n // 最小角度改为0\n minAngle: 0,\n // 选中时扇区偏移量\n selectedOffset: 10,\n // 高亮扇区偏移量\n hoverOffset: 10,\n // If use strategy to avoid label overlapping\n avoidLabelOverlap: true,\n // 选择模式,默认关闭,可选single,multiple\n // selectedMode: false,\n // 南丁格尔玫瑰图模式,'radius'(半径) | 'area'(面积)\n // roseType: null,\n percentPrecision: 2,\n // If still show when all data zero.\n stillShowZeroSum: true,\n // cursor: null,\n label: {\n // If rotate around circle\n rotate: false,\n show: true,\n // 'outer', 'inside', 'center'\n position: 'outer' // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n // 默认使用全局文本样式,详见TEXTSTYLE\n // distance: 当position为inner时有效,为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数\n\n },\n // Enabled when label.normal.position is 'outer'\n labelLine: {\n show: true,\n // 引导线两段中的第一段长度\n length: 15,\n // 引导线两段中的第二段长度\n length2: 15,\n smooth: false,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n borderWidth: 1\n },\n // Animation type canbe expansion, scale\n animationType: 'expansion',\n animationEasing: 'cubicOut'\n }\n});\nzrUtil.mixin(PieSeries, dataSelectableMixin);\nvar _default = PieSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar ChartView = __webpack_require__(65);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/model/Series} seriesModel\n * @param {boolean} hasAnimation\n * @inner\n */\nfunction updateDataSelected(uid, seriesModel, hasAnimation, api) {\n var data = seriesModel.getData();\n var dataIndex = this.dataIndex;\n var name = data.getName(dataIndex);\n var selectedOffset = seriesModel.get('selectedOffset');\n api.dispatchAction({\n type: 'pieToggleSelect',\n from: uid,\n name: name,\n seriesId: seriesModel.id\n });\n data.each(function (idx) {\n toggleItemSelected(data.getItemGraphicEl(idx), data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), selectedOffset, hasAnimation);\n });\n}\n/**\n * @param {module:zrender/graphic/Sector} el\n * @param {Object} layout\n * @param {boolean} isSelected\n * @param {number} selectedOffset\n * @param {boolean} hasAnimation\n * @inner\n */\n\n\nfunction toggleItemSelected(el, layout, isSelected, selectedOffset, hasAnimation) {\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var dx = Math.cos(midAngle);\n var dy = Math.sin(midAngle);\n var offset = isSelected ? selectedOffset : 0;\n var position = [dx * offset, dy * offset];\n hasAnimation // animateTo will stop revious animation like update transition\n ? el.animate().when(200, {\n position: position\n }).start('bounceOut') : el.attr('position', position);\n}\n/**\n * Piece of pie including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\n\n\nfunction PiePiece(data, idx) {\n graphic.Group.call(this);\n var sector = new graphic.Sector({\n z2: 2\n });\n var polyline = new graphic.Polyline();\n var text = new graphic.Text();\n this.add(sector);\n this.add(polyline);\n this.add(text);\n this.updateData(data, idx, true); // Hover to change label and labelLine\n\n function onEmphasis() {\n polyline.ignore = polyline.hoverIgnore;\n text.ignore = text.hoverIgnore;\n }\n\n function onNormal() {\n polyline.ignore = polyline.normalIgnore;\n text.ignore = text.normalIgnore;\n }\n\n this.on('emphasis', onEmphasis).on('normal', onNormal).on('mouseover', onEmphasis).on('mouseout', onNormal);\n}\n\nvar piePieceProto = PiePiece.prototype;\n\npiePieceProto.updateData = function (data, idx, firstCreate) {\n var sector = this.childAt(0);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var sectorShape = zrUtil.extend({}, layout);\n sectorShape.label = null;\n\n if (firstCreate) {\n sector.setShape(sectorShape);\n var animationType = seriesModel.getShallow('animationType');\n\n if (animationType === 'scale') {\n sector.shape.r = layout.r0;\n graphic.initProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, idx);\n } // Expansion\n else {\n sector.shape.endAngle = layout.startAngle;\n graphic.updateProps(sector, {\n shape: {\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n }\n } else {\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel, idx);\n } // Update common style\n\n\n var visualColor = data.getItemVisual(idx, 'color');\n sector.useStyle(zrUtil.defaults({\n lineJoin: 'bevel',\n fill: visualColor\n }, itemModel.getModel('itemStyle').getItemStyle()));\n sector.hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle); // Toggle selected\n\n toggleItemSelected(this, data.getItemLayout(idx), seriesModel.isSelected(null, idx), seriesModel.get('selectedOffset'), seriesModel.get('animation'));\n\n function onEmphasis() {\n // Sector may has animation of updating data. Force to move to the last frame\n // Or it may stopped on the wrong shape\n sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r + seriesModel.get('hoverOffset')\n }\n }, 300, 'elasticOut');\n }\n\n function onNormal() {\n sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r\n }\n }, 300, 'elasticOut');\n }\n\n sector.off('mouseover').off('mouseout').off('emphasis').off('normal');\n\n if (itemModel.get('hoverAnimation') && seriesModel.isAnimationEnabled()) {\n sector.on('mouseover', onEmphasis).on('mouseout', onNormal).on('emphasis', onEmphasis).on('normal', onNormal);\n }\n\n this._updateLabel(data, idx);\n\n graphic.setHoverStyle(this);\n};\n\npiePieceProto._updateLabel = function (data, idx) {\n var labelLine = this.childAt(1);\n var labelText = this.childAt(2);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var labelLayout = layout.label;\n var visualColor = data.getItemVisual(idx, 'color');\n graphic.updateProps(labelLine, {\n shape: {\n points: labelLayout.linePoints || [[labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y]]\n }\n }, seriesModel, idx);\n graphic.updateProps(labelText, {\n style: {\n x: labelLayout.x,\n y: labelLayout.y\n }\n }, seriesModel, idx);\n labelText.attr({\n rotation: labelLayout.rotation,\n origin: [labelLayout.x, labelLayout.y],\n z2: 10\n });\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineHoverModel = itemModel.getModel('emphasis.labelLine');\n var visualColor = data.getItemVisual(idx, 'color');\n graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n defaultText: data.getName(idx),\n autoColor: visualColor,\n useInsideStyle: !!labelLayout.inside\n }, {\n textAlign: labelLayout.textAlign,\n textVerticalAlign: labelLayout.verticalAlign,\n opacity: data.getItemVisual(idx, 'opacity')\n });\n labelText.ignore = labelText.normalIgnore = !labelModel.get('show');\n labelText.hoverIgnore = !labelHoverModel.get('show');\n labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show');\n labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color\n\n labelLine.setStyle({\n stroke: visualColor,\n opacity: data.getItemVisual(idx, 'opacity')\n });\n labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());\n labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();\n var smooth = labelLineModel.get('smooth');\n\n if (smooth && smooth === true) {\n smooth = 0.4;\n }\n\n labelLine.setShape({\n smooth: smooth\n });\n};\n\nzrUtil.inherits(PiePiece, graphic.Group); // Pie view\n\nvar PieView = ChartView.extend({\n type: 'pie',\n init: function () {\n var sectorGroup = new graphic.Group();\n this._sectorGroup = sectorGroup;\n },\n render: function (seriesModel, ecModel, api, payload) {\n if (payload && payload.from === this.uid) {\n return;\n }\n\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var hasAnimation = ecModel.get('animation');\n var isFirstRender = !oldData;\n var animationType = seriesModel.get('animationType');\n var onSectorClick = zrUtil.curry(updateDataSelected, this.uid, seriesModel, hasAnimation, api);\n var selectedMode = seriesModel.get('selectedMode');\n data.diff(oldData).add(function (idx) {\n var piePiece = new PiePiece(data, idx); // Default expansion animation\n\n if (isFirstRender && animationType !== 'scale') {\n piePiece.eachChild(function (child) {\n child.stopAnimation(true);\n });\n }\n\n selectedMode && piePiece.on('click', onSectorClick);\n data.setItemGraphicEl(idx, piePiece);\n group.add(piePiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n piePiece.updateData(data, newIdx);\n piePiece.off('click');\n selectedMode && piePiece.on('click', onSectorClick);\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n group.remove(piePiece);\n }).execute();\n\n if (hasAnimation && isFirstRender && data.count() > 0 // Default expansion animation\n && animationType !== 'scale') {\n var shape = data.getItemLayout(0);\n var r = Math.max(api.getWidth(), api.getHeight()) / 2;\n var removeClipPath = zrUtil.bind(group.removeClipPath, group);\n group.setClipPath(this._createClipPath(shape.cx, shape.cy, r, shape.startAngle, shape.clockwise, removeClipPath, seriesModel));\n } else {\n // clipPath is used in first-time animation, so remove it when otherwise. See: #8994\n group.removeClipPath();\n }\n\n this._data = data;\n },\n dispose: function () {},\n _createClipPath: function (cx, cy, r, startAngle, clockwise, cb, seriesModel) {\n var clipPath = new graphic.Sector({\n shape: {\n cx: cx,\n cy: cy,\n r0: 0,\n r: r,\n startAngle: startAngle,\n endAngle: startAngle,\n clockwise: clockwise\n }\n });\n graphic.initProps(clipPath, {\n shape: {\n endAngle: startAngle + (clockwise ? 1 : -1) * Math.PI * 2\n }\n }, seriesModel, cb);\n return clipPath;\n },\n\n /**\n * @implement\n */\n containPoint: function (point, seriesModel) {\n var data = seriesModel.getData();\n var itemLayout = data.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n }\n});\nvar _default = PieView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar textContain = __webpack_require__(59);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME emphasis label position is not same with normal label position\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight) {\n list.sort(function (a, b) {\n return a.y - b.y;\n });\n\n function shiftDown(start, end, delta, dir) {\n for (var j = start; j < end; j++) {\n list[j].y += delta;\n\n if (j > start && j + 1 < end && list[j + 1].y > list[j].y + list[j].height) {\n shiftUp(j, delta / 2);\n return;\n }\n }\n\n shiftUp(end - 1, delta / 2);\n }\n\n function shiftUp(end, delta) {\n for (var j = end; j >= 0; j--) {\n list[j].y -= delta;\n\n if (j > 0 && list[j].y > list[j - 1].y + list[j - 1].height) {\n break;\n }\n }\n }\n\n function changeX(list, isDownList, cx, cy, r, dir) {\n var lastDeltaX = dir > 0 ? isDownList // right-side\n ? Number.MAX_VALUE // down\n : 0 // up\n : isDownList // left-side\n ? Number.MAX_VALUE // down\n : 0; // up\n\n for (var i = 0, l = list.length; i < l; i++) {\n var deltaY = Math.abs(list[i].y - cy);\n var length = list[i].len;\n var length2 = list[i].len2;\n var deltaX = deltaY < r + length ? Math.sqrt((r + length + length2) * (r + length + length2) - deltaY * deltaY) : Math.abs(list[i].x - cx);\n\n if (isDownList && deltaX >= lastDeltaX) {\n // right-down, left-down\n deltaX = lastDeltaX - 10;\n }\n\n if (!isDownList && deltaX <= lastDeltaX) {\n // right-up, left-up\n deltaX = lastDeltaX + 10;\n }\n\n list[i].x = cx + deltaX * dir;\n lastDeltaX = deltaX;\n }\n }\n\n var lastY = 0;\n var delta;\n var len = list.length;\n var upList = [];\n var downList = [];\n\n for (var i = 0; i < len; i++) {\n delta = list[i].y - lastY;\n\n if (delta < 0) {\n shiftDown(i, len, -delta, dir);\n }\n\n lastY = list[i].y + list[i].height;\n }\n\n if (viewHeight - lastY < 0) {\n shiftUp(len - 1, lastY - viewHeight);\n }\n\n for (var i = 0; i < len; i++) {\n if (list[i].y >= cy) {\n downList.push(list[i]);\n } else {\n upList.push(list[i]);\n }\n }\n\n changeX(upList, false, cx, cy, r, dir);\n changeX(downList, true, cx, cy, r, dir);\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight) {\n var leftList = [];\n var rightList = [];\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n if (isPositionCenter(labelLayoutList[i])) {\n continue;\n }\n\n if (labelLayoutList[i].x < cx) {\n leftList.push(labelLayoutList[i]);\n } else {\n rightList.push(labelLayoutList[i]);\n }\n }\n\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight);\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight);\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n if (isPositionCenter(labelLayoutList[i])) {\n continue;\n }\n\n var linePoints = labelLayoutList[i].linePoints;\n\n if (linePoints) {\n var dist = linePoints[1][0] - linePoints[2][0];\n\n if (labelLayoutList[i].x < cx) {\n linePoints[2][0] = labelLayoutList[i].x + 3;\n } else {\n linePoints[2][0] = labelLayoutList[i].x - 3;\n }\n\n linePoints[1][1] = linePoints[2][1] = labelLayoutList[i].y;\n linePoints[1][0] = linePoints[2][0] + dist;\n }\n }\n}\n\nfunction isPositionCenter(layout) {\n // Not change x for center label\n return layout.position === 'center';\n}\n\nfunction _default(seriesModel, r, viewWidth, viewHeight) {\n var data = seriesModel.getData();\n var labelLayoutList = [];\n var cx;\n var cy;\n var hasLabelRotate = false;\n data.each(function (idx) {\n var layout = data.getItemLayout(idx);\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label'); // Use position in normal or emphasis\n\n var labelPosition = labelModel.get('position') || itemModel.get('emphasis.label.position');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineLen = labelLineModel.get('length');\n var labelLineLen2 = labelLineModel.get('length2');\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var dx = Math.cos(midAngle);\n var dy = Math.sin(midAngle);\n var textX;\n var textY;\n var linePoints;\n var textAlign;\n cx = layout.cx;\n cy = layout.cy;\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n if (labelPosition === 'center') {\n textX = layout.cx;\n textY = layout.cy;\n textAlign = 'center';\n } else {\n var x1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dx : layout.r * dx) + cx;\n var y1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dy : layout.r * dy) + cy;\n textX = x1 + dx * 3;\n textY = y1 + dy * 3;\n\n if (!isLabelInside) {\n // For roseType\n var x2 = x1 + dx * (labelLineLen + r - layout.r);\n var y2 = y1 + dy * (labelLineLen + r - layout.r);\n var x3 = x2 + (dx < 0 ? -1 : 1) * labelLineLen2;\n var y3 = y2;\n textX = x3 + (dx < 0 ? -5 : 5);\n textY = y3;\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n }\n\n textAlign = isLabelInside ? 'center' : dx > 0 ? 'left' : 'right';\n }\n\n var font = labelModel.getFont();\n var labelRotate = labelModel.get('rotate') ? dx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n var text = seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx);\n var textRect = textContain.getBoundingRect(text, font, textAlign, 'top');\n hasLabelRotate = !!labelRotate;\n layout.label = {\n x: textX,\n y: textY,\n position: labelPosition,\n height: textRect.height,\n len: labelLineLen,\n len2: labelLineLen2,\n linePoints: linePoints,\n textAlign: textAlign,\n verticalAlign: 'middle',\n rotation: labelRotate,\n inside: isLabelInside\n }; // Not layout the inside label\n\n if (!isLabelInside) {\n labelLayoutList.push(layout.label);\n }\n });\n\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight);\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\nvar labelLayout = __webpack_require__(1121);\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction _default(seriesType, ecModel, api, payload) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n\n var width = api.getWidth();\n var height = api.getHeight();\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], width);\n var cy = parsePercent(center[1], height);\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var validDataCount = 0;\n data.each(valueDim, function (value) {\n !isNaN(value) && validDataCount++;\n });\n var sum = data.getSum(valueDim); // Sum may be 0\n\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var clockwise = seriesModel.get('clockwise');\n var roseType = seriesModel.get('roseType');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // [0...max]\n\n var extent = data.getDataExtent(valueDim);\n extent[0] = 0; // In the case some sector angle is smaller than minAngle\n\n var restAngle = PI2;\n var valueSumLargerThanMinAngle = 0;\n var currentAngle = startAngle;\n var dir = clockwise ? 1 : -1;\n data.each(valueDim, function (value, idx) {\n var angle;\n\n if (isNaN(value)) {\n data.setItemLayout(idx, {\n angle: NaN,\n startAngle: NaN,\n endAngle: NaN,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? NaN : r\n });\n return;\n } // FIXME 兼容 2.0 但是 roseType 是 area 的时候才是这样?\n\n\n if (roseType !== 'area') {\n angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n } else {\n angle = PI2 / validDataCount;\n }\n\n if (angle < minAngle) {\n angle = minAngle;\n restAngle -= minAngle;\n } else {\n valueSumLargerThanMinAngle += value;\n }\n\n var endAngle = currentAngle + dir * angle;\n data.setItemLayout(idx, {\n angle: angle,\n startAngle: currentAngle,\n endAngle: endAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? linearMap(value, extent, [r0, r]) : r\n });\n currentAngle = endAngle;\n }); // Some sector is constrained by minAngle\n // Rest sectors needs recalculate angle\n\n if (restAngle < PI2 && validDataCount) {\n // Average the angle if rest angle is not enough after all angles is\n // Constrained by minAngle\n if (restAngle <= 1e-3) {\n var angle = PI2 / validDataCount;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout = data.getItemLayout(idx);\n layout.angle = angle;\n layout.startAngle = startAngle + dir * idx * angle;\n layout.endAngle = startAngle + dir * (idx + 1) * angle;\n }\n });\n } else {\n unitRadian = restAngle / valueSumLargerThanMinAngle;\n currentAngle = startAngle;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout = data.getItemLayout(idx);\n var angle = layout.angle === minAngle ? minAngle : value * unitRadian;\n layout.startAngle = currentAngle;\n layout.endAngle = currentAngle + dir * angle;\n currentAngle += dir * angle;\n }\n });\n }\n }\n\n labelLayout(seriesModel, r, width, height);\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1215);\n\n__webpack_require__(1124);\n\n__webpack_require__(1125);\n\nvar dataColor = __webpack_require__(184);\n\nvar visualSymbol = __webpack_require__(107);\n\nvar radarLayout = __webpack_require__(1127);\n\nvar dataFilter = __webpack_require__(149);\n\nvar backwardCompat = __webpack_require__(1126);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Must use radar component\necharts.registerVisual(dataColor('radar'));\necharts.registerVisual(visualSymbol('radar', 'circle'));\necharts.registerLayout(radarLayout);\necharts.registerProcessor(dataFilter('radar'));\necharts.registerPreprocessor(backwardCompat);\n\n/***/ }),\n/* 1124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = __webpack_require__(30);\n\nvar createListSimply = __webpack_require__(115);\n\nvar zrUtil = __webpack_require__(0);\n\nvar _format = __webpack_require__(19);\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar RadarSeries = SeriesModel.extend({\n type: 'series.radar',\n dependencies: ['radar'],\n // Overwrite\n init: function (option) {\n RadarSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n this.legendDataProvider = function () {\n return this.getRawData();\n };\n },\n getInitialData: function (option, ecModel) {\n return createListSimply(this, {\n generateCoord: 'indicator_',\n generateCoordCount: Infinity\n });\n },\n formatTooltip: function (dataIndex) {\n var data = this.getData();\n var coordSys = this.coordinateSystem;\n var indicatorAxes = coordSys.getIndicatorAxes();\n var name = this.getData().getName(dataIndex);\n return encodeHTML(name === '' ? this.name : name) + '
' + zrUtil.map(indicatorAxes, function (axis, idx) {\n var val = data.get(data.mapDimension(axis.dim), dataIndex);\n return encodeHTML(axis.name + ' : ' + val);\n }).join('
');\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'radar',\n legendHoverLink: true,\n radarIndex: 0,\n lineStyle: {\n width: 2,\n type: 'solid'\n },\n label: {\n position: 'top'\n },\n // areaStyle: {\n // },\n // itemStyle: {}\n symbol: 'emptyCircle',\n symbolSize: 4 // symbolRotate: null\n\n }\n});\nvar _default = RadarSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar graphic = __webpack_require__(5);\n\nvar zrUtil = __webpack_require__(0);\n\nvar symbolUtil = __webpack_require__(50);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalizeSymbolSize(symbolSize) {\n if (!zrUtil.isArray(symbolSize)) {\n symbolSize = [+symbolSize, +symbolSize];\n }\n\n return symbolSize;\n}\n\nvar _default = echarts.extendChartView({\n type: 'radar',\n render: function (seriesModel, ecModel, api) {\n var polar = seriesModel.coordinateSystem;\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n\n function createSymbol(data, idx) {\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n var color = data.getItemVisual(idx, 'color');\n\n if (symbolType === 'none') {\n return;\n }\n\n var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2, color);\n symbolPath.attr({\n style: {\n strokeNoScale: true\n },\n z2: 100,\n scale: [symbolSize[0] / 2, symbolSize[1] / 2]\n });\n return symbolPath;\n }\n\n function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n // Simply rerender all\n symbolGroup.removeAll();\n\n for (var i = 0; i < newPoints.length - 1; i++) {\n var symbolPath = createSymbol(data, idx);\n\n if (symbolPath) {\n symbolPath.__dimIdx = i;\n\n if (oldPoints[i]) {\n symbolPath.attr('position', oldPoints[i]);\n graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n position: newPoints[i]\n }, seriesModel, idx);\n } else {\n symbolPath.attr('position', newPoints[i]);\n }\n\n symbolGroup.add(symbolPath);\n }\n }\n }\n\n function getInitialPoints(points) {\n return zrUtil.map(points, function (pt) {\n return [polar.cx, polar.cy];\n });\n }\n\n data.diff(oldData).add(function (idx) {\n var points = data.getItemLayout(idx);\n\n if (!points) {\n return;\n }\n\n var polygon = new graphic.Polygon();\n var polyline = new graphic.Polyline();\n var target = {\n shape: {\n points: points\n }\n };\n polygon.shape.points = getInitialPoints(points);\n polyline.shape.points = getInitialPoints(points);\n graphic.initProps(polygon, target, seriesModel, idx);\n graphic.initProps(polyline, target, seriesModel, idx);\n var itemGroup = new graphic.Group();\n var symbolGroup = new graphic.Group();\n itemGroup.add(polyline);\n itemGroup.add(polygon);\n itemGroup.add(symbolGroup);\n updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n data.setItemGraphicEl(idx, itemGroup);\n }).update(function (newIdx, oldIdx) {\n var itemGroup = oldData.getItemGraphicEl(oldIdx);\n var polyline = itemGroup.childAt(0);\n var polygon = itemGroup.childAt(1);\n var symbolGroup = itemGroup.childAt(2);\n var target = {\n shape: {\n points: data.getItemLayout(newIdx)\n }\n };\n\n if (!target.shape.points) {\n return;\n }\n\n updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n graphic.updateProps(polyline, target, seriesModel);\n graphic.updateProps(polygon, target, seriesModel);\n data.setItemGraphicEl(newIdx, itemGroup);\n }).remove(function (idx) {\n group.remove(oldData.getItemGraphicEl(idx));\n }).execute();\n data.eachItemGraphicEl(function (itemGroup, idx) {\n var itemModel = data.getItemModel(idx);\n var polyline = itemGroup.childAt(0);\n var polygon = itemGroup.childAt(1);\n var symbolGroup = itemGroup.childAt(2);\n var color = data.getItemVisual(idx, 'color');\n group.add(itemGroup);\n polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n fill: 'none',\n stroke: color\n }));\n polyline.hoverStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle();\n var areaStyleModel = itemModel.getModel('areaStyle');\n var hoverAreaStyleModel = itemModel.getModel('emphasis.areaStyle');\n var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n var hoverPolygonIgnore = hoverAreaStyleModel.isEmpty() && hoverAreaStyleModel.parentModel.isEmpty();\n hoverPolygonIgnore = hoverPolygonIgnore && polygonIgnore;\n polygon.ignore = polygonIgnore;\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: color,\n opacity: 0.7\n }));\n polygon.hoverStyle = hoverAreaStyleModel.getAreaStyle();\n var itemStyle = itemModel.getModel('itemStyle').getItemStyle(['color']);\n var itemHoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n symbolGroup.eachChild(function (symbolPath) {\n symbolPath.setStyle(itemStyle);\n symbolPath.hoverStyle = zrUtil.clone(itemHoverStyle);\n graphic.setLabelStyle(symbolPath.style, symbolPath.hoverStyle, labelModel, labelHoverModel, {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n labelDimIndex: symbolPath.__dimIdx,\n defaultText: data.get(data.dimensions[symbolPath.__dimIdx], idx),\n autoColor: color,\n isRectText: true\n });\n });\n\n function onEmphasis() {\n polygon.attr('ignore', hoverPolygonIgnore);\n }\n\n function onNormal() {\n polygon.attr('ignore', polygonIgnore);\n }\n\n itemGroup.off('mouseover').off('mouseout').off('normal').off('emphasis');\n itemGroup.on('emphasis', onEmphasis).on('mouseover', onEmphasis).on('normal', onNormal).on('mouseout', onNormal);\n graphic.setHoverStyle(itemGroup);\n });\n this._data = data;\n },\n remove: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: function () {}\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Backward compat for radar chart in 2\nfunction _default(option) {\n var polarOptArr = option.polar;\n\n if (polarOptArr) {\n if (!zrUtil.isArray(polarOptArr)) {\n polarOptArr = [polarOptArr];\n }\n\n var polarNotRadar = [];\n zrUtil.each(polarOptArr, function (polarOpt, idx) {\n if (polarOpt.indicator) {\n if (polarOpt.type && !polarOpt.shape) {\n polarOpt.shape = polarOpt.type;\n }\n\n option.radar = option.radar || [];\n\n if (!zrUtil.isArray(option.radar)) {\n option.radar = [option.radar];\n }\n\n option.radar.push(polarOpt);\n } else {\n polarNotRadar.push(polarOpt);\n }\n });\n option.polar = polarNotRadar;\n }\n\n zrUtil.each(option.series, function (seriesOpt) {\n if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n seriesOpt.radarIndex = seriesOpt.polarIndex;\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1127 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n ecModel.eachSeriesByType('radar', function (seriesModel) {\n var data = seriesModel.getData();\n var points = [];\n var coordSys = seriesModel.coordinateSystem;\n\n if (!coordSys) {\n return;\n }\n\n function pointsConverter(val, idx) {\n points[idx] = points[idx] || [];\n points[idx][i] = coordSys.dataToPoint(val, i);\n }\n\n var axes = coordSys.getIndicatorAxes();\n\n for (var i = 0; i < axes.length; i++) {\n data.each(data.mapDimension(axes[i].dim), pointsConverter);\n }\n\n data.each(function (idx) {\n // Close polygon\n points[idx][0] && points[idx].push(points[idx][0].slice());\n data.setItemLayout(idx, points[idx]);\n });\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1129);\n\n__webpack_require__(1130);\n\n__webpack_require__(1131);\n\nvar sankeyLayout = __webpack_require__(1132);\n\nvar sankeyVisual = __webpack_require__(1133);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(sankeyLayout);\necharts.registerVisual(sankeyVisual);\n\n/***/ }),\n/* 1129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = __webpack_require__(30);\n\nvar createGraphFromNodeEdge = __webpack_require__(360);\n\nvar _format = __webpack_require__(19);\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Get initial data and define sankey view's series model\n * @author Deqing Li(annong035@gmail.com)\n */\nvar SankeySeries = SeriesModel.extend({\n type: 'series.sankey',\n layoutInfo: null,\n\n /**\n * Init a graph data structure from data in option series\n *\n * @param {Object} option the object used to config echarts view\n * @return {module:echarts/data/List} storage initial data\n */\n getInitialData: function (option) {\n var links = option.edges || option.links;\n var nodes = option.data || option.nodes;\n\n if (nodes && links) {\n var graph = createGraphFromNodeEdge(nodes, links, this, true);\n return graph.data;\n }\n },\n setNodePosition: function (dataIndex, localPosition) {\n var dataItem = this.option.data[dataIndex];\n dataItem.localX = localPosition[0];\n dataItem.localY = localPosition[1];\n },\n\n /**\n * Return the graphic data structure\n *\n * @return {module:echarts/data/Graph} graphic data structure\n */\n getGraph: function () {\n return this.getData().graph;\n },\n\n /**\n * Get edge data of graphic data structure\n *\n * @return {module:echarts/data/List} data structure of list\n */\n getEdgeData: function () {\n return this.getGraph().edgeData;\n },\n\n /**\n * @override\n */\n formatTooltip: function (dataIndex, multipleSeries, dataType) {\n // dataType === 'node' or empty do not show tooltip by default\n if (dataType === 'edge') {\n var params = this.getDataParams(dataIndex, dataType);\n var rawDataOpt = params.data;\n var html = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n\n if (params.value) {\n html += ' : ' + params.value;\n }\n\n return encodeHTML(html);\n }\n\n return SankeySeries.superCall(this, 'formatTooltip', dataIndex, multipleSeries);\n },\n optionUpdated: function () {\n var option = this.option;\n\n if (option.focusNodeAdjacency === true) {\n option.focusNodeAdjacency = 'allEdges';\n }\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n layout: null,\n // The position of the whole view\n left: '5%',\n top: '5%',\n right: '20%',\n bottom: '5%',\n // Value can be 'vertical'\n orient: 'horizontal',\n // The dx of the node\n nodeWidth: 20,\n // The vertical distance between two nodes\n nodeGap: 8,\n // Control if the node can move or not\n draggable: true,\n // Value can be 'inEdges', 'outEdges', 'allEdges', true (the same as 'allEdges').\n focusNodeAdjacency: false,\n // The number of iterations to change the position of the node\n layoutIterations: 32,\n label: {\n show: true,\n position: 'right',\n color: '#000',\n fontSize: 12\n },\n itemStyle: {\n borderWidth: 1,\n borderColor: '#333'\n },\n lineStyle: {\n color: '#314656',\n opacity: 0.2,\n curveness: 0.5\n },\n emphasis: {\n label: {\n show: true\n },\n lineStyle: {\n opacity: 0.6\n }\n },\n animationEasing: 'linear',\n animationDuration: 1000\n }\n});\nvar _default = SankeySeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = __webpack_require__(5);\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file The file used to draw sankey view\n * @author Deqing Li(annong035@gmail.com)\n */\nvar nodeOpacityPath = ['itemStyle', 'opacity'];\nvar lineOpacityPath = ['lineStyle', 'opacity'];\n\nfunction getItemOpacity(item, opacityPath) {\n return item.getVisual('opacity') || item.getModel().get(opacityPath);\n}\n\nfunction fadeOutItem(item, opacityPath, opacityRatio) {\n var el = item.getGraphicEl();\n var opacity = getItemOpacity(item, opacityPath);\n\n if (opacityRatio != null) {\n opacity == null && (opacity = 1);\n opacity *= opacityRatio;\n }\n\n el.downplay && el.downplay();\n el.traverse(function (child) {\n if (child.type !== 'group') {\n child.setStyle('opacity', opacity);\n }\n });\n}\n\nfunction fadeInItem(item, opacityPath) {\n var opacity = getItemOpacity(item, opacityPath);\n var el = item.getGraphicEl();\n el.highlight && el.highlight();\n el.traverse(function (child) {\n if (child.type !== 'group') {\n child.setStyle('opacity', opacity);\n }\n });\n}\n\nvar SankeyShape = graphic.extendShape({\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n cpx1: 0,\n cpy1: 0,\n cpx2: 0,\n cpy2: 0,\n extent: 0,\n orient: ''\n },\n buildPath: function (ctx, shape) {\n var extent = shape.extent;\n var orient = shape.orient;\n\n if (orient === 'vertical') {\n ctx.moveTo(shape.x1, shape.y1);\n ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n ctx.lineTo(shape.x2 + extent, shape.y2);\n ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\n } else {\n ctx.moveTo(shape.x1, shape.y1);\n ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n ctx.lineTo(shape.x2, shape.y2 + extent);\n ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\n }\n\n ctx.closePath();\n }\n});\n\nvar _default = echarts.extendChartView({\n type: 'sankey',\n\n /**\n * @private\n * @type {module:echarts/chart/sankey/SankeySeries}\n */\n _model: null,\n\n /**\n * @private\n * @type {boolean}\n */\n _focusAdjacencyDisabled: false,\n render: function (seriesModel, ecModel, api) {\n var sankeyView = this;\n var graph = seriesModel.getGraph();\n var group = this.group;\n var layoutInfo = seriesModel.layoutInfo; // view width\n\n var width = layoutInfo.width; // view height\n\n var height = layoutInfo.height;\n var nodeData = seriesModel.getData();\n var edgeData = seriesModel.getData('edge');\n var orient = seriesModel.get('orient');\n this._model = seriesModel;\n group.removeAll();\n group.attr('position', [layoutInfo.x, layoutInfo.y]); // generate a bezire Curve for each edge\n\n graph.eachEdge(function (edge) {\n var curve = new SankeyShape();\n curve.dataIndex = edge.dataIndex;\n curve.seriesIndex = seriesModel.seriesIndex;\n curve.dataType = 'edge';\n var lineStyleModel = edge.getModel('lineStyle');\n var curvature = lineStyleModel.get('curveness');\n var n1Layout = edge.node1.getLayout();\n var node1Model = edge.node1.getModel();\n var dragX1 = node1Model.get('localX');\n var dragY1 = node1Model.get('localY');\n var n2Layout = edge.node2.getLayout();\n var node2Model = edge.node2.getModel();\n var dragX2 = node2Model.get('localX');\n var dragY2 = node2Model.get('localY');\n var edgeLayout = edge.getLayout();\n var x1;\n var y1;\n var x2;\n var y2;\n var cpx1;\n var cpy1;\n var cpx2;\n var cpy2;\n curve.shape.extent = Math.max(1, edgeLayout.dy);\n curve.shape.orient = orient;\n\n if (orient === 'vertical') {\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\n x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\n y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\n cpx1 = x1;\n cpy1 = y1 * (1 - curvature) + y2 * curvature;\n cpx2 = x2;\n cpy2 = y1 * curvature + y2 * (1 - curvature);\n } else {\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\n x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\n cpx1 = x1 * (1 - curvature) + x2 * curvature;\n cpy1 = y1;\n cpx2 = x1 * curvature + x2 * (1 - curvature);\n cpy2 = y2;\n }\n\n curve.setShape({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n cpx1: cpx1,\n cpy1: cpy1,\n cpx2: cpx2,\n cpy2: cpy2\n });\n curve.setStyle(lineStyleModel.getItemStyle()); // Special color, use source node color or target node color\n\n switch (curve.style.fill) {\n case 'source':\n curve.style.fill = edge.node1.getVisual('color');\n break;\n\n case 'target':\n curve.style.fill = edge.node2.getVisual('color');\n break;\n }\n\n graphic.setHoverStyle(curve, edge.getModel('emphasis.lineStyle').getItemStyle());\n group.add(curve);\n edgeData.setItemGraphicEl(edge.dataIndex, curve);\n }); // Generate a rect for each node\n\n graph.eachNode(function (node) {\n var layout = node.getLayout();\n var itemModel = node.getModel();\n var dragX = itemModel.get('localX');\n var dragY = itemModel.get('localY');\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n var rect = new graphic.Rect({\n shape: {\n x: dragX != null ? dragX * width : layout.x,\n y: dragY != null ? dragY * height : layout.y,\n width: layout.dx,\n height: layout.dy\n },\n style: itemModel.getModel('itemStyle').getItemStyle()\n });\n var hoverStyle = node.getModel('emphasis.itemStyle').getItemStyle();\n graphic.setLabelStyle(rect.style, hoverStyle, labelModel, labelHoverModel, {\n labelFetcher: seriesModel,\n labelDataIndex: node.dataIndex,\n defaultText: node.id,\n isRectText: true\n });\n rect.setStyle('fill', node.getVisual('color'));\n graphic.setHoverStyle(rect, hoverStyle);\n group.add(rect);\n nodeData.setItemGraphicEl(node.dataIndex, rect);\n rect.dataType = 'node';\n });\n nodeData.eachItemGraphicEl(function (el, dataIndex) {\n var itemModel = nodeData.getItemModel(dataIndex);\n\n if (itemModel.get('draggable')) {\n el.drift = function (dx, dy) {\n sankeyView._focusAdjacencyDisabled = true;\n this.shape.x += dx;\n this.shape.y += dy;\n this.dirty();\n api.dispatchAction({\n type: 'dragNode',\n seriesId: seriesModel.id,\n dataIndex: nodeData.getRawIndex(dataIndex),\n localX: this.shape.x / width,\n localY: this.shape.y / height\n });\n };\n\n el.ondragend = function () {\n sankeyView._focusAdjacencyDisabled = false;\n };\n\n el.draggable = true;\n el.cursor = 'move';\n }\n\n if (itemModel.get('focusNodeAdjacency')) {\n el.off('mouseover').on('mouseover', function () {\n if (!sankeyView._focusAdjacencyDisabled) {\n api.dispatchAction({\n type: 'focusNodeAdjacency',\n seriesId: seriesModel.id,\n dataIndex: el.dataIndex\n });\n }\n });\n el.off('mouseout').on('mouseout', function () {\n if (!sankeyView._focusAdjacencyDisabled) {\n api.dispatchAction({\n type: 'unfocusNodeAdjacency',\n seriesId: seriesModel.id\n });\n }\n });\n }\n });\n edgeData.eachItemGraphicEl(function (el, dataIndex) {\n var edgeModel = edgeData.getItemModel(dataIndex);\n\n if (edgeModel.get('focusNodeAdjacency')) {\n el.off('mouseover').on('mouseover', function () {\n if (!sankeyView._focusAdjacencyDisabled) {\n api.dispatchAction({\n type: 'focusNodeAdjacency',\n seriesId: seriesModel.id,\n edgeDataIndex: el.dataIndex\n });\n }\n });\n el.off('mouseout').on('mouseout', function () {\n if (!sankeyView._focusAdjacencyDisabled) {\n api.dispatchAction({\n type: 'unfocusNodeAdjacency',\n seriesId: seriesModel.id\n });\n }\n });\n }\n });\n\n if (!this._data && seriesModel.get('animation')) {\n group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n group.removeClipPath();\n }));\n }\n\n this._data = seriesModel.getData();\n },\n dispose: function () {},\n focusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n var data = this._model.getData();\n\n var graph = data.graph;\n var dataIndex = payload.dataIndex;\n var itemModel = data.getItemModel(dataIndex);\n var edgeDataIndex = payload.edgeDataIndex;\n\n if (dataIndex == null && edgeDataIndex == null) {\n return;\n }\n\n var node = graph.getNodeByIndex(dataIndex);\n var edge = graph.getEdgeByIndex(edgeDataIndex);\n graph.eachNode(function (node) {\n fadeOutItem(node, nodeOpacityPath, 0.1);\n });\n graph.eachEdge(function (edge) {\n fadeOutItem(edge, lineOpacityPath, 0.1);\n });\n\n if (node) {\n fadeInItem(node, nodeOpacityPath);\n var focusNodeAdj = itemModel.get('focusNodeAdjacency');\n\n if (focusNodeAdj === 'outEdges') {\n zrUtil.each(node.outEdges, function (edge) {\n if (edge.dataIndex < 0) {\n return;\n }\n\n fadeInItem(edge, lineOpacityPath);\n fadeInItem(edge.node2, nodeOpacityPath);\n });\n } else if (focusNodeAdj === 'inEdges') {\n zrUtil.each(node.inEdges, function (edge) {\n if (edge.dataIndex < 0) {\n return;\n }\n\n fadeInItem(edge, lineOpacityPath);\n fadeInItem(edge.node1, nodeOpacityPath);\n });\n } else if (focusNodeAdj === 'allEdges') {\n zrUtil.each(node.edges, function (edge) {\n if (edge.dataIndex < 0) {\n return;\n }\n\n fadeInItem(edge, lineOpacityPath);\n fadeInItem(edge.node1, nodeOpacityPath);\n fadeInItem(edge.node2, nodeOpacityPath);\n });\n }\n }\n\n if (edge) {\n fadeInItem(edge, lineOpacityPath);\n fadeInItem(edge.node1, nodeOpacityPath);\n fadeInItem(edge.node2, nodeOpacityPath);\n }\n },\n unfocusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n var graph = this._model.getGraph();\n\n graph.eachNode(function (node) {\n fadeOutItem(node, nodeOpacityPath);\n });\n graph.eachEdge(function (edge) {\n fadeOutItem(edge, lineOpacityPath);\n });\n }\n}); // Add animation to the view\n\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x - 10,\n y: rect.y - 10,\n width: 0,\n height: rect.height + 20\n }\n });\n graphic.initProps(rectEl, {\n shape: {\n width: rect.width + 20,\n height: rect.height + 20\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(361);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file The interactive action of sankey view\n * @author Deqing Li(annong035@gmail.com)\n */\necharts.registerAction({\n type: 'dragNode',\n event: 'dragNode',\n // here can only use 'update' now, other value is not support in echarts.\n update: 'update'\n}, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sankey',\n query: payload\n }, function (seriesModel) {\n seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n });\n});\n\n/***/ }),\n/* 1132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar layout = __webpack_require__(16);\n\nvar zrUtil = __webpack_require__(0);\n\nvar _model = __webpack_require__(9);\n\nvar groupData = _model.groupData;\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file The layout algorithm of sankey view\n * @author Deqing Li(annong035@gmail.com)\n */\nfunction _default(ecModel, api, payload) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var nodeWidth = seriesModel.get('nodeWidth');\n var nodeGap = seriesModel.get('nodeGap');\n var layoutInfo = getViewRect(seriesModel, api);\n seriesModel.layoutInfo = layoutInfo;\n var width = layoutInfo.width;\n var height = layoutInfo.height;\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n var edges = graph.edges;\n computeNodeValues(nodes);\n var filteredNodes = zrUtil.filter(nodes, function (node) {\n return node.getLayout().value === 0;\n });\n var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n var orient = seriesModel.get('orient');\n layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient);\n });\n}\n/**\n * Get the layout position of the whole view\n *\n * @param {module:echarts/model/Series} seriesModel the model object of sankey series\n * @param {module:echarts/ExtensionAPI} api provide the API list that the developer can call\n * @return {module:zrender/core/BoundingRect} size of rect to draw the sankey view\n */\n\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient) {\n computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient);\n computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\n computeEdgeDepths(nodes, orient);\n}\n/**\n * Compute the value of each node by summing the associated edge's value\n *\n * @param {module:echarts/data/Graph~Node} nodes node of sankey view\n */\n\n\nfunction computeNodeValues(nodes) {\n zrUtil.each(nodes, function (node) {\n var value1 = sum(node.outEdges, getEdgeValue);\n var value2 = sum(node.inEdges, getEdgeValue);\n var value = Math.max(value1, value2);\n node.setLayout({\n value: value\n }, true);\n });\n}\n/**\n * Compute the x-position for each node.\n *\n * Here we use Kahn algorithm to detect cycle when we traverse\n * the node to computer the initial x position.\n *\n * @param {module:echarts/data/Graph~Node} nodes node of sankey view\n * @param {number} nodeWidth the dx of the node\n * @param {number} width the whole width of the area to draw the view\n */\n\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient) {\n // Used to mark whether the edge is deleted. if it is deleted,\n // the value is 0, otherwise it is 1.\n var remainEdges = []; // Storage each node's indegree.\n\n var indegreeArr = []; //Used to storage the node with indegree is equal to 0.\n\n var zeroIndegrees = [];\n var nextNode = [];\n var x = 0;\n var kx = 0;\n\n for (var i = 0; i < edges.length; i++) {\n remainEdges[i] = 1;\n }\n\n for (i = 0; i < nodes.length; i++) {\n indegreeArr[i] = nodes[i].inEdges.length;\n\n if (indegreeArr[i] === 0) {\n zeroIndegrees.push(nodes[i]);\n }\n }\n\n while (zeroIndegrees.length) {\n for (var idx = 0; idx < zeroIndegrees.length; idx++) {\n var node = zeroIndegrees[idx];\n\n if (orient === 'vertical') {\n node.setLayout({\n y: x\n }, true);\n node.setLayout({\n dy: nodeWidth\n }, true);\n } else {\n node.setLayout({\n x: x\n }, true);\n node.setLayout({\n dx: nodeWidth\n }, true);\n }\n\n for (var oidx = 0; oidx < node.outEdges.length; oidx++) {\n var edge = node.outEdges[oidx];\n var indexEdge = edges.indexOf(edge);\n remainEdges[indexEdge] = 0;\n var targetNode = edge.node2;\n var nodeIndex = nodes.indexOf(targetNode);\n\n if (--indegreeArr[nodeIndex] === 0) {\n nextNode.push(targetNode);\n }\n }\n }\n\n ++x;\n zeroIndegrees = nextNode;\n nextNode = [];\n }\n\n for (i = 0; i < remainEdges.length; i++) {}\n\n moveSinksRight(nodes, x, orient);\n\n if (orient === 'vertical') {\n kx = (height - nodeWidth) / (x - 1);\n } else {\n kx = (width - nodeWidth) / (x - 1);\n }\n\n scaleNodeBreadths(nodes, kx, orient);\n}\n/**\n * All the node without outEgdes are assigned maximum x-position and\n * be aligned in the last column.\n *\n * @param {module:echarts/data/Graph~Node} nodes node of sankey view\n * @param {number} x value (x-1) use to assign to node without outEdges\n * as x-position\n */\n\n\nfunction moveSinksRight(nodes, x, orient) {\n zrUtil.each(nodes, function (node) {\n if (!node.outEdges.length) {\n if (orient === 'vertical') {\n node.setLayout({\n y: x - 1\n }, true);\n } else {\n node.setLayout({\n x: x - 1\n }, true);\n }\n }\n });\n}\n/**\n * Scale node x-position to the width\n *\n * @param {module:echarts/data/Graph~Node} nodes node of sankey view\n * @param {number} kx multiple used to scale nodes\n */\n\n\nfunction scaleNodeBreadths(nodes, kx, orient) {\n zrUtil.each(nodes, function (node) {\n if (orient === 'vertical') {\n var nodeY = node.getLayout().y * kx;\n node.setLayout({\n y: nodeY\n }, true);\n } else {\n var nodeX = node.getLayout().x * kx;\n node.setLayout({\n x: nodeX\n }, true);\n }\n });\n}\n/**\n * Using Gauss-Seidel iterations method to compute the node depth(y-position)\n *\n * @param {module:echarts/data/Graph~Node} nodes node of sankey view\n * @param {module:echarts/data/Graph~Edge} edges edge of sankey view\n * @param {number} height the whole height of the area to draw the view\n * @param {number} nodeGap the vertical distance between two nodes\n * in the same column.\n * @param {number} iterations the number of iterations for the algorithm\n */\n\n\nfunction computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\n var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\n initializeNodeDepth(nodes, nodesByBreadth, edges, height, width, nodeGap, orient);\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n\n for (var alpha = 1; iterations > 0; iterations--) {\n // 0.99 is a experience parameter, ensure that each iterations of\n // changes as small as possible.\n alpha *= 0.99;\n relaxRightToLeft(nodesByBreadth, alpha, orient);\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n relaxLeftToRight(nodesByBreadth, alpha, orient);\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n }\n}\n\nfunction prepareNodesByBreadth(nodes, orient) {\n var nodesByBreadth = [];\n var keyAttr = orient === 'vertical' ? 'y' : 'x';\n var groupResult = groupData(nodes, function (node) {\n return node.getLayout()[keyAttr];\n });\n groupResult.keys.sort(function (a, b) {\n return a - b;\n });\n zrUtil.each(groupResult.keys, function (key) {\n nodesByBreadth.push(groupResult.buckets.get(key));\n });\n return nodesByBreadth;\n}\n/**\n * Compute the original y-position for each node\n *\n * @param {module:echarts/data/Graph~Node} nodes node of sankey view\n * @param {Array.>} nodesByBreadth\n * group by the array of all sankey nodes based on the nodes x-position.\n * @param {module:echarts/data/Graph~Edge} edges edge of sankey view\n * @param {number} height the whole height of the area to draw the view\n * @param {number} nodeGap the vertical distance between two nodes\n */\n\n\nfunction initializeNodeDepth(nodes, nodesByBreadth, edges, height, width, nodeGap, orient) {\n var kyArray = [];\n zrUtil.each(nodesByBreadth, function (nodes) {\n var n = nodes.length;\n var sum = 0;\n var ky = 0;\n zrUtil.each(nodes, function (node) {\n sum += node.getLayout().value;\n });\n\n if (orient === 'vertical') {\n ky = (width - (n - 1) * nodeGap) / sum;\n } else {\n ky = (height - (n - 1) * nodeGap) / sum;\n }\n\n kyArray.push(ky);\n });\n kyArray.sort(function (a, b) {\n return a - b;\n });\n var ky0 = kyArray[0];\n zrUtil.each(nodesByBreadth, function (nodes) {\n zrUtil.each(nodes, function (node, i) {\n var nodeDy = node.getLayout().value * ky0;\n\n if (orient === 'vertical') {\n node.setLayout({\n x: i\n }, true);\n node.setLayout({\n dx: nodeDy\n }, true);\n } else {\n node.setLayout({\n y: i\n }, true);\n node.setLayout({\n dy: nodeDy\n }, true);\n }\n });\n });\n zrUtil.each(edges, function (edge) {\n var edgeDy = +edge.getValue() * ky0;\n edge.setLayout({\n dy: edgeDy\n }, true);\n });\n}\n/**\n * Resolve the collision of initialized depth (y-position)\n *\n * @param {Array.>} nodesByBreadth\n * group by the array of all sankey nodes based on the nodes x-position.\n * @param {number} nodeGap the vertical distance between two nodes\n * @param {number} height the whole height of the area to draw the view\n */\n\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\n zrUtil.each(nodesByBreadth, function (nodes) {\n var node;\n var dy;\n var y0 = 0;\n var n = nodes.length;\n var i;\n\n if (orient === 'vertical') {\n var nodeX;\n nodes.sort(function (a, b) {\n return a.getLayout().x - b.getLayout().x;\n });\n\n for (i = 0; i < n; i++) {\n node = nodes[i];\n dy = y0 - node.getLayout().x;\n\n if (dy > 0) {\n nodeX = node.getLayout().x + dy;\n node.setLayout({\n x: nodeX\n }, true);\n }\n\n y0 = node.getLayout().x + node.getLayout().dx + nodeGap;\n } // If the bottommost node goes outside the bounds, push it back up\n\n\n dy = y0 - nodeGap - width;\n\n if (dy > 0) {\n nodeX = node.getLayout().x - dy;\n node.setLayout({\n x: nodeX\n }, true);\n y0 = nodeX;\n\n for (i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.getLayout().x + node.getLayout().dx + nodeGap - y0;\n\n if (dy > 0) {\n nodeX = node.getLayout().x - dy;\n node.setLayout({\n x: nodeX\n }, true);\n }\n\n y0 = node.getLayout().x;\n }\n }\n } else {\n var nodeY;\n nodes.sort(function (a, b) {\n return a.getLayout().y - b.getLayout().y;\n });\n\n for (i = 0; i < n; i++) {\n node = nodes[i];\n dy = y0 - node.getLayout().y;\n\n if (dy > 0) {\n nodeY = node.getLayout().y + dy;\n node.setLayout({\n y: nodeY\n }, true);\n }\n\n y0 = node.getLayout().y + node.getLayout().dy + nodeGap;\n } // If the bottommost node goes outside the bounds, push it back up\n\n\n dy = y0 - nodeGap - height;\n\n if (dy > 0) {\n nodeY = node.getLayout().y - dy;\n node.setLayout({\n y: nodeY\n }, true);\n y0 = nodeY;\n\n for (i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.getLayout().y + node.getLayout().dy + nodeGap - y0;\n\n if (dy > 0) {\n nodeY = node.getLayout().y - dy;\n node.setLayout({\n y: nodeY\n }, true);\n }\n\n y0 = node.getLayout().y;\n }\n }\n }\n });\n}\n/**\n * Change the y-position of the nodes, except most the right side nodes\n *\n * @param {Array.>} nodesByBreadth\n * group by the array of all sankey nodes based on the node x-position.\n * @param {number} alpha parameter used to adjust the nodes y-position\n */\n\n\nfunction relaxRightToLeft(nodesByBreadth, alpha, orient) {\n zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n zrUtil.each(nodes, function (node) {\n if (node.outEdges.length) {\n var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue, orient);\n\n if (orient === 'vertical') {\n var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n node.setLayout({\n x: nodeX\n }, true);\n } else {\n var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n node.setLayout({\n y: nodeY\n }, true);\n }\n }\n });\n });\n}\n\nfunction weightedTarget(edge, orient) {\n return center(edge.node2, orient) * edge.getValue();\n}\n\nfunction weightedSource(edge, orient) {\n return center(edge.node1, orient) * edge.getValue();\n}\n\nfunction center(node, orient) {\n if (orient === 'vertical') {\n return node.getLayout().x + node.getLayout().dx / 2;\n }\n\n return node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction getEdgeValue(edge) {\n return edge.getValue();\n}\n\nfunction sum(array, f, orient) {\n var sum = 0;\n var len = array.length;\n var i = -1;\n\n while (++i < len) {\n var value = +f.call(array, array[i], orient);\n\n if (!isNaN(value)) {\n sum += value;\n }\n }\n\n return sum;\n}\n/**\n * Change the y-position of the nodes, except most the left side nodes\n *\n * @param {Array.>} nodesByBreadth\n * group by the array of all sankey nodes based on the node x-position.\n * @param {number} alpha parameter used to adjust the nodes y-position\n */\n\n\nfunction relaxLeftToRight(nodesByBreadth, alpha, orient) {\n zrUtil.each(nodesByBreadth, function (nodes) {\n zrUtil.each(nodes, function (node) {\n if (node.inEdges.length) {\n var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue, orient);\n\n if (orient === 'vertical') {\n var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n node.setLayout({\n x: nodeX\n }, true);\n } else {\n var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n node.setLayout({\n y: nodeY\n }, true);\n }\n }\n });\n });\n}\n/**\n * Compute the depth(y-position) of each edge\n *\n * @param {module:echarts/data/Graph~Node} nodes node of sankey view\n */\n\n\nfunction computeEdgeDepths(nodes, orient) {\n zrUtil.each(nodes, function (node) {\n if (orient === 'vertical') {\n node.outEdges.sort(function (a, b) {\n return a.node2.getLayout().x - b.node2.getLayout().x;\n });\n node.inEdges.sort(function (a, b) {\n return a.node1.getLayout().x - b.node1.getLayout().x;\n });\n } else {\n node.outEdges.sort(function (a, b) {\n return a.node2.getLayout().y - b.node2.getLayout().y;\n });\n node.inEdges.sort(function (a, b) {\n return a.node1.getLayout().y - b.node1.getLayout().y;\n });\n }\n });\n zrUtil.each(nodes, function (node) {\n var sy = 0;\n var ty = 0;\n zrUtil.each(node.outEdges, function (edge) {\n edge.setLayout({\n sy: sy\n }, true);\n sy += edge.getLayout().dy;\n });\n zrUtil.each(node.inEdges, function (edge) {\n edge.setLayout({\n ty: ty\n }, true);\n ty += edge.getLayout().dy;\n });\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar VisualMapping = __webpack_require__(106);\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual encoding for sankey view\n * @author Deqing Li(annong035@gmail.com)\n */\nfunction _default(ecModel, payload) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n\n if (nodes.length) {\n var minValue = Infinity;\n var maxValue = -Infinity;\n zrUtil.each(nodes, function (node) {\n var nodeValue = node.getLayout().value;\n\n if (nodeValue < minValue) {\n minValue = nodeValue;\n }\n\n if (nodeValue > maxValue) {\n maxValue = nodeValue;\n }\n });\n zrUtil.each(nodes, function (node) {\n var mapping = new VisualMapping({\n type: 'color',\n mappingMethod: 'linear',\n dataExtent: [minValue, maxValue],\n visual: seriesModel.get('color')\n });\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n node.setVisual('color', mapValueToColor); // If set itemStyle.normal.color\n\n var itemModel = node.getModel();\n var customColor = itemModel.get('itemStyle.color');\n\n if (customColor != null) {\n node.setVisual('color', customColor);\n }\n });\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1135);\n\n__webpack_require__(1136);\n\nvar visualSymbol = __webpack_require__(107);\n\nvar layoutPoints = __webpack_require__(148);\n\n__webpack_require__(142);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import * as zrUtil from 'zrender/src/core/util';\n// In case developer forget to include grid component\necharts.registerVisual(visualSymbol('scatter', 'circle'));\necharts.registerLayout(layoutPoints('scatter')); // echarts.registerProcessor(function (ecModel, api) {\n// ecModel.eachSeriesByType('scatter', function (seriesModel) {\n// var data = seriesModel.getData();\n// var coordSys = seriesModel.coordinateSystem;\n// if (coordSys.type !== 'geo') {\n// return;\n// }\n// var startPt = coordSys.pointToData([0, 0]);\n// var endPt = coordSys.pointToData([api.getWidth(), api.getHeight()]);\n// var dims = zrUtil.map(coordSys.dimensions, function (dim) {\n// return data.mapDimension(dim);\n// });\n// var range = {};\n// range[dims[0]] = [Math.min(startPt[0], endPt[0]), Math.max(startPt[0], endPt[0])];\n// range[dims[1]] = [Math.min(startPt[1], endPt[1]), Math.max(startPt[1], endPt[1])];\n// data.selectRange(range);\n// });\n// });\n\n/***/ }),\n/* 1135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar createListFromArray = __webpack_require__(70);\n\nvar SeriesModel = __webpack_require__(30);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.scatter',\n dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this);\n },\n brushSelector: 'point',\n getProgressive: function () {\n var progressive = this.option.progressive;\n\n if (progressive == null) {\n // PENDING\n return this.option.large ? 5e3 : this.get('progressive');\n }\n\n return progressive;\n },\n getProgressiveThreshold: function () {\n var progressiveThreshold = this.option.progressiveThreshold;\n\n if (progressiveThreshold == null) {\n // PENDING\n return this.option.large ? 1e4 : this.get('progressiveThreshold');\n }\n\n return progressiveThreshold;\n },\n defaultOption: {\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n hoverAnimation: true,\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Polar coordinate system\n // polarIndex: 0,\n // Geo coordinate system\n // geoIndex: 0,\n // symbol: null, // 图形类型\n symbolSize: 10,\n // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2\n // symbolRotate: null, // 图形旋转控制\n large: false,\n // Available when large is true\n largeThreshold: 2000,\n // cursor: null,\n // label: {\n // show: false\n // distance: 5,\n // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为\n // 'inside'|'left'|'right'|'top'|'bottom'\n // 默认使用全局文本样式,详见TEXTSTYLE\n // },\n itemStyle: {\n opacity: 0.8 // color: 各异\n // progressive: null\n\n }\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar SymbolDraw = __webpack_require__(138);\n\nvar LargeSymbolDraw = __webpack_require__(1098);\n\nvar pointsLayout = __webpack_require__(148);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.extendChartView({\n type: 'scatter',\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n symbolDraw.updateData(data);\n this._finished = true;\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n symbolDraw.incrementalPrepareUpdate(data);\n this._finished = false;\n },\n incrementalRender: function (taskParams, seriesModel, ecModel) {\n this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n this._finished = taskParams.end === seriesModel.getData().count();\n },\n updateTransform: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData(); // Must mark group dirty and make sure the incremental layer will be cleared\n // PENDING\n\n this.group.dirty();\n\n if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n return {\n update: true\n };\n } else {\n var res = pointsLayout().reset(seriesModel);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count()\n }, data);\n }\n\n this._symbolDraw.updateLayout(data);\n }\n },\n _updateSymbolDraw: function (data, seriesModel) {\n var symbolDraw = this._symbolDraw;\n var pipelineContext = seriesModel.pipelineContext;\n var isLargeDraw = pipelineContext.large;\n\n if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n symbolDraw && symbolDraw.remove();\n symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n this._isLargeDraw = isLargeDraw;\n this.group.removeAll();\n }\n\n this.group.add(symbolDraw.group);\n return symbolDraw;\n },\n remove: function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove(true);\n this._symbolDraw = null;\n },\n dispose: function () {}\n});\n\n/***/ }),\n/* 1137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\n__webpack_require__(1139);\n\n__webpack_require__(1140);\n\n__webpack_require__(1141);\n\nvar dataColor = __webpack_require__(184);\n\nvar sunburstLayout = __webpack_require__(1142);\n\nvar dataFilter = __webpack_require__(149);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(zrUtil.curry(dataColor, 'sunburst'));\necharts.registerLayout(zrUtil.curry(sunburstLayout, 'sunburst'));\necharts.registerProcessor(zrUtil.curry(dataFilter, 'sunburst'));\n\n/***/ }),\n/* 1138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar NodeHighlightPolicy = {\n NONE: 'none',\n // not downplay others\n DESCENDANT: 'descendant',\n ANCESTOR: 'ancestor',\n SELF: 'self'\n};\nvar DEFAULT_SECTOR_Z = 2;\nvar DEFAULT_TEXT_Z = 4;\n/**\n * Sunburstce of Sunburst including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\n\nfunction SunburstPiece(node, seriesModel, ecModel) {\n graphic.Group.call(this);\n var sector = new graphic.Sector({\n z2: DEFAULT_SECTOR_Z\n });\n sector.seriesIndex = seriesModel.seriesIndex;\n var text = new graphic.Text({\n z2: DEFAULT_TEXT_Z,\n silent: node.getModel('label').get('silent')\n });\n this.add(sector);\n this.add(text);\n this.updateData(true, node, 'normal', seriesModel, ecModel); // Hover to change label and labelLine\n\n function onEmphasis() {\n text.ignore = text.hoverIgnore;\n }\n\n function onNormal() {\n text.ignore = text.normalIgnore;\n }\n\n this.on('emphasis', onEmphasis).on('normal', onNormal).on('mouseover', onEmphasis).on('mouseout', onNormal);\n}\n\nvar SunburstPieceProto = SunburstPiece.prototype;\n\nSunburstPieceProto.updateData = function (firstCreate, node, state, seriesModel, ecModel) {\n this.node = node;\n node.piece = this;\n seriesModel = seriesModel || this._seriesModel;\n ecModel = ecModel || this._ecModel;\n var sector = this.childAt(0);\n sector.dataIndex = node.dataIndex;\n var itemModel = node.getModel();\n var layout = node.getLayout(); // if (!layout) {\n // console.log(node.getLayout());\n // }\n\n var sectorShape = zrUtil.extend({}, layout);\n sectorShape.label = null;\n var visualColor = getNodeColor(node, seriesModel, ecModel);\n fillDefaultColor(node, seriesModel, visualColor);\n var normalStyle = itemModel.getModel('itemStyle').getItemStyle();\n var style;\n\n if (state === 'normal') {\n style = normalStyle;\n } else {\n var stateStyle = itemModel.getModel(state + '.itemStyle').getItemStyle();\n style = zrUtil.merge(stateStyle, normalStyle);\n }\n\n style = zrUtil.defaults({\n lineJoin: 'bevel',\n fill: style.fill || visualColor\n }, style);\n\n if (firstCreate) {\n sector.setShape(sectorShape);\n sector.shape.r = layout.r0;\n graphic.updateProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, node.dataIndex);\n sector.useStyle(style);\n } else if (typeof style.fill === 'object' && style.fill.type || typeof sector.style.fill === 'object' && sector.style.fill.type) {\n // Disable animation for gradient since no interpolation method\n // is supported for gradient\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel);\n sector.useStyle(style);\n } else {\n graphic.updateProps(sector, {\n shape: sectorShape,\n style: style\n }, seriesModel);\n }\n\n this._updateLabel(seriesModel, visualColor, state);\n\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle);\n\n if (firstCreate) {\n var highlightPolicy = seriesModel.getShallow('highlightPolicy');\n\n this._initEvents(sector, node, seriesModel, highlightPolicy);\n }\n\n this._seriesModel = seriesModel || this._seriesModel;\n this._ecModel = ecModel || this._ecModel;\n};\n\nSunburstPieceProto.onEmphasis = function (highlightPolicy) {\n var that = this;\n this.node.hostTree.root.eachNode(function (n) {\n if (n.piece) {\n if (that.node === n) {\n n.piece.updateData(false, n, 'emphasis');\n } else if (isNodeHighlighted(n, that.node, highlightPolicy)) {\n n.piece.childAt(0).trigger('highlight');\n } else if (highlightPolicy !== NodeHighlightPolicy.NONE) {\n n.piece.childAt(0).trigger('downplay');\n }\n }\n });\n};\n\nSunburstPieceProto.onNormal = function () {\n this.node.hostTree.root.eachNode(function (n) {\n if (n.piece) {\n n.piece.updateData(false, n, 'normal');\n }\n });\n};\n\nSunburstPieceProto.onHighlight = function () {\n this.updateData(false, this.node, 'highlight');\n};\n\nSunburstPieceProto.onDownplay = function () {\n this.updateData(false, this.node, 'downplay');\n};\n\nSunburstPieceProto._updateLabel = function (seriesModel, visualColor, state) {\n var itemModel = this.node.getModel();\n var normalModel = itemModel.getModel('label');\n var labelModel = state === 'normal' || state === 'emphasis' ? normalModel : itemModel.getModel(state + '.label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n var text = zrUtil.retrieve(seriesModel.getFormattedLabel(this.node.dataIndex, 'normal', null, null, 'label'), this.node.name);\n\n if (getLabelAttr('show') === false) {\n text = '';\n }\n\n var layout = this.node.getLayout();\n var labelMinAngle = labelModel.get('minAngle');\n\n if (labelMinAngle == null) {\n labelMinAngle = normalModel.get('minAngle');\n }\n\n labelMinAngle = labelMinAngle / 180 * Math.PI;\n var angle = layout.endAngle - layout.startAngle;\n\n if (labelMinAngle != null && Math.abs(angle) < labelMinAngle) {\n // Not displaying text when angle is too small\n text = '';\n }\n\n var label = this.childAt(1);\n graphic.setLabelStyle(label.style, label.hoverStyle || {}, normalModel, labelHoverModel, {\n defaultText: labelModel.getShallow('show') ? text : null,\n autoColor: visualColor,\n useInsideStyle: true\n });\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var dx = Math.cos(midAngle);\n var dy = Math.sin(midAngle);\n var r;\n var labelPosition = getLabelAttr('position');\n var labelPadding = getLabelAttr('distance') || 0;\n var textAlign = getLabelAttr('align');\n\n if (labelPosition === 'outside') {\n r = layout.r + labelPadding;\n textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\n } else {\n if (!textAlign || textAlign === 'center') {\n r = (layout.r + layout.r0) / 2;\n textAlign = 'center';\n } else if (textAlign === 'left') {\n r = layout.r0 + labelPadding;\n\n if (midAngle > Math.PI / 2) {\n textAlign = 'right';\n }\n } else if (textAlign === 'right') {\n r = layout.r - labelPadding;\n\n if (midAngle > Math.PI / 2) {\n textAlign = 'left';\n }\n }\n }\n\n label.attr('style', {\n text: text,\n textAlign: textAlign,\n textVerticalAlign: getLabelAttr('verticalAlign') || 'middle',\n opacity: getLabelAttr('opacity')\n });\n var textX = r * dx + layout.cx;\n var textY = r * dy + layout.cy;\n label.attr('position', [textX, textY]);\n var rotateType = getLabelAttr('rotate');\n var rotate = 0;\n\n if (rotateType === 'radial') {\n rotate = -midAngle;\n\n if (rotate < -Math.PI / 2) {\n rotate += Math.PI;\n }\n } else if (rotateType === 'tangential') {\n rotate = Math.PI / 2 - midAngle;\n\n if (rotate > Math.PI / 2) {\n rotate -= Math.PI;\n } else if (rotate < -Math.PI / 2) {\n rotate += Math.PI;\n }\n } else if (typeof rotateType === 'number') {\n rotate = rotateType * Math.PI / 180;\n }\n\n label.attr('rotation', rotate);\n\n function getLabelAttr(name) {\n var stateAttr = labelModel.get(name);\n\n if (stateAttr == null) {\n return normalModel.get(name);\n } else {\n return stateAttr;\n }\n }\n};\n\nSunburstPieceProto._initEvents = function (sector, node, seriesModel, highlightPolicy) {\n sector.off('mouseover').off('mouseout').off('emphasis').off('normal');\n var that = this;\n\n var onEmphasis = function () {\n that.onEmphasis(highlightPolicy);\n };\n\n var onNormal = function () {\n that.onNormal();\n };\n\n var onDownplay = function () {\n that.onDownplay();\n };\n\n var onHighlight = function () {\n that.onHighlight();\n };\n\n if (seriesModel.isAnimationEnabled()) {\n sector.on('mouseover', onEmphasis).on('mouseout', onNormal).on('emphasis', onEmphasis).on('normal', onNormal).on('downplay', onDownplay).on('highlight', onHighlight);\n }\n};\n\nzrUtil.inherits(SunburstPiece, graphic.Group);\nvar _default = SunburstPiece;\n/**\n * Get node color\n *\n * @param {TreeNode} node the node to get color\n * @param {module:echarts/model/Series} seriesModel series\n * @param {module:echarts/model/Global} ecModel echarts defaults\n */\n\nfunction getNodeColor(node, seriesModel, ecModel) {\n // Color from visualMap\n var visualColor = node.getVisual('color');\n var visualMetaList = node.getVisual('visualMeta');\n\n if (!visualMetaList || visualMetaList.length === 0) {\n // Use first-generation color if has no visualMap\n visualColor = null;\n } // Self color or level color\n\n\n var color = node.getModel('itemStyle').get('color');\n\n if (color) {\n return color;\n } else if (visualColor) {\n // Color mapping\n return visualColor;\n } else if (node.depth === 0) {\n // Virtual root node\n return ecModel.option.color[0];\n } else {\n // First-generation color\n var length = ecModel.option.color.length;\n color = ecModel.option.color[getRootId(node) % length];\n }\n\n return color;\n}\n/**\n * Get index of root in sorted order\n *\n * @param {TreeNode} node current node\n * @return {number} index in root\n */\n\n\nfunction getRootId(node) {\n var ancestor = node;\n\n while (ancestor.depth > 1) {\n ancestor = ancestor.parentNode;\n }\n\n var virtualRoot = node.getAncestors()[0];\n return zrUtil.indexOf(virtualRoot.children, ancestor);\n}\n\nfunction isNodeHighlighted(node, activeNode, policy) {\n if (policy === NodeHighlightPolicy.NONE) {\n return false;\n } else if (policy === NodeHighlightPolicy.SELF) {\n return node === activeNode;\n } else if (policy === NodeHighlightPolicy.ANCESTOR) {\n return node === activeNode || node.isAncestorOf(activeNode);\n } else {\n return node === activeNode || node.isDescendantOf(activeNode);\n }\n} // Fix tooltip callback function params.color incorrect when pick a default color\n\n\nfunction fillDefaultColor(node, seriesModel, color) {\n var data = seriesModel.getData();\n data.setItemVisual(node.dataIndex, 'color', color);\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar SeriesModel = __webpack_require__(30);\n\nvar Tree = __webpack_require__(262);\n\nvar _treeHelper = __webpack_require__(99);\n\nvar wrapTreePathInfo = _treeHelper.wrapTreePathInfo;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.sunburst',\n\n /**\n * @type {module:echarts/data/Tree~Node}\n */\n _viewRoot: null,\n getInitialData: function (option, ecModel) {\n // Create a virtual root.\n var root = {\n name: option.name,\n children: option.data\n };\n completeTreeValue(root);\n var levels = option.levels || []; // levels = option.levels = setDefault(levels, ecModel);\n\n var treeOption = {};\n treeOption.levels = levels; // Make sure always a new tree is created when setOption,\n // in TreemapView, we check whether oldTree === newTree\n // to choose mappings approach among old shapes and new shapes.\n\n return Tree.createTree(root, this, treeOption).data;\n },\n optionUpdated: function () {\n this.resetViewRoot();\n },\n\n /*\n * @override\n */\n getDataParams: function (dataIndex) {\n var params = SeriesModel.prototype.getDataParams.apply(this, arguments);\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n params.treePathInfo = wrapTreePathInfo(node, this);\n return params;\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n // 默认全局居中\n center: ['50%', '50%'],\n radius: [0, '75%'],\n // 默认顺时针\n clockwise: true,\n startAngle: 90,\n // 最小角度改为0\n minAngle: 0,\n percentPrecision: 2,\n // If still show when all data zero.\n stillShowZeroSum: true,\n // Policy of highlighting pieces when hover on one\n // Valid values: 'none' (for not downplay others), 'descendant',\n // 'ancestor', 'self'\n highlightPolicy: 'descendant',\n // 'rootToNode', 'link', or false\n nodeClick: 'rootToNode',\n renderLabelForZeroData: false,\n label: {\n // could be: 'radial', 'tangential', or 'none'\n rotate: 'radial',\n show: true,\n opacity: 1,\n // 'left' is for inner side of inside, and 'right' is for outter\n // side for inside\n align: 'center',\n position: 'inside',\n distance: 5,\n silent: true,\n emphasis: {}\n },\n itemStyle: {\n borderWidth: 1,\n borderColor: 'white',\n borderType: 'solid',\n shadowBlur: 0,\n shadowColor: 'rgba(0, 0, 0, 0.2)',\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n opacity: 1,\n emphasis: {},\n highlight: {\n opacity: 1\n },\n downplay: {\n opacity: 0.9\n }\n },\n // Animation type canbe expansion, scale\n animationType: 'expansion',\n animationDuration: 1000,\n animationDurationUpdate: 500,\n animationEasing: 'cubicOut',\n data: [],\n levels: [],\n\n /**\n * Sort order.\n *\n * Valid values: 'desc', 'asc', null, or callback function.\n * 'desc' and 'asc' for descend and ascendant order;\n * null for not sorting;\n * example of callback function:\n * function(nodeA, nodeB) {\n * return nodeA.getValue() - nodeB.getValue();\n * }\n */\n sort: 'desc'\n },\n getViewRoot: function () {\n return this._viewRoot;\n },\n\n /**\n * @param {module:echarts/data/Tree~Node} [viewRoot]\n */\n resetViewRoot: function (viewRoot) {\n viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n var root = this.getRawData().tree.root;\n\n if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n this._viewRoot = root;\n }\n }\n});\n/**\n * @param {Object} dataNode\n */\n\n\nfunction completeTreeValue(dataNode) {\n // Postorder travel tree.\n // If value of none-leaf node is not set,\n // calculate it by suming up the value of all children.\n var sum = 0;\n zrUtil.each(dataNode.children, function (child) {\n completeTreeValue(child);\n var childValue = child.value;\n zrUtil.isArray(childValue) && (childValue = childValue[0]);\n sum += childValue;\n });\n var thisValue = dataNode.value;\n\n if (zrUtil.isArray(thisValue)) {\n thisValue = thisValue[0];\n }\n\n if (thisValue == null || isNaN(thisValue)) {\n thisValue = sum;\n } // Value should not less than 0.\n\n\n if (thisValue < 0) {\n thisValue = 0;\n }\n\n zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar ChartView = __webpack_require__(65);\n\nvar SunburstPiece = __webpack_require__(1138);\n\nvar DataDiffer = __webpack_require__(102);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar SunburstView = ChartView.extend({\n type: 'sunburst',\n init: function () {},\n render: function (seriesModel, ecModel, api, payload) {\n var that = this;\n this.seriesModel = seriesModel;\n this.api = api;\n this.ecModel = ecModel;\n var data = seriesModel.getData();\n var virtualRoot = data.tree.root;\n var newRoot = seriesModel.getViewRoot();\n var group = this.group;\n var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n var newChildren = [];\n newRoot.eachNode(function (node) {\n newChildren.push(node);\n });\n var oldChildren = this._oldChildren || [];\n dualTravel(newChildren, oldChildren);\n renderRollUp(virtualRoot, newRoot);\n\n if (payload && payload.highlight && payload.highlight.piece) {\n var highlightPolicy = seriesModel.getShallow('highlightPolicy');\n payload.highlight.piece.onEmphasis(highlightPolicy);\n } else if (payload && payload.unhighlight) {\n var piece = this.virtualPiece;\n\n if (!piece && virtualRoot.children.length) {\n piece = virtualRoot.children[0].piece;\n }\n\n if (piece) {\n piece.onNormal();\n }\n }\n\n this._initEvents();\n\n this._oldChildren = newChildren;\n\n function dualTravel(newChildren, oldChildren) {\n if (newChildren.length === 0 && oldChildren.length === 0) {\n return;\n }\n\n new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n function getKey(node) {\n return node.getId();\n }\n\n function processNode(newId, oldId) {\n var newNode = newId == null ? null : newChildren[newId];\n var oldNode = oldId == null ? null : oldChildren[oldId];\n doRenderNode(newNode, oldNode);\n }\n }\n\n function doRenderNode(newNode, oldNode) {\n if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n // Not render data with value 0\n newNode = null;\n }\n\n if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n if (oldNode && oldNode.piece) {\n if (newNode) {\n // Update\n oldNode.piece.updateData(false, newNode, 'normal', seriesModel, ecModel); // For tooltip\n\n data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n } else {\n // Remove\n removeNode(oldNode);\n }\n } else if (newNode) {\n // Add\n var piece = new SunburstPiece(newNode, seriesModel, ecModel);\n group.add(piece); // For tooltip\n\n data.setItemGraphicEl(newNode.dataIndex, piece);\n }\n }\n }\n\n function removeNode(node) {\n if (!node) {\n return;\n }\n\n if (node.piece) {\n group.remove(node.piece);\n node.piece = null;\n }\n }\n\n function renderRollUp(virtualRoot, viewRoot) {\n if (viewRoot.depth > 0) {\n // Render\n if (that.virtualPiece) {\n // Update\n that.virtualPiece.updateData(false, virtualRoot, 'normal', seriesModel, ecModel);\n } else {\n // Add\n that.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel);\n group.add(that.virtualPiece);\n }\n\n if (viewRoot.piece._onclickEvent) {\n viewRoot.piece.off('click', viewRoot.piece._onclickEvent);\n }\n\n var event = function (e) {\n that._rootToNode(viewRoot.parentNode);\n };\n\n viewRoot.piece._onclickEvent = event;\n that.virtualPiece.on('click', event);\n } else if (that.virtualPiece) {\n // Remove\n group.remove(that.virtualPiece);\n that.virtualPiece = null;\n }\n }\n },\n dispose: function () {},\n\n /**\n * @private\n */\n _initEvents: function () {\n var that = this;\n\n var event = function (e) {\n var targetFound = false;\n var viewRoot = that.seriesModel.getViewRoot();\n viewRoot.eachNode(function (node) {\n if (!targetFound && node.piece && node.piece.childAt(0) === e.target) {\n var nodeClick = node.getModel().get('nodeClick');\n\n if (nodeClick === 'rootToNode') {\n that._rootToNode(node);\n } else if (nodeClick === 'link') {\n var itemModel = node.getModel();\n var link = itemModel.get('link');\n\n if (link) {\n var linkTarget = itemModel.get('target', true) || '_blank';\n window.open(link, linkTarget);\n }\n }\n\n targetFound = true;\n }\n });\n };\n\n if (this.group._onclickEvent) {\n this.group.off('click', this.group._onclickEvent);\n }\n\n this.group.on('click', event);\n this.group._onclickEvent = event;\n },\n\n /**\n * @private\n */\n _rootToNode: function (node) {\n if (node !== this.seriesModel.getViewRoot()) {\n this.api.dispatchAction({\n type: ROOT_TO_NODE_ACTION,\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: node\n });\n }\n },\n\n /**\n * @implement\n */\n containPoint: function (point, seriesModel) {\n var treeRoot = seriesModel.getData();\n var itemLayout = treeRoot.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n }\n});\nvar _default = SunburstView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar helper = __webpack_require__(99);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Sunburst action\n */\nvar ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\necharts.registerAction({\n type: ROOT_TO_NODE_ACTION,\n update: 'updateView'\n}, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sunburst',\n query: payload\n }, handleRootToNode);\n\n function handleRootToNode(model, index) {\n var targetInfo = helper.retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\n\n if (targetInfo) {\n var originViewRoot = model.getViewRoot();\n\n if (originViewRoot) {\n payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n }\n\n model.resetViewRoot(targetInfo.node);\n }\n }\n});\nvar HIGHLIGHT_ACTION = 'sunburstHighlight';\necharts.registerAction({\n type: HIGHLIGHT_ACTION,\n update: 'updateView'\n}, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sunburst',\n query: payload\n }, handleHighlight);\n\n function handleHighlight(model, index) {\n var targetInfo = helper.retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\n\n if (targetInfo) {\n payload.highlight = targetInfo.node;\n }\n }\n});\nvar UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\necharts.registerAction({\n type: UNHIGHLIGHT_ACTION,\n update: 'updateView'\n}, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sunburst',\n query: payload\n }, handleUnhighlight);\n\n function handleUnhighlight(model, index) {\n payload.unhighlight = true;\n }\n});\n\n/***/ }),\n/* 1142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction _default(seriesType, ecModel, api, payload) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n\n var width = api.getWidth();\n var height = api.getHeight();\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], width);\n var cy = parsePercent(center[1], height);\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var virtualRoot = seriesModel.getData().tree.root;\n var treeRoot = seriesModel.getViewRoot();\n var rootDepth = treeRoot.depth;\n var sort = seriesModel.get('sort');\n\n if (sort != null) {\n initChildren(treeRoot, sort);\n }\n\n var validDataCount = 0;\n zrUtil.each(treeRoot.children, function (child) {\n !isNaN(child.getValue()) && validDataCount++;\n });\n var sum = treeRoot.getValue(); // Sum may be 0\n\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var renderRollupNode = treeRoot.depth > 0;\n var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\n var rPerLevel = (r - r0) / (levels || 1);\n var clockwise = seriesModel.get('clockwise');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // In the case some sector angle is smaller than minAngle\n\n var restAngle = PI2;\n var valueSumLargerThanMinAngle = 0;\n var dir = clockwise ? 1 : -1;\n /**\n * Render a tree\n * @return increased angle\n */\n\n var renderNode = function (node, startAngle) {\n if (!node) {\n return;\n }\n\n var endAngle = startAngle; // Render self\n\n if (node !== virtualRoot) {\n // Tree node is virtual, so it doesn't need to be drawn\n var value = node.getValue();\n var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n\n if (angle < minAngle) {\n angle = minAngle;\n restAngle -= minAngle;\n } else {\n valueSumLargerThanMinAngle += value;\n }\n\n endAngle = startAngle + dir * angle;\n var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);\n var rStart = r0 + rPerLevel * depth;\n var rEnd = r0 + rPerLevel * (depth + 1);\n var itemModel = node.getModel();\n\n if (itemModel.get('r0') != null) {\n rStart = parsePercent(itemModel.get('r0'), size / 2);\n }\n\n if (itemModel.get('r') != null) {\n rEnd = parsePercent(itemModel.get('r'), size / 2);\n }\n\n node.setLayout({\n angle: angle,\n startAngle: startAngle,\n endAngle: endAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: rStart,\n r: rEnd\n });\n } // Render children\n\n\n if (node.children && node.children.length) {\n // currentAngle = startAngle;\n var siblingAngle = 0;\n zrUtil.each(node.children, function (node) {\n siblingAngle += renderNode(node, startAngle + siblingAngle);\n });\n }\n\n return endAngle - startAngle;\n }; // Virtual root node for roll up\n\n\n if (renderRollupNode) {\n var rStart = r0;\n var rEnd = r0 + rPerLevel;\n var angle = Math.PI * 2;\n virtualRoot.setLayout({\n angle: angle,\n startAngle: startAngle,\n endAngle: startAngle + angle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: rStart,\n r: rEnd\n });\n }\n\n renderNode(treeRoot, startAngle);\n });\n}\n/**\n * Init node children by order and update visual\n *\n * @param {TreeNode} node root node\n * @param {boolean} isAsc if is in ascendant order\n */\n\n\nfunction initChildren(node, isAsc) {\n var children = node.children || [];\n node.children = sort(children, isAsc); // Init children recursively\n\n if (children.length) {\n zrUtil.each(node.children, function (child) {\n initChildren(child, isAsc);\n });\n }\n}\n/**\n * Sort children nodes\n *\n * @param {TreeNode[]} children children of node to be sorted\n * @param {string | function | null} sort sort method\n * See SunburstSeries.js for details.\n */\n\n\nfunction sort(children, sortOrder) {\n if (typeof sortOrder === 'function') {\n return children.sort(sortOrder);\n } else {\n var isAsc = sortOrder === 'asc';\n return children.sort(function (a, b) {\n var diff = (a.getValue() - b.getValue()) * (isAsc ? 1 : -1);\n return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc ? -1 : 1) : diff;\n });\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(385);\n\n__webpack_require__(1144);\n\n__webpack_require__(1145);\n\nvar themeRiverLayout = __webpack_require__(1146);\n\nvar themeRiverVisual = __webpack_require__(1147);\n\nvar dataFilter = __webpack_require__(149);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(themeRiverLayout);\necharts.registerVisual(themeRiverVisual);\necharts.registerProcessor(dataFilter('themeRiver'));\n\n/***/ }),\n/* 1144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = __webpack_require__(30);\n\nvar createDimensions = __webpack_require__(118);\n\nvar _dimensionHelper = __webpack_require__(146);\n\nvar getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;\n\nvar List = __webpack_require__(49);\n\nvar zrUtil = __webpack_require__(0);\n\nvar _model = __webpack_require__(9);\n\nvar groupData = _model.groupData;\n\nvar _format = __webpack_require__(19);\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Define the themeRiver view's series model\n * @author Deqing Li(annong035@gmail.com)\n */\nvar DATA_NAME_INDEX = 2;\nvar ThemeRiverSeries = SeriesModel.extend({\n type: 'series.themeRiver',\n dependencies: ['singleAxis'],\n\n /**\n * @readOnly\n * @type {module:zrender/core/util#HashMap}\n */\n nameMap: null,\n\n /**\n * @override\n */\n init: function (option) {\n // eslint-disable-next-line\n ThemeRiverSeries.superApply(this, 'init', arguments); // Put this function here is for the sake of consistency of code style.\n // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n this.legendDataProvider = function () {\n return this.getRawData();\n };\n },\n\n /**\n * If there is no value of a certain point in the time for some event,set it value to 0.\n *\n * @param {Array} data initial data in the option\n * @return {Array}\n */\n fixData: function (data) {\n var rawDataLength = data.length; // grouped data by name\n\n var groupResult = groupData(data, function (item) {\n return item[2];\n });\n var layData = [];\n groupResult.buckets.each(function (items, key) {\n layData.push({\n name: key,\n dataList: items\n });\n });\n var layerNum = layData.length;\n var largestLayer = -1;\n var index = -1;\n\n for (var i = 0; i < layerNum; ++i) {\n var len = layData[i].dataList.length;\n\n if (len > largestLayer) {\n largestLayer = len;\n index = i;\n }\n }\n\n for (var k = 0; k < layerNum; ++k) {\n if (k === index) {\n continue;\n }\n\n var name = layData[k].name;\n\n for (var j = 0; j < largestLayer; ++j) {\n var timeValue = layData[index].dataList[j][0];\n var length = layData[k].dataList.length;\n var keyIndex = -1;\n\n for (var l = 0; l < length; ++l) {\n var value = layData[k].dataList[l][0];\n\n if (value === timeValue) {\n keyIndex = l;\n break;\n }\n }\n\n if (keyIndex === -1) {\n data[rawDataLength] = [];\n data[rawDataLength][0] = timeValue;\n data[rawDataLength][1] = 0;\n data[rawDataLength][2] = name;\n rawDataLength++;\n }\n }\n }\n\n return data;\n },\n\n /**\n * @override\n * @param {Object} option the initial option that user gived\n * @param {module:echarts/model/Model} ecModel the model object for themeRiver option\n * @return {module:echarts/data/List}\n */\n getInitialData: function (option, ecModel) {\n var singleAxisModel = ecModel.queryComponents({\n mainType: 'singleAxis',\n index: this.get('singleAxisIndex'),\n id: this.get('singleAxisId')\n })[0];\n var axisType = singleAxisModel.get('type'); // filter the data item with the value of label is undefined\n\n var filterData = zrUtil.filter(option.data, function (dataItem) {\n return dataItem[2] !== undefined;\n }); // ??? TODO design a stage to transfer data for themeRiver and lines?\n\n var data = this.fixData(filterData || []);\n var nameList = [];\n var nameMap = this.nameMap = zrUtil.createHashMap();\n var count = 0;\n\n for (var i = 0; i < data.length; ++i) {\n nameList.push(data[i][DATA_NAME_INDEX]);\n\n if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\n nameMap.set(data[i][DATA_NAME_INDEX], count);\n count++;\n }\n }\n\n var dimensionsInfo = createDimensions(data, {\n coordDimensions: ['single'],\n dimensionsDefine: [{\n name: 'time',\n type: getDimensionTypeByAxis(axisType)\n }, {\n name: 'value',\n type: 'float'\n }, {\n name: 'name',\n type: 'ordinal'\n }],\n encodeDefine: {\n single: 0,\n value: 1,\n itemName: 2\n }\n });\n var list = new List(dimensionsInfo, this);\n list.initData(data);\n return list;\n },\n\n /**\n * The raw data is divided into multiple layers and each layer\n * has same name.\n *\n * @return {Array.>}\n */\n getLayerSeries: function () {\n var data = this.getData();\n var lenCount = data.count();\n var indexArr = [];\n\n for (var i = 0; i < lenCount; ++i) {\n indexArr[i] = i;\n }\n\n var timeDim = data.mapDimension('single'); // data group by name\n\n var groupResult = groupData(indexArr, function (index) {\n return data.get('name', index);\n });\n var layerSeries = [];\n groupResult.buckets.each(function (items, key) {\n items.sort(function (index1, index2) {\n return data.get(timeDim, index1) - data.get(timeDim, index2);\n });\n layerSeries.push({\n name: key,\n indices: items\n });\n });\n return layerSeries;\n },\n\n /**\n * Get data indices for show tooltip content\n *\n * @param {Array.|string} dim single coordinate dimension\n * @param {number} value axis value\n * @param {module:echarts/coord/single/SingleAxis} baseAxis single Axis used\n * the themeRiver.\n * @return {Object} {dataIndices, nestestValue}\n */\n getAxisTooltipData: function (dim, value, baseAxis) {\n if (!zrUtil.isArray(dim)) {\n dim = dim ? [dim] : [];\n }\n\n var data = this.getData();\n var layerSeries = this.getLayerSeries();\n var indices = [];\n var layerNum = layerSeries.length;\n var nestestValue;\n\n for (var i = 0; i < layerNum; ++i) {\n var minDist = Number.MAX_VALUE;\n var nearestIdx = -1;\n var pointNum = layerSeries[i].indices.length;\n\n for (var j = 0; j < pointNum; ++j) {\n var theValue = data.get(dim[0], layerSeries[i].indices[j]);\n var dist = Math.abs(theValue - value);\n\n if (dist <= minDist) {\n nestestValue = theValue;\n minDist = dist;\n nearestIdx = layerSeries[i].indices[j];\n }\n }\n\n indices.push(nearestIdx);\n }\n\n return {\n dataIndices: indices,\n nestestValue: nestestValue\n };\n },\n\n /**\n * @override\n * @param {number} dataIndex index of data\n */\n formatTooltip: function (dataIndex) {\n var data = this.getData();\n var htmlName = data.getName(dataIndex);\n var htmlValue = data.get(data.mapDimension('value'), dataIndex);\n\n if (isNaN(htmlValue) || htmlValue == null) {\n htmlValue = '-';\n }\n\n return encodeHTML(htmlName + ' : ' + htmlValue);\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'singleAxis',\n // gap in axis's orthogonal orientation\n boundaryGap: ['10%', '10%'],\n // legendHoverLink: true,\n singleAxisIndex: 0,\n animationEasing: 'linear',\n label: {\n margin: 4,\n show: true,\n position: 'left',\n color: '#000',\n fontSize: 11\n },\n emphasis: {\n label: {\n show: true\n }\n }\n }\n});\nvar _default = ThemeRiverSeries;\nmodule.exports = _default;\n\n/***/ }),\n/* 1145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar _poly = __webpack_require__(365);\n\nvar Polygon = _poly.Polygon;\n\nvar graphic = __webpack_require__(5);\n\nvar _util = __webpack_require__(0);\n\nvar bind = _util.bind;\nvar extend = _util.extend;\n\nvar DataDiffer = __webpack_require__(102);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file The file used to draw themeRiver view\n * @author Deqing Li(annong035@gmail.com)\n */\nvar _default = echarts.extendChartView({\n type: 'themeRiver',\n init: function () {\n this._layers = [];\n },\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var group = this.group;\n var layerSeries = seriesModel.getLayerSeries();\n var layoutInfo = data.getLayout('layoutInfo');\n var rect = layoutInfo.rect;\n var boundaryGap = layoutInfo.boundaryGap;\n group.attr('position', [0, rect.y + boundaryGap[0]]);\n\n function keyGetter(item) {\n return item.name;\n }\n\n var dataDiffer = new DataDiffer(this._layersSeries || [], layerSeries, keyGetter, keyGetter);\n var newLayersGroups = {};\n dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n function process(status, idx, oldIdx) {\n var oldLayersGroups = this._layers;\n\n if (status === 'remove') {\n group.remove(oldLayersGroups[idx]);\n return;\n }\n\n var points0 = [];\n var points1 = [];\n var color;\n var indices = layerSeries[idx].indices;\n\n for (var j = 0; j < indices.length; j++) {\n var layout = data.getItemLayout(indices[j]);\n var x = layout.x;\n var y0 = layout.y0;\n var y = layout.y;\n points0.push([x, y0]);\n points1.push([x, y0 + y]);\n color = data.getItemVisual(indices[j], 'color');\n }\n\n var polygon;\n var text;\n var textLayout = data.getItemLayout(indices[0]);\n var itemModel = data.getItemModel(indices[j - 1]);\n var labelModel = itemModel.getModel('label');\n var margin = labelModel.get('margin');\n\n if (status === 'add') {\n var layerGroup = newLayersGroups[idx] = new graphic.Group();\n polygon = new Polygon({\n shape: {\n points: points0,\n stackedOnPoints: points1,\n smooth: 0.4,\n stackedOnSmooth: 0.4,\n smoothConstraint: false\n },\n z2: 0\n });\n text = new graphic.Text({\n style: {\n x: textLayout.x - margin,\n y: textLayout.y0 + textLayout.y / 2\n }\n });\n layerGroup.add(polygon);\n layerGroup.add(text);\n group.add(layerGroup);\n polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n polygon.removeClipPath();\n }));\n } else {\n var layerGroup = oldLayersGroups[oldIdx];\n polygon = layerGroup.childAt(0);\n text = layerGroup.childAt(1);\n group.add(layerGroup);\n newLayersGroups[idx] = layerGroup;\n graphic.updateProps(polygon, {\n shape: {\n points: points0,\n stackedOnPoints: points1\n }\n }, seriesModel);\n graphic.updateProps(text, {\n style: {\n x: textLayout.x - margin,\n y: textLayout.y0 + textLayout.y / 2\n }\n }, seriesModel);\n }\n\n var hoverItemStyleModel = itemModel.getModel('emphasis.itemStyle');\n var itemStyleModel = itemModel.getModel('itemStyle');\n graphic.setTextStyle(text.style, labelModel, {\n text: labelModel.get('show') ? seriesModel.getFormattedLabel(indices[j - 1], 'normal') || data.getName(indices[j - 1]) : null,\n textVerticalAlign: 'middle'\n });\n polygon.setStyle(extend({\n fill: color\n }, itemStyleModel.getItemStyle(['color'])));\n graphic.setHoverStyle(polygon, hoverItemStyleModel.getItemStyle());\n }\n\n this._layersSeries = layerSeries;\n this._layers = newLayersGroups;\n },\n dispose: function () {}\n}); // add animation to the view\n\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x - 10,\n y: rect.y - 10,\n width: 0,\n height: rect.height + 20\n }\n });\n graphic.initProps(rectEl, {\n shape: {\n width: rect.width + 20,\n height: rect.height + 20\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nmodule.exports = _default;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(271)))\n\n/***/ }),\n/* 1146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar numberUtil = __webpack_require__(8);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Using layout algorithm transform the raw data to layout information.\n * @author Deqing Li(annong035@gmail.com)\n */\nfunction _default(ecModel, api) {\n ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n var data = seriesModel.getData();\n var single = seriesModel.coordinateSystem;\n var layoutInfo = {}; // use the axis boundingRect for view\n\n var rect = single.getRect();\n layoutInfo.rect = rect;\n var boundaryGap = seriesModel.get('boundaryGap');\n var axis = single.getAxis();\n layoutInfo.boundaryGap = boundaryGap;\n\n if (axis.orient === 'horizontal') {\n boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);\n boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);\n var height = rect.height - boundaryGap[0] - boundaryGap[1];\n themeRiverLayout(data, seriesModel, height);\n } else {\n boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);\n boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);\n var width = rect.width - boundaryGap[0] - boundaryGap[1];\n themeRiverLayout(data, seriesModel, width);\n }\n\n data.setLayout('layoutInfo', layoutInfo);\n });\n}\n/**\n * The layout information about themeriver\n *\n * @param {module:echarts/data/List} data data in the series\n * @param {module:echarts/model/Series} seriesModel the model object of themeRiver series\n * @param {number} height value used to compute every series height\n */\n\n\nfunction themeRiverLayout(data, seriesModel, height) {\n if (!data.count()) {\n return;\n }\n\n var coordSys = seriesModel.coordinateSystem; // the data in each layer are organized into a series.\n\n var layerSeries = seriesModel.getLayerSeries(); // the points in each layer.\n\n var timeDim = data.mapDimension('single');\n var valueDim = data.mapDimension('value');\n var layerPoints = zrUtil.map(layerSeries, function (singleLayer) {\n return zrUtil.map(singleLayer.indices, function (idx) {\n var pt = coordSys.dataToPoint(data.get(timeDim, idx));\n pt[1] = data.get(valueDim, idx);\n return pt;\n });\n });\n var base = computeBaseline(layerPoints);\n var baseLine = base.y0;\n var ky = height / base.max; // set layout information for each item.\n\n var n = layerSeries.length;\n var m = layerSeries[0].indices.length;\n var baseY0;\n\n for (var j = 0; j < m; ++j) {\n baseY0 = baseLine[j] * ky;\n data.setItemLayout(layerSeries[0].indices[j], {\n layerIndex: 0,\n x: layerPoints[0][j][0],\n y0: baseY0,\n y: layerPoints[0][j][1] * ky\n });\n\n for (var i = 1; i < n; ++i) {\n baseY0 += layerPoints[i - 1][j][1] * ky;\n data.setItemLayout(layerSeries[i].indices[j], {\n layerIndex: i,\n x: layerPoints[i][j][0],\n y0: baseY0,\n y: layerPoints[i][j][1] * ky\n });\n }\n }\n}\n/**\n * Compute the baseLine of the rawdata\n * Inspired by Lee Byron's paper Stacked Graphs - Geometry & Aesthetics\n *\n * @param {Array.} data the points in each layer\n * @return {Object}\n */\n\n\nfunction computeBaseline(data) {\n var layerNum = data.length;\n var pointNum = data[0].length;\n var sums = [];\n var y0 = [];\n var max = 0;\n var temp;\n var base = {};\n\n for (var i = 0; i < pointNum; ++i) {\n for (var j = 0, temp = 0; j < layerNum; ++j) {\n temp += data[j][i][1];\n }\n\n if (temp > max) {\n max = temp;\n }\n\n sums.push(temp);\n }\n\n for (var k = 0; k < pointNum; ++k) {\n y0[k] = (max - sums[k]) / 2;\n }\n\n max = 0;\n\n for (var l = 0; l < pointNum; ++l) {\n var sum = sums[l] + y0[l];\n\n if (sum > max) {\n max = sum;\n }\n }\n\n base.y0 = y0;\n base.max = max;\n return base;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = __webpack_require__(0);\n\nvar createHashMap = _util.createHashMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual encoding for themeRiver view\n * @author Deqing Li(annong035@gmail.com)\n */\nfunction _default(ecModel) {\n ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n var data = seriesModel.getData();\n var rawData = seriesModel.getRawData();\n var colorList = seriesModel.get('color');\n var idxMap = createHashMap();\n data.each(function (idx) {\n idxMap.set(data.getRawIndex(idx), idx);\n });\n rawData.each(function (rawIndex) {\n var name = rawData.getName(rawIndex);\n var color = colorList[(seriesModel.nameMap.get(name) - 1) % colorList.length];\n rawData.setItemVisual(rawIndex, 'color', color);\n var idx = idxMap.get(rawIndex);\n\n if (idx != null) {\n data.setItemVisual(idx, 'color', color);\n }\n });\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1149);\n\n__webpack_require__(1150);\n\n__webpack_require__(1152);\n\nvar visualSymbol = __webpack_require__(107);\n\nvar treeLayout = __webpack_require__(1153);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(visualSymbol('tree', 'circle'));\necharts.registerLayout(treeLayout);\n\n/***/ }),\n/* 1149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = __webpack_require__(30);\n\nvar Tree = __webpack_require__(262);\n\nvar _format = __webpack_require__(19);\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Create data struct and define tree view's series model\n * @author Deqing Li(annong035@gmail.com)\n */\nvar _default = SeriesModel.extend({\n type: 'series.tree',\n layoutInfo: null,\n // can support the position parameters 'left', 'top','right','bottom', 'width',\n // 'height' in the setOption() with 'merge' mode normal.\n layoutMode: 'box',\n\n /**\n * Init a tree data structure from data in option series\n * @param {Object} option the object used to config echarts view\n * @return {module:echarts/data/List} storage initial data\n */\n getInitialData: function (option) {\n //create an virtual root\n var root = {\n name: option.name,\n children: option.data\n };\n var leaves = option.leaves || {};\n var treeOption = {};\n treeOption.leaves = leaves;\n var tree = Tree.createTree(root, this, treeOption);\n var treeDepth = 0;\n tree.eachNode('preorder', function (node) {\n if (node.depth > treeDepth) {\n treeDepth = node.depth;\n }\n });\n var expandAndCollapse = option.expandAndCollapse;\n var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n tree.root.eachNode('preorder', function (node) {\n var item = node.hostTree.data.getRawDataItem(node.dataIndex); // Add item.collapsed != null, because users can collapse node original in the series.data.\n\n node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n });\n return tree.data;\n },\n\n /**\n * Make the configuration 'orient' backward compatibly, with 'horizontal = LR', 'vertical = TB'.\n * @returns {string} orient\n */\n getOrient: function () {\n var orient = this.get('orient');\n\n if (orient === 'horizontal') {\n orient = 'LR';\n } else if (orient === 'vertical') {\n orient = 'TB';\n }\n\n return orient;\n },\n setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n },\n\n /**\n * @override\n * @param {number} dataIndex\n */\n formatTooltip: function (dataIndex) {\n var tree = this.getData().tree;\n var realRoot = tree.root.children[0];\n var node = tree.getNodeByDataIndex(dataIndex);\n var value = node.getValue();\n var name = node.name;\n\n while (node && node !== realRoot) {\n name = node.parentNode.name + '.' + name;\n node = node.parentNode;\n }\n\n return encodeHTML(name + (isNaN(value) || value == null ? '' : ' : ' + value));\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n // the position of the whole view\n left: '12%',\n top: '12%',\n right: '12%',\n bottom: '12%',\n // the layout of the tree, two value can be selected, 'orthogonal' or 'radial'\n layout: 'orthogonal',\n roam: false,\n // true | false | 'move' | 'scale', see module:component/helper/RoamController.\n // Symbol size scale ratio in roam\n nodeScaleRatio: 0.4,\n // Default on center of graph\n center: null,\n zoom: 1,\n // The orient of orthoginal layout, can be setted to 'LR', 'TB', 'RL', 'BT'.\n // and the backward compatibility configuration 'horizontal = LR', 'vertical = TB'.\n orient: 'LR',\n symbol: 'emptyCircle',\n symbolSize: 7,\n expandAndCollapse: true,\n initialTreeDepth: 2,\n lineStyle: {\n color: '#ccc',\n width: 1.5,\n curveness: 0.5\n },\n itemStyle: {\n color: 'lightsteelblue',\n borderColor: '#c23531',\n borderWidth: 1.5\n },\n label: {\n show: true,\n color: '#555'\n },\n leaves: {\n label: {\n show: true\n }\n },\n animationEasing: 'linear',\n animationDuration: 700,\n animationDurationUpdate: 1000\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar SymbolClz = __webpack_require__(173);\n\nvar _layoutHelper = __webpack_require__(368);\n\nvar radialCoordinate = _layoutHelper.radialCoordinate;\n\nvar echarts = __webpack_require__(3);\n\nvar bbox = __webpack_require__(188);\n\nvar View = __webpack_require__(257);\n\nvar roamHelper = __webpack_require__(252);\n\nvar RoamController = __webpack_require__(143);\n\nvar _cursorHelper = __webpack_require__(176);\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file This file used to draw tree view.\n * @author Deqing Li(annong035@gmail.com)\n */\nvar _default = echarts.extendChartView({\n type: 'tree',\n\n /**\n * Init the chart\n * @override\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\n init: function (ecModel, api) {\n /**\n * @private\n * @type {module:echarts/data/Tree}\n */\n this._oldTree;\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n this._mainGroup = new graphic.Group();\n /**\n * @private\n * @type {module:echarts/componet/helper/RoamController}\n */\n\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: this.group\n };\n this.group.add(this._mainGroup);\n },\n render: function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var layoutInfo = seriesModel.layoutInfo;\n var group = this._mainGroup;\n var layout = seriesModel.get('layout');\n\n if (layout === 'radial') {\n group.attr('position', [layoutInfo.x + layoutInfo.width / 2, layoutInfo.y + layoutInfo.height / 2]);\n } else {\n group.attr('position', [layoutInfo.x, layoutInfo.y]);\n }\n\n this._updateViewCoordSys(seriesModel);\n\n this._updateController(seriesModel, ecModel, api);\n\n var oldData = this._data;\n var seriesScope = {\n expandAndCollapse: seriesModel.get('expandAndCollapse'),\n layout: layout,\n orient: seriesModel.getOrient(),\n curvature: seriesModel.get('lineStyle.curveness'),\n symbolRotate: seriesModel.get('symbolRotate'),\n symbolOffset: seriesModel.get('symbolOffset'),\n hoverAnimation: seriesModel.get('hoverAnimation'),\n useNameLabel: true,\n fadeIn: true\n };\n data.diff(oldData).add(function (newIdx) {\n if (symbolNeedsDraw(data, newIdx)) {\n // Create node and edge\n updateNode(data, newIdx, null, group, seriesModel, seriesScope);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n if (!symbolNeedsDraw(data, newIdx)) {\n symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel, seriesScope);\n return;\n } // Update node and edge\n\n\n updateNode(data, newIdx, symbolEl, group, seriesModel, seriesScope);\n }).remove(function (oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx); // When remove a collapsed node of subtree, since the collapsed\n // node haven't been initialized with a symbol element,\n // you can't found it's symbol element through index.\n // so if we want to remove the symbol element we should insure\n // that the symbol element is not null.\n\n if (symbolEl) {\n removeNode(oldData, oldIdx, symbolEl, group, seriesModel, seriesScope);\n }\n }).execute();\n this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n\n this._updateNodeAndLinkScale(seriesModel);\n\n if (seriesScope.expandAndCollapse === true) {\n data.eachItemGraphicEl(function (el, dataIndex) {\n el.off('click').on('click', function () {\n api.dispatchAction({\n type: 'treeExpandAndCollapse',\n seriesId: seriesModel.id,\n dataIndex: dataIndex\n });\n });\n });\n }\n\n this._data = data;\n },\n _updateViewCoordSys: function (seriesModel) {\n var data = seriesModel.getData();\n var points = [];\n data.each(function (idx) {\n var layout = data.getItemLayout(idx);\n\n if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\n points.push([+layout.x, +layout.y]);\n }\n });\n var min = [];\n var max = [];\n bbox.fromPoints(points, min, max); // If width or height is 0\n\n if (max[0] - min[0] === 0) {\n max[0] += 1;\n min[0] -= 1;\n }\n\n if (max[1] - min[1] === 0) {\n max[1] += 1;\n min[1] -= 1;\n }\n\n var viewCoordSys = seriesModel.coordinateSystem = new View();\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n viewCoordSys.setCenter(seriesModel.get('center'));\n viewCoordSys.setZoom(seriesModel.get('zoom')); // Here we use viewCoordSys just for computing the 'position' and 'scale' of the group\n\n this.group.attr({\n position: viewCoordSys.position,\n scale: viewCoordSys.scale\n });\n this._viewCoordSys = viewCoordSys;\n },\n _updateController: function (seriesModel, ecModel, api) {\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n var group = this.group;\n controller.setPointerChecker(function (e, x, y) {\n var rect = group.getBoundingRect();\n rect.applyTransform(group.transform);\n return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n });\n controller.enable(seriesModel.get('roam'));\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n controller.off('pan').off('zoom').on('pan', function (e) {\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'treeRoam',\n dx: e.dx,\n dy: e.dy\n });\n }, this).on('zoom', function (e) {\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'treeRoam',\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n });\n\n this._updateNodeAndLinkScale(seriesModel);\n }, this);\n },\n _updateNodeAndLinkScale: function (seriesModel) {\n var data = seriesModel.getData();\n\n var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n var invScale = [nodeScale, nodeScale];\n data.eachItemGraphicEl(function (el, idx) {\n el.attr('scale', invScale);\n });\n },\n _getNodeGlobalScale: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys.type !== 'view') {\n return 1;\n }\n\n var nodeScaleRatio = this._nodeScaleRatio;\n var groupScale = coordSys.scale;\n var groupZoom = groupScale && groupScale[0] || 1; // Scale node when zoom changes\n\n var roamZoom = coordSys.getZoom();\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n return nodeScale / groupZoom;\n },\n dispose: function () {\n this._controller && this._controller.dispose();\n this._controllerHost = {};\n },\n remove: function () {\n this._mainGroup.removeAll();\n\n this._data = null;\n }\n});\n\nfunction symbolNeedsDraw(data, dataIndex) {\n var layout = data.getItemLayout(dataIndex);\n return layout && !isNaN(layout.x) && !isNaN(layout.y) && data.getItemVisual(dataIndex, 'symbol') !== 'none';\n}\n\nfunction getTreeNodeStyle(node, itemModel, seriesScope) {\n seriesScope.itemModel = itemModel;\n seriesScope.itemStyle = itemModel.getModel('itemStyle').getItemStyle();\n seriesScope.hoverItemStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n seriesScope.lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n seriesScope.labelModel = itemModel.getModel('label');\n seriesScope.hoverLabelModel = itemModel.getModel('emphasis.label');\n\n if (node.isExpand === false && node.children.length !== 0) {\n seriesScope.symbolInnerColor = seriesScope.itemStyle.fill;\n } else {\n seriesScope.symbolInnerColor = '#fff';\n }\n\n return seriesScope;\n}\n\nfunction updateNode(data, dataIndex, symbolEl, group, seriesModel, seriesScope) {\n var isInit = !symbolEl;\n var node = data.tree.getNodeByDataIndex(dataIndex);\n var itemModel = node.getModel();\n var seriesScope = getTreeNodeStyle(node, itemModel, seriesScope);\n var virtualRoot = data.tree.root;\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n var sourceLayout = source.getLayout();\n var sourceOldLayout = sourceSymbolEl ? {\n x: sourceSymbolEl.position[0],\n y: sourceSymbolEl.position[1],\n rawX: sourceSymbolEl.__radialOldRawX,\n rawY: sourceSymbolEl.__radialOldRawY\n } : sourceLayout;\n var targetLayout = node.getLayout();\n\n if (isInit) {\n symbolEl = new SymbolClz(data, dataIndex, seriesScope);\n symbolEl.attr('position', [sourceOldLayout.x, sourceOldLayout.y]);\n } else {\n symbolEl.updateData(data, dataIndex, seriesScope);\n }\n\n symbolEl.__radialOldRawX = symbolEl.__radialRawX;\n symbolEl.__radialOldRawY = symbolEl.__radialRawY;\n symbolEl.__radialRawX = targetLayout.rawX;\n symbolEl.__radialRawY = targetLayout.rawY;\n group.add(symbolEl);\n data.setItemGraphicEl(dataIndex, symbolEl);\n graphic.updateProps(symbolEl, {\n position: [targetLayout.x, targetLayout.y]\n }, seriesModel);\n var symbolPath = symbolEl.getSymbolPath();\n\n if (seriesScope.layout === 'radial') {\n var realRoot = virtualRoot.children[0];\n var rootLayout = realRoot.getLayout();\n var length = realRoot.children.length;\n var rad;\n var isLeft;\n\n if (targetLayout.x === rootLayout.x && node.isExpand === true) {\n var center = {};\n center.x = (realRoot.children[0].getLayout().x + realRoot.children[length - 1].getLayout().x) / 2;\n center.y = (realRoot.children[0].getLayout().y + realRoot.children[length - 1].getLayout().y) / 2;\n rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n isLeft = center.x < rootLayout.x;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n } else {\n rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {\n isLeft = targetLayout.x < rootLayout.x;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n } else {\n isLeft = targetLayout.x > rootLayout.x;\n\n if (!isLeft) {\n rad = rad - Math.PI;\n }\n }\n }\n\n var textPosition = isLeft ? 'left' : 'right';\n symbolPath.setStyle({\n textPosition: textPosition,\n textRotation: -rad,\n textOrigin: 'center',\n verticalAlign: 'middle'\n });\n }\n\n if (node.parentNode && node.parentNode !== virtualRoot) {\n var edge = symbolEl.__edge;\n\n if (!edge) {\n edge = symbolEl.__edge = new graphic.BezierCurve({\n shape: getEdgeShape(seriesScope, sourceOldLayout, sourceOldLayout),\n style: zrUtil.defaults({\n opacity: 0,\n strokeNoScale: true\n }, seriesScope.lineStyle)\n });\n }\n\n graphic.updateProps(edge, {\n shape: getEdgeShape(seriesScope, sourceLayout, targetLayout),\n style: {\n opacity: 1\n }\n }, seriesModel);\n group.add(edge);\n }\n}\n\nfunction removeNode(data, dataIndex, symbolEl, group, seriesModel, seriesScope) {\n var node = data.tree.getNodeByDataIndex(dataIndex);\n var virtualRoot = data.tree.root;\n var itemModel = node.getModel();\n var seriesScope = getTreeNodeStyle(node, itemModel, seriesScope);\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n var sourceLayout;\n\n while (sourceLayout = source.getLayout(), sourceLayout == null) {\n source = source.parentNode === virtualRoot ? source : source.parentNode || source;\n }\n\n graphic.updateProps(symbolEl, {\n position: [sourceLayout.x + 1, sourceLayout.y + 1]\n }, seriesModel, function () {\n group.remove(symbolEl);\n data.setItemGraphicEl(dataIndex, null);\n });\n symbolEl.fadeOut(null, {\n keepLabel: true\n });\n var edge = symbolEl.__edge;\n\n if (edge) {\n graphic.updateProps(edge, {\n shape: getEdgeShape(seriesScope, sourceLayout, sourceLayout),\n style: {\n opacity: 0\n }\n }, seriesModel, function () {\n group.remove(edge);\n });\n }\n}\n\nfunction getEdgeShape(seriesScope, sourceLayout, targetLayout) {\n var cpx1;\n var cpy1;\n var cpx2;\n var cpy2;\n var orient = seriesScope.orient;\n var x1;\n var x2;\n var y1;\n var y2;\n\n if (seriesScope.layout === 'radial') {\n x1 = sourceLayout.rawX;\n y1 = sourceLayout.rawY;\n x2 = targetLayout.rawX;\n y2 = targetLayout.rawY;\n var radialCoor1 = radialCoordinate(x1, y1);\n var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * seriesScope.curvature);\n var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * seriesScope.curvature);\n var radialCoor4 = radialCoordinate(x2, y2);\n return {\n x1: radialCoor1.x,\n y1: radialCoor1.y,\n x2: radialCoor4.x,\n y2: radialCoor4.y,\n cpx1: radialCoor2.x,\n cpy1: radialCoor2.y,\n cpx2: radialCoor3.x,\n cpy2: radialCoor3.y\n };\n } else {\n x1 = sourceLayout.x;\n y1 = sourceLayout.y;\n x2 = targetLayout.x;\n y2 = targetLayout.y;\n\n if (orient === 'LR' || orient === 'RL') {\n cpx1 = x1 + (x2 - x1) * seriesScope.curvature;\n cpy1 = y1;\n cpx2 = x2 + (x1 - x2) * seriesScope.curvature;\n cpy2 = y2;\n }\n\n if (orient === 'TB' || orient === 'BT') {\n cpx1 = x1;\n cpy1 = y1 + (y2 - y1) * seriesScope.curvature;\n cpx2 = x2;\n cpy2 = y2 + (y1 - y2) * seriesScope.curvature;\n }\n }\n\n return {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n cpx1: cpx1,\n cpy1: cpy1,\n cpx2: cpx2,\n cpy2: cpy2\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1151 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Traverse the tree from bottom to top and do something\n * @param {module:echarts/data/Tree~TreeNode} root The real root of the tree\n * @param {Function} callback\n */\nfunction eachAfter(root, callback, separation) {\n var nodes = [root];\n var next = [];\n var node;\n\n while (node = nodes.pop()) {\n // jshint ignore:line\n next.push(node);\n\n if (node.isExpand) {\n var children = node.children;\n\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n nodes.push(children[i]);\n }\n }\n }\n }\n\n while (node = next.pop()) {\n // jshint ignore:line\n callback(node, separation);\n }\n}\n/**\n * Traverse the tree from top to bottom and do something\n * @param {module:echarts/data/Tree~TreeNode} root The real root of the tree\n * @param {Function} callback\n */\n\n\nfunction eachBefore(root, callback) {\n var nodes = [root];\n var node;\n\n while (node = nodes.pop()) {\n // jshint ignore:line\n callback(node);\n\n if (node.isExpand) {\n var children = node.children;\n\n if (children.length) {\n for (var i = children.length - 1; i >= 0; i--) {\n nodes.push(children[i]);\n }\n }\n }\n }\n}\n\nexports.eachAfter = eachAfter;\nexports.eachBefore = eachBefore;\n\n/***/ }),\n/* 1152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar _roamHelper = __webpack_require__(245);\n\nvar updateCenterAndZoom = _roamHelper.updateCenterAndZoom;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Register the actions of the tree\n * @author Deqing Li(annong035@gmail.com)\n */\necharts.registerAction({\n type: 'treeExpandAndCollapse',\n event: 'treeExpandAndCollapse',\n update: 'update'\n}, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'tree',\n query: payload\n }, function (seriesModel) {\n var dataIndex = payload.dataIndex;\n var tree = seriesModel.getData().tree;\n var node = tree.getNodeByDataIndex(dataIndex);\n node.isExpand = !node.isExpand;\n });\n});\necharts.registerAction({\n type: 'treeRoam',\n event: 'treeRoam',\n // Here we set 'none' instead of 'update', because roam action\n // just need to update the transform matrix without having to recalculate\n // the layout. So don't need to go through the whole update process, such\n // as 'dataPrcocess', 'coordSystemUpdate', 'layout' and so on.\n update: 'none'\n}, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'tree',\n query: payload\n }, function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var res = updateCenterAndZoom(coordSys, payload);\n seriesModel.setCenter && seriesModel.setCenter(res.center);\n seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n });\n});\n\n/***/ }),\n/* 1153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _traversalHelper = __webpack_require__(1151);\n\nvar eachAfter = _traversalHelper.eachAfter;\nvar eachBefore = _traversalHelper.eachBefore;\n\nvar _layoutHelper = __webpack_require__(368);\n\nvar init = _layoutHelper.init;\nvar firstWalk = _layoutHelper.firstWalk;\nvar secondWalk = _layoutHelper.secondWalk;\nvar sep = _layoutHelper.separation;\nvar radialCoordinate = _layoutHelper.radialCoordinate;\nvar getViewRect = _layoutHelper.getViewRect;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel, api) {\n ecModel.eachSeriesByType('tree', function (seriesModel) {\n commonLayout(seriesModel, api);\n });\n}\n\nfunction commonLayout(seriesModel, api) {\n var layoutInfo = getViewRect(seriesModel, api);\n seriesModel.layoutInfo = layoutInfo;\n var layout = seriesModel.get('layout');\n var width = 0;\n var height = 0;\n var separation = null;\n\n if (layout === 'radial') {\n width = 2 * Math.PI;\n height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\n separation = sep(function (node1, node2) {\n return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\n });\n } else {\n width = layoutInfo.width;\n height = layoutInfo.height;\n separation = sep();\n }\n\n var virtualRoot = seriesModel.getData().tree.root;\n var realRoot = virtualRoot.children[0];\n\n if (realRoot) {\n init(virtualRoot);\n eachAfter(realRoot, firstWalk, separation);\n virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\n eachBefore(realRoot, secondWalk);\n var left = realRoot;\n var right = realRoot;\n var bottom = realRoot;\n eachBefore(realRoot, function (node) {\n var x = node.getLayout().x;\n\n if (x < left.getLayout().x) {\n left = node;\n }\n\n if (x > right.getLayout().x) {\n right = node;\n }\n\n if (node.depth > bottom.depth) {\n bottom = node;\n }\n });\n var delta = left === right ? 1 : separation(left, right) / 2;\n var tx = delta - left.getLayout().x;\n var kx = 0;\n var ky = 0;\n var coorX = 0;\n var coorY = 0;\n\n if (layout === 'radial') {\n kx = width / (right.getLayout().x + delta + tx); // here we use (node.depth - 1), bucause the real root's depth is 1\n\n ky = height / (bottom.depth - 1 || 1);\n eachBefore(realRoot, function (node) {\n coorX = (node.getLayout().x + tx) * kx;\n coorY = (node.depth - 1) * ky;\n var finalCoor = radialCoordinate(coorX, coorY);\n node.setLayout({\n x: finalCoor.x,\n y: finalCoor.y,\n rawX: coorX,\n rawY: coorY\n }, true);\n });\n } else {\n var orient = seriesModel.getOrient();\n\n if (orient === 'RL' || orient === 'LR') {\n ky = height / (right.getLayout().x + delta + tx);\n kx = width / (bottom.depth - 1 || 1);\n eachBefore(realRoot, function (node) {\n coorY = (node.getLayout().x + tx) * ky;\n coorX = orient === 'LR' ? (node.depth - 1) * kx : width - (node.depth - 1) * kx;\n node.setLayout({\n x: coorX,\n y: coorY\n }, true);\n });\n } else if (orient === 'TB' || orient === 'BT') {\n kx = width / (right.getLayout().x + delta + tx);\n ky = height / (bottom.depth - 1 || 1);\n eachBefore(realRoot, function (node) {\n coorX = (node.getLayout().x + tx) * kx;\n coorY = orient === 'TB' ? (node.depth - 1) * ky : height - (node.depth - 1) * ky;\n node.setLayout({\n x: coorX,\n y: coorY\n }, true);\n });\n }\n }\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1156);\n\n__webpack_require__(1157);\n\n__webpack_require__(1158);\n\nvar treemapVisual = __webpack_require__(1160);\n\nvar treemapLayout = __webpack_require__(1159);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(treemapVisual);\necharts.registerLayout(treemapLayout);\n\n/***/ }),\n/* 1155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = __webpack_require__(5);\n\nvar layout = __webpack_require__(16);\n\nvar zrUtil = __webpack_require__(0);\n\nvar _treeHelper = __webpack_require__(99);\n\nvar wrapTreePathInfo = _treeHelper.wrapTreePathInfo;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nfunction Breadcrumb(containerGroup) {\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n this.group = new graphic.Group();\n containerGroup.add(this.group);\n}\n\nBreadcrumb.prototype = {\n constructor: Breadcrumb,\n render: function (seriesModel, api, targetNode, onSelect) {\n var model = seriesModel.getModel('breadcrumb');\n var thisGroup = this.group;\n thisGroup.removeAll();\n\n if (!model.get('show') || !targetNode) {\n return;\n }\n\n var normalStyleModel = model.getModel('itemStyle'); // var emphasisStyleModel = model.getModel('emphasis.itemStyle');\n\n var textStyleModel = normalStyleModel.getModel('textStyle');\n var layoutParam = {\n pos: {\n left: model.get('left'),\n right: model.get('right'),\n top: model.get('top'),\n bottom: model.get('bottom')\n },\n box: {\n width: api.getWidth(),\n height: api.getHeight()\n },\n emptyItemWidth: model.get('emptyItemWidth'),\n totalWidth: 0,\n renderList: []\n };\n\n this._prepare(targetNode, layoutParam, textStyleModel);\n\n this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\n\n layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n },\n\n /**\n * Prepare render list and total width\n * @private\n */\n _prepare: function (targetNode, layoutParam, textStyleModel) {\n for (var node = targetNode; node; node = node.parentNode) {\n var text = node.getModel().get('name');\n var textRect = textStyleModel.getTextRect(text);\n var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n layoutParam.totalWidth += itemWidth + ITEM_GAP;\n layoutParam.renderList.push({\n node: node,\n text: text,\n width: itemWidth\n });\n }\n },\n\n /**\n * @private\n */\n _renderContent: function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\n // Start rendering.\n var lastX = 0;\n var emptyItemWidth = layoutParam.emptyItemWidth;\n var height = seriesModel.get('breadcrumb.height');\n var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n var totalWidth = layoutParam.totalWidth;\n var renderList = layoutParam.renderList;\n\n for (var i = renderList.length - 1; i >= 0; i--) {\n var item = renderList[i];\n var itemNode = item.node;\n var itemWidth = item.width;\n var text = item.text; // Hdie text and shorten width if necessary.\n\n if (totalWidth > availableSize.width) {\n totalWidth -= itemWidth - emptyItemWidth;\n itemWidth = emptyItemWidth;\n text = null;\n }\n\n var el = new graphic.Polygon({\n shape: {\n points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n },\n style: zrUtil.defaults(normalStyleModel.getItemStyle(), {\n lineJoin: 'bevel',\n text: text,\n textFill: textStyleModel.getTextColor(),\n textFont: textStyleModel.getFont()\n }),\n z: 10,\n onclick: zrUtil.curry(onSelect, itemNode)\n });\n this.group.add(el);\n packEventData(el, seriesModel, itemNode);\n lastX += itemWidth + ITEM_GAP;\n }\n },\n\n /**\n * @override\n */\n remove: function () {\n this.group.removeAll();\n }\n};\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n !head && points.push([x, y + itemHeight / 2]);\n return points;\n} // Package custom mouse event.\n\n\nfunction packEventData(el, seriesModel, itemNode) {\n el.eventData = {\n componentType: 'series',\n componentSubType: 'treemap',\n componentIndex: seriesModel.componentIndex,\n seriesIndex: seriesModel.componentIndex,\n seriesName: seriesModel.name,\n seriesType: 'treemap',\n selfType: 'breadcrumb',\n // Distinguish with click event on treemap node.\n nodeData: {\n dataIndex: itemNode && itemNode.dataIndex,\n name: itemNode && itemNode.name\n },\n treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n };\n}\n\nvar _default = Breadcrumb;\nmodule.exports = _default;\n\n/***/ }),\n/* 1156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar SeriesModel = __webpack_require__(30);\n\nvar Tree = __webpack_require__(262);\n\nvar Model = __webpack_require__(31);\n\nvar _format = __webpack_require__(19);\n\nvar encodeHTML = _format.encodeHTML;\nvar addCommas = _format.addCommas;\n\nvar _treeHelper = __webpack_require__(99);\n\nvar wrapTreePathInfo = _treeHelper.wrapTreePathInfo;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.treemap',\n layoutMode: 'box',\n dependencies: ['grid', 'polar'],\n\n /**\n * @type {module:echarts/data/Tree~Node}\n */\n _viewRoot: null,\n defaultOption: {\n // Disable progressive rendering\n progressive: 0,\n hoverLayerThreshold: Infinity,\n // center: ['50%', '50%'], // not supported in ec3.\n // size: ['80%', '80%'], // deprecated, compatible with ec2.\n left: 'center',\n top: 'middle',\n right: null,\n bottom: null,\n width: '80%',\n height: '80%',\n sort: true,\n // Can be null or false or true\n // (order by desc default, asc not supported yet (strange effect))\n clipWindow: 'origin',\n // Size of clipped window when zooming. 'origin' or 'fullscreen'\n squareRatio: 0.5 * (1 + Math.sqrt(5)),\n // golden ratio\n leafDepth: null,\n // Nodes on depth from root are regarded as leaves.\n // Count from zero (zero represents only view root).\n drillDownIcon: '▶',\n // Use html character temporarily because it is complicated\n // to align specialized icon. ▷▶❒❐▼✚\n zoomToNodeRatio: 0.32 * 0.32,\n // Be effective when using zoomToNode. Specify the proportion of the\n // target node area in the view area.\n roam: true,\n // true, false, 'scale' or 'zoom', 'move'.\n nodeClick: 'zoomToNode',\n // Leaf node click behaviour: 'zoomToNode', 'link', false.\n // If leafDepth is set and clicking a node which has children but\n // be on left depth, the behaviour would be changing root. Otherwise\n // use behavious defined above.\n animation: true,\n animationDurationUpdate: 900,\n animationEasing: 'quinticInOut',\n breadcrumb: {\n show: true,\n height: 22,\n left: 'center',\n top: 'bottom',\n // right\n // bottom\n emptyItemWidth: 25,\n // Width of empty node.\n itemStyle: {\n color: 'rgba(0,0,0,0.7)',\n //'#5793f3',\n borderColor: 'rgba(255,255,255,0.7)',\n borderWidth: 1,\n shadowColor: 'rgba(150,150,150,1)',\n shadowBlur: 3,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n textStyle: {\n color: '#fff'\n }\n },\n emphasis: {\n textStyle: {}\n }\n },\n label: {\n show: true,\n // Do not use textDistance, for ellipsis rect just the same as treemap node rect.\n distance: 0,\n padding: 5,\n position: 'inside',\n // Can be [5, '5%'] or position stirng like 'insideTopLeft', ...\n // formatter: null,\n color: '#fff',\n ellipsis: true // align\n // verticalAlign\n\n },\n upperLabel: {\n // Label when node is parent.\n show: false,\n position: [0, '50%'],\n height: 20,\n // formatter: null,\n color: '#fff',\n ellipsis: true,\n // align: null,\n verticalAlign: 'middle'\n },\n itemStyle: {\n color: null,\n // Can be 'none' if not necessary.\n colorAlpha: null,\n // Can be 'none' if not necessary.\n colorSaturation: null,\n // Can be 'none' if not necessary.\n borderWidth: 0,\n gapWidth: 0,\n borderColor: '#fff',\n borderColorSaturation: null // If specified, borderColor will be ineffective, and the\n // border color is evaluated by color of current node and\n // borderColorSaturation.\n\n },\n emphasis: {\n upperLabel: {\n show: true,\n position: [0, '50%'],\n color: '#fff',\n ellipsis: true,\n verticalAlign: 'middle'\n }\n },\n visualDimension: 0,\n // Can be 0, 1, 2, 3.\n visualMin: null,\n visualMax: null,\n color: [],\n // + treemapSeries.color should not be modified. Please only modified\n // level[n].color (if necessary).\n // + Specify color list of each level. level[0].color would be global\n // color list if not specified. (see method `setDefault`).\n // + But set as a empty array to forbid fetch color from global palette\n // when using nodeModel.get('color'), otherwise nodes on deep level\n // will always has color palette set and are not able to inherit color\n // from parent node.\n // + TreemapSeries.color can not be set as 'none', otherwise effect\n // legend color fetching (see seriesColor.js).\n colorAlpha: null,\n // Array. Specify color alpha range of each level, like [0.2, 0.8]\n colorSaturation: null,\n // Array. Specify color saturation of each level, like [0.2, 0.5]\n colorMappingBy: 'index',\n // 'value' or 'index' or 'id'.\n visibleMin: 10,\n // If area less than this threshold (unit: pixel^2), node will not\n // be rendered. Only works when sort is 'asc' or 'desc'.\n childrenVisibleMin: null,\n // If area of a node less than this threshold (unit: pixel^2),\n // grandchildren will not show.\n // Why grandchildren? If not grandchildren but children,\n // some siblings show children and some not,\n // the appearance may be mess and not consistent,\n levels: [] // Each item: {\n // visibleMin, itemStyle, visualDimension, label\n // }\n // data: {\n // value: [],\n // children: [],\n // link: 'http://xxx.xxx.xxx',\n // target: 'blank' or 'self'\n // }\n\n },\n\n /**\n * @override\n */\n getInitialData: function (option, ecModel) {\n // Create a virtual root.\n var root = {\n name: option.name,\n children: option.data\n };\n completeTreeValue(root);\n var levels = option.levels || [];\n levels = option.levels = setDefault(levels, ecModel);\n var treeOption = {};\n treeOption.levels = levels; // Make sure always a new tree is created when setOption,\n // in TreemapView, we check whether oldTree === newTree\n // to choose mappings approach among old shapes and new shapes.\n\n return Tree.createTree(root, this, treeOption).data;\n },\n optionUpdated: function () {\n this.resetViewRoot();\n },\n\n /**\n * @override\n * @param {number} dataIndex\n * @param {boolean} [mutipleSeries=false]\n */\n formatTooltip: function (dataIndex) {\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var formattedValue = zrUtil.isArray(value) ? addCommas(value[0]) : addCommas(value);\n var name = data.getName(dataIndex);\n return encodeHTML(name + ': ' + formattedValue);\n },\n\n /**\n * Add tree path to tooltip param\n *\n * @override\n * @param {number} dataIndex\n * @return {Object}\n */\n getDataParams: function (dataIndex) {\n var params = SeriesModel.prototype.getDataParams.apply(this, arguments);\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n params.treePathInfo = wrapTreePathInfo(node, this);\n return params;\n },\n\n /**\n * @public\n * @param {Object} layoutInfo {\n * x: containerGroup x\n * y: containerGroup y\n * width: containerGroup width\n * height: containerGroup height\n * }\n */\n setLayoutInfo: function (layoutInfo) {\n /**\n * @readOnly\n * @type {Object}\n */\n this.layoutInfo = this.layoutInfo || {};\n zrUtil.extend(this.layoutInfo, layoutInfo);\n },\n\n /**\n * @param {string} id\n * @return {number} index\n */\n mapIdToIndex: function (id) {\n // A feature is implemented:\n // index is monotone increasing with the sequence of\n // input id at the first time.\n // This feature can make sure that each data item and its\n // mapped color have the same index between data list and\n // color list at the beginning, which is useful for user\n // to adjust data-color mapping.\n\n /**\n * @private\n * @type {Object}\n */\n var idIndexMap = this._idIndexMap;\n\n if (!idIndexMap) {\n idIndexMap = this._idIndexMap = zrUtil.createHashMap();\n /**\n * @private\n * @type {number}\n */\n\n this._idIndexMapCount = 0;\n }\n\n var index = idIndexMap.get(id);\n\n if (index == null) {\n idIndexMap.set(id, index = this._idIndexMapCount++);\n }\n\n return index;\n },\n getViewRoot: function () {\n return this._viewRoot;\n },\n\n /**\n * @param {module:echarts/data/Tree~Node} [viewRoot]\n */\n resetViewRoot: function (viewRoot) {\n viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n var root = this.getRawData().tree.root;\n\n if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n this._viewRoot = root;\n }\n }\n});\n/**\n * @param {Object} dataNode\n */\n\n\nfunction completeTreeValue(dataNode) {\n // Postorder travel tree.\n // If value of none-leaf node is not set,\n // calculate it by suming up the value of all children.\n var sum = 0;\n zrUtil.each(dataNode.children, function (child) {\n completeTreeValue(child);\n var childValue = child.value;\n zrUtil.isArray(childValue) && (childValue = childValue[0]);\n sum += childValue;\n });\n var thisValue = dataNode.value;\n\n if (zrUtil.isArray(thisValue)) {\n thisValue = thisValue[0];\n }\n\n if (thisValue == null || isNaN(thisValue)) {\n thisValue = sum;\n } // Value should not less than 0.\n\n\n if (thisValue < 0) {\n thisValue = 0;\n }\n\n zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n/**\n * set default to level configuration\n */\n\n\nfunction setDefault(levels, ecModel) {\n var globalColorList = ecModel.get('color');\n\n if (!globalColorList) {\n return;\n }\n\n levels = levels || [];\n var hasColorDefine;\n zrUtil.each(levels, function (levelDefine) {\n var model = new Model(levelDefine);\n var modelColor = model.get('color');\n\n if (model.get('itemStyle.color') || modelColor && modelColor !== 'none') {\n hasColorDefine = true;\n }\n });\n\n if (!hasColorDefine) {\n var level0 = levels[0] || (levels[0] = {});\n level0.color = globalColorList.slice();\n }\n\n return levels;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar DataDiffer = __webpack_require__(102);\n\nvar helper = __webpack_require__(99);\n\nvar Breadcrumb = __webpack_require__(1155);\n\nvar RoamController = __webpack_require__(143);\n\nvar BoundingRect = __webpack_require__(21);\n\nvar matrix = __webpack_require__(36);\n\nvar animationUtil = __webpack_require__(1307);\n\nvar makeStyleMapper = __webpack_require__(119);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar Group = graphic.Group;\nvar Rect = graphic.Rect;\nvar each = zrUtil.each;\nvar DRAG_THRESHOLD = 3;\nvar PATH_LABEL_NOAMAL = ['label'];\nvar PATH_LABEL_EMPHASIS = ['emphasis', 'label'];\nvar PATH_UPPERLABEL_NORMAL = ['upperLabel'];\nvar PATH_UPPERLABEL_EMPHASIS = ['emphasis', 'upperLabel'];\nvar Z_BASE = 10; // Should bigger than every z.\n\nvar Z_BG = 1;\nvar Z_CONTENT = 2;\nvar getItemStyleEmphasis = makeStyleMapper([['fill', 'color'], // `borderColor` and `borderWidth` has been occupied,\n// so use `stroke` to indicate the stroke of the rect.\n['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\n\nvar getItemStyleNormal = function (model) {\n // Normal style props should include emphasis style props.\n var itemStyle = getItemStyleEmphasis(model); // Clear styles set by emphasis.\n\n itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\n return itemStyle;\n};\n\nvar _default = echarts.extendChartView({\n type: 'treemap',\n\n /**\n * @override\n */\n init: function (o, api) {\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n this._containerGroup;\n /**\n * @private\n * @type {Object.>}\n */\n\n this._storage = createStorage();\n /**\n * @private\n * @type {module:echarts/data/Tree}\n */\n\n this._oldTree;\n /**\n * @private\n * @type {module:echarts/chart/treemap/Breadcrumb}\n */\n\n this._breadcrumb;\n /**\n * @private\n * @type {module:echarts/component/helper/RoamController}\n */\n\n this._controller;\n /**\n * 'ready', 'animating'\n * @private\n */\n\n this._state = 'ready';\n },\n\n /**\n * @override\n */\n render: function (seriesModel, ecModel, api, payload) {\n var models = ecModel.findComponents({\n mainType: 'series',\n subType: 'treemap',\n query: payload\n });\n\n if (zrUtil.indexOf(models, seriesModel) < 0) {\n return;\n }\n\n this.seriesModel = seriesModel;\n this.api = api;\n this.ecModel = ecModel;\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\n var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n var payloadType = payload && payload.type;\n var layoutInfo = seriesModel.layoutInfo;\n var isInit = !this._oldTree;\n var thisStorage = this._storage; // Mark new root when action is treemapRootToNode.\n\n var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? {\n rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\n direction: payload.direction\n } : null;\n\n var containerGroup = this._giveContainerGroup(layoutInfo);\n\n var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\n\n !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();\n\n this._resetController(api);\n\n this._renderBreadcrumb(seriesModel, api, targetInfo);\n },\n\n /**\n * @private\n */\n _giveContainerGroup: function (layoutInfo) {\n var containerGroup = this._containerGroup;\n\n if (!containerGroup) {\n // FIXME\n // 加一层containerGroup是为了clip,但是现在clip功能并没有实现。\n containerGroup = this._containerGroup = new Group();\n\n this._initEvents(containerGroup);\n\n this.group.add(containerGroup);\n }\n\n containerGroup.attr('position', [layoutInfo.x, layoutInfo.y]);\n return containerGroup;\n },\n\n /**\n * @private\n */\n _doRender: function (containerGroup, seriesModel, reRoot) {\n var thisTree = seriesModel.getData().tree;\n var oldTree = this._oldTree; // Clear last shape records.\n\n var lastsForAnimation = createStorage();\n var thisStorage = createStorage();\n var oldStorage = this._storage;\n var willInvisibleEls = [];\n var doRenderNode = zrUtil.curry(renderNode, seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls); // Notice: when thisTree and oldTree are the same tree (see list.cloneShallow),\n // the oldTree is actually losted, so we can not find all of the old graphic\n // elements from tree. So we use this stragegy: make element storage, move\n // from old storage to new storage, clear old storage.\n\n dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0); // Process all removing.\n\n var willDeleteEls = clearStorage(oldStorage);\n this._oldTree = thisTree;\n this._storage = thisStorage;\n return {\n lastsForAnimation: lastsForAnimation,\n willDeleteEls: willDeleteEls,\n renderFinally: renderFinally\n };\n\n function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\n // When 'render' is triggered by action,\n // 'this' and 'old' may be the same tree,\n // we use rawIndex in that case.\n if (sameTree) {\n oldViewChildren = thisViewChildren;\n each(thisViewChildren, function (child, index) {\n !child.isRemoved() && processNode(index, index);\n });\n } // Diff hierarchically (diff only in each subtree, but not whole).\n // because, consistency of view is important.\n else {\n new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n }\n\n function getKey(node) {\n // Identify by name or raw index.\n return node.getId();\n }\n\n function processNode(newIndex, oldIndex) {\n var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\n var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\n var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\n group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\n }\n }\n\n function clearStorage(storage) {\n var willDeleteEls = createStorage();\n storage && each(storage, function (store, storageName) {\n var delEls = willDeleteEls[storageName];\n each(store, function (el) {\n el && (delEls.push(el), el.__tmWillDelete = 1);\n });\n });\n return willDeleteEls;\n }\n\n function renderFinally() {\n each(willDeleteEls, function (els) {\n each(els, function (el) {\n el.parent && el.parent.remove(el);\n });\n });\n each(willInvisibleEls, function (el) {\n el.invisible = true; // Setting invisible is for optimizing, so no need to set dirty,\n // just mark as invisible.\n\n el.dirty();\n });\n }\n },\n\n /**\n * @private\n */\n _doAnimation: function (containerGroup, renderResult, seriesModel, reRoot) {\n if (!seriesModel.get('animation')) {\n return;\n }\n\n var duration = seriesModel.get('animationDurationUpdate');\n var easing = seriesModel.get('animationEasing');\n var animationWrap = animationUtil.createWrap(); // Make delete animations.\n\n each(renderResult.willDeleteEls, function (store, storageName) {\n each(store, function (el, rawIndex) {\n if (el.invisible) {\n return;\n }\n\n var parent = el.parent; // Always has parent, and parent is nodeGroup.\n\n var target;\n\n if (reRoot && reRoot.direction === 'drillDown') {\n target = parent === reRoot.rootNodeGroup // This is the content element of view root.\n // Only `content` will enter this branch, because\n // `background` and `nodeGroup` will not be deleted.\n ? {\n shape: {\n x: 0,\n y: 0,\n width: parent.__tmNodeWidth,\n height: parent.__tmNodeHeight\n },\n style: {\n opacity: 0\n } // Others.\n\n } : {\n style: {\n opacity: 0\n }\n };\n } else {\n var targetX = 0;\n var targetY = 0;\n\n if (!parent.__tmWillDelete) {\n // Let node animate to right-bottom corner, cooperating with fadeout,\n // which is appropriate for user understanding.\n // Divided by 2 for reRoot rolling up effect.\n targetX = parent.__tmNodeWidth / 2;\n targetY = parent.__tmNodeHeight / 2;\n }\n\n target = storageName === 'nodeGroup' ? {\n position: [targetX, targetY],\n style: {\n opacity: 0\n }\n } : {\n shape: {\n x: targetX,\n y: targetY,\n width: 0,\n height: 0\n },\n style: {\n opacity: 0\n }\n };\n }\n\n target && animationWrap.add(el, target, duration, easing);\n });\n }); // Make other animations\n\n each(this._storage, function (store, storageName) {\n each(store, function (el, rawIndex) {\n var last = renderResult.lastsForAnimation[storageName][rawIndex];\n var target = {};\n\n if (!last) {\n return;\n }\n\n if (storageName === 'nodeGroup') {\n if (last.old) {\n target.position = el.position.slice();\n el.attr('position', last.old);\n }\n } else {\n if (last.old) {\n target.shape = zrUtil.extend({}, el.shape);\n el.setShape(last.old);\n }\n\n if (last.fadein) {\n el.setStyle('opacity', 0);\n target.style = {\n opacity: 1\n };\n } // When animation is stopped for succedent animation starting,\n // el.style.opacity might not be 1\n else if (el.style.opacity !== 1) {\n target.style = {\n opacity: 1\n };\n }\n }\n\n animationWrap.add(el, target, duration, easing);\n });\n }, this);\n this._state = 'animating';\n animationWrap.done(bind(function () {\n this._state = 'ready';\n renderResult.renderFinally();\n }, this)).start();\n },\n\n /**\n * @private\n */\n _resetController: function (api) {\n var controller = this._controller; // Init controller.\n\n if (!controller) {\n controller = this._controller = new RoamController(api.getZr());\n controller.enable(this.seriesModel.get('roam'));\n controller.on('pan', bind(this._onPan, this));\n controller.on('zoom', bind(this._onZoom, this));\n }\n\n var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\n controller.setPointerChecker(function (e, x, y) {\n return rect.contain(x, y);\n });\n },\n\n /**\n * @private\n */\n _clearController: function () {\n var controller = this._controller;\n\n if (controller) {\n controller.dispose();\n controller = null;\n }\n },\n\n /**\n * @private\n */\n _onPan: function (e) {\n if (this._state !== 'animating' && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\n // These param must not be cached.\n var root = this.seriesModel.getData().tree.root;\n\n if (!root) {\n return;\n }\n\n var rootLayout = root.getLayout();\n\n if (!rootLayout) {\n return;\n }\n\n this.api.dispatchAction({\n type: 'treemapMove',\n from: this.uid,\n seriesId: this.seriesModel.id,\n rootRect: {\n x: rootLayout.x + e.dx,\n y: rootLayout.y + e.dy,\n width: rootLayout.width,\n height: rootLayout.height\n }\n });\n }\n },\n\n /**\n * @private\n */\n _onZoom: function (e) {\n var mouseX = e.originX;\n var mouseY = e.originY;\n\n if (this._state !== 'animating') {\n // These param must not be cached.\n var root = this.seriesModel.getData().tree.root;\n\n if (!root) {\n return;\n }\n\n var rootLayout = root.getLayout();\n\n if (!rootLayout) {\n return;\n }\n\n var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\n var layoutInfo = this.seriesModel.layoutInfo; // Transform mouse coord from global to containerGroup.\n\n mouseX -= layoutInfo.x;\n mouseY -= layoutInfo.y; // Scale root bounding rect.\n\n var m = matrix.create();\n matrix.translate(m, m, [-mouseX, -mouseY]);\n matrix.scale(m, m, [e.scale, e.scale]);\n matrix.translate(m, m, [mouseX, mouseY]);\n rect.applyTransform(m);\n this.api.dispatchAction({\n type: 'treemapRender',\n from: this.uid,\n seriesId: this.seriesModel.id,\n rootRect: {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n }\n });\n }\n },\n\n /**\n * @private\n */\n _initEvents: function (containerGroup) {\n containerGroup.on('click', function (e) {\n if (this._state !== 'ready') {\n return;\n }\n\n var nodeClick = this.seriesModel.get('nodeClick', true);\n\n if (!nodeClick) {\n return;\n }\n\n var targetInfo = this.findTarget(e.offsetX, e.offsetY);\n\n if (!targetInfo) {\n return;\n }\n\n var node = targetInfo.node;\n\n if (node.getLayout().isLeafRoot) {\n this._rootToNode(targetInfo);\n } else {\n if (nodeClick === 'zoomToNode') {\n this._zoomToNode(targetInfo);\n } else if (nodeClick === 'link') {\n var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\n var link = itemModel.get('link', true);\n var linkTarget = itemModel.get('target', true) || 'blank';\n link && window.open(link, linkTarget);\n }\n }\n }, this);\n },\n\n /**\n * @private\n */\n _renderBreadcrumb: function (seriesModel, api, targetInfo) {\n if (!targetInfo) {\n targetInfo = seriesModel.get('leafDepth', true) != null ? {\n node: seriesModel.getViewRoot() // FIXME\n // better way?\n // Find breadcrumb tail on center of containerGroup.\n\n } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\n\n if (!targetInfo) {\n targetInfo = {\n node: seriesModel.getData().tree.root\n };\n }\n }\n\n (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, bind(onSelect, this));\n\n function onSelect(node) {\n if (this._state !== 'animating') {\n helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? this._rootToNode({\n node: node\n }) : this._zoomToNode({\n node: node\n });\n }\n }\n },\n\n /**\n * @override\n */\n remove: function () {\n this._clearController();\n\n this._containerGroup && this._containerGroup.removeAll();\n this._storage = createStorage();\n this._state = 'ready';\n this._breadcrumb && this._breadcrumb.remove();\n },\n dispose: function () {\n this._clearController();\n },\n\n /**\n * @private\n */\n _zoomToNode: function (targetInfo) {\n this.api.dispatchAction({\n type: 'treemapZoomToNode',\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: targetInfo.node\n });\n },\n\n /**\n * @private\n */\n _rootToNode: function (targetInfo) {\n this.api.dispatchAction({\n type: 'treemapRootToNode',\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: targetInfo.node\n });\n },\n\n /**\n * @public\n * @param {number} x Global coord x.\n * @param {number} y Global coord y.\n * @return {Object} info If not found, return undefined;\n * @return {number} info.node Target node.\n * @return {number} info.offsetX x refer to target node.\n * @return {number} info.offsetY y refer to target node.\n */\n findTarget: function (x, y) {\n var targetInfo;\n var viewRoot = this.seriesModel.getViewRoot();\n viewRoot.eachNode({\n attr: 'viewChildren',\n order: 'preorder'\n }, function (node) {\n var bgEl = this._storage.background[node.getRawIndex()]; // If invisible, there might be no element.\n\n\n if (bgEl) {\n var point = bgEl.transformCoordToLocal(x, y);\n var shape = bgEl.shape; // For performance consideration, dont use 'getBoundingRect'.\n\n if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {\n targetInfo = {\n node: node,\n offsetX: point[0],\n offsetY: point[1]\n };\n } else {\n return false; // Suppress visit subtree.\n }\n }\n }, this);\n return targetInfo;\n }\n});\n/**\n * @inner\n */\n\n\nfunction createStorage() {\n return {\n nodeGroup: [],\n background: [],\n content: []\n };\n}\n/**\n * @inner\n * @return Return undefined means do not travel further.\n */\n\n\nfunction renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\n // Whether under viewRoot.\n if (!thisNode) {\n // Deleting nodes will be performed finally. This method just find\n // element from old storage, or create new element, set them to new\n // storage, and set styles.\n return;\n } // -------------------------------------------------------------------\n // Start of closure variables available in \"Procedures in renderNode\".\n\n\n var thisLayout = thisNode.getLayout();\n\n if (!thisLayout || !thisLayout.isInView) {\n return;\n }\n\n var thisWidth = thisLayout.width;\n var thisHeight = thisLayout.height;\n var borderWidth = thisLayout.borderWidth;\n var thisInvisible = thisLayout.invisible;\n var thisRawIndex = thisNode.getRawIndex();\n var oldRawIndex = oldNode && oldNode.getRawIndex();\n var thisViewChildren = thisNode.viewChildren;\n var upperHeight = thisLayout.upperHeight;\n var isParent = thisViewChildren && thisViewChildren.length;\n var itemStyleNormalModel = thisNode.getModel('itemStyle');\n var itemStyleEmphasisModel = thisNode.getModel('emphasis.itemStyle'); // End of closure ariables available in \"Procedures in renderNode\".\n // -----------------------------------------------------------------\n // Node group\n\n var group = giveGraphic('nodeGroup', Group);\n\n if (!group) {\n return;\n }\n\n parentGroup.add(group); // x,y are not set when el is above view root.\n\n group.attr('position', [thisLayout.x || 0, thisLayout.y || 0]);\n group.__tmNodeWidth = thisWidth;\n group.__tmNodeHeight = thisHeight;\n\n if (thisLayout.isAboveViewRoot) {\n return group;\n } // Background\n\n\n var bg = giveGraphic('background', Rect, depth, Z_BG);\n bg && renderBackground(group, bg, isParent && thisLayout.upperHeight); // No children, render content.\n\n if (!isParent) {\n var content = giveGraphic('content', Rect, depth, Z_CONTENT);\n content && renderContent(group, content);\n }\n\n return group; // ----------------------------\n // | Procedures in renderNode |\n // ----------------------------\n\n function renderBackground(group, bg, useUpperLabel) {\n // For tooltip.\n bg.dataIndex = thisNode.dataIndex;\n bg.seriesIndex = seriesModel.seriesIndex;\n bg.setShape({\n x: 0,\n y: 0,\n width: thisWidth,\n height: thisHeight\n });\n var visualBorderColor = thisNode.getVisual('borderColor', true);\n var emphasisBorderColor = itemStyleEmphasisModel.get('borderColor');\n updateStyle(bg, function () {\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n normalStyle.fill = visualBorderColor;\n var emphasisStyle = getItemStyleEmphasis(itemStyleEmphasisModel);\n emphasisStyle.fill = emphasisBorderColor;\n\n if (useUpperLabel) {\n var upperLabelWidth = thisWidth - 2 * borderWidth;\n prepareText(normalStyle, emphasisStyle, visualBorderColor, upperLabelWidth, upperHeight, {\n x: borderWidth,\n y: 0,\n width: upperLabelWidth,\n height: upperHeight\n });\n } // For old bg.\n else {\n normalStyle.text = emphasisStyle.text = null;\n }\n\n bg.setStyle(normalStyle);\n graphic.setHoverStyle(bg, emphasisStyle);\n });\n group.add(bg);\n }\n\n function renderContent(group, content) {\n // For tooltip.\n content.dataIndex = thisNode.dataIndex;\n content.seriesIndex = seriesModel.seriesIndex;\n var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\n var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\n content.culling = true;\n content.setShape({\n x: borderWidth,\n y: borderWidth,\n width: contentWidth,\n height: contentHeight\n });\n var visualColor = thisNode.getVisual('color', true);\n updateStyle(content, function () {\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n normalStyle.fill = visualColor;\n var emphasisStyle = getItemStyleEmphasis(itemStyleEmphasisModel);\n prepareText(normalStyle, emphasisStyle, visualColor, contentWidth, contentHeight);\n content.setStyle(normalStyle);\n graphic.setHoverStyle(content, emphasisStyle);\n });\n group.add(content);\n }\n\n function updateStyle(element, cb) {\n if (!thisInvisible) {\n // If invisible, do not set visual, otherwise the element will\n // change immediately before animation. We think it is OK to\n // remain its origin color when moving out of the view window.\n cb();\n\n if (!element.__tmWillVisible) {\n element.invisible = false;\n }\n } else {\n // Delay invisible setting utill animation finished,\n // avoid element vanish suddenly before animation.\n !element.invisible && willInvisibleEls.push(element);\n }\n }\n\n function prepareText(normalStyle, emphasisStyle, visualColor, width, height, upperLabelRect) {\n var nodeModel = thisNode.getModel();\n var text = zrUtil.retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, upperLabelRect ? 'upperLabel' : 'label'), nodeModel.get('name'));\n\n if (!upperLabelRect && thisLayout.isLeafRoot) {\n var iconChar = seriesModel.get('drillDownIcon', true);\n text = iconChar ? iconChar + ' ' + text : text;\n }\n\n var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\n var emphasisLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_EMPHASIS : PATH_LABEL_EMPHASIS);\n var isShow = normalLabelModel.getShallow('show');\n graphic.setLabelStyle(normalStyle, emphasisStyle, normalLabelModel, emphasisLabelModel, {\n defaultText: isShow ? text : null,\n autoColor: visualColor,\n isRectText: true\n });\n upperLabelRect && (normalStyle.textRect = zrUtil.clone(upperLabelRect));\n normalStyle.truncate = isShow && normalLabelModel.get('ellipsis') ? {\n outerWidth: width,\n outerHeight: height,\n minChar: 2\n } : null;\n }\n\n function giveGraphic(storageName, Ctor, depth, z) {\n var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\n var lasts = lastsForAnimation[storageName];\n\n if (element) {\n // Remove from oldStorage\n oldStorage[storageName][oldRawIndex] = null;\n prepareAnimationWhenHasOld(lasts, element, storageName);\n } // If invisible and no old element, do not create new element (for optimizing).\n else if (!thisInvisible) {\n element = new Ctor({\n z: calculateZ(depth, z)\n });\n element.__tmDepth = depth;\n element.__tmStorageName = storageName;\n prepareAnimationWhenNoOld(lasts, element, storageName);\n } // Set to thisStorage\n\n\n return thisStorage[storageName][thisRawIndex] = element;\n }\n\n function prepareAnimationWhenHasOld(lasts, element, storageName) {\n var lastCfg = lasts[thisRawIndex] = {};\n lastCfg.old = storageName === 'nodeGroup' ? element.position.slice() : zrUtil.extend({}, element.shape);\n } // If a element is new, we need to find the animation start point carefully,\n // otherwise it will looks strange when 'zoomToNode'.\n\n\n function prepareAnimationWhenNoOld(lasts, element, storageName) {\n var lastCfg = lasts[thisRawIndex] = {};\n var parentNode = thisNode.parentNode;\n\n if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\n var parentOldX = 0;\n var parentOldY = 0; // New nodes appear from right-bottom corner in 'zoomToNode' animation.\n // For convenience, get old bounding rect from background.\n\n var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\n\n if (!reRoot && parentOldBg && parentOldBg.old) {\n parentOldX = parentOldBg.old.width;\n parentOldY = parentOldBg.old.height;\n } // When no parent old shape found, its parent is new too,\n // so we can just use {x:0, y:0}.\n\n\n lastCfg.old = storageName === 'nodeGroup' ? [0, parentOldY] : {\n x: parentOldX,\n y: parentOldY,\n width: 0,\n height: 0\n };\n } // Fade in, user can be aware that these nodes are new.\n\n\n lastCfg.fadein = storageName !== 'nodeGroup';\n }\n} // We can not set all backgroud with the same z, Because the behaviour of\n// drill down and roll up differ background creation sequence from tree\n// hierarchy sequence, which cause that lowser background element overlap\n// upper ones. So we calculate z based on depth.\n// Moreover, we try to shrink down z interval to [0, 1] to avoid that\n// treemap with large z overlaps other components.\n\n\nfunction calculateZ(depth, zInLevel) {\n var zb = depth * Z_BASE + zInLevel;\n return (zb - 1) / zb;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar helper = __webpack_require__(99);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Treemap action\n */\nvar noop = function () {};\n\nvar actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];\n\nfor (var i = 0; i < actionTypes.length; i++) {\n echarts.registerAction({\n type: actionTypes[i],\n update: 'updateView'\n }, noop);\n}\n\necharts.registerAction({\n type: 'treemapRootToNode',\n update: 'updateView'\n}, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'treemap',\n query: payload\n }, handleRootToNode);\n\n function handleRootToNode(model, index) {\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\n var targetInfo = helper.retrieveTargetInfo(payload, types, model);\n\n if (targetInfo) {\n var originViewRoot = model.getViewRoot();\n\n if (originViewRoot) {\n payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n }\n\n model.resetViewRoot(targetInfo.node);\n }\n }\n});\n\n/***/ }),\n/* 1159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar BoundingRect = __webpack_require__(21);\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\nvar MAX_SAFE_INTEGER = _number.MAX_SAFE_INTEGER;\n\nvar layout = __webpack_require__(16);\n\nvar helper = __webpack_require__(99);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* The treemap layout implementation was originally copied from\n* \"d3.js\" with some modifications made for this project.\n* (See more details in the comment of the method \"squarify\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar retrieveValue = zrUtil.retrieve;\nvar each = zrUtil.each;\nvar PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\nvar PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\nvar PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\nvar PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\n/**\n * @public\n */\n\nvar _default = {\n seriesType: 'treemap',\n reset: function (seriesModel, ecModel, api, payload) {\n // Layout result in each node:\n // {x, y, width, height, area, borderWidth}\n var ecWidth = api.getWidth();\n var ecHeight = api.getHeight();\n var seriesOption = seriesModel.option;\n var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n var size = seriesOption.size || []; // Compatible with ec2.\n\n var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth);\n var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight); // Fetch payload info.\n\n var payloadType = payload && payload.type;\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\n var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null;\n var viewRoot = seriesModel.getViewRoot();\n var viewAbovePath = helper.getPathToRoot(viewRoot);\n\n if (payloadType !== 'treemapMove') {\n var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];\n var sort = seriesOption.sort;\n\n if (sort && sort !== 'asc' && sort !== 'desc') {\n sort = 'desc';\n }\n\n var options = {\n squareRatio: seriesOption.squareRatio,\n sort: sort,\n leafDepth: seriesOption.leafDepth\n }; // layout should be cleared because using updateView but not update.\n\n viewRoot.hostTree.clearLayouts(); // TODO\n // optimize: if out of view clip, do not layout.\n // But take care that if do not render node out of view clip,\n // how to calculate start po\n\n var viewRootLayout = {\n x: 0,\n y: 0,\n width: rootSize[0],\n height: rootSize[1],\n area: rootSize[0] * rootSize[1]\n };\n viewRoot.setLayout(viewRootLayout);\n squarify(viewRoot, options, false, 0); // Supplement layout.\n\n var viewRootLayout = viewRoot.getLayout();\n each(viewAbovePath, function (node, index) {\n var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\n node.setLayout(zrUtil.extend({\n dataExtent: [childValue, childValue],\n borderWidth: 0,\n upperHeight: 0\n }, viewRootLayout));\n });\n }\n\n var treeRoot = seriesModel.getData().tree.root;\n treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\n seriesModel.setLayoutInfo(layoutInfo); // FIXME\n // 现在没有clip功能,暂时取ec高宽。\n\n prunning(treeRoot, // Transform to base element coordinate system.\n new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\n }\n};\n/**\n * Layout treemap with squarify algorithm.\n * The original presentation of this algorithm\n * was made by Mark Bruls, Kees Huizing, and Jarke J. van Wijk\n * .\n * The implementation of this algorithm was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * @protected\n * @param {module:echarts/data/Tree~TreeNode} node\n * @param {Object} options\n * @param {string} options.sort 'asc' or 'desc'\n * @param {number} options.squareRatio\n * @param {boolean} hideChildren\n * @param {number} depth\n */\n\nfunction squarify(node, options, hideChildren, depth) {\n var width;\n var height;\n\n if (node.isRemoved()) {\n return;\n }\n\n var thisLayout = node.getLayout();\n width = thisLayout.width;\n height = thisLayout.height; // Considering border and gap\n\n var nodeModel = node.getModel();\n var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\n var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\n var upperLabelHeight = getUpperLabelHeight(nodeModel);\n var upperHeight = Math.max(borderWidth, upperLabelHeight);\n var layoutOffset = borderWidth - halfGapWidth;\n var layoutOffsetUpper = upperHeight - halfGapWidth;\n var nodeModel = node.getModel();\n node.setLayout({\n borderWidth: borderWidth,\n upperHeight: upperHeight,\n upperLabelHeight: upperLabelHeight\n }, true);\n width = mathMax(width - 2 * layoutOffset, 0);\n height = mathMax(height - layoutOffset - layoutOffsetUpper, 0);\n var totalArea = width * height;\n var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\n\n if (!viewChildren.length) {\n return;\n }\n\n var rect = {\n x: layoutOffset,\n y: layoutOffsetUpper,\n width: width,\n height: height\n };\n var rowFixedLength = mathMin(width, height);\n var best = Infinity; // the best row score so far\n\n var row = [];\n row.area = 0;\n\n for (var i = 0, len = viewChildren.length; i < len;) {\n var child = viewChildren[i];\n row.push(child);\n row.area += child.getLayout().area;\n var score = worst(row, rowFixedLength, options.squareRatio); // continue with this orientation\n\n if (score <= best) {\n i++;\n best = score;\n } // abort, and try a different orientation\n else {\n row.area -= row.pop().getLayout().area;\n position(row, rowFixedLength, rect, halfGapWidth, false);\n rowFixedLength = mathMin(rect.width, rect.height);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n\n if (row.length) {\n position(row, rowFixedLength, rect, halfGapWidth, true);\n }\n\n if (!hideChildren) {\n var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\n\n if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\n hideChildren = true;\n }\n }\n\n for (var i = 0, len = viewChildren.length; i < len; i++) {\n squarify(viewChildren[i], options, hideChildren, depth + 1);\n }\n}\n/**\n * Set area to each child, and calculate data extent for visual coding.\n */\n\n\nfunction initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\n var viewChildren = node.children || [];\n var orderBy = options.sort;\n orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\n var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth; // leafDepth has higher priority.\n\n if (hideChildren && !overLeafDepth) {\n return node.viewChildren = [];\n } // Sort children, order by desc.\n\n\n viewChildren = zrUtil.filter(viewChildren, function (child) {\n return !child.isRemoved();\n });\n sort(viewChildren, orderBy);\n var info = statistic(nodeModel, viewChildren, orderBy);\n\n if (info.sum === 0) {\n return node.viewChildren = [];\n }\n\n info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\n\n if (info.sum === 0) {\n return node.viewChildren = [];\n } // Set area to each child.\n\n\n for (var i = 0, len = viewChildren.length; i < len; i++) {\n var area = viewChildren[i].getValue() / info.sum * totalArea; // Do not use setLayout({...}, true), because it is needed to clear last layout.\n\n viewChildren[i].setLayout({\n area: area\n });\n }\n\n if (overLeafDepth) {\n viewChildren.length && node.setLayout({\n isLeafRoot: true\n }, true);\n viewChildren.length = 0;\n }\n\n node.viewChildren = viewChildren;\n node.setLayout({\n dataExtent: info.dataExtent\n }, true);\n return viewChildren;\n}\n/**\n * Consider 'visibleMin'. Modify viewChildren and get new sum.\n */\n\n\nfunction filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\n // visibleMin is not supported yet when no option.sort.\n if (!orderBy) {\n return sum;\n }\n\n var visibleMin = nodeModel.get('visibleMin');\n var len = orderedChildren.length;\n var deletePoint = len; // Always travel from little value to big value.\n\n for (var i = len - 1; i >= 0; i--) {\n var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\n\n if (value / sum * totalArea < visibleMin) {\n deletePoint = i;\n sum -= value;\n }\n }\n\n orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint);\n return sum;\n}\n/**\n * Sort\n */\n\n\nfunction sort(viewChildren, orderBy) {\n if (orderBy) {\n viewChildren.sort(function (a, b) {\n var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue();\n return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;\n });\n }\n\n return viewChildren;\n}\n/**\n * Statistic\n */\n\n\nfunction statistic(nodeModel, children, orderBy) {\n // Calculate sum.\n var sum = 0;\n\n for (var i = 0, len = children.length; i < len; i++) {\n sum += children[i].getValue();\n } // Statistic data extent for latter visual coding.\n // Notice: data extent should be calculate based on raw children\n // but not filtered view children, otherwise visual mapping will not\n // be stable when zoom (where children is filtered by visibleMin).\n\n\n var dimension = nodeModel.get('visualDimension');\n var dataExtent; // The same as area dimension.\n\n if (!children || !children.length) {\n dataExtent = [NaN, NaN];\n } else if (dimension === 'value' && orderBy) {\n dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];\n orderBy === 'asc' && dataExtent.reverse();\n } // Other dimension.\n else {\n var dataExtent = [Infinity, -Infinity];\n each(children, function (child) {\n var value = child.getValue(dimension);\n value < dataExtent[0] && (dataExtent[0] = value);\n value > dataExtent[1] && (dataExtent[1] = value);\n });\n }\n\n return {\n sum: sum,\n dataExtent: dataExtent\n };\n}\n/**\n * Computes the score for the specified row,\n * as the worst aspect ratio.\n */\n\n\nfunction worst(row, rowFixedLength, ratio) {\n var areaMax = 0;\n var areaMin = Infinity;\n\n for (var i = 0, area, len = row.length; i < len; i++) {\n area = row[i].getLayout().area;\n\n if (area) {\n area < areaMin && (areaMin = area);\n area > areaMax && (areaMax = area);\n }\n }\n\n var squareArea = row.area * row.area;\n var f = rowFixedLength * rowFixedLength * ratio;\n return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;\n}\n/**\n * Positions the specified row of nodes. Modifies `rect`.\n */\n\n\nfunction position(row, rowFixedLength, rect, halfGapWidth, flush) {\n // When rowFixedLength === rect.width,\n // it is horizontal subdivision,\n // rowFixedLength is the width of the subdivision,\n // rowOtherLength is the height of the subdivision,\n // and nodes will be positioned from left to right.\n // wh[idx0WhenH] means: when horizontal,\n // wh[idx0WhenH] => wh[0] => 'width'.\n // xy[idx1WhenH] => xy[1] => 'y'.\n var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\n var idx1WhenH = 1 - idx0WhenH;\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n var last = rect[xy[idx0WhenH]];\n var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;\n\n if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\n rowOtherLength = rect[wh[idx1WhenH]]; // over+underflow\n }\n\n for (var i = 0, rowLen = row.length; i < rowLen; i++) {\n var node = row[i];\n var nodeLayout = {};\n var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;\n var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0); // We use Math.max/min to avoid negative width/height when considering gap width.\n\n var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\n var modWH = i === rowLen - 1 || remain < step ? remain : step;\n var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0);\n nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2);\n nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2);\n last += modWH;\n node.setLayout(nodeLayout, true);\n }\n\n rect[xy[idx1WhenH]] += rowOtherLength;\n rect[wh[idx1WhenH]] -= rowOtherLength;\n} // Return [containerWidth, containerHeight] as defualt.\n\n\nfunction estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\n // If targetInfo.node exists, we zoom to the node,\n // so estimate whold width and heigth by target node.\n var currNode = (targetInfo || {}).node;\n var defaultSize = [containerWidth, containerHeight];\n\n if (!currNode || currNode === viewRoot) {\n return defaultSize;\n }\n\n var parent;\n var viewArea = containerWidth * containerHeight;\n var area = viewArea * seriesModel.option.zoomToNodeRatio;\n\n while (parent = currNode.parentNode) {\n // jshint ignore:line\n var sum = 0;\n var siblings = parent.children;\n\n for (var i = 0, len = siblings.length; i < len; i++) {\n sum += siblings[i].getValue();\n }\n\n var currNodeValue = currNode.getValue();\n\n if (currNodeValue === 0) {\n return defaultSize;\n }\n\n area *= sum / currNodeValue; // Considering border, suppose aspect ratio is 1.\n\n var parentModel = parent.getModel();\n var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\n var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel, borderWidth));\n area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\n area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\n currNode = parent;\n }\n\n area < viewArea && (area = viewArea);\n var scale = Math.pow(area / viewArea, 0.5);\n return [containerWidth * scale, containerHeight * scale];\n} // Root postion base on coord of containerGroup\n\n\nfunction calculateRootPosition(layoutInfo, rootRect, targetInfo) {\n if (rootRect) {\n return {\n x: rootRect.x,\n y: rootRect.y\n };\n }\n\n var defaultPosition = {\n x: 0,\n y: 0\n };\n\n if (!targetInfo) {\n return defaultPosition;\n } // If targetInfo is fetched by 'retrieveTargetInfo',\n // old tree and new tree are the same tree,\n // so the node still exists and we can visit it.\n\n\n var targetNode = targetInfo.node;\n var layout = targetNode.getLayout();\n\n if (!layout) {\n return defaultPosition;\n } // Transform coord from local to container.\n\n\n var targetCenter = [layout.width / 2, layout.height / 2];\n var node = targetNode;\n\n while (node) {\n var nodeLayout = node.getLayout();\n targetCenter[0] += nodeLayout.x;\n targetCenter[1] += nodeLayout.y;\n node = node.parentNode;\n }\n\n return {\n x: layoutInfo.width / 2 - targetCenter[0],\n y: layoutInfo.height / 2 - targetCenter[1]\n };\n} // Mark nodes visible for prunning when visual coding and rendering.\n// Prunning depends on layout and root position, so we have to do it after layout.\n\n\nfunction prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\n var nodeLayout = node.getLayout();\n var nodeInViewAbovePath = viewAbovePath[depth];\n var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\n\n if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {\n return;\n }\n\n node.setLayout({\n // isInView means: viewRoot sub tree + viewAbovePath\n isInView: true,\n // invisible only means: outside view clip so that the node can not\n // see but still layout for animation preparation but not render.\n invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\n isAboveViewRoot: isAboveViewRoot\n }, true); // Transform to child coordinate.\n\n var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\n each(node.viewChildren || [], function (child) {\n prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\n });\n}\n\nfunction getUpperLabelHeight(model) {\n return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar VisualMapping = __webpack_require__(106);\n\nvar zrColor = __webpack_require__(67);\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar isArray = zrUtil.isArray;\nvar ITEM_STYLE_NORMAL = 'itemStyle';\nvar _default = {\n seriesType: 'treemap',\n reset: function (seriesModel, ecModel, api, payload) {\n var tree = seriesModel.getData().tree;\n var root = tree.root;\n var seriesItemStyleModel = seriesModel.getModel(ITEM_STYLE_NORMAL);\n\n if (root.isRemoved()) {\n return;\n }\n\n var levelItemStyles = zrUtil.map(tree.levelModels, function (levelModel) {\n return levelModel ? levelModel.get(ITEM_STYLE_NORMAL) : null;\n });\n travelTree(root, // Visual should calculate from tree root but not view root.\n {}, levelItemStyles, seriesItemStyleModel, seriesModel.getViewRoot().getAncestors(), seriesModel);\n }\n};\n\nfunction travelTree(node, designatedVisual, levelItemStyles, seriesItemStyleModel, viewRootAncestors, seriesModel) {\n var nodeModel = node.getModel();\n var nodeLayout = node.getLayout(); // Optimize\n\n if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\n return;\n }\n\n var nodeItemStyleModel = node.getModel(ITEM_STYLE_NORMAL);\n var levelItemStyle = levelItemStyles[node.depth];\n var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, levelItemStyle, seriesItemStyleModel); // calculate border color\n\n var borderColor = nodeItemStyleModel.get('borderColor');\n var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\n var thisNodeColor;\n\n if (borderColorSaturation != null) {\n // For performance, do not always execute 'calculateColor'.\n thisNodeColor = calculateColor(visuals, node);\n borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\n }\n\n node.setVisual('borderColor', borderColor);\n var viewChildren = node.viewChildren;\n\n if (!viewChildren || !viewChildren.length) {\n thisNodeColor = calculateColor(visuals, node); // Apply visual to this node.\n\n node.setVisual('color', thisNodeColor);\n } else {\n var mapping = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren); // Designate visual to children.\n\n zrUtil.each(viewChildren, function (child, index) {\n // If higher than viewRoot, only ancestors of viewRoot is needed to visit.\n if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {\n var childVisual = mapVisual(nodeModel, visuals, child, index, mapping, seriesModel);\n travelTree(child, childVisual, levelItemStyles, seriesItemStyleModel, viewRootAncestors, seriesModel);\n }\n });\n }\n}\n\nfunction buildVisuals(nodeItemStyleModel, designatedVisual, levelItemStyle, seriesItemStyleModel) {\n var visuals = zrUtil.extend({}, designatedVisual);\n zrUtil.each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\n // Priority: thisNode > thisLevel > parentNodeDesignated > seriesModel\n var val = nodeItemStyleModel.get(visualName, true); // Ignore parent\n\n val == null && levelItemStyle && (val = levelItemStyle[visualName]);\n val == null && (val = designatedVisual[visualName]);\n val == null && (val = seriesItemStyleModel.get(visualName));\n val != null && (visuals[visualName] = val);\n });\n return visuals;\n}\n\nfunction calculateColor(visuals) {\n var color = getValueVisualDefine(visuals, 'color');\n\n if (color) {\n var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\n var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\n\n if (colorSaturation) {\n color = zrColor.modifyHSL(color, null, null, colorSaturation);\n }\n\n if (colorAlpha) {\n color = zrColor.modifyAlpha(color, colorAlpha);\n }\n\n return color;\n }\n}\n\nfunction calculateBorderColor(borderColorSaturation, thisNodeColor) {\n return thisNodeColor != null ? zrColor.modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;\n}\n\nfunction getValueVisualDefine(visuals, name) {\n var value = visuals[name];\n\n if (value != null && value !== 'none') {\n return value;\n }\n}\n\nfunction buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\n if (!viewChildren || !viewChildren.length) {\n return;\n }\n\n var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation'));\n\n if (!rangeVisual) {\n return;\n }\n\n var visualMin = nodeModel.get('visualMin');\n var visualMax = nodeModel.get('visualMax');\n var dataExtent = nodeLayout.dataExtent.slice();\n visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\n visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\n var colorMappingBy = nodeModel.get('colorMappingBy');\n var opt = {\n type: rangeVisual.name,\n dataExtent: dataExtent,\n visual: rangeVisual.range\n };\n\n if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\n opt.mappingMethod = 'category';\n opt.loop = true; // categories is ordinal, so do not set opt.categories.\n } else {\n opt.mappingMethod = 'linear';\n }\n\n var mapping = new VisualMapping(opt);\n mapping.__drColorMappingBy = colorMappingBy;\n return mapping;\n} // Notice: If we dont have the attribute 'colorRange', but only use\n// attribute 'color' to represent both concepts of 'colorRange' and 'color',\n// (It means 'colorRange' when 'color' is Array, means 'color' when not array),\n// this problem will be encountered:\n// If a level-1 node dont have children, and its siblings has children,\n// and colorRange is set on level-1, then the node can not be colored.\n// So we separate 'colorRange' and 'color' to different attributes.\n\n\nfunction getRangeVisual(nodeModel, name) {\n // 'colorRange', 'colorARange', 'colorSRange'.\n // If not exsits on this node, fetch from levels and series.\n var range = nodeModel.get(name);\n return isArray(range) && range.length ? {\n name: name,\n range: range\n } : null;\n}\n\nfunction mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\n var childVisuals = zrUtil.extend({}, visuals);\n\n if (mapping) {\n var mappingType = mapping.type;\n var colorMappingBy = mappingType === 'color' && mapping.__drColorMappingBy;\n var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension'));\n childVisuals[mappingType] = mapping.mapValueToVisual(value);\n }\n\n return childVisuals;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(261);\n\n__webpack_require__(1168);\n\n/***/ }),\n/* 1162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(394);\n\n__webpack_require__(1169);\n\n/***/ }),\n/* 1163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AxisPointerModel = echarts.extendComponentModel({\n type: 'axisPointer',\n coordSysAxesInfo: null,\n defaultOption: {\n // 'auto' means that show when triggered by tooltip or handle.\n show: 'auto',\n // 'click' | 'mousemove' | 'none'\n triggerOn: null,\n // set default in AxisPonterView.js\n zlevel: 0,\n z: 50,\n type: 'line',\n // 'line' 'shadow' 'cross' 'none'.\n // axispointer triggered by tootip determine snap automatically,\n // see `modelHelper`.\n snap: false,\n triggerTooltip: true,\n value: null,\n status: null,\n // Init value depends on whether handle is used.\n // [group0, group1, ...]\n // Each group can be: {\n // mapper: function () {},\n // singleTooltip: 'multiple', // 'multiple' or 'single'\n // xAxisId: ...,\n // yAxisName: ...,\n // angleAxisIndex: ...\n // }\n // mapper: can be ignored.\n // input: {axisInfo, value}\n // output: {axisInfo, value}\n link: [],\n // Do not set 'auto' here, otherwise global animation: false\n // will not effect at this axispointer.\n animation: null,\n animationDurationUpdate: 200,\n lineStyle: {\n color: '#aaa',\n width: 1,\n type: 'solid'\n },\n shadowStyle: {\n color: 'rgba(150,150,150,0.3)'\n },\n label: {\n show: true,\n formatter: null,\n // string | Function\n precision: 'auto',\n // Or a number like 0, 1, 2 ...\n margin: 3,\n color: '#fff',\n padding: [5, 7, 5, 7],\n backgroundColor: 'auto',\n // default: axis line color\n borderColor: null,\n borderWidth: 0,\n shadowBlur: 3,\n shadowColor: '#aaa' // Considering applicability, common style should\n // better not have shadowOffset.\n // shadowOffsetX: 0,\n // shadowOffsetY: 2\n\n },\n handle: {\n show: false,\n\n /* eslint-disable */\n icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n // jshint ignore:line\n\n /* eslint-enable */\n size: 45,\n // handle margin is from symbol center to axis, which is stable when circular move.\n margin: 50,\n // color: '#1b8bbd'\n // color: '#2f4554'\n color: '#333',\n shadowBlur: 3,\n shadowColor: '#aaa',\n shadowOffsetX: 0,\n shadowOffsetY: 2,\n // For mobile performance\n throttle: 40\n }\n }\n});\nvar _default = AxisPointerModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar globalListener = __webpack_require__(371);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AxisPointerView = echarts.extendComponentView({\n type: 'axisPointer',\n render: function (globalAxisPointerModel, ecModel, api) {\n var globalTooltipModel = ecModel.getComponent('tooltip');\n var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click'; // Register global listener in AxisPointerView to enable\n // AxisPointerView to be independent to Tooltip.\n\n globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n // If 'none', it is not controlled by mouse totally.\n if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n dispatchAction({\n type: 'updateAxisPointer',\n currTrigger: currTrigger,\n x: e && e.offsetX,\n y: e && e.offsetY\n });\n }\n });\n },\n\n /**\n * @override\n */\n remove: function (ecModel, api) {\n globalListener.unregister(api.getZr(), 'axisPointer');\n AxisPointerView.superApply(this._model, 'remove', arguments);\n },\n\n /**\n * @override\n */\n dispose: function (ecModel, api) {\n globalListener.unregister('axisPointer', api);\n AxisPointerView.superApply(this._model, 'dispose', arguments);\n }\n});\nvar _default = AxisPointerView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar formatUtil = __webpack_require__(19);\n\nvar BaseAxisPointer = __webpack_require__(249);\n\nvar graphic = __webpack_require__(5);\n\nvar viewHelper = __webpack_require__(175);\n\nvar matrix = __webpack_require__(36);\n\nvar AxisBuilder = __webpack_require__(100);\n\nvar AxisView = __webpack_require__(101);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PolarAxisPointer = BaseAxisPointer.extend({\n /**\n * @override\n */\n makeElOption: function (elOption, value, axisModel, axisPointerModel, api) {\n var axis = axisModel.axis;\n\n if (axis.dim === 'angle') {\n this.animationThreshold = Math.PI / 18;\n }\n\n var polar = axis.polar;\n var otherAxis = polar.getOtherAxis(axis);\n var otherExtent = otherAxis.getExtent();\n var coordValue;\n coordValue = axis['dataTo' + formatUtil.capitalFirst(axis.dim)](value);\n var axisPointerType = axisPointerModel.get('type');\n\n if (axisPointerType && axisPointerType !== 'none') {\n var elStyle = viewHelper.buildElStyle(axisPointerModel);\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent, elStyle);\n pointerOption.style = elStyle;\n elOption.graphicKey = pointerOption.type;\n elOption.pointer = pointerOption;\n }\n\n var labelMargin = axisPointerModel.get('label.margin');\n var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\n viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\n } // Do not support handle, utill any user requires it.\n\n});\n\nfunction getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\n var axis = axisModel.axis;\n var coord = axis.dataToCoord(value);\n var axisAngle = polar.getAngleAxis().getExtent()[0];\n axisAngle = axisAngle / 180 * Math.PI;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var position;\n var align;\n var verticalAlign;\n\n if (axis.dim === 'radius') {\n var transform = matrix.create();\n matrix.rotate(transform, transform, axisAngle);\n matrix.translate(transform, transform, [polar.cx, polar.cy]);\n position = graphic.applyTransform([coord, -labelMargin], transform);\n var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\n var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\n align = labelLayout.textAlign;\n verticalAlign = labelLayout.textVerticalAlign;\n } else {\n // angle axis\n var r = radiusExtent[1];\n position = polar.coordToPoint([r + labelMargin, coord]);\n var cx = polar.cx;\n var cy = polar.cy;\n align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right';\n verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom';\n }\n\n return {\n position: position,\n align: align,\n verticalAlign: verticalAlign\n };\n}\n\nvar pointerShapeBuilder = {\n line: function (axis, polar, coordValue, otherExtent, elStyle) {\n return axis.dim === 'angle' ? {\n type: 'Line',\n shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\n } : {\n type: 'Circle',\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: coordValue\n }\n };\n },\n shadow: function (axis, polar, coordValue, otherExtent, elStyle) {\n var bandWidth = Math.max(1, axis.getBandWidth());\n var radian = Math.PI / 180;\n return axis.dim === 'angle' ? {\n type: 'Sector',\n shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], // In ECharts y is negative if angle is positive\n (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\n } : {\n type: 'Sector',\n shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\n };\n }\n};\nAxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\nvar _default = PolarAxisPointer;\nmodule.exports = _default;\n\n/***/ }),\n/* 1166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = __webpack_require__(5);\n\nvar BaseAxisPointer = __webpack_require__(249);\n\nvar viewHelper = __webpack_require__(175);\n\nvar singleAxisHelper = __webpack_require__(399);\n\nvar AxisView = __webpack_require__(101);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar XY = ['x', 'y'];\nvar WH = ['width', 'height'];\nvar SingleAxisPointer = BaseAxisPointer.extend({\n /**\n * @override\n */\n makeElOption: function (elOption, value, axisModel, axisPointerModel, api) {\n var axis = axisModel.axis;\n var coordSys = axis.coordinateSystem;\n var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n var pixelValue = coordSys.dataToPoint(value)[0];\n var axisPointerType = axisPointerModel.get('type');\n\n if (axisPointerType && axisPointerType !== 'none') {\n var elStyle = viewHelper.buildElStyle(axisPointerModel);\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent, elStyle);\n pointerOption.style = elStyle;\n elOption.graphicKey = pointerOption.type;\n elOption.pointer = pointerOption;\n }\n\n var layoutInfo = singleAxisHelper.layout(axisModel);\n viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n },\n\n /**\n * @override\n */\n getHandleTransform: function (value, axisModel, axisPointerModel) {\n var layoutInfo = singleAxisHelper.layout(axisModel, {\n labelInside: false\n });\n layoutInfo.labelMargin = axisPointerModel.get('handle.margin');\n return {\n position: viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo),\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n };\n },\n\n /**\n * @override\n */\n updateHandleTransform: function (transform, delta, axisModel, axisPointerModel) {\n var axis = axisModel.axis;\n var coordSys = axis.coordinateSystem;\n var dimIndex = getPointDimIndex(axis);\n var axisExtent = getGlobalExtent(coordSys, dimIndex);\n var currPosition = transform.position;\n currPosition[dimIndex] += delta[dimIndex];\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\n cursorPoint[dimIndex] = currPosition[dimIndex];\n return {\n position: currPosition,\n rotation: transform.rotation,\n cursorPoint: cursorPoint,\n tooltipOption: {\n verticalAlign: 'middle'\n }\n };\n }\n});\nvar pointerShapeBuilder = {\n line: function (axis, pixelValue, otherExtent, elStyle) {\n var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n graphic.subPixelOptimizeLine({\n shape: targetShape,\n style: elStyle\n });\n return {\n type: 'Line',\n shape: targetShape\n };\n },\n shadow: function (axis, pixelValue, otherExtent, elStyle) {\n var bandWidth = axis.getBandWidth();\n var span = otherExtent[1] - otherExtent[0];\n return {\n type: 'Rect',\n shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n };\n }\n};\n\nfunction getPointDimIndex(axis) {\n return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n var rect = coordSys.getRect();\n return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nAxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\nvar _default = SingleAxisPointer;\nmodule.exports = _default;\n\n/***/ }),\n/* 1167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar _model = __webpack_require__(9);\n\nvar makeInner = _model.makeInner;\n\nvar modelHelper = __webpack_require__(174);\n\nvar findPointFromSeries = __webpack_require__(370);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar curry = zrUtil.curry;\nvar inner = makeInner();\n/**\n * Basic logic: check all axis, if they do not demand show/highlight,\n * then hide/downplay them.\n *\n * @param {Object} coordSysAxesInfo\n * @param {Object} payload\n * @param {string} [payload.currTrigger] 'click' | 'mousemove' | 'leave'\n * @param {Array.} [payload.x] x and y, which are mandatory, specify a point to\n * trigger axisPointer and tooltip.\n * @param {Array.} [payload.y] x and y, which are mandatory, specify a point to\n * trigger axisPointer and tooltip.\n * @param {Object} [payload.seriesIndex] finder, optional, restrict target axes.\n * @param {Object} [payload.dataIndex] finder, restrict target axes.\n * @param {Object} [payload.axesInfo] finder, restrict target axes.\n * [{\n * axisDim: 'x'|'y'|'angle'|...,\n * axisIndex: ...,\n * value: ...\n * }, ...]\n * @param {Function} [payload.dispatchAction]\n * @param {Object} [payload.tooltipOption]\n * @param {Object|Array.|Function} [payload.position] Tooltip position,\n * which can be specified in dispatchAction\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n * @return {Object} content of event obj for echarts.connect.\n */\n\nfunction _default(payload, ecModel, api) {\n var currTrigger = payload.currTrigger;\n var point = [payload.x, payload.y];\n var finder = payload;\n var dispatchAction = payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo; // Pending\n // See #6121. But we are not able to reproduce it yet.\n\n if (!coordSysAxesInfo) {\n return;\n }\n\n if (illegalPoint(point)) {\n // Used in the default behavior of `connection`: use the sample seriesIndex\n // and dataIndex. And also used in the tooltipView trigger.\n point = findPointFromSeries({\n seriesIndex: finder.seriesIndex,\n // Do not use dataIndexInside from other ec instance.\n // FIXME: auto detect it?\n dataIndex: finder.dataIndex\n }, ecModel).point;\n }\n\n var isIllegalPoint = illegalPoint(point); // Axis and value can be specified when calling dispatchAction({type: 'updateAxisPointer'}).\n // Notice: In this case, it is difficult to get the `point` (which is necessary to show\n // tooltip, so if point is not given, we just use the point found by sample seriesIndex\n // and dataIndex.\n\n var inputAxesInfo = finder.axesInfo;\n var axesInfo = coordSysAxesInfo.axesInfo;\n var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n var outputFinder = {};\n var showValueMap = {};\n var dataByCoordSys = {\n list: [],\n map: {}\n };\n var updaters = {\n showPointer: curry(showPointer, showValueMap),\n showTooltip: curry(showTooltip, dataByCoordSys)\n }; // Process for triggered axes.\n\n each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n // If a point given, it must be contained by the coordinate system.\n var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n var axis = axisInfo.axis;\n var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo); // If no inputAxesInfo, no axis is restricted.\n\n if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n var val = inputAxisInfo && inputAxisInfo.value;\n\n if (val == null && !isIllegalPoint) {\n val = axis.pointToData(point);\n }\n\n val != null && processOnAxis(axisInfo, val, updaters, false, outputFinder);\n }\n });\n }); // Process for linked axes.\n\n var linkTriggers = {};\n each(axesInfo, function (tarAxisInfo, tarKey) {\n var linkGroup = tarAxisInfo.linkGroup; // If axis has been triggered in the previous stage, it should not be triggered by link.\n\n if (linkGroup && !showValueMap[tarKey]) {\n each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n var srcValItem = showValueMap[srcKey]; // If srcValItem exist, source axis is triggered, so link to target axis.\n\n if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n var val = srcValItem.value;\n linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n linkTriggers[tarAxisInfo.key] = val;\n }\n });\n }\n });\n each(linkTriggers, function (val, tarKey) {\n processOnAxis(axesInfo[tarKey], val, updaters, true, outputFinder);\n });\n updateModelActually(showValueMap, axesInfo, outputFinder);\n dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n dispatchHighDownActually(axesInfo, dispatchAction, api);\n return outputFinder;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, dontSnap, outputFinder) {\n var axis = axisInfo.axis;\n\n if (axis.scale.isBlank() || !axis.containData(newValue)) {\n return;\n }\n\n if (!axisInfo.involveSeries) {\n updaters.showPointer(axisInfo, newValue);\n return;\n } // Heavy calculation. So put it after axis.containData checking.\n\n\n var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n var payloadBatch = payloadInfo.payloadBatch;\n var snapToValue = payloadInfo.snapToValue; // Fill content of event obj for echarts.connect.\n // By defualt use the first involved series data as a sample to connect.\n\n if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n zrUtil.extend(outputFinder, payloadBatch[0]);\n } // If no linkSource input, this process is for collecting link\n // target, where snap should not be accepted.\n\n\n if (!dontSnap && axisInfo.snap) {\n if (axis.containData(snapToValue) && snapToValue != null) {\n newValue = snapToValue;\n }\n }\n\n updaters.showPointer(axisInfo, newValue, payloadBatch, outputFinder); // Tooltip should always be snapToValue, otherwise there will be\n // incorrect \"axis value ~ series value\" mapping displayed in tooltip.\n\n updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n var axis = axisInfo.axis;\n var dim = axis.dim;\n var snapToValue = value;\n var payloadBatch = [];\n var minDist = Number.MAX_VALUE;\n var minDiff = -1;\n each(axisInfo.seriesModels, function (series, idx) {\n var dataDim = series.getData().mapDimension(dim, true);\n var seriesNestestValue;\n var dataIndices;\n\n if (series.getAxisTooltipData) {\n var result = series.getAxisTooltipData(dataDim, value, axis);\n dataIndices = result.dataIndices;\n seriesNestestValue = result.nestestValue;\n } else {\n dataIndices = series.getData().indicesOfNearest(dataDim[0], value, // Add a threshold to avoid find the wrong dataIndex\n // when data length is not same.\n // false,\n axis.type === 'category' ? 0.5 : null);\n\n if (!dataIndices.length) {\n return;\n }\n\n seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n }\n\n if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n return;\n }\n\n var diff = value - seriesNestestValue;\n var dist = Math.abs(diff); // Consider category case\n\n if (dist <= minDist) {\n if (dist < minDist || diff >= 0 && minDiff < 0) {\n minDist = dist;\n minDiff = diff;\n snapToValue = seriesNestestValue;\n payloadBatch.length = 0;\n }\n\n each(dataIndices, function (dataIndex) {\n payloadBatch.push({\n seriesIndex: series.seriesIndex,\n dataIndexInside: dataIndex,\n dataIndex: series.getData().getRawIndex(dataIndex)\n });\n });\n }\n });\n return {\n payloadBatch: payloadBatch,\n snapToValue: snapToValue\n };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n showValueMap[axisInfo.key] = {\n value: value,\n payloadBatch: payloadBatch\n };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n var payloadBatch = payloadInfo.payloadBatch;\n var axis = axisInfo.axis;\n var axisModel = axis.model;\n var axisPointerModel = axisInfo.axisPointerModel; // If no data, do not create anything in dataByCoordSys,\n // whose length will be used to judge whether dispatch action.\n\n if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n return;\n }\n\n var coordSysModel = axisInfo.coordSys.model;\n var coordSysKey = modelHelper.makeKey(coordSysModel);\n var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n if (!coordSysItem) {\n coordSysItem = dataByCoordSys.map[coordSysKey] = {\n coordSysId: coordSysModel.id,\n coordSysIndex: coordSysModel.componentIndex,\n coordSysType: coordSysModel.type,\n coordSysMainType: coordSysModel.mainType,\n dataByAxis: []\n };\n dataByCoordSys.list.push(coordSysItem);\n }\n\n coordSysItem.dataByAxis.push({\n axisDim: axis.dim,\n axisIndex: axisModel.componentIndex,\n axisType: axisModel.type,\n axisId: axisModel.id,\n value: value,\n // Caustion: viewHelper.getValueLabel is actually on \"view stage\", which\n // depends that all models have been updated. So it should not be performed\n // here. Considering axisPointerModel used here is volatile, which is hard\n // to be retrieve in TooltipView, we prepare parameters here.\n valueLabelOpt: {\n precision: axisPointerModel.get('label.precision'),\n formatter: axisPointerModel.get('label.formatter')\n },\n seriesDataIndices: payloadBatch.slice()\n });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputFinder) {\n var outputAxesInfo = outputFinder.axesInfo = []; // Basic logic: If no 'show' required, 'hide' this axisPointer.\n\n each(axesInfo, function (axisInfo, key) {\n var option = axisInfo.axisPointerModel.option;\n var valItem = showValueMap[key];\n\n if (valItem) {\n !axisInfo.useHandle && (option.status = 'show');\n option.value = valItem.value; // For label formatter param and highlight.\n\n option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n } // When always show (e.g., handle used), remain\n // original value and status.\n else {\n // If hide, value still need to be set, consider\n // click legend to toggle axis blank.\n !axisInfo.useHandle && (option.status = 'hide');\n } // If status is 'hide', should be no info in payload.\n\n\n option.status === 'show' && outputAxesInfo.push({\n axisDim: axisInfo.axis.dim,\n axisIndex: axisInfo.axis.model.componentIndex,\n value: option.value\n });\n });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n // Basic logic: If no showTip required, hideTip will be dispatched.\n if (illegalPoint(point) || !dataByCoordSys.list.length) {\n dispatchAction({\n type: 'hideTip'\n });\n return;\n } // In most case only one axis (or event one series is used). It is\n // convinient to fetch payload.seriesIndex and payload.dataIndex\n // dirtectly. So put the first seriesIndex and dataIndex of the first\n // axis on the payload.\n\n\n var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n dispatchAction({\n type: 'showTip',\n escapeConnect: true,\n x: point[0],\n y: point[1],\n tooltipOption: payload.tooltipOption,\n position: payload.position,\n dataIndexInside: sampleItem.dataIndexInside,\n dataIndex: sampleItem.dataIndex,\n seriesIndex: sampleItem.seriesIndex,\n dataByCoordSys: dataByCoordSys.list\n });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n // FIXME\n // highlight status modification shoule be a stage of main process?\n // (Consider confilct (e.g., legend and axisPointer) and setOption)\n var zr = api.getZr();\n var highDownKey = 'axisPointerLastHighlights';\n var lastHighlights = inner(zr)[highDownKey] || {};\n var newHighlights = inner(zr)[highDownKey] = {}; // Update highlight/downplay status according to axisPointer model.\n // Build hash map and remove duplicate incidentally.\n\n each(axesInfo, function (axisInfo, key) {\n var option = axisInfo.axisPointerModel.option;\n option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n newHighlights[key] = batchItem;\n });\n }); // Diff.\n\n var toHighlight = [];\n var toDownplay = [];\n zrUtil.each(lastHighlights, function (batchItem, key) {\n !newHighlights[key] && toDownplay.push(batchItem);\n });\n zrUtil.each(newHighlights, function (batchItem, key) {\n !lastHighlights[key] && toHighlight.push(batchItem);\n });\n toDownplay.length && api.dispatchAction({\n type: 'downplay',\n escapeConnect: true,\n batch: toDownplay\n });\n toHighlight.length && api.dispatchAction({\n type: 'highlight',\n escapeConnect: true,\n batch: toHighlight\n });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n var inputAxisInfo = inputAxesInfo[i];\n\n if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n return inputAxisInfo;\n }\n }\n}\n\nfunction makeMapperParam(axisInfo) {\n var axisModel = axisInfo.axis.model;\n var item = {};\n var dim = item.axisDim = axisInfo.axis.dim;\n item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n item.axisName = item[dim + 'AxisName'] = axisModel.name;\n item.axisId = item[dim + 'AxisId'] = axisModel.id;\n return item;\n}\n\nfunction illegalPoint(point) {\n return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar Model = __webpack_require__(31);\n\nvar AxisView = __webpack_require__(101);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar elementList = ['axisLine', 'axisLabel', 'axisTick', 'splitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n var start = polar.coordToPoint([rExtent[0], angle]);\n var end = polar.coordToPoint([rExtent[1], angle]);\n return {\n x1: start[0],\n y1: start[1],\n x2: end[0],\n y2: end[1]\n };\n}\n\nfunction getRadiusIdx(polar) {\n var radiusAxis = polar.getRadiusAxis();\n return radiusAxis.inverse ? 0 : 1;\n} // Remove the last tick which will overlap the first tick\n\n\nfunction fixAngleOverlap(list) {\n var firstItem = list[0];\n var lastItem = list[list.length - 1];\n\n if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n list.pop();\n }\n}\n\nvar _default = AxisView.extend({\n type: 'angleAxis',\n axisPointerClass: 'PolarAxisPointer',\n render: function (angleAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!angleAxisModel.get('show')) {\n return;\n }\n\n var angleAxis = angleAxisModel.axis;\n var polar = angleAxis.polar;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var ticksAngles = angleAxis.getTicksCoords();\n var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n var labelItem = zrUtil.clone(labelItem);\n labelItem.coord = angleAxis.dataToCoord(labelItem.tickValue);\n return labelItem;\n });\n fixAngleOverlap(labels);\n fixAngleOverlap(ticksAngles);\n zrUtil.each(elementList, function (name) {\n if (angleAxisModel.get(name + '.show') && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n this['_' + name](angleAxisModel, polar, ticksAngles, radiusExtent, labels);\n }\n }, this);\n },\n\n /**\n * @private\n */\n _axisLine: function (angleAxisModel, polar, ticksAngles, radiusExtent) {\n var lineStyleModel = angleAxisModel.getModel('axisLine.lineStyle');\n var circle = new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: radiusExtent[getRadiusIdx(polar)]\n },\n style: lineStyleModel.getLineStyle(),\n z2: 1,\n silent: true\n });\n circle.style.fill = null;\n this.group.add(circle);\n },\n\n /**\n * @private\n */\n _axisTick: function (angleAxisModel, polar, ticksAngles, radiusExtent) {\n var tickModel = angleAxisModel.getModel('axisTick');\n var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n var radius = radiusExtent[getRadiusIdx(polar)];\n var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n return new graphic.Line({\n shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n });\n });\n this.group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n stroke: angleAxisModel.get('axisLine.lineStyle.color')\n })\n }));\n },\n\n /**\n * @private\n */\n _axisLabel: function (angleAxisModel, polar, ticksAngles, radiusExtent, labels) {\n var rawCategoryData = angleAxisModel.getCategories(true);\n var commonLabelModel = angleAxisModel.getModel('axisLabel');\n var labelMargin = commonLabelModel.get('margin'); // Use length of ticksAngles because it may remove the last tick to avoid overlapping\n\n zrUtil.each(labels, function (labelItem, idx) {\n var labelModel = commonLabelModel;\n var tickValue = labelItem.tickValue;\n var r = radiusExtent[getRadiusIdx(polar)];\n var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n var cx = polar.cx;\n var cy = polar.cy;\n var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n if (rawCategoryData && rawCategoryData[tickValue] && rawCategoryData[tickValue].textStyle) {\n labelModel = new Model(rawCategoryData[tickValue].textStyle, commonLabelModel, commonLabelModel.ecModel);\n }\n\n var textEl = new graphic.Text({\n silent: true\n });\n this.group.add(textEl);\n graphic.setTextStyle(textEl.style, labelModel, {\n x: p[0],\n y: p[1],\n textFill: labelModel.getTextColor() || angleAxisModel.get('axisLine.lineStyle.color'),\n text: labelItem.formattedLabel,\n textAlign: labelTextAlign,\n textVerticalAlign: labelTextVerticalAlign\n });\n }, this);\n },\n\n /**\n * @private\n */\n _splitLine: function (angleAxisModel, polar, ticksAngles, radiusExtent) {\n var splitLineModel = angleAxisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n var lineCount = 0;\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var splitLines = [];\n\n for (var i = 0; i < ticksAngles.length; i++) {\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Line({\n shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n }));\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitLines.length; i++) {\n this.group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length]\n }, lineStyleModel.getLineStyle()),\n silent: true,\n z: angleAxisModel.get('z')\n }));\n }\n },\n\n /**\n * @private\n */\n _splitArea: function (angleAxisModel, polar, ticksAngles, radiusExtent) {\n if (!ticksAngles.length) {\n return;\n }\n\n var splitAreaModel = angleAxisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var lineCount = 0;\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n var splitAreas = [];\n var RADIAN = Math.PI / 180;\n var prevAngle = -ticksAngles[0].coord * RADIAN;\n var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n var clockwise = angleAxisModel.get('clockwise');\n\n for (var i = 1; i < ticksAngles.length; i++) {\n var colorIndex = lineCount++ % areaColors.length;\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n splitAreas[colorIndex].push(new graphic.Sector({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r0: r0,\n r: r1,\n startAngle: prevAngle,\n endAngle: -ticksAngles[i].coord * RADIAN,\n clockwise: clockwise\n },\n silent: true\n }));\n prevAngle = -ticksAngles[i].coord * RADIAN;\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitAreas.length; i++) {\n this.group.add(graphic.mergePath(splitAreas[i], {\n style: zrUtil.defaults({\n fill: areaColors[i % areaColors.length]\n }, areaStyleModel.getAreaStyle()),\n silent: true\n }));\n }\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar AxisBuilder = __webpack_require__(100);\n\nvar AxisView = __webpack_require__(101);\n\nvar cartesianAxisHelper = __webpack_require__(395);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine']; // function getAlignWithLabel(model, axisModel) {\n// var alignWithLabel = model.get('alignWithLabel');\n// if (alignWithLabel === 'auto') {\n// alignWithLabel = axisModel.get('axisTick.alignWithLabel');\n// }\n// return alignWithLabel;\n// }\n\nvar CartesianAxisView = AxisView.extend({\n type: 'cartesianAxis',\n axisPointerClass: 'CartesianAxisPointer',\n\n /**\n * @override\n */\n render: function (axisModel, ecModel, api, payload) {\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var gridModel = axisModel.getCoordSysModel();\n var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n var axisBuilder = new AxisBuilder(axisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get(name + '.show')) {\n this['_' + name](axisModel, gridModel);\n }\n }, this);\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n CartesianAxisView.superCall(this, 'render', axisModel, ecModel, api, payload);\n },\n remove: function () {\n this._splitAreaColors = null;\n },\n\n /**\n * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n * @param {module:echarts/coord/cartesian/GridModel} gridModel\n * @private\n */\n _splitLine: function (axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = []; // Simple optimization\n // Batching the lines if color are the same\n\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n var tickValue = ticksCoords[i].tickValue;\n\n this._axisGroup.add(new graphic.Line(graphic.subPixelOptimizeLine({\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: zrUtil.defaults({\n stroke: lineColors[colorIndex]\n }, lineStyle),\n silent: true\n })));\n }\n },\n\n /**\n * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n * @param {module:echarts/coord/cartesian/GridModel} gridModel\n * @private\n */\n _splitArea: function (axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitAreaModel = axisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var gridRect = gridModel.coordinateSystem.getRect();\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitAreaModel,\n clamp: true\n });\n\n if (!ticksCoords.length) {\n return;\n } // For Making appropriate splitArea animation, the color and anid\n // should be corresponding to previous one if possible.\n\n\n var areaColorsLen = areaColors.length;\n var lastSplitAreaColors = this._splitAreaColors;\n var newSplitAreaColors = zrUtil.createHashMap();\n var colorIndex = 0;\n\n if (lastSplitAreaColors) {\n for (var i = 0; i < ticksCoords.length; i++) {\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n if (cIndex != null) {\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n break;\n }\n }\n }\n\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n var areaStyle = areaStyleModel.getAreaStyle();\n areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n var x;\n var y;\n var width;\n var height;\n\n if (axis.isHorizontal()) {\n x = prev;\n y = gridRect.y;\n width = tickCoord - x;\n height = gridRect.height;\n prev = x + width;\n } else {\n x = gridRect.x;\n y = prev;\n width = gridRect.width;\n height = tickCoord - y;\n prev = y + height;\n }\n\n var tickValue = ticksCoords[i - 1].tickValue;\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n\n this._axisGroup.add(new graphic.Rect({\n anid: tickValue != null ? 'area_' + tickValue : null,\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n style: zrUtil.defaults({\n fill: areaColors[colorIndex]\n }, areaStyle),\n silent: true\n }));\n\n colorIndex = (colorIndex + 1) % areaColorsLen;\n }\n\n this._splitAreaColors = newSplitAreaColors;\n }\n});\nCartesianAxisView.extend({\n type: 'xAxis'\n});\nCartesianAxisView.extend({\n type: 'yAxis'\n});\n\n/***/ }),\n/* 1170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar AxisBuilder = __webpack_require__(100);\n\nvar BrushController = __webpack_require__(251);\n\nvar brushHelper = __webpack_require__(379);\n\nvar graphic = __webpack_require__(5);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\nvar AxisView = echarts.extendComponentView({\n type: 'parallelAxis',\n\n /**\n * @override\n */\n init: function (ecModel, api) {\n AxisView.superApply(this, 'init', arguments);\n /**\n * @type {module:echarts/component/helper/BrushController}\n */\n\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n },\n\n /**\n * @override\n */\n render: function (axisModel, ecModel, api, payload) {\n if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n return;\n }\n\n this.axisModel = axisModel;\n this.api = api;\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var coordSysModel = getCoordSysModel(axisModel, ecModel);\n var coordSys = coordSysModel.coordinateSystem;\n var areaSelectStyle = axisModel.getAreaSelectStyle();\n var areaWidth = areaSelectStyle.width;\n var dim = axisModel.axis.dim;\n var axisLayout = coordSys.getAxisLayout(dim);\n var builderOpt = zrUtil.extend({\n strokeContainThreshold: areaWidth\n }, axisLayout);\n var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n var animationModel = payload && payload.animation === false ? null : axisModel;\n graphic.groupTransition(oldAxisGroup, this._axisGroup, animationModel);\n },\n // /**\n // * @override\n // */\n // updateVisual: function (axisModel, ecModel, api, payload) {\n // this._brushController && this._brushController\n // .updateCovers(getCoverInfoList(axisModel));\n // },\n _refreshBrushController: function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n // After filtering, axis may change, select area needs to be update.\n var extent = axisModel.axis.getExtent();\n var extentLen = extent[1] - extent[0];\n var extra = Math.min(30, Math.abs(extentLen) * 0.1); // Arbitrary value.\n // width/height might be negative, which will be\n // normalized in BoundingRect.\n\n var rect = graphic.BoundingRect.create({\n x: extent[0],\n y: -areaWidth / 2,\n width: extentLen,\n height: areaWidth\n });\n rect.x -= extra;\n rect.width += 2 * extra;\n\n this._brushController.mount({\n enableGlobalPan: true,\n rotation: builderOpt.rotation,\n position: builderOpt.position\n }).setPanels([{\n panelId: 'pl',\n clipPath: brushHelper.makeRectPanelClipPath(rect),\n isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n }]).enableBrush({\n brushType: 'lineX',\n brushStyle: areaSelectStyle,\n removeOnClick: true\n }).updateCovers(getCoverInfoList(axisModel));\n },\n _onBrush: function (coverInfoList, opt) {\n // Do not cache these object, because the mey be changed.\n var axisModel = this.axisModel;\n var axis = axisModel.axis;\n var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n }); // If realtime is true, action is not dispatched on drag end, because\n // the drag end emits the same params with the last drag move event,\n // and may have some delay when using touch pad.\n\n if (!axisModel.option.realtime === opt.isEnd || opt.removeOnClick) {\n // jshint ignore:line\n this.api.dispatchAction({\n type: 'axisAreaSelect',\n parallelAxisId: axisModel.id,\n intervals: intervals\n });\n }\n },\n\n /**\n * @override\n */\n dispose: function () {\n this._brushController.dispose();\n }\n});\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n mainType: 'parallelAxis',\n query: payload\n })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n var axis = axisModel.axis;\n return zrUtil.map(axisModel.activeIntervals, function (interval) {\n return {\n brushType: 'lineX',\n panelId: 'pl',\n range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n };\n });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nvar _default = AxisView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar AxisBuilder = __webpack_require__(100);\n\nvar AxisView = __webpack_require__(101);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea'];\n\nvar _default = AxisView.extend({\n type: 'radiusAxis',\n axisPointerClass: 'PolarAxisPointer',\n render: function (radiusAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!radiusAxisModel.get('show')) {\n return;\n }\n\n var radiusAxis = radiusAxisModel.axis;\n var polar = radiusAxis.polar;\n var angleAxis = polar.getAngleAxis();\n var ticksCoords = radiusAxis.getTicksCoords();\n var axisAngle = angleAxis.getExtent()[0];\n var radiusExtent = radiusAxis.getExtent();\n var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n this.group.add(axisBuilder.getGroup());\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (radiusAxisModel.get(name + '.show') && !radiusAxis.scale.isBlank()) {\n this['_' + name](radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords);\n }\n }, this);\n },\n\n /**\n * @private\n */\n _splitLine: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n var splitLineModel = radiusAxisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n var lineCount = 0;\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var splitLines = [];\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: ticksCoords[i].coord\n },\n silent: true\n }));\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitLines.length; i++) {\n this.group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length],\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n }\n },\n\n /**\n * @private\n */\n _splitArea: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n if (!ticksCoords.length) {\n return;\n }\n\n var splitAreaModel = radiusAxisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var lineCount = 0;\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n var splitAreas = [];\n var prevRadius = ticksCoords[0].coord;\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % areaColors.length;\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n splitAreas[colorIndex].push(new graphic.Sector({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r0: prevRadius,\n r: ticksCoords[i].coord,\n startAngle: 0,\n endAngle: Math.PI * 2\n },\n silent: true\n }));\n prevRadius = ticksCoords[i].coord;\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitAreas.length; i++) {\n this.group.add(graphic.mergePath(splitAreas[i], {\n style: zrUtil.defaults({\n fill: areaColors[i % areaColors.length]\n }, areaStyleModel.getAreaStyle()),\n silent: true\n }));\n }\n }\n});\n/**\n * @inner\n */\n\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n return {\n position: [polar.cx, polar.cy],\n rotation: axisAngle / 180 * Math.PI,\n labelDirection: -1,\n tickDirection: -1,\n nameDirection: 1,\n labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n // Over splitLine and splitArea\n z2: 1\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar AxisBuilder = __webpack_require__(100);\n\nvar graphic = __webpack_require__(5);\n\nvar singleAxisHelper = __webpack_require__(399);\n\nvar AxisView = __webpack_require__(101);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttr = 'splitLine';\nvar SingleAxisView = AxisView.extend({\n type: 'singleAxis',\n axisPointerClass: 'SingleAxisPointer',\n render: function (axisModel, ecModel, api, payload) {\n var group = this.group;\n group.removeAll();\n var layout = singleAxisHelper.layout(axisModel);\n var axisBuilder = new AxisBuilder(axisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n group.add(axisBuilder.getGroup());\n\n if (axisModel.get(selfBuilderAttr + '.show')) {\n this['_' + selfBuilderAttr](axisModel);\n }\n\n SingleAxisView.superCall(this, 'render', axisModel, ecModel, api, payload);\n },\n _splitLine: function (axisModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineWidth = lineStyleModel.get('width');\n var lineColors = lineStyleModel.get('color');\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var gridRect = axisModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var splitLines = [];\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n\n for (var i = 0; i < ticksCoords.length; ++i) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Line(graphic.subPixelOptimizeLine({\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: {\n lineWidth: lineWidth\n },\n silent: true\n })));\n }\n\n for (var i = 0; i < splitLines.length; ++i) {\n this.group.add(graphic.mergePath(splitLines[i], {\n style: {\n stroke: lineColors[i % lineColors.length],\n lineDash: lineStyleModel.getLineDash(lineWidth),\n lineWidth: lineWidth\n },\n silent: true\n }));\n }\n }\n});\nvar _default = SingleAxisView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @payload\n * @property {string} parallelAxisId\n * @property {Array.>} intervals\n */\nvar actionInfo = {\n type: 'axisAreaSelect',\n event: 'axisAreaSelected' // update: 'updateVisual'\n\n};\necharts.registerAction(actionInfo, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallelAxis',\n query: payload\n }, function (parallelAxisModel) {\n parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n });\n});\n/**\n * @payload\n */\n\necharts.registerAction('parallelAxisExpand', function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallel',\n query: payload\n }, function (parallelModel) {\n parallelModel.setAxisExpand(payload);\n });\n});\n\n/***/ }),\n/* 1174 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar preprocessor = __webpack_require__(1178);\n\n__webpack_require__(1180);\n\n__webpack_require__(1175);\n\n__webpack_require__(1176);\n\n__webpack_require__(1177);\n\n__webpack_require__(1231);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Brush component entry\n */\necharts.registerPreprocessor(preprocessor);\n\n/***/ }),\n/* 1175 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar visualSolution = __webpack_require__(185);\n\nvar Model = __webpack_require__(31);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DEFAULT_OUT_OF_BRUSH_COLOR = ['#ddd'];\nvar BrushModel = echarts.extendComponentModel({\n type: 'brush',\n dependencies: ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'],\n\n /**\n * @protected\n */\n defaultOption: {\n // inBrush: null,\n // outOfBrush: null,\n toolbox: null,\n // Default value see preprocessor.\n brushLink: null,\n // Series indices array, broadcast using dataIndex.\n // or 'all', which means all series. 'none' or null means no series.\n seriesIndex: 'all',\n // seriesIndex array, specify series controlled by this brush component.\n geoIndex: null,\n //\n xAxisIndex: null,\n yAxisIndex: null,\n brushType: 'rect',\n // Default brushType, see BrushController.\n brushMode: 'single',\n // Default brushMode, 'single' or 'multiple'\n transformable: true,\n // Default transformable.\n brushStyle: {\n // Default brushStyle\n borderWidth: 1,\n color: 'rgba(120,140,180,0.3)',\n borderColor: 'rgba(120,140,180,0.8)'\n },\n throttleType: 'fixRate',\n // Throttle in brushSelected event. 'fixRate' or 'debounce'.\n // If null, no throttle. Valid only in the first brush component\n throttleDelay: 0,\n // Unit: ms, 0 means every event will be triggered.\n // FIXME\n // 试验效果\n removeOnClick: true,\n z: 10000\n },\n\n /**\n * @readOnly\n * @type {Array.}\n */\n areas: [],\n\n /**\n * Current activated brush type.\n * If null, brush is inactived.\n * see module:echarts/component/helper/BrushController\n * @readOnly\n * @type {string}\n */\n brushType: null,\n\n /**\n * Current brush opt.\n * see module:echarts/component/helper/BrushController\n * @readOnly\n * @type {Object}\n */\n brushOption: {},\n\n /**\n * @readOnly\n * @type {Array.}\n */\n coordInfoList: [],\n optionUpdated: function (newOption, isInit) {\n var thisOption = this.option;\n !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n var inBrush = thisOption.inBrush = thisOption.inBrush || {}; // Always give default visual, consider setOption at the second time.\n\n thisOption.outOfBrush = thisOption.outOfBrush || {\n color: DEFAULT_OUT_OF_BRUSH_COLOR\n };\n\n if (!inBrush.hasOwnProperty('liftZ')) {\n // Bigger than the highlight z lift, otherwise it will\n // be effected by the highlight z when brush.\n inBrush.liftZ = 5;\n }\n },\n\n /**\n * If ranges is null/undefined, range state remain.\n *\n * @param {Array.} [ranges]\n */\n setAreas: function (areas) {\n // If ranges is null/undefined, range state remain.\n // This helps user to dispatchAction({type: 'brush'}) with no areas\n // set but just want to get the current brush select info from a `brush` event.\n if (!areas) {\n return;\n }\n\n this.areas = zrUtil.map(areas, function (area) {\n return generateBrushOption(this.option, area);\n }, this);\n },\n\n /**\n * see module:echarts/component/helper/BrushController\n * @param {Object} brushOption\n */\n setBrushOption: function (brushOption) {\n this.brushOption = generateBrushOption(this.option, brushOption);\n this.brushType = this.brushOption.brushType;\n }\n});\n\nfunction generateBrushOption(option, brushOption) {\n return zrUtil.merge({\n brushType: option.brushType,\n brushMode: option.brushMode,\n transformable: option.transformable,\n brushStyle: new Model(option.brushStyle).getItemStyle(),\n removeOnClick: option.removeOnClick,\n z: option.z\n }, brushOption, true);\n}\n\nvar _default = BrushModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar BrushController = __webpack_require__(251);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentView({\n type: 'brush',\n init: function (ecModel, api) {\n /**\n * @readOnly\n * @type {module:echarts/model/Global}\n */\n this.ecModel = ecModel;\n /**\n * @readOnly\n * @type {module:echarts/ExtensionAPI}\n */\n\n this.api = api;\n /**\n * @readOnly\n * @type {module:echarts/component/brush/BrushModel}\n */\n\n this.model;\n /**\n * @private\n * @type {module:echarts/component/helper/BrushController}\n */\n\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n },\n\n /**\n * @override\n */\n render: function (brushModel) {\n this.model = brushModel;\n return updateController.apply(this, arguments);\n },\n\n /**\n * @override\n */\n updateTransform: updateController,\n\n /**\n * @override\n */\n updateView: updateController,\n // /**\n // * @override\n // */\n // updateLayout: updateController,\n // /**\n // * @override\n // */\n // updateVisual: updateController,\n\n /**\n * @override\n */\n dispose: function () {\n this._brushController.dispose();\n },\n\n /**\n * @private\n */\n _onBrush: function (areas, opt) {\n var modelId = this.model.id;\n this.model.brushTargetManager.setOutputRanges(areas, this.ecModel); // Action is not dispatched on drag end, because the drag end\n // emits the same params with the last drag move event, and\n // may have some delay when using touch pad, which makes\n // animation not smooth (when using debounce).\n\n (!opt.isEnd || opt.removeOnClick) && this.api.dispatchAction({\n type: 'brush',\n brushId: modelId,\n areas: zrUtil.clone(areas),\n $from: modelId\n });\n }\n});\n\nfunction updateController(brushModel, ecModel, api, payload) {\n // Do not update controller when drawing.\n (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * payload: {\n * brushIndex: number, or,\n * brushId: string, or,\n * brushName: string,\n * globalRanges: Array\n * }\n */\necharts.registerAction({\n type: 'brush',\n event: 'brush'\n /*, update: 'updateView' */\n\n}, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'brush',\n query: payload\n }, function (brushModel) {\n brushModel.setAreas(payload.areas);\n });\n});\n/**\n * payload: {\n * brushComponents: [\n * {\n * brushId,\n * brushIndex,\n * brushName,\n * series: [\n * {\n * seriesId,\n * seriesIndex,\n * seriesName,\n * rawIndices: [21, 34, ...]\n * },\n * ...\n * ]\n * },\n * ...\n * ]\n * }\n */\n\necharts.registerAction({\n type: 'brushSelect',\n event: 'brushSelected',\n update: 'none'\n}, function () {});\n\n/***/ }),\n/* 1178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\n\nfunction _default(option, isNew) {\n var brushComponents = option && option.brush;\n\n if (!zrUtil.isArray(brushComponents)) {\n brushComponents = brushComponents ? [brushComponents] : [];\n }\n\n if (!brushComponents.length) {\n return;\n }\n\n var brushComponentSpecifiedBtns = [];\n zrUtil.each(brushComponents, function (brushOpt) {\n var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n if (tbs instanceof Array) {\n brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n }\n });\n var toolbox = option && option.toolbox;\n\n if (zrUtil.isArray(toolbox)) {\n toolbox = toolbox[0];\n }\n\n if (!toolbox) {\n toolbox = {\n feature: {}\n };\n option.toolbox = [toolbox];\n }\n\n var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n removeDuplicate(brushTypes);\n\n if (isNew && !brushTypes.length) {\n brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n }\n}\n\nfunction removeDuplicate(arr) {\n var map = {};\n zrUtil.each(arr, function (val) {\n map[val] = 1;\n });\n arr.length = 0;\n zrUtil.each(map, function (flag, val) {\n arr.push(val);\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar polygonContain = __webpack_require__(552);\n\nvar BoundingRect = __webpack_require__(21);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Key of the first level is brushType: `line`, `rect`, `polygon`.\n// Key of the second level is chart element type: `point`, `rect`.\n// See moudule:echarts/component/helper/BrushController\n// function param:\n// {Object} itemLayout fetch from data.getItemLayout(dataIndex)\n// {Object} selectors {point: selector, rect: selector, ...}\n// {Object} area {range: [[], [], ..], boudingRect}\n// function return:\n// {boolean} Whether in the given brush.\nvar selector = {\n lineX: getLineSelectors(0),\n lineY: getLineSelectors(1),\n rect: {\n point: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n },\n rect: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.intersect(itemLayout);\n }\n },\n polygon: {\n point: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n },\n rect: function (itemLayout, selectors, area) {\n var points = area.range;\n\n if (!itemLayout || points.length <= 1) {\n return false;\n }\n\n var x = itemLayout.x;\n var y = itemLayout.y;\n var width = itemLayout.width;\n var height = itemLayout.height;\n var p = points[0];\n\n if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || lineIntersectPolygon(x, y, x + width, y, points) || lineIntersectPolygon(x, y, x, y + height, points) || lineIntersectPolygon(x + width, y, x + width, y + height, points) || lineIntersectPolygon(x, y + height, x + width, y + height, points)) {\n return true;\n }\n }\n }\n};\n\nfunction getLineSelectors(xyIndex) {\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n return {\n point: function (itemLayout, selectors, area) {\n if (itemLayout) {\n var range = area.range;\n var p = itemLayout[xyIndex];\n return inLineRange(p, range);\n }\n },\n rect: function (itemLayout, selectors, area) {\n if (itemLayout) {\n var range = area.range;\n var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n }\n }\n };\n}\n\nfunction inLineRange(p, range) {\n return range[0] <= p && p <= range[1];\n}\n\nfunction lineIntersectPolygon(lx, ly, l2x, l2y, points) {\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n var p = points[i];\n\n if (lineIntersect(lx, ly, l2x, l2y, p[0], p[1], p2[0], p2[1])) {\n return true;\n }\n\n p2 = p;\n }\n} // Code from with some fix.\n// See \n\n\nfunction lineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n var delta = determinant(a2x - a1x, b1x - b2x, a2y - a1y, b1y - b2y);\n\n if (nearZero(delta)) {\n // parallel\n return false;\n }\n\n var namenda = determinant(b1x - a1x, b1x - b2x, b1y - a1y, b1y - b2y) / delta;\n\n if (namenda < 0 || namenda > 1) {\n return false;\n }\n\n var miu = determinant(a2x - a1x, b1x - a1x, a2y - a1y, b1y - a1y) / delta;\n\n if (miu < 0 || miu > 1) {\n return false;\n }\n\n return true;\n}\n\nfunction nearZero(val) {\n return val <= 1e-6 && val >= -1e-6;\n}\n\nfunction determinant(v1, v2, v3, v4) {\n return v1 * v4 - v2 * v3;\n}\n\nvar _default = selector;\nmodule.exports = _default;\n\n/***/ }),\n/* 1180 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar BoundingRect = __webpack_require__(21);\n\nvar visualSolution = __webpack_require__(185);\n\nvar selector = __webpack_require__(1179);\n\nvar throttleUtil = __webpack_require__(105);\n\nvar BrushTargetManager = __webpack_require__(377);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\nvar PRIORITY_BRUSH = echarts.PRIORITY.VISUAL.BRUSH;\n/**\n * Layout for visual, the priority higher than other layout, and before brush visual.\n */\n\necharts.registerLayout(PRIORITY_BRUSH, function (ecModel, api, payload) {\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n brushType: false\n });\n var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n });\n});\n/**\n * Register the visual encoding if this modules required.\n */\n\necharts.registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) {\n var brushSelected = [];\n var throttleType;\n var throttleDelay;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel, brushIndex) {\n var thisBrushSelected = {\n brushId: brushModel.id,\n brushIndex: brushIndex,\n brushName: brushModel.name,\n areas: zrUtil.clone(brushModel.areas),\n selected: []\n }; // Every brush component exists in event params, convenient\n // for user to find by index.\n\n brushSelected.push(thisBrushSelected);\n var brushOption = brushModel.option;\n var brushLink = brushOption.brushLink;\n var linkedSeriesMap = [];\n var selectedDataIndexForLink = [];\n var rangeInfoBySeries = [];\n var hasBrushExists = 0;\n\n if (!brushIndex) {\n // Only the first throttle setting works.\n throttleType = brushOption.throttleType;\n throttleDelay = brushOption.throttleDelay;\n } // Add boundingRect and selectors to range.\n\n\n var areas = zrUtil.map(brushModel.areas, function (area) {\n return bindSelector(zrUtil.defaults({\n boundingRect: boundingRectBuilders[area.brushType](area)\n }, area));\n });\n var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n mappingOption.mappingMethod = 'fixed';\n });\n zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n linkedSeriesMap[seriesIndex] = 1;\n });\n\n function linkOthers(seriesIndex) {\n return brushLink === 'all' || linkedSeriesMap[seriesIndex];\n } // If no supported brush or no brush on the series,\n // all visuals should be in original state.\n\n\n function brushed(rangeInfoList) {\n return !!rangeInfoList.length;\n }\n /**\n * Logic for each series: (If the logic has to be modified one day, do it carefully!)\n *\n * ( brushed ┬ && ┬hasBrushExist ┬ && linkOthers ) => StepA: ┬record, ┬ StepB: ┬visualByRecord.\n * !brushed┘ ├hasBrushExist ┤ └nothing,┘ ├visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( !brushed && ┬hasBrushExist ┬ && linkOthers ) => StepA: nothing, StepB: ┬visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( brushed ┬ && !linkOthers ) => StepA: nothing, StepB: ┬visualByCheck.\n * !brushed┘ └nothing.\n * ( !brushed && !linkOthers ) => StepA: nothing, StepB: nothing.\n */\n // Step A\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex, rangeInfoList) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n });\n\n function stepAParallel(seriesModel, seriesIndex) {\n var coordSys = seriesModel.coordinateSystem;\n hasBrushExists |= coordSys.hasAxisBrushed();\n linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n });\n }\n\n function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n\n if (!selectorsByBrushType || brushModelNotControll(brushModel, seriesIndex)) {\n return;\n }\n\n zrUtil.each(areas, function (area) {\n selectorsByBrushType[area.brushType] && brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel) && rangeInfoList.push(area);\n hasBrushExists |= brushed(rangeInfoList);\n });\n\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n var data = seriesModel.getData();\n data.each(function (dataIndex) {\n if (checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex)) {\n selectedDataIndexForLink[dataIndex] = 1;\n }\n });\n }\n } // Step B\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var seriesBrushSelected = {\n seriesId: seriesModel.id,\n seriesIndex: seriesIndex,\n seriesName: seriesModel.name,\n dataIndex: []\n }; // Every series exists in event params, convenient\n // for user to find series by seriesIndex.\n\n thisBrushSelected.selected.push(seriesBrushSelected);\n var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n var rangeInfoList = rangeInfoBySeries[seriesIndex];\n var data = seriesModel.getData();\n var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n } : function (dataIndex) {\n return checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n }; // If no supported brush or no brush, all visuals are in original state.\n\n (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n });\n });\n dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n});\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n // This event will not be triggered when `setOpion`, otherwise dead lock may\n // triggered when do `setOption` in event listener, which we do not find\n // satisfactory way to solve yet. Some considered resolutions:\n // (a) Diff with prevoius selected data ant only trigger event when changed.\n // But store previous data and diff precisely (i.e., not only by dataIndex, but\n // also detect value changes in selected data) might bring complexity or fragility.\n // (b) Use spectial param like `silent` to suppress event triggering.\n // But such kind of volatile param may be weird in `setOption`.\n if (!payload) {\n return;\n }\n\n var zr = api.getZr();\n\n if (zr[DISPATCH_FLAG]) {\n return;\n }\n\n if (!zr[DISPATCH_METHOD]) {\n zr[DISPATCH_METHOD] = doDispatch;\n }\n\n var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n if (!api.isDisposed()) {\n var zr = api.getZr();\n zr[DISPATCH_FLAG] = true;\n api.dispatchAction({\n type: 'brushSelect',\n batch: brushSelected\n });\n zr[DISPATCH_FLAG] = false;\n }\n}\n\nfunction checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) {\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n var area = rangeInfoList[i];\n\n if (selectorsByBrushType[area.brushType](dataIndex, data, area.selectors, area)) {\n return true;\n }\n }\n}\n\nfunction getSelectorsByBrushType(seriesModel) {\n var brushSelector = seriesModel.brushSelector;\n\n if (zrUtil.isString(brushSelector)) {\n var sels = [];\n zrUtil.each(selector, function (selectorsByElementType, brushType) {\n sels[brushType] = function (dataIndex, data, selectors, area) {\n var itemLayout = data.getItemLayout(dataIndex);\n return selectorsByElementType[brushSelector](itemLayout, selectors, area);\n };\n });\n return sels;\n } else if (zrUtil.isFunction(brushSelector)) {\n var bSelector = {};\n zrUtil.each(selector, function (sel, brushType) {\n bSelector[brushType] = brushSelector;\n });\n return bSelector;\n }\n\n return brushSelector;\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n var seriesIndices = brushModel.option.seriesIndex;\n return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nfunction bindSelector(area) {\n var selectors = area.selectors = {};\n zrUtil.each(selector[area.brushType], function (selFn, elType) {\n // Do not use function binding or curry for performance.\n selectors[elType] = function (itemLayout) {\n return selFn(itemLayout, selectors, area);\n };\n });\n return area;\n}\n\nvar boundingRectBuilders = {\n lineX: zrUtil.noop,\n lineY: zrUtil.noop,\n rect: function (area) {\n return getBoundingRectFromMinMax(area.range);\n },\n polygon: function (area) {\n var minMax;\n var range = area.range;\n\n for (var i = 0, len = range.length; i < len; i++) {\n minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n var rg = range[i];\n rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n }\n\n return minMax && getBoundingRectFromMinMax(minMax);\n }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}\n\n/***/ }),\n/* 1181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(1250);\n\n__webpack_require__(1251);\n\n__webpack_require__(1182);\n\n/***/ }),\n/* 1182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar formatUtil = __webpack_require__(19);\n\nvar numberUtil = __webpack_require__(8);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar MONTH_TEXT = {\n EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n CN: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar WEEK_TEXT = {\n EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n CN: ['日', '一', '二', '三', '四', '五', '六']\n};\n\nvar _default = echarts.extendComponentView({\n type: 'calendar',\n\n /**\n * top/left line points\n * @private\n */\n _tlpoints: null,\n\n /**\n * bottom/right line points\n * @private\n */\n _blpoints: null,\n\n /**\n * first day of month\n * @private\n */\n _firstDayOfMonth: null,\n\n /**\n * first day point of month\n * @private\n */\n _firstDayPoints: null,\n render: function (calendarModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n var coordSys = calendarModel.coordinateSystem; // range info\n\n var rangeData = coordSys.getRangeInfo();\n var orient = coordSys.getOrient();\n\n this._renderDayRect(calendarModel, rangeData, group); // _renderLines must be called prior to following function\n\n\n this._renderLines(calendarModel, rangeData, orient, group);\n\n this._renderYearText(calendarModel, rangeData, orient, group);\n\n this._renderMonthText(calendarModel, orient, group);\n\n this._renderWeekText(calendarModel, rangeData, orient, group);\n },\n // render day rect\n _renderDayRect: function (calendarModel, rangeData, group) {\n var coordSys = calendarModel.coordinateSystem;\n var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n var sw = coordSys.getCellWidth();\n var sh = coordSys.getCellHeight();\n\n for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n var point = coordSys.dataToRect([i], false).tl; // every rect\n\n var rect = new graphic.Rect({\n shape: {\n x: point[0],\n y: point[1],\n width: sw,\n height: sh\n },\n cursor: 'default',\n style: itemRectStyleModel\n });\n group.add(rect);\n }\n },\n // render separate line\n _renderLines: function (calendarModel, rangeData, orient, group) {\n var self = this;\n var coordSys = calendarModel.coordinateSystem;\n var lineStyleModel = calendarModel.getModel('splitLine.lineStyle').getLineStyle();\n var show = calendarModel.get('splitLine.show');\n var lineWidth = lineStyleModel.lineWidth;\n this._tlpoints = [];\n this._blpoints = [];\n this._firstDayOfMonth = [];\n this._firstDayPoints = [];\n var firstDay = rangeData.start;\n\n for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n addPoints(firstDay.formatedDate);\n\n if (i === 0) {\n firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n }\n\n var date = firstDay.date;\n date.setMonth(date.getMonth() + 1);\n firstDay = coordSys.getDateInfo(date);\n }\n\n addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n function addPoints(date) {\n self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n self._tlpoints.push(points[0]);\n\n self._blpoints.push(points[points.length - 1]);\n\n show && self._drawSplitline(points, lineStyleModel, group);\n } // render top/left line\n\n\n show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group); // render bottom/right line\n\n show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n },\n // get points at both ends\n _getEdgesPoints: function (points, lineWidth, orient) {\n var rs = [points[0].slice(), points[points.length - 1].slice()];\n var idx = orient === 'horizontal' ? 0 : 1; // both ends of the line are extend half lineWidth\n\n rs[0][idx] = rs[0][idx] - lineWidth / 2;\n rs[1][idx] = rs[1][idx] + lineWidth / 2;\n return rs;\n },\n // render split line\n _drawSplitline: function (points, lineStyleModel, group) {\n var poyline = new graphic.Polyline({\n z2: 20,\n shape: {\n points: points\n },\n style: lineStyleModel\n });\n group.add(poyline);\n },\n // render month line of one week points\n _getLinePointsOfOneWeek: function (calendarModel, date, orient) {\n var coordSys = calendarModel.coordinateSystem;\n date = coordSys.getDateInfo(date);\n var points = [];\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(date.time, i);\n var point = coordSys.dataToRect([tmpD.time], false);\n points[2 * tmpD.day] = point.tl;\n points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n }\n\n return points;\n },\n _formatterLabel: function (formatter, params) {\n if (typeof formatter === 'string' && formatter) {\n return formatUtil.formatTplSimple(formatter, params);\n }\n\n if (typeof formatter === 'function') {\n return formatter(params);\n }\n\n return params.nameMap;\n },\n _yearTextPositionControl: function (textEl, point, orient, position, margin) {\n point = point.slice();\n var aligns = ['center', 'bottom'];\n\n if (position === 'bottom') {\n point[1] += margin;\n aligns = ['center', 'top'];\n } else if (position === 'left') {\n point[0] -= margin;\n } else if (position === 'right') {\n point[0] += margin;\n aligns = ['center', 'top'];\n } else {\n // top\n point[1] -= margin;\n }\n\n var rotate = 0;\n\n if (position === 'left' || position === 'right') {\n rotate = Math.PI / 2;\n }\n\n return {\n rotation: rotate,\n position: point,\n style: {\n textAlign: aligns[0],\n textVerticalAlign: aligns[1]\n }\n };\n },\n // render year\n _renderYearText: function (calendarModel, rangeData, orient, group) {\n var yearLabel = calendarModel.getModel('yearLabel');\n\n if (!yearLabel.get('show')) {\n return;\n }\n\n var margin = yearLabel.get('margin');\n var pos = yearLabel.get('position');\n\n if (!pos) {\n pos = orient !== 'horizontal' ? 'top' : 'left';\n }\n\n var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n var xc = (points[0][0] + points[1][0]) / 2;\n var yc = (points[0][1] + points[1][1]) / 2;\n var idx = orient === 'horizontal' ? 0 : 1;\n var posPoints = {\n top: [xc, points[idx][1]],\n bottom: [xc, points[1 - idx][1]],\n left: [points[1 - idx][0], yc],\n right: [points[idx][0], yc]\n };\n var name = rangeData.start.y;\n\n if (+rangeData.end.y > +rangeData.start.y) {\n name = name + '-' + rangeData.end.y;\n }\n\n var formatter = yearLabel.get('formatter');\n var params = {\n start: rangeData.start.y,\n end: rangeData.end.y,\n nameMap: name\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var yearText = new graphic.Text({\n z2: 30\n });\n graphic.setTextStyle(yearText.style, yearLabel, {\n text: content\n }), yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n group.add(yearText);\n },\n _monthTextPositionControl: function (point, isCenter, orient, position, margin) {\n var align = 'left';\n var vAlign = 'top';\n var x = point[0];\n var y = point[1];\n\n if (orient === 'horizontal') {\n y = y + margin;\n\n if (isCenter) {\n align = 'center';\n }\n\n if (position === 'start') {\n vAlign = 'bottom';\n }\n } else {\n x = x + margin;\n\n if (isCenter) {\n vAlign = 'middle';\n }\n\n if (position === 'start') {\n align = 'right';\n }\n }\n\n return {\n x: x,\n y: y,\n textAlign: align,\n textVerticalAlign: vAlign\n };\n },\n // render month and year text\n _renderMonthText: function (calendarModel, orient, group) {\n var monthLabel = calendarModel.getModel('monthLabel');\n\n if (!monthLabel.get('show')) {\n return;\n }\n\n var nameMap = monthLabel.get('nameMap');\n var margin = monthLabel.get('margin');\n var pos = monthLabel.get('position');\n var align = monthLabel.get('align');\n var termPoints = [this._tlpoints, this._blpoints];\n\n if (zrUtil.isString(nameMap)) {\n nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\n }\n\n var idx = pos === 'start' ? 0 : 1;\n var axis = orient === 'horizontal' ? 0 : 1;\n margin = pos === 'start' ? -margin : margin;\n var isCenter = align === 'center';\n\n for (var i = 0; i < termPoints[idx].length - 1; i++) {\n var tmp = termPoints[idx][i].slice();\n var firstDay = this._firstDayOfMonth[i];\n\n if (isCenter) {\n var firstDayPoints = this._firstDayPoints[i];\n tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n }\n\n var formatter = monthLabel.get('formatter');\n var name = nameMap[+firstDay.m - 1];\n var params = {\n yyyy: firstDay.y,\n yy: (firstDay.y + '').slice(2),\n MM: firstDay.m,\n M: +firstDay.m,\n nameMap: name\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var monthText = new graphic.Text({\n z2: 30\n });\n zrUtil.extend(graphic.setTextStyle(monthText.style, monthLabel, {\n text: content\n }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin));\n group.add(monthText);\n }\n },\n _weekTextPositionControl: function (point, orient, position, margin, cellSize) {\n var align = 'center';\n var vAlign = 'middle';\n var x = point[0];\n var y = point[1];\n var isStart = position === 'start';\n\n if (orient === 'horizontal') {\n x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n align = isStart ? 'right' : 'left';\n } else {\n y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n vAlign = isStart ? 'bottom' : 'top';\n }\n\n return {\n x: x,\n y: y,\n textAlign: align,\n textVerticalAlign: vAlign\n };\n },\n // render weeks\n _renderWeekText: function (calendarModel, rangeData, orient, group) {\n var dayLabel = calendarModel.getModel('dayLabel');\n\n if (!dayLabel.get('show')) {\n return;\n }\n\n var coordSys = calendarModel.coordinateSystem;\n var pos = dayLabel.get('position');\n var nameMap = dayLabel.get('nameMap');\n var margin = dayLabel.get('margin');\n var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n if (zrUtil.isString(nameMap)) {\n nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\n }\n\n var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\n\n if (pos === 'start') {\n start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n margin = -margin;\n }\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(start, i);\n var point = coordSys.dataToRect([tmpD.time], false).center;\n var day = i;\n day = Math.abs((i + firstDayOfWeek) % 7);\n var weekText = new graphic.Text({\n z2: 30\n });\n zrUtil.extend(graphic.setTextStyle(weekText.style, dayLabel, {\n text: nameMap[day]\n }), this._weekTextPositionControl(point, orient, pos, margin, cellSize));\n group.add(weekText);\n }\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(375);\n\n__webpack_require__(140);\n\n__webpack_require__(141);\n\n__webpack_require__(1190);\n\n__webpack_require__(1191);\n\n__webpack_require__(1186);\n\n__webpack_require__(1187);\n\n__webpack_require__(373);\n\n__webpack_require__(372);\n\n/***/ }),\n/* 1184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(375);\n\n__webpack_require__(140);\n\n__webpack_require__(141);\n\n__webpack_require__(1188);\n\n__webpack_require__(1189);\n\n__webpack_require__(373);\n\n__webpack_require__(372);\n\n/***/ }),\n/* 1185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar numberUtil = __webpack_require__(8);\n\nvar helper = __webpack_require__(250);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n/**\n * Operate single axis.\n * One axis can only operated by one axis operator.\n * Different dataZoomModels may be defined to operate the same axis.\n * (i.e. 'inside' data zoom and 'slider' data zoom components)\n * So dataZoomModels share one axisProxy in that case.\n *\n * @class\n */\n\nvar AxisProxy = function (dimName, axisIndex, dataZoomModel, ecModel) {\n /**\n * @private\n * @type {string}\n */\n this._dimName = dimName;\n /**\n * @private\n */\n\n this._axisIndex = axisIndex;\n /**\n * @private\n * @type {Array.}\n */\n\n this._valueWindow;\n /**\n * @private\n * @type {Array.}\n */\n\n this._percentWindow;\n /**\n * @private\n * @type {Array.}\n */\n\n this._dataExtent;\n /**\n * {minSpan, maxSpan, minValueSpan, maxValueSpan}\n * @private\n * @type {Object}\n */\n\n this._minMaxSpan;\n /**\n * @readOnly\n * @type {module: echarts/model/Global}\n */\n\n this.ecModel = ecModel;\n /**\n * @private\n * @type {module: echarts/component/dataZoom/DataZoomModel}\n */\n\n this._dataZoomModel = dataZoomModel; // /**\n // * @readOnly\n // * @private\n // */\n // this.hasSeriesStacked;\n};\n\nAxisProxy.prototype = {\n constructor: AxisProxy,\n\n /**\n * Whether the axisProxy is hosted by dataZoomModel.\n *\n * @public\n * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n * @return {boolean}\n */\n hostedBy: function (dataZoomModel) {\n return this._dataZoomModel === dataZoomModel;\n },\n\n /**\n * @return {Array.} Value can only be NaN or finite value.\n */\n getDataValueWindow: function () {\n return this._valueWindow.slice();\n },\n\n /**\n * @return {Array.}\n */\n getDataPercentWindow: function () {\n return this._percentWindow.slice();\n },\n\n /**\n * @public\n * @param {number} axisIndex\n * @return {Array} seriesModels\n */\n getTargetSeriesModels: function () {\n var seriesModels = [];\n var ecModel = this.ecModel;\n ecModel.eachSeries(function (seriesModel) {\n if (helper.isCoordSupported(seriesModel.get('coordinateSystem'))) {\n var dimName = this._dimName;\n var axisModel = ecModel.queryComponents({\n mainType: dimName + 'Axis',\n index: seriesModel.get(dimName + 'AxisIndex'),\n id: seriesModel.get(dimName + 'AxisId')\n })[0];\n\n if (this._axisIndex === (axisModel && axisModel.componentIndex)) {\n seriesModels.push(seriesModel);\n }\n }\n }, this);\n return seriesModels;\n },\n getAxisModel: function () {\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n },\n getOtherAxisModel: function () {\n var axisDim = this._dimName;\n var ecModel = this.ecModel;\n var axisModel = this.getAxisModel();\n var isCartesian = axisDim === 'x' || axisDim === 'y';\n var otherAxisDim;\n var coordSysIndexName;\n\n if (isCartesian) {\n coordSysIndexName = 'gridIndex';\n otherAxisDim = axisDim === 'x' ? 'y' : 'x';\n } else {\n coordSysIndexName = 'polarIndex';\n otherAxisDim = axisDim === 'angle' ? 'radius' : 'angle';\n }\n\n var foundOtherAxisModel;\n ecModel.eachComponent(otherAxisDim + 'Axis', function (otherAxisModel) {\n if ((otherAxisModel.get(coordSysIndexName) || 0) === (axisModel.get(coordSysIndexName) || 0)) {\n foundOtherAxisModel = otherAxisModel;\n }\n });\n return foundOtherAxisModel;\n },\n getMinMaxSpan: function () {\n return zrUtil.clone(this._minMaxSpan);\n },\n\n /**\n * Only calculate by given range and this._dataExtent, do not change anything.\n *\n * @param {Object} opt\n * @param {number} [opt.start]\n * @param {number} [opt.end]\n * @param {number} [opt.startValue]\n * @param {number} [opt.endValue]\n */\n calculateDataWindow: function (opt) {\n var dataExtent = this._dataExtent;\n var axisModel = this.getAxisModel();\n var scale = axisModel.axis.scale;\n\n var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n var percentExtent = [0, 100];\n var percentWindow = [opt.start, opt.end];\n var valueWindow = [];\n each(['startValue', 'endValue'], function (prop) {\n valueWindow.push(opt[prop] != null ? scale.parse(opt[prop]) : null);\n }); // Normalize bound.\n\n each([0, 1], function (idx) {\n var boundValue = valueWindow[idx];\n var boundPercent = percentWindow[idx]; // Notice: dataZoom is based either on `percentProp` ('start', 'end') or\n // on `valueProp` ('startValue', 'endValue'). The former one is suitable\n // for cases that a dataZoom component controls multiple axes with different\n // unit or extent, and the latter one is suitable for accurate zoom by pixel\n // (e.g., in dataZoomSelect). `valueProp` can be calculated from `percentProp`,\n // but it is awkward that `percentProp` can not be obtained from `valueProp`\n // accurately (because all of values that are overflow the `dataExtent` will\n // be calculated to percent '100%'). So we have to use\n // `dataZoom.getRangePropMode()` to mark which prop is used.\n // `rangePropMode` is updated only when setOption or dispatchAction, otherwise\n // it remains its original value.\n\n if (rangePropMode[idx] === 'percent') {\n if (boundPercent == null) {\n boundPercent = percentExtent[idx];\n } // Use scale.parse to math round for category or time axis.\n\n\n boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent, true));\n } else {\n // Calculating `percent` from `value` may be not accurate, because\n // This calculation can not be inversed, because all of values that\n // are overflow the `dataExtent` will be calculated to percent '100%'\n boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent, true);\n } // valueWindow[idx] = round(boundValue);\n // percentWindow[idx] = round(boundPercent);\n\n\n valueWindow[idx] = boundValue;\n percentWindow[idx] = boundPercent;\n });\n return {\n valueWindow: asc(valueWindow),\n percentWindow: asc(percentWindow)\n };\n },\n\n /**\n * Notice: reset should not be called before series.restoreData() called,\n * so it is recommanded to be called in \"process stage\" but not \"model init\n * stage\".\n *\n * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n */\n reset: function (dataZoomModel) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n var targetSeries = this.getTargetSeriesModels(); // Culculate data window and data extent, and record them.\n\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries); // this.hasSeriesStacked = false;\n // each(targetSeries, function (series) {\n // var data = series.getData();\n // var dataDim = data.mapDimension(this._dimName);\n // var stackedDimension = data.getCalculationInfo('stackedDimension');\n // if (stackedDimension && stackedDimension === dataDim) {\n // this.hasSeriesStacked = true;\n // }\n // }, this);\n\n var dataWindow = this.calculateDataWindow(dataZoomModel.option);\n this._valueWindow = dataWindow.valueWindow;\n this._percentWindow = dataWindow.percentWindow;\n setMinMaxSpan(this); // Update axis setting then.\n\n setAxisModel(this);\n },\n\n /**\n * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n */\n restore: function (dataZoomModel) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n this._valueWindow = this._percentWindow = null;\n setAxisModel(this, true);\n },\n\n /**\n * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n */\n filterData: function (dataZoomModel, api) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n var axisDim = this._dimName;\n var seriesModels = this.getTargetSeriesModels();\n var filterMode = dataZoomModel.get('filterMode');\n var valueWindow = this._valueWindow;\n\n if (filterMode === 'none') {\n return;\n } // FIXME\n // Toolbox may has dataZoom injected. And if there are stacked bar chart\n // with NaN data, NaN will be filtered and stack will be wrong.\n // So we need to force the mode to be set empty.\n // In fect, it is not a big deal that do not support filterMode-'filter'\n // when using toolbox#dataZoom, utill tooltip#dataZoom support \"single axis\n // selection\" some day, which might need \"adapt to data extent on the\n // otherAxis\", which is disabled by filterMode-'empty'.\n // But currently, stack has been fixed to based on value but not index,\n // so this is not an issue any more.\n // var otherAxisModel = this.getOtherAxisModel();\n // if (dataZoomModel.get('$fromToolbox')\n // && otherAxisModel\n // && otherAxisModel.hasSeriesStacked\n // ) {\n // filterMode = 'empty';\n // }\n // TODO\n // filterMode 'weakFilter' and 'empty' is not optimized for huge data yet.\n\n\n each(seriesModels, function (seriesModel) {\n var seriesData = seriesModel.getData();\n var dataDims = seriesData.mapDimension(axisDim, true);\n\n if (!dataDims.length) {\n return;\n }\n\n if (filterMode === 'weakFilter') {\n seriesData.filterSelf(function (dataIndex) {\n var leftOut;\n var rightOut;\n var hasValue;\n\n for (var i = 0; i < dataDims.length; i++) {\n var value = seriesData.get(dataDims[i], dataIndex);\n var thisHasValue = !isNaN(value);\n var thisLeftOut = value < valueWindow[0];\n var thisRightOut = value > valueWindow[1];\n\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\n return true;\n }\n\n thisHasValue && (hasValue = true);\n thisLeftOut && (leftOut = true);\n thisRightOut && (rightOut = true);\n } // If both left out and right out, do not filter.\n\n\n return hasValue && leftOut && rightOut;\n });\n } else {\n each(dataDims, function (dim) {\n if (filterMode === 'empty') {\n seriesModel.setData(seriesData.map(dim, function (value) {\n return !isInWindow(value) ? NaN : value;\n }));\n } else {\n var range = {};\n range[dim] = valueWindow; // console.time('select');\n\n seriesData.selectRange(range); // console.timeEnd('select');\n }\n });\n }\n\n each(dataDims, function (dim) {\n seriesData.setApproximateExtent(valueWindow, dim);\n });\n });\n\n function isInWindow(value) {\n return value >= valueWindow[0] && value <= valueWindow[1];\n }\n }\n};\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n var dataExtent = [Infinity, -Infinity];\n each(seriesModels, function (seriesModel) {\n var seriesData = seriesModel.getData();\n\n if (seriesData) {\n each(seriesData.mapDimension(axisDim, true), function (dim) {\n var seriesExtent = seriesData.getApproximateExtent(dim);\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n });\n }\n });\n\n if (dataExtent[1] < dataExtent[0]) {\n dataExtent = [NaN, NaN];\n } // It is important to get \"consistent\" extent when more then one axes is\n // controlled by a `dataZoom`, otherwise those axes will not be synchronized\n // when zooming. But it is difficult to know what is \"consistent\", considering\n // axes have different type or even different meanings (For example, two\n // time axes are used to compare data of the same date in different years).\n // So basically dataZoom just obtains extent by series.data (in category axis\n // extent can be obtained from axis.data).\n // Nevertheless, user can set min/max/scale on axes to make extent of axes\n // consistent.\n\n\n fixExtentByAxis(axisProxy, dataExtent);\n return dataExtent;\n}\n\nfunction fixExtentByAxis(axisProxy, dataExtent) {\n var axisModel = axisProxy.getAxisModel();\n var min = axisModel.getMin(true); // For category axis, if min/max/scale are not set, extent is determined\n // by axis.data by default.\n\n var isCategoryAxis = axisModel.get('type') === 'category';\n var axisDataLen = isCategoryAxis && axisModel.getCategories().length;\n\n if (min != null && min !== 'dataMin' && typeof min !== 'function') {\n dataExtent[0] = min;\n } else if (isCategoryAxis) {\n dataExtent[0] = axisDataLen > 0 ? 0 : NaN;\n }\n\n var max = axisModel.getMax(true);\n\n if (max != null && max !== 'dataMax' && typeof max !== 'function') {\n dataExtent[1] = max;\n } else if (isCategoryAxis) {\n dataExtent[1] = axisDataLen > 0 ? axisDataLen - 1 : NaN;\n }\n\n if (!axisModel.get('scale', true)) {\n dataExtent[0] > 0 && (dataExtent[0] = 0);\n dataExtent[1] < 0 && (dataExtent[1] = 0);\n } // For value axis, if min/max/scale are not set, we just use the extent obtained\n // by series data, which may be a little different from the extent calculated by\n // `axisHelper.getScaleExtent`. But the different just affects the experience a\n // little when zooming. So it will not be fixed until some users require it strongly.\n\n\n return dataExtent;\n}\n\nfunction setAxisModel(axisProxy, isRestore) {\n var axisModel = axisProxy.getAxisModel();\n var percentWindow = axisProxy._percentWindow;\n var valueWindow = axisProxy._valueWindow;\n\n if (!percentWindow) {\n return;\n } // [0, 500]: arbitrary value, guess axis extent.\n\n\n var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n precision = Math.min(precision, 20); // isRestore or isFull\n\n var useOrigin = isRestore || percentWindow[0] === 0 && percentWindow[1] === 100;\n axisModel.setRange(useOrigin ? null : +valueWindow[0].toFixed(precision), useOrigin ? null : +valueWindow[1].toFixed(precision));\n}\n\nfunction setMinMaxSpan(axisProxy) {\n var minMaxSpan = axisProxy._minMaxSpan = {};\n var dataZoomModel = axisProxy._dataZoomModel;\n each(['min', 'max'], function (minMax) {\n minMaxSpan[minMax + 'Span'] = dataZoomModel.get(minMax + 'Span'); // minValueSpan and maxValueSpan has higher priority than minSpan and maxSpan\n\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n\n if (valueSpan != null) {\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n valueSpan = axisProxy.getAxisModel().axis.scale.parse(valueSpan);\n\n if (valueSpan != null) {\n var dataExtent = axisProxy._dataExtent;\n minMaxSpan[minMax + 'Span'] = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n }\n }\n });\n}\n\nvar _default = AxisProxy;\nmodule.exports = _default;\n\n/***/ }),\n/* 1186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar DataZoomModel = __webpack_require__(140);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = DataZoomModel.extend({\n type: 'dataZoom.inside',\n\n /**\n * @protected\n */\n defaultOption: {\n disabled: false,\n // Whether disable this inside zoom.\n zoomLock: false,\n // Whether disable zoom but only pan.\n zoomOnMouseWheel: true,\n // Can be: true / false / 'shift' / 'ctrl' / 'alt'.\n moveOnMouseMove: true,\n // Can be: true / false / 'shift' / 'ctrl' / 'alt'.\n moveOnMouseWheel: false,\n // Can be: true / false / 'shift' / 'ctrl' / 'alt'.\n preventDefaultMouseMove: true\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1187 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar DataZoomView = __webpack_require__(141);\n\nvar sliderMove = __webpack_require__(144);\n\nvar roams = __webpack_require__(1192);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar InsideZoomView = DataZoomView.extend({\n type: 'dataZoom.inside',\n\n /**\n * @override\n */\n init: function (ecModel, api) {\n /**\n * 'throttle' is used in this.dispatchAction, so we save range\n * to avoid missing some 'pan' info.\n * @private\n * @type {Array.}\n */\n this._range;\n },\n\n /**\n * @override\n */\n render: function (dataZoomModel, ecModel, api, payload) {\n InsideZoomView.superApply(this, 'render', arguments); // Hance the `throttle` util ensures to preserve command order,\n // here simply updating range all the time will not cause missing\n // any of the the roam change.\n\n this._range = dataZoomModel.getPercentRange(); // Reset controllers.\n\n zrUtil.each(this.getTargetCoordInfo(), function (coordInfoList, coordSysName) {\n var allCoordIds = zrUtil.map(coordInfoList, function (coordInfo) {\n return roams.generateCoordId(coordInfo.model);\n });\n zrUtil.each(coordInfoList, function (coordInfo) {\n var coordModel = coordInfo.model;\n var getRange = {};\n zrUtil.each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n getRange[eventName] = bind(roamHandlers[eventName], this, coordInfo, coordSysName);\n }, this);\n roams.register(api, {\n coordId: roams.generateCoordId(coordModel),\n allCoordIds: allCoordIds,\n containsPoint: function (e, x, y) {\n return coordModel.coordinateSystem.containPoint([x, y]);\n },\n dataZoomId: dataZoomModel.id,\n dataZoomModel: dataZoomModel,\n getRange: getRange\n });\n }, this);\n }, this);\n },\n\n /**\n * @override\n */\n dispose: function () {\n roams.unregister(this.api, this.dataZoomModel.id);\n InsideZoomView.superApply(this, 'dispose', arguments);\n this._range = null;\n }\n});\nvar roamHandlers = {\n /**\n * @this {module:echarts/component/dataZoom/InsideZoomView}\n */\n zoom: function (coordInfo, coordSysName, controller, e) {\n var lastRange = this._range;\n var range = lastRange.slice(); // Calculate transform by the first axis.\n\n var axisModel = coordInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var directionInfo = getDirectionInfo[coordSysName](null, [e.originX, e.originY], axisModel, controller, coordInfo);\n var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n var scale = Math.max(1 / e.scale, 0);\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\n range[1] = (range[1] - percentPoint) * scale + percentPoint; // Restrict range.\n\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n this._range = range;\n\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n return range;\n }\n },\n\n /**\n * @this {module:echarts/component/dataZoom/InsideZoomView}\n */\n pan: makeMover(function (range, axisModel, coordInfo, coordSysName, controller, e) {\n var directionInfo = getDirectionInfo[coordSysName]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordInfo);\n return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n }),\n\n /**\n * @this {module:echarts/component/dataZoom/InsideZoomView}\n */\n scrollMove: makeMover(function (range, axisModel, coordInfo, coordSysName, controller, e) {\n var directionInfo = getDirectionInfo[coordSysName]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordInfo);\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n })\n};\n\nfunction makeMover(getPercentDelta) {\n return function (coordInfo, coordSysName, controller, e) {\n var lastRange = this._range;\n var range = lastRange.slice(); // Calculate transform by the first axis.\n\n var axisModel = coordInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var percentDelta = getPercentDelta(range, axisModel, coordInfo, coordSysName, controller, e);\n sliderMove(percentDelta, range, [0, 100], 'all');\n this._range = range;\n\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n return range;\n }\n };\n}\n\nvar getDirectionInfo = {\n grid: function (oldPoint, newPoint, axisModel, controller, coordInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var rect = coordInfo.model.coordinateSystem.getRect();\n oldPoint = oldPoint || [0, 0];\n\n if (axis.dim === 'x') {\n ret.pixel = newPoint[0] - oldPoint[0];\n ret.pixelLength = rect.width;\n ret.pixelStart = rect.x;\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // axis.dim === 'y'\n ret.pixel = newPoint[1] - oldPoint[1];\n ret.pixelLength = rect.height;\n ret.pixelStart = rect.y;\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n },\n polar: function (oldPoint, newPoint, axisModel, controller, coordInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var polar = coordInfo.model.coordinateSystem;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var angleExtent = polar.getAngleAxis().getExtent();\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n newPoint = polar.pointToCoord(newPoint);\n\n if (axisModel.mainType === 'radiusAxis') {\n ret.pixel = newPoint[0] - oldPoint[0]; // ret.pixelLength = Math.abs(radiusExtent[1] - radiusExtent[0]);\n // ret.pixelStart = Math.min(radiusExtent[0], radiusExtent[1]);\n\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n ret.pixelStart = radiusExtent[0];\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // 'angleAxis'\n ret.pixel = newPoint[1] - oldPoint[1]; // ret.pixelLength = Math.abs(angleExtent[1] - angleExtent[0]);\n // ret.pixelStart = Math.min(angleExtent[0], angleExtent[1]);\n\n ret.pixelLength = angleExtent[1] - angleExtent[0];\n ret.pixelStart = angleExtent[0];\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n },\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordInfo) {\n var axis = axisModel.axis;\n var rect = coordInfo.model.coordinateSystem.getRect();\n var ret = {};\n oldPoint = oldPoint || [0, 0];\n\n if (axis.orient === 'horizontal') {\n ret.pixel = newPoint[0] - oldPoint[0];\n ret.pixelLength = rect.width;\n ret.pixelStart = rect.x;\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // 'vertical'\n ret.pixel = newPoint[1] - oldPoint[1];\n ret.pixelLength = rect.height;\n ret.pixelStart = rect.y;\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n }\n};\nvar _default = InsideZoomView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar DataZoomModel = __webpack_require__(140);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = DataZoomModel.extend({\n type: 'dataZoom.select'\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1189 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar DataZoomView = __webpack_require__(141);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = DataZoomView.extend({\n type: 'dataZoom.select'\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1190 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar DataZoomModel = __webpack_require__(140);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar SliderZoomModel = DataZoomModel.extend({\n type: 'dataZoom.slider',\n layoutMode: 'box',\n\n /**\n * @protected\n */\n defaultOption: {\n show: true,\n // ph => placeholder. Using placehoder here because\n // deault value can only be drived in view stage.\n right: 'ph',\n // Default align to grid rect.\n top: 'ph',\n // Default align to grid rect.\n width: 'ph',\n // Default align to grid rect.\n height: 'ph',\n // Default align to grid rect.\n left: null,\n // Default align to grid rect.\n bottom: null,\n // Default align to grid rect.\n backgroundColor: 'rgba(47,69,84,0)',\n // Background of slider zoom component.\n // dataBackgroundColor: '#ddd', // Background coor of data shadow and border of box,\n // highest priority, remain for compatibility of\n // previous version, but not recommended any more.\n dataBackground: {\n lineStyle: {\n color: '#2f4554',\n width: 0.5,\n opacity: 0.3\n },\n areaStyle: {\n color: 'rgba(47,69,84,0.3)',\n opacity: 0.3\n }\n },\n borderColor: '#ddd',\n // border color of the box. For compatibility,\n // if dataBackgroundColor is set, borderColor\n // is ignored.\n fillerColor: 'rgba(167,183,204,0.4)',\n // Color of selected area.\n // handleColor: 'rgba(89,170,216,0.95)', // Color of handle.\n // handleIcon: 'path://M4.9,17.8c0-1.4,4.5-10.5,5.5-12.4c0-0.1,0.6-1.1,0.9-1.1c0.4,0,0.9,1,0.9,1.1c1.1,2.2,5.4,11,5.4,12.4v17.8c0,1.5-0.6,2.1-1.3,2.1H6.1c-0.7,0-1.3-0.6-1.3-2.1V17.8z',\n\n /* eslint-disable */\n handleIcon: 'M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z',\n\n /* eslint-enable */\n // Percent of the slider height\n handleSize: '100%',\n handleStyle: {\n color: '#a7b7cc'\n },\n labelPrecision: null,\n labelFormatter: null,\n showDetail: true,\n showDataShadow: 'auto',\n // Default auto decision.\n realtime: true,\n zoomLock: false,\n // Whether disable zoom.\n textStyle: {\n color: '#333'\n }\n }\n});\nvar _default = SliderZoomModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1191 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar eventTool = __webpack_require__(66);\n\nvar graphic = __webpack_require__(5);\n\nvar throttle = __webpack_require__(105);\n\nvar DataZoomView = __webpack_require__(141);\n\nvar numberUtil = __webpack_require__(8);\n\nvar layout = __webpack_require__(16);\n\nvar sliderMove = __webpack_require__(144);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar Rect = graphic.Rect;\nvar linearMap = numberUtil.linearMap;\nvar asc = numberUtil.asc;\nvar bind = zrUtil.bind;\nvar each = zrUtil.each; // Constants\n\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar SliderZoomView = DataZoomView.extend({\n type: 'dataZoom.slider',\n init: function (ecModel, api) {\n /**\n * @private\n * @type {Object}\n */\n this._displayables = {};\n /**\n * @private\n * @type {string}\n */\n\n this._orient;\n /**\n * [0, 100]\n * @private\n */\n\n this._range;\n /**\n * [coord of the first handle, coord of the second handle]\n * @private\n */\n\n this._handleEnds;\n /**\n * [length, thick]\n * @private\n * @type {Array.}\n */\n\n this._size;\n /**\n * @private\n * @type {number}\n */\n\n this._handleWidth;\n /**\n * @private\n * @type {number}\n */\n\n this._handleHeight;\n /**\n * @private\n */\n\n this._location;\n /**\n * @private\n */\n\n this._dragging;\n /**\n * @private\n */\n\n this._dataShadowInfo;\n this.api = api;\n },\n\n /**\n * @override\n */\n render: function (dataZoomModel, ecModel, api, payload) {\n SliderZoomView.superApply(this, 'render', arguments);\n throttle.createOrUpdate(this, '_dispatchZoomAction', this.dataZoomModel.get('throttle'), 'fixRate');\n this._orient = dataZoomModel.get('orient');\n\n if (this.dataZoomModel.get('show') === false) {\n this.group.removeAll();\n return;\n } // Notice: this._resetInterval() should not be executed when payload.type\n // is 'dataZoom', origin this._range should be maintained, otherwise 'pan'\n // or 'zoom' info will be missed because of 'throttle' of this.dispatchAction,\n\n\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n this._buildView();\n }\n\n this._updateView();\n },\n\n /**\n * @override\n */\n remove: function () {\n SliderZoomView.superApply(this, 'remove', arguments);\n throttle.clear(this, '_dispatchZoomAction');\n },\n\n /**\n * @override\n */\n dispose: function () {\n SliderZoomView.superApply(this, 'dispose', arguments);\n throttle.clear(this, '_dispatchZoomAction');\n },\n _buildView: function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n\n this._resetLocation();\n\n this._resetInterval();\n\n var barGroup = this._displayables.barGroup = new graphic.Group();\n\n this._renderBackground();\n\n this._renderHandle();\n\n this._renderDataShadow();\n\n thisGroup.add(barGroup);\n\n this._positionGroup();\n },\n\n /**\n * @private\n */\n _resetLocation: function () {\n var dataZoomModel = this.dataZoomModel;\n var api = this.api; // If some of x/y/width/height are not specified,\n // auto-adapt according to target grid.\n\n var coordRect = this._findCoordRect();\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n }; // Default align by coordinate system rect.\n\n var positionInfo = this._orient === HORIZONTAL ? {\n // Why using 'right', because right should be used in vertical,\n // and it is better to be consistent for dealing with position param merge.\n right: ecSize.width - coordRect.x - coordRect.width,\n top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP,\n width: coordRect.width,\n height: DEFAULT_FILLER_SIZE\n } : {\n // vertical\n right: DEFAULT_LOCATION_EDGE_GAP,\n top: coordRect.y,\n width: DEFAULT_FILLER_SIZE,\n height: coordRect.height\n }; // Do not write back to option and replace value 'ph', because\n // the 'ph' value should be recalculated when resize.\n\n var layoutParams = layout.getLayoutParams(dataZoomModel.option); // Replace the placeholder value.\n\n zrUtil.each(['right', 'top', 'width', 'height'], function (name) {\n if (layoutParams[name] === 'ph') {\n layoutParams[name] = positionInfo[name];\n }\n });\n var layoutRect = layout.getLayoutRect(layoutParams, ecSize, dataZoomModel.padding);\n this._location = {\n x: layoutRect.x,\n y: layoutRect.y\n };\n this._size = [layoutRect.width, layoutRect.height];\n this._orient === VERTICAL && this._size.reverse();\n },\n\n /**\n * @private\n */\n _positionGroup: function () {\n var thisGroup = this.group;\n var location = this._location;\n var orient = this._orient; // Just use the first axis to determine mapping.\n\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\n var barGroup = this._displayables.barGroup;\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; // Transform barGroup.\n\n barGroup.attr(orient === HORIZONTAL && !inverse ? {\n scale: otherAxisInverse ? [1, 1] : [1, -1]\n } : orient === HORIZONTAL && inverse ? {\n scale: otherAxisInverse ? [-1, 1] : [-1, -1]\n } : orient === VERTICAL && !inverse ? {\n scale: otherAxisInverse ? [1, -1] : [1, 1],\n rotation: Math.PI / 2 // Dont use Math.PI, considering shadow direction.\n\n } : {\n scale: otherAxisInverse ? [-1, -1] : [-1, 1],\n rotation: Math.PI / 2\n }); // Position barGroup\n\n var rect = thisGroup.getBoundingRect([barGroup]);\n thisGroup.attr('position', [location.x - rect.x, location.y - rect.y]);\n },\n\n /**\n * @private\n */\n _getViewExtent: function () {\n return [0, this._size[0]];\n },\n _renderBackground: function () {\n var dataZoomModel = this.dataZoomModel;\n var size = this._size;\n var barGroup = this._displayables.barGroup;\n barGroup.add(new Rect({\n silent: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: dataZoomModel.get('backgroundColor')\n },\n z2: -40\n })); // Click panel, over shadow, below handles.\n\n barGroup.add(new Rect({\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: 'transparent'\n },\n z2: 0,\n onclick: zrUtil.bind(this._onClickPanelClick, this)\n }));\n },\n _renderDataShadow: function () {\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n if (!info) {\n return;\n }\n\n var size = this._size;\n var seriesModel = info.series;\n var data = seriesModel.getRawData();\n var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() // @see candlestick\n : info.otherDim;\n\n if (otherDim == null) {\n return;\n }\n\n var otherDataExtent = data.getDataExtent(otherDim); // Nice extent.\n\n var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n var otherShadowExtent = [0, size[1]];\n var thisShadowExtent = [0, size[0]];\n var areaPoints = [[size[0], 0], [0, 0]];\n var linePoints = [];\n var step = thisShadowExtent[1] / (data.count() - 1);\n var thisCoord = 0; // Optimize for large data shadow\n\n var stride = Math.round(data.count() / size[0]);\n var lastIsEmpty;\n data.each([otherDim], function (value, index) {\n if (stride > 0 && index % stride) {\n thisCoord += step;\n return;\n } // FIXME\n // Should consider axis.min/axis.max when drawing dataShadow.\n // FIXME\n // 应该使用统一的空判断?还是在list里进行空判断?\n\n\n var isEmpty = value == null || isNaN(value) || value === ''; // See #4235.\n\n var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true); // Attempt to draw data shadow precisely when there are empty value.\n\n if (isEmpty && !lastIsEmpty && index) {\n areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n } else if (!isEmpty && lastIsEmpty) {\n areaPoints.push([thisCoord, 0]);\n linePoints.push([thisCoord, 0]);\n }\n\n areaPoints.push([thisCoord, otherCoord]);\n linePoints.push([thisCoord, otherCoord]);\n thisCoord += step;\n lastIsEmpty = isEmpty;\n });\n var dataZoomModel = this.dataZoomModel; // var dataBackgroundModel = dataZoomModel.getModel('dataBackground');\n\n this._displayables.barGroup.add(new graphic.Polygon({\n shape: {\n points: areaPoints\n },\n style: zrUtil.defaults({\n fill: dataZoomModel.get('dataBackgroundColor')\n }, dataZoomModel.getModel('dataBackground.areaStyle').getAreaStyle()),\n silent: true,\n z2: -20\n }));\n\n this._displayables.barGroup.add(new graphic.Polyline({\n shape: {\n points: linePoints\n },\n style: dataZoomModel.getModel('dataBackground.lineStyle').getLineStyle(),\n silent: true,\n z2: -19\n }));\n },\n _prepareDataShadowInfo: function () {\n var dataZoomModel = this.dataZoomModel;\n var showDataShadow = dataZoomModel.get('showDataShadow');\n\n if (showDataShadow === false) {\n return;\n } // Find a representative series.\n\n\n var result;\n var ecModel = this.ecModel;\n dataZoomModel.eachTargetAxis(function (dimNames, axisIndex) {\n var seriesModels = dataZoomModel.getAxisProxy(dimNames.name, axisIndex).getTargetSeriesModels();\n zrUtil.each(seriesModels, function (seriesModel) {\n if (result) {\n return;\n }\n\n if (showDataShadow !== true && zrUtil.indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n return;\n }\n\n var thisAxis = ecModel.getComponent(dimNames.axis, axisIndex).axis;\n var otherDim = getOtherDim(dimNames.name);\n var otherAxisInverse;\n var coordSys = seriesModel.coordinateSystem;\n\n if (otherDim != null && coordSys.getOtherAxis) {\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n }\n\n otherDim = seriesModel.getData().mapDimension(otherDim);\n result = {\n thisAxis: thisAxis,\n series: seriesModel,\n thisDim: dimNames.name,\n otherDim: otherDim,\n otherAxisInverse: otherAxisInverse\n };\n }, this);\n }, this);\n return result;\n },\n _renderHandle: function () {\n var displaybles = this._displayables;\n var handles = displaybles.handles = [];\n var handleLabels = displaybles.handleLabels = [];\n var barGroup = this._displayables.barGroup;\n var size = this._size;\n var dataZoomModel = this.dataZoomModel;\n barGroup.add(displaybles.filler = new Rect({\n draggable: true,\n cursor: getCursor(this._orient),\n drift: bind(this._onDragMove, this, 'all'),\n onmousemove: function (e) {\n // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragstart: bind(this._showDataInfo, this, true),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false),\n style: {\n fill: dataZoomModel.get('fillerColor'),\n textPosition: 'inside'\n }\n })); // Frame border.\n\n barGroup.add(new Rect(graphic.subPixelOptimizeRect({\n silent: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n fill: 'rgba(0,0,0,0)'\n }\n })));\n each([0, 1], function (handleIndex) {\n var path = graphic.createIcon(dataZoomModel.get('handleIcon'), {\n cursor: getCursor(this._orient),\n draggable: true,\n drift: bind(this._onDragMove, this, handleIndex),\n onmousemove: function (e) {\n // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false)\n }, {\n x: -1,\n y: 0,\n width: 2,\n height: 2\n });\n var bRect = path.getBoundingRect();\n this._handleHeight = numberUtil.parsePercent(dataZoomModel.get('handleSize'), this._size[1]);\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n var handleColor = dataZoomModel.get('handleColor'); // Compatitable with previous version\n\n if (handleColor != null) {\n path.style.fill = handleColor;\n }\n\n barGroup.add(handles[handleIndex] = path);\n var textStyleModel = dataZoomModel.textStyleModel;\n this.group.add(handleLabels[handleIndex] = new graphic.Text({\n silent: true,\n invisible: true,\n style: {\n x: 0,\n y: 0,\n text: '',\n textVerticalAlign: 'middle',\n textAlign: 'center',\n textFill: textStyleModel.getTextColor(),\n textFont: textStyleModel.getFont()\n },\n z2: 10\n }));\n }, this);\n },\n\n /**\n * @private\n */\n _resetInterval: function () {\n var range = this._range = this.dataZoomModel.getPercentRange();\n\n var viewExtent = this._getViewExtent();\n\n this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n },\n\n /**\n * @private\n * @param {(number|string)} handleIndex 0 or 1 or 'all'\n * @param {number} delta\n * @return {boolean} changed\n */\n _updateInterval: function (handleIndex, delta) {\n var dataZoomModel = this.dataZoomModel;\n var handleEnds = this._handleEnds;\n\n var viewExtend = this._getViewExtent();\n\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n var percentExtent = [0, 100];\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n var lastRange = this._range;\n var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n },\n\n /**\n * @private\n */\n _updateView: function (nonRealtime) {\n var displaybles = this._displayables;\n var handleEnds = this._handleEnds;\n var handleInterval = asc(handleEnds.slice());\n var size = this._size;\n each([0, 1], function (handleIndex) {\n // Handles\n var handle = displaybles.handles[handleIndex];\n var handleHeight = this._handleHeight;\n handle.attr({\n scale: [handleHeight / 2, handleHeight / 2],\n position: [handleEnds[handleIndex], size[1] / 2 - handleHeight / 2]\n });\n }, this); // Filler\n\n displaybles.filler.setShape({\n x: handleInterval[0],\n y: 0,\n width: handleInterval[1] - handleInterval[0],\n height: size[1]\n });\n\n this._updateDataInfo(nonRealtime);\n },\n\n /**\n * @private\n */\n _updateDataInfo: function (nonRealtime) {\n var dataZoomModel = this.dataZoomModel;\n var displaybles = this._displayables;\n var handleLabels = displaybles.handleLabels;\n var orient = this._orient;\n var labelTexts = ['', '']; // FIXME\n // date型,支持formatter,autoformatter(ec2 date.getAutoFormatter)\n\n if (dataZoomModel.get('showDetail')) {\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n var axis = axisProxy.getAxisModel().axis;\n var range = this._range;\n var dataInterval = nonRealtime // See #4434, data and axis are not processed and reset yet in non-realtime mode.\n ? axisProxy.calculateDataWindow({\n start: range[0],\n end: range[1]\n }).valueWindow : axisProxy.getDataValueWindow();\n labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n }\n }\n\n var orderedHandleEnds = asc(this._handleEnds.slice());\n setLabel.call(this, 0);\n setLabel.call(this, 1);\n\n function setLabel(handleIndex) {\n // Label\n // Text should not transform by barGroup.\n // Ignore handlers transform\n var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n var offset = this._handleWidth / 2 + LABEL_GAP;\n var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n textVerticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n textAlign: orient === HORIZONTAL ? direction : 'center',\n text: labelTexts[handleIndex]\n });\n }\n },\n\n /**\n * @private\n */\n _formatLabel: function (value, axis) {\n var dataZoomModel = this.dataZoomModel;\n var labelFormatter = dataZoomModel.get('labelFormatter');\n var labelPrecision = dataZoomModel.get('labelPrecision');\n\n if (labelPrecision == null || labelPrecision === 'auto') {\n labelPrecision = axis.getPixelPrecision();\n }\n\n var valueStr = value == null || isNaN(value) ? '' // FIXME Glue code\n : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel(Math.round(value)) // param of toFixed should less then 20.\n : value.toFixed(Math.min(labelPrecision, 20));\n return zrUtil.isFunction(labelFormatter) ? labelFormatter(value, valueStr) : zrUtil.isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n },\n\n /**\n * @private\n * @param {boolean} showOrHide true: show, false: hide\n */\n _showDataInfo: function (showOrHide) {\n // Always show when drgging.\n showOrHide = this._dragging || showOrHide;\n var handleLabels = this._displayables.handleLabels;\n handleLabels[0].attr('invisible', !showOrHide);\n handleLabels[1].attr('invisible', !showOrHide);\n },\n _onDragMove: function (handleIndex, dx, dy) {\n this._dragging = true; // Transform dx, dy to bar coordination.\n\n var barTransform = this._displayables.barGroup.getLocalTransform();\n\n var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n var changed = this._updateInterval(handleIndex, vertex[0]);\n\n var realtime = this.dataZoomModel.get('realtime');\n\n this._updateView(!realtime); // Avoid dispatch dataZoom repeatly but range not changed,\n // which cause bad visual effect when progressive enabled.\n\n\n changed && realtime && this._dispatchZoomAction();\n },\n _onDragEnd: function () {\n this._dragging = false;\n\n this._showDataInfo(false); // While in realtime mode and stream mode, dispatch action when\n // drag end will cause the whole view rerender, which is unnecessary.\n\n\n var realtime = this.dataZoomModel.get('realtime');\n !realtime && this._dispatchZoomAction();\n },\n _onClickPanelClick: function (e) {\n var size = this._size;\n\n var localPoint = this._displayables.barGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n return;\n }\n\n var handleEnds = this._handleEnds;\n var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n var changed = this._updateInterval('all', localPoint[0] - center);\n\n this._updateView();\n\n changed && this._dispatchZoomAction();\n },\n\n /**\n * This action will be throttled.\n * @private\n */\n _dispatchZoomAction: function () {\n var range = this._range;\n this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n dataZoomId: this.dataZoomModel.id,\n start: range[0],\n end: range[1]\n });\n },\n\n /**\n * @private\n */\n _findCoordRect: function () {\n // Find the grid coresponding to the first axis referred by dataZoom.\n var rect;\n each(this.getTargetCoordInfo(), function (coordInfoList) {\n if (!rect && coordInfoList.length) {\n var coordSys = coordInfoList[0].model.coordinateSystem;\n rect = coordSys.getRect && coordSys.getRect();\n }\n });\n\n if (!rect) {\n var width = this.api.getWidth();\n var height = this.api.getHeight();\n rect = {\n x: width * 0.2,\n y: height * 0.2,\n width: width * 0.6,\n height: height * 0.6\n };\n }\n\n return rect;\n }\n});\n\nfunction getOtherDim(thisDim) {\n // FIXME\n // 这个逻辑和getOtherAxis里一致,但是写在这里是否不好\n var map = {\n x: 'y',\n y: 'x',\n radius: 'angle',\n angle: 'radius'\n };\n return map[thisDim];\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nvar _default = SliderZoomView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1192 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar RoamController = __webpack_require__(143);\n\nvar throttleUtil = __webpack_require__(105);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Only create one roam controller for each coordinate system.\n// one roam controller might be refered by two inside data zoom\n// components (for example, one for x and one for y). When user\n// pan or zoom, only dispatch one action for those data zoom\n// components.\nvar ATTR = '\\0_ec_dataZoom_roams';\n/**\n * @public\n * @param {module:echarts/ExtensionAPI} api\n * @param {Object} dataZoomInfo\n * @param {string} dataZoomInfo.coordId\n * @param {Function} dataZoomInfo.containsPoint\n * @param {Array.} dataZoomInfo.allCoordIds\n * @param {string} dataZoomInfo.dataZoomId\n * @param {Object} dataZoomInfo.getRange\n * @param {Function} dataZoomInfo.getRange.pan\n * @param {Function} dataZoomInfo.getRange.zoom\n * @param {Function} dataZoomInfo.getRange.scrollMove\n * @param {boolean} dataZoomInfo.dataZoomModel\n */\n\nfunction register(api, dataZoomInfo) {\n var store = giveStore(api);\n var theDataZoomId = dataZoomInfo.dataZoomId;\n var theCoordId = dataZoomInfo.coordId; // Do clean when a dataZoom changes its target coordnate system.\n // Avoid memory leak, dispose all not-used-registered.\n\n zrUtil.each(store, function (record, coordId) {\n var dataZoomInfos = record.dataZoomInfos;\n\n if (dataZoomInfos[theDataZoomId] && zrUtil.indexOf(dataZoomInfo.allCoordIds, theCoordId) < 0) {\n delete dataZoomInfos[theDataZoomId];\n record.count--;\n }\n });\n cleanStore(store);\n var record = store[theCoordId]; // Create if needed.\n\n if (!record) {\n record = store[theCoordId] = {\n coordId: theCoordId,\n dataZoomInfos: {},\n count: 0\n };\n record.controller = createController(api, record);\n record.dispatchAction = zrUtil.curry(dispatchAction, api);\n } // Update reference of dataZoom.\n\n\n !record.dataZoomInfos[theDataZoomId] && record.count++;\n record.dataZoomInfos[theDataZoomId] = dataZoomInfo;\n var controllerParams = mergeControllerParams(record.dataZoomInfos);\n record.controller.enable(controllerParams.controlType, controllerParams.opt); // Consider resize, area should be always updated.\n\n record.controller.setPointerChecker(dataZoomInfo.containsPoint); // Update throttle.\n\n throttleUtil.createOrUpdate(record, 'dispatchAction', dataZoomInfo.dataZoomModel.get('throttle', true), 'fixRate');\n}\n/**\n * @public\n * @param {module:echarts/ExtensionAPI} api\n * @param {string} dataZoomId\n */\n\n\nfunction unregister(api, dataZoomId) {\n var store = giveStore(api);\n zrUtil.each(store, function (record) {\n record.controller.dispose();\n var dataZoomInfos = record.dataZoomInfos;\n\n if (dataZoomInfos[dataZoomId]) {\n delete dataZoomInfos[dataZoomId];\n record.count--;\n }\n });\n cleanStore(store);\n}\n/**\n * @public\n */\n\n\nfunction generateCoordId(coordModel) {\n return coordModel.type + '\\0_' + coordModel.id;\n}\n/**\n * Key: coordId, value: {dataZoomInfos: [], count, controller}\n * @type {Array.}\n */\n\n\nfunction giveStore(api) {\n // Mount store on zrender instance, so that we do not\n // need to worry about dispose.\n var zr = api.getZr();\n return zr[ATTR] || (zr[ATTR] = {});\n}\n\nfunction createController(api, newRecord) {\n var controller = new RoamController(api.getZr());\n zrUtil.each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n controller.on(eventName, function (event) {\n var batch = [];\n zrUtil.each(newRecord.dataZoomInfos, function (info) {\n // Check whether the behaviors (zoomOnMouseWheel, moveOnMouseMove,\n // moveOnMouseWheel, ...) enabled.\n if (!event.isAvailableBehavior(info.dataZoomModel.option)) {\n return;\n }\n\n var method = (info.getRange || {})[eventName];\n var range = method && method(newRecord.controller, event);\n !info.dataZoomModel.get('disabled', true) && range && batch.push({\n dataZoomId: info.dataZoomId,\n start: range[0],\n end: range[1]\n });\n });\n batch.length && newRecord.dispatchAction(batch);\n });\n });\n return controller;\n}\n\nfunction cleanStore(store) {\n zrUtil.each(store, function (record, coordId) {\n if (!record.count) {\n record.controller.dispose();\n delete store[coordId];\n }\n });\n}\n/**\n * This action will be throttled.\n */\n\n\nfunction dispatchAction(api, batch) {\n api.dispatchAction({\n type: 'dataZoom',\n batch: batch\n });\n}\n/**\n * Merge roamController settings when multiple dataZooms share one roamController.\n */\n\n\nfunction mergeControllerParams(dataZoomInfos) {\n var controlType; // DO NOT use reserved word (true, false, undefined) as key literally. Even if encapsulated\n // as string, it is probably revert to reserved word by compress tool. See #7411.\n\n var prefix = 'type_';\n var typePriority = {\n 'type_true': 2,\n 'type_move': 1,\n 'type_false': 0,\n 'type_undefined': -1\n };\n var preventDefaultMouseMove = true;\n zrUtil.each(dataZoomInfos, function (dataZoomInfo) {\n var dataZoomModel = dataZoomInfo.dataZoomModel;\n var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n controlType = oneType;\n } // Prevent default move event by default. If one false, do not prevent. Otherwise\n // users may be confused why it does not work when multiple insideZooms exist.\n\n\n preventDefaultMouseMove &= dataZoomModel.get('preventDefaultMouseMove', true);\n });\n return {\n controlType: controlType,\n opt: {\n // RoamController will enable all of these functionalities,\n // and the final behavior is determined by its event listener\n // provided by each inside zoom.\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n moveOnMouseWheel: true,\n preventDefaultMouseMove: !!preventDefaultMouseMove\n }\n };\n}\n\nexports.register = register;\nexports.unregister = unregister;\nexports.generateCoordId = generateCoordId;\n\n/***/ }),\n/* 1193 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\n__webpack_require__(1259);\n\n__webpack_require__(259);\n\n__webpack_require__(1194);\n\n__webpack_require__(352);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction makeAction(method, actionInfo) {\n actionInfo.update = 'updateView';\n echarts.registerAction(actionInfo, function (payload, ecModel) {\n var selected = {};\n ecModel.eachComponent({\n mainType: 'geo',\n query: payload\n }, function (geoModel) {\n geoModel[method](payload.name);\n var geo = geoModel.coordinateSystem;\n zrUtil.each(geo.regions, function (region) {\n selected[region.name] = geoModel.isSelected(region.name) || false;\n });\n });\n return {\n selected: selected,\n name: payload.name\n };\n });\n}\n\nmakeAction('toggleSelected', {\n type: 'geoToggleSelect',\n event: 'geoselectchanged'\n});\nmakeAction('select', {\n type: 'geoSelect',\n event: 'geoselected'\n});\nmakeAction('unSelect', {\n type: 'geoUnSelect',\n event: 'geounselected'\n});\n\n/***/ }),\n/* 1194 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar MapDraw = __webpack_require__(378);\n\nvar echarts = __webpack_require__(3);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentView({\n type: 'geo',\n init: function (ecModel, api) {\n var mapDraw = new MapDraw(api, true);\n this._mapDraw = mapDraw;\n this.group.add(mapDraw.group);\n },\n render: function (geoModel, ecModel, api, payload) {\n // Not render if it is an toggleSelect action from self\n if (payload && payload.type === 'geoToggleSelect' && payload.from === this.uid) {\n return;\n }\n\n var mapDraw = this._mapDraw;\n\n if (geoModel.get('show')) {\n mapDraw.draw(geoModel, ecModel, api, this, payload);\n } else {\n this._mapDraw.group.removeAll();\n }\n\n this.group.silent = geoModel.get('silent');\n },\n dispose: function () {\n this._mapDraw && this._mapDraw.remove();\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar modelUtil = __webpack_require__(9);\n\nvar graphicUtil = __webpack_require__(5);\n\nvar layoutUtil = __webpack_require__(16);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// -------------\n// Preprocessor\n// -------------\necharts.registerPreprocessor(function (option) {\n var graphicOption = option.graphic; // Convert\n // {graphic: [{left: 10, type: 'circle'}, ...]}\n // or\n // {graphic: {left: 10, type: 'circle'}}\n // to\n // {graphic: [{elements: [{left: 10, type: 'circle'}, ...]}]}\n\n if (zrUtil.isArray(graphicOption)) {\n if (!graphicOption[0] || !graphicOption[0].elements) {\n option.graphic = [{\n elements: graphicOption\n }];\n } else {\n // Only one graphic instance can be instantiated. (We dont\n // want that too many views are created in echarts._viewMap)\n option.graphic = [option.graphic[0]];\n }\n } else if (graphicOption && !graphicOption.elements) {\n option.graphic = [{\n elements: [graphicOption]\n }];\n }\n}); // ------\n// Model\n// ------\n\nvar GraphicModel = echarts.extendComponentModel({\n type: 'graphic',\n defaultOption: {\n // Extra properties for each elements:\n //\n // left/right/top/bottom: (like 12, '22%', 'center', default undefined)\n // If left/rigth is set, shape.x/shape.cx/position will not be used.\n // If top/bottom is set, shape.y/shape.cy/position will not be used.\n // This mechanism is useful when you want to position a group/element\n // against the right side or the center of this container.\n //\n // width/height: (can only be pixel value, default 0)\n // Only be used to specify contianer(group) size, if needed. And\n // can not be percentage value (like '33%'). See the reason in the\n // layout algorithm below.\n //\n // bounding: (enum: 'all' (default) | 'raw')\n // Specify how to calculate boundingRect when locating.\n // 'all': Get uioned and transformed boundingRect\n // from both itself and its descendants.\n // This mode simplies confining a group of elements in the bounding\n // of their ancester container (e.g., using 'right: 0').\n // 'raw': Only use the boundingRect of itself and before transformed.\n // This mode is similar to css behavior, which is useful when you\n // want an element to be able to overflow its container. (Consider\n // a rotated circle needs to be located in a corner.)\n // info: custom info. enables user to mount some info on elements and use them\n // in event handlers. Update them only when user specified, otherwise, remain.\n // Note: elements is always behind its ancestors in this elements array.\n elements: [],\n parentId: null\n },\n\n /**\n * Save el options for the sake of the performance (only update modified graphics).\n * The order is the same as those in option. (ancesters -> descendants)\n *\n * @private\n * @type {Array.}\n */\n _elOptionsToUpdate: null,\n\n /**\n * @override\n */\n mergeOption: function (option) {\n // Prevent default merge to elements\n var elements = this.option.elements;\n this.option.elements = null;\n GraphicModel.superApply(this, 'mergeOption', arguments);\n this.option.elements = elements;\n },\n\n /**\n * @override\n */\n optionUpdated: function (newOption, isInit) {\n var thisOption = this.option;\n var newList = (isInit ? thisOption : newOption).elements;\n var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n var flattenedList = [];\n\n this._flatten(newList, flattenedList);\n\n var mappingResult = modelUtil.mappingToExists(existList, flattenedList);\n modelUtil.makeIdAndName(mappingResult); // Clear elOptionsToUpdate\n\n var elOptionsToUpdate = this._elOptionsToUpdate = [];\n zrUtil.each(mappingResult, function (resultItem, index) {\n var newElOption = resultItem.option;\n\n if (!newElOption) {\n return;\n }\n\n elOptionsToUpdate.push(newElOption);\n setKeyInfoToNewElOption(resultItem, newElOption);\n mergeNewElOptionToExist(existList, index, newElOption);\n setLayoutInfoToExist(existList[index], newElOption);\n }, this); // Clean\n\n for (var i = existList.length - 1; i >= 0; i--) {\n if (existList[i] == null) {\n existList.splice(i, 1);\n } else {\n // $action should be volatile, otherwise option gotten from\n // `getOption` will contain unexpected $action.\n delete existList[i].$action;\n }\n }\n },\n\n /**\n * Convert\n * [{\n * type: 'group',\n * id: 'xx',\n * children: [{type: 'circle'}, {type: 'polygon'}]\n * }]\n * to\n * [\n * {type: 'group', id: 'xx'},\n * {type: 'circle', parentId: 'xx'},\n * {type: 'polygon', parentId: 'xx'}\n * ]\n *\n * @private\n * @param {Array.} optionList option list\n * @param {Array.} result result of flatten\n * @param {Object} parentOption parent option\n */\n _flatten: function (optionList, result, parentOption) {\n zrUtil.each(optionList, function (option) {\n if (!option) {\n return;\n }\n\n if (parentOption) {\n option.parentOption = parentOption;\n }\n\n result.push(option);\n var children = option.children;\n\n if (option.type === 'group' && children) {\n this._flatten(children, result, option);\n } // Deleting for JSON output, and for not affecting group creation.\n\n\n delete option.children;\n }, this);\n },\n // FIXME\n // Pass to view using payload? setOption has a payload?\n useElOptionsToUpdate: function () {\n var els = this._elOptionsToUpdate; // Clear to avoid render duplicately when zooming.\n\n this._elOptionsToUpdate = null;\n return els;\n }\n}); // -----\n// View\n// -----\n\necharts.extendComponentView({\n type: 'graphic',\n\n /**\n * @override\n */\n init: function (ecModel, api) {\n /**\n * @private\n * @type {module:zrender/core/util.HashMap}\n */\n this._elMap = zrUtil.createHashMap();\n /**\n * @private\n * @type {module:echarts/graphic/GraphicModel}\n */\n\n this._lastGraphicModel;\n },\n\n /**\n * @override\n */\n render: function (graphicModel, ecModel, api) {\n // Having leveraged between use cases and algorithm complexity, a very\n // simple layout mechanism is used:\n // The size(width/height) can be determined by itself or its parent (not\n // implemented yet), but can not by its children. (Top-down travel)\n // The location(x/y) can be determined by the bounding rect of itself\n // (can including its descendants or not) and the size of its parent.\n // (Bottom-up travel)\n // When `chart.clear()` or `chart.setOption({...}, true)` with the same id,\n // view will be reused.\n if (graphicModel !== this._lastGraphicModel) {\n this._clear();\n }\n\n this._lastGraphicModel = graphicModel;\n\n this._updateElements(graphicModel);\n\n this._relocate(graphicModel, api);\n },\n\n /**\n * Update graphic elements.\n *\n * @private\n * @param {Object} graphicModel graphic model\n */\n _updateElements: function (graphicModel) {\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n if (!elOptionsToUpdate) {\n return;\n }\n\n var elMap = this._elMap;\n var rootGroup = this.group; // Top-down tranverse to assign graphic settings to each elements.\n\n zrUtil.each(elOptionsToUpdate, function (elOption) {\n var $action = elOption.$action;\n var id = elOption.id;\n var existEl = elMap.get(id);\n var parentId = elOption.parentId;\n var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n var elOptionStyle = elOption.style;\n\n if (elOption.type === 'text' && elOptionStyle) {\n // In top/bottom mode, textVerticalAlign should not be used, which cause\n // inaccurately locating.\n if (elOption.hv && elOption.hv[1]) {\n elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = null;\n } // Compatible with previous setting: both support fill and textFill,\n // stroke and textStroke.\n\n\n !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\n !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\n } // Remove unnecessary props to avoid potential problems.\n\n\n var elOptionCleaned = getCleanedElOption(elOption); // For simple, do not support parent change, otherwise reorder is needed.\n\n if (!$action || $action === 'merge') {\n existEl ? existEl.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap);\n } else if ($action === 'replace') {\n removeEl(existEl, elMap);\n createEl(id, targetElParent, elOptionCleaned, elMap);\n } else if ($action === 'remove') {\n removeEl(existEl, elMap);\n }\n\n var el = elMap.get(id);\n\n if (el) {\n el.__ecGraphicWidth = elOption.width;\n el.__ecGraphicHeight = elOption.height;\n setEventData(el, graphicModel, elOption);\n }\n });\n },\n\n /**\n * Locate graphic elements.\n *\n * @private\n * @param {Object} graphicModel graphic model\n * @param {module:echarts/ExtensionAPI} api extension API\n */\n _relocate: function (graphicModel, api) {\n var elOptions = graphicModel.option.elements;\n var rootGroup = this.group;\n var elMap = this._elMap; // Bottom-up tranvese all elements (consider ec resize) to locate elements.\n\n for (var i = elOptions.length - 1; i >= 0; i--) {\n var elOption = elOptions[i];\n var el = elMap.get(elOption.id);\n\n if (!el) {\n continue;\n }\n\n var parentEl = el.parent;\n var containerInfo = parentEl === rootGroup ? {\n width: api.getWidth(),\n height: api.getHeight()\n } : {\n // Like 'position:absolut' in css, default 0.\n width: parentEl.__ecGraphicWidth || 0,\n height: parentEl.__ecGraphicHeight || 0\n };\n layoutUtil.positionElement(el, elOption, containerInfo, null, {\n hv: elOption.hv,\n boundingMode: elOption.bounding\n });\n }\n },\n\n /**\n * Clear all elements.\n *\n * @private\n */\n _clear: function () {\n var elMap = this._elMap;\n elMap.each(function (el) {\n removeEl(el, elMap);\n });\n this._elMap = zrUtil.createHashMap();\n },\n\n /**\n * @override\n */\n dispose: function () {\n this._clear();\n }\n});\n\nfunction createEl(id, targetElParent, elOption, elMap) {\n var graphicType = elOption.type;\n var Clz = graphicUtil[graphicType.charAt(0).toUpperCase() + graphicType.slice(1)];\n var el = new Clz(elOption);\n targetElParent.add(el);\n elMap.set(id, el);\n el.__ecGraphicId = id;\n}\n\nfunction removeEl(existEl, elMap) {\n var existElParent = existEl && existEl.parent;\n\n if (existElParent) {\n existEl.type === 'group' && existEl.traverse(function (el) {\n removeEl(el, elMap);\n });\n elMap.removeKey(existEl.__ecGraphicId);\n existElParent.remove(existEl);\n }\n} // Remove unnecessary props to avoid potential problems.\n\n\nfunction getCleanedElOption(elOption) {\n elOption = zrUtil.extend({}, elOption);\n zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n delete elOption[name];\n });\n return elOption;\n}\n\nfunction isSetLoc(obj, props) {\n var isSet;\n zrUtil.each(props, function (prop) {\n obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n });\n return isSet;\n}\n\nfunction setKeyInfoToNewElOption(resultItem, newElOption) {\n var existElOption = resultItem.exist; // Set id and type after id assigned.\n\n newElOption.id = resultItem.keyInfo.id;\n !newElOption.type && existElOption && (newElOption.type = existElOption.type); // Set parent id if not specified\n\n if (newElOption.parentId == null) {\n var newElParentOption = newElOption.parentOption;\n\n if (newElParentOption) {\n newElOption.parentId = newElParentOption.id;\n } else if (existElOption) {\n newElOption.parentId = existElOption.parentId;\n }\n } // Clear\n\n\n newElOption.parentOption = null;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n // Update existing options, for `getOption` feature.\n var newElOptCopy = zrUtil.extend({}, newElOption);\n var existElOption = existList[index];\n var $action = newElOption.$action || 'merge';\n\n if ($action === 'merge') {\n if (existElOption) {\n // We can ensure that newElOptCopy and existElOption are not\n // the same object, so `merge` will not change newElOptCopy.\n zrUtil.merge(existElOption, newElOptCopy, true); // Rigid body, use ignoreSize.\n\n layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, {\n ignoreSize: true\n }); // Will be used in render.\n\n layoutUtil.copyLayoutParams(newElOption, existElOption);\n } else {\n existList[index] = newElOptCopy;\n }\n } else if ($action === 'replace') {\n existList[index] = newElOptCopy;\n } else if ($action === 'remove') {\n // null will be cleaned later.\n existElOption && (existList[index] = null);\n }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n if (!existItem) {\n return;\n }\n\n existItem.hv = newElOption.hv = [// Rigid body, dont care `width`.\n isSetLoc(newElOption, ['left', 'right']), // Rigid body, dont care `height`.\n isSetLoc(newElOption, ['top', 'bottom'])]; // Give default group size. Otherwise layout error may occur.\n\n if (existItem.type === 'group') {\n existItem.width == null && (existItem.width = newElOption.width = 0);\n existItem.height == null && (existItem.height = newElOption.height = 0);\n }\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n var eventData = el.eventData; // Simple optimize for large amount of elements that no need event.\n\n if (!el.silent && !el.ignore && !eventData) {\n eventData = el.eventData = {\n componentType: 'graphic',\n componentIndex: graphicModel.componentIndex,\n name: el.name\n };\n } // `elOption.info` enables user to mount some info on\n // elements and use them in event handlers.\n\n\n if (eventData) {\n eventData.info = el.info;\n }\n}\n\n/***/ }),\n/* 1196 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(142);\n\n__webpack_require__(369);\n\n__webpack_require__(139);\n\n/***/ }),\n/* 1197 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(382);\n\n__webpack_require__(1201);\n\n__webpack_require__(383);\n\nvar legendFilter = __webpack_require__(1202);\n\nvar Component = __webpack_require__(29);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Do not contain scrollable legend, for sake of file size.\n// Series Filter\necharts.registerProcessor(legendFilter);\nComponent.registerSubTypeDefaulter('legend', function () {\n // Default 'plain' when no type specified.\n return 'plain';\n});\n\n/***/ }),\n/* 1198 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(1197);\n\n__webpack_require__(1199);\n\n__webpack_require__(1200);\n\n__webpack_require__(1203);\n\n/***/ }),\n/* 1199 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar LegendModel = __webpack_require__(382);\n\nvar _layout = __webpack_require__(16);\n\nvar mergeLayoutParam = _layout.mergeLayoutParam;\nvar getLayoutParams = _layout.getLayoutParams;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ScrollableLegendModel = LegendModel.extend({\n type: 'legend.scroll',\n\n /**\n * @param {number} scrollDataIndex\n */\n setScrollDataIndex: function (scrollDataIndex) {\n this.option.scrollDataIndex = scrollDataIndex;\n },\n defaultOption: {\n scrollDataIndex: 0,\n pageButtonItemGap: 5,\n pageButtonGap: null,\n pageButtonPosition: 'end',\n // 'start' or 'end'\n pageFormatter: '{current}/{total}',\n // If null/undefined, do not show page.\n pageIcons: {\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n },\n pageIconColor: '#2f4554',\n pageIconInactiveColor: '#aaa',\n pageIconSize: 15,\n // Can be [10, 3], which represents [width, height]\n pageTextStyle: {\n color: '#333'\n },\n animationDurationUpdate: 800\n },\n\n /**\n * @override\n */\n init: function (option, parentModel, ecModel, extraOpt) {\n var inputPositionParams = getLayoutParams(option);\n ScrollableLegendModel.superCall(this, 'init', option, parentModel, ecModel, extraOpt);\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n },\n\n /**\n * @override\n */\n mergeOption: function (option, extraOpt) {\n ScrollableLegendModel.superCall(this, 'mergeOption', option, extraOpt);\n mergeAndNormalizeLayoutParams(this, this.option, option);\n },\n getOrient: function () {\n return this.get('orient') === 'vertical' ? {\n index: 1,\n name: 'vertical'\n } : {\n index: 0,\n name: 'horizontal'\n };\n }\n}); // Do not `ignoreSize` to enable setting {left: 10, right: 10}.\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n var orient = legendModel.getOrient();\n var ignoreSize = [1, 1];\n ignoreSize[orient.index] = 0;\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: ignoreSize\n });\n}\n\nvar _default = ScrollableLegendModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1200 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\nvar layoutUtil = __webpack_require__(16);\n\nvar LegendView = __webpack_require__(383);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\nvar ScrollableLegendView = LegendView.extend({\n type: 'legend.scroll',\n newlineDisabled: true,\n init: function () {\n ScrollableLegendView.superCall(this, 'init');\n /**\n * @private\n * @type {number} For `scroll`.\n */\n\n this._currentIndex = 0;\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n this.group.add(this._containerGroup = new Group());\n\n this._containerGroup.add(this.getContentGroup());\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n\n this.group.add(this._controllerGroup = new Group());\n /**\n *\n * @private\n */\n\n this._showController;\n },\n\n /**\n * @override\n */\n resetInner: function () {\n ScrollableLegendView.superCall(this, 'resetInner');\n\n this._controllerGroup.removeAll();\n\n this._containerGroup.removeClipPath();\n\n this._containerGroup.__rectSize = null;\n },\n\n /**\n * @override\n */\n renderInner: function (itemAlign, legendModel, ecModel, api) {\n var me = this; // Render content items.\n\n ScrollableLegendView.superCall(this, 'renderInner', itemAlign, legendModel, ecModel, api);\n var controllerGroup = this._controllerGroup; // FIXME: support be 'auto' adapt to size number text length,\n // e.g., '3/12345' should not overlap with the control arrow button.\n\n var pageIconSize = legendModel.get('pageIconSize', true);\n\n if (!zrUtil.isArray(pageIconSize)) {\n pageIconSize = [pageIconSize, pageIconSize];\n }\n\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n textFill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n textVerticalAlign: 'middle',\n textAlign: 'center'\n },\n silent: true\n }));\n createPageButton('pageNext', 1);\n\n function createPageButton(name, iconIdx) {\n var pageDataIndexName = name + 'DataIndex';\n var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n // Buttons will be created in each render, so we do not need\n // to worry about avoiding using legendModel kept in scope.\n onclick: zrUtil.bind(me._pageGo, me, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSize[0] / 2,\n y: -pageIconSize[1] / 2,\n width: pageIconSize[0],\n height: pageIconSize[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n },\n\n /**\n * @override\n */\n layoutInner: function (legendModel, itemAlign, maxSize, isFirstRender) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var hw = WH[1 - orientIdx];\n var yx = XY[1 - orientIdx]; // Place items in contentGroup.\n\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box( // Buttons in controller are layout always horizontally.\n 'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n var contentRect = contentGroup.getBoundingRect();\n var controllerRect = controllerGroup.getBoundingRect();\n var showController = this._showController = contentRect[wh] > maxSize[wh];\n var contentPos = [-contentRect.x, -contentRect.y]; // Remain contentPos when scroll animation perfroming.\n // If first rendering, `contentGroup.position` is [0, 0], which\n // does not make sense and may cause unexepcted animation if adopted.\n\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup.position[orientIdx];\n } // Layout container group based on 0.\n\n\n var containerPos = [0, 0];\n var controllerPos = [-controllerRect.x, -controllerRect.y];\n var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true)); // Place containerGroup and controllerGroup and contentGroup.\n\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom.\n\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n } // controller is on the left / top.\n else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n } // Always align controller to content as 'middle'.\n\n\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.attr('position', contentPos);\n containerGroup.attr('position', containerPos);\n controllerGroup.attr('position', controllerPos); // Calculate `mainRect` and set `clipPath`.\n // mainRect should not be calculated by `this.group.getBoundingRect()`\n // for sake of the overflow.\n\n var mainRect = this.group.getBoundingRect();\n var mainRect = {\n x: 0,\n y: 0\n }; // Consider content may be overflow (should be clipped).\n\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n containerGroup.__rectSize = maxSize[wh];\n\n if (showController) {\n var clipShape = {\n x: 0,\n y: 0\n };\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n clipShape[hw] = mainRect[hw];\n containerGroup.setClipPath(new graphic.Rect({\n shape: clipShape\n })); // Consider content may be larger than container, container rect\n // can not be obtained from `containerGroup.getBoundingRect()`.\n\n containerGroup.__rectSize = clipShape[wh];\n } else {\n // Do not remove or ignore controller. Keep them set as place holders.\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n } // Content translate animation.\n\n\n var pageInfo = this._getPageInfo(legendModel);\n\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n position: pageInfo.contentPosition\n }, // When switch from \"show controller\" to \"not show controller\", view should be\n // updated immediately without animation, otherwise causes weird efffect.\n showController ? legendModel : false);\n\n this._updatePageInfoView(legendModel, pageInfo);\n\n return mainRect;\n },\n _pageGo: function (to, legendModel, api) {\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n scrollDataIndex != null && api.dispatchAction({\n type: 'legendScroll',\n scrollDataIndex: scrollDataIndex,\n legendId: legendModel.id\n });\n },\n _updatePageInfoView: function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var canJump = pageInfo[name + 'DataIndex'] != null;\n var icon = controllerGroup.childOfName(name);\n\n if (icon) {\n icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n icon.cursor = canJump ? 'pointer' : 'default';\n }\n });\n var pageText = controllerGroup.childOfName('pageText');\n var pageFormatter = legendModel.get('pageFormatter');\n var pageIndex = pageInfo.pageIndex;\n var current = pageIndex != null ? pageIndex + 1 : 0;\n var total = pageInfo.pageCount;\n pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current).replace('{total}', total) : pageFormatter({\n current: current,\n total: total\n }));\n },\n\n /**\n * @param {module:echarts/model/Model} legendModel\n * @return {Object} {\n * contentPosition: Array., null when data item not found.\n * pageIndex: number, null when data item not found.\n * pageCount: number, always be a number, can be 0.\n * pagePrevDataIndex: number, null when no next page.\n * pageNextDataIndex: number, null when no previous page.\n * }\n */\n _getPageInfo: function (legendModel) {\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n var contentGroup = this.getContentGroup();\n var containerRectSize = this._containerGroup.__rectSize;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n var children = contentGroup.children();\n var targetItem = children[targetItemIndex];\n var itemCount = children.length;\n var pCount = !itemCount ? 0 : 1;\n var result = {\n contentPosition: contentGroup.position.slice(),\n pageCount: pCount,\n pageIndex: pCount - 1,\n pagePrevDataIndex: null,\n pageNextDataIndex: null\n };\n\n if (!targetItem) {\n return result;\n }\n\n var targetItemInfo = getItemInfo(targetItem);\n result.contentPosition[orientIdx] = -targetItemInfo.s; // Strategy:\n // (1) Always align based on the left/top most item.\n // (2) It is user-friendly that the last item shown in the\n // current window is shown at the begining of next window.\n // Otherwise if half of the last item is cut by the window,\n // it will have no chance to display entirely.\n // (3) Consider that item size probably be different, we\n // have calculate pageIndex by size rather than item index,\n // and we can not get page index directly by division.\n // (4) The window is to narrow to contain more than\n // one item, we should make sure that the page can be fliped.\n\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // Half of the last item is out of the window.\n !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page\n // can be started at the current item or the last item.\n currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n // e.g., when page size is smaller than item size.\n winStartItemInfo = currItemInfo;\n }\n\n if (winStartItemInfo) {\n if (result.pageNextDataIndex == null) {\n result.pageNextDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n }\n }\n\n winEndItemInfo = currItemInfo;\n }\n\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // If the the end item does not intersect with the window started\n // from the current item, a page can be settled.\n (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size.\n winStartItemInfo.i < winEndItemInfo.i) {\n winEndItemInfo = winStartItemInfo;\n\n if (result.pagePrevDataIndex == null) {\n result.pagePrevDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n ++result.pageIndex;\n }\n\n winStartItemInfo = currItemInfo;\n }\n\n return result;\n\n function getItemInfo(el) {\n if (el) {\n var itemRect = el.getBoundingRect();\n var start = itemRect[xy] + el.position[orientIdx];\n return {\n s: start,\n e: start + itemRect[wh],\n i: el.__legendDataIndex\n };\n }\n }\n\n function intersect(itemInfo, winStart) {\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n }\n },\n _findTargetItemIndex: function (targetDataIndex) {\n var index;\n var contentGroup = this.getContentGroup();\n\n if (this._showController) {\n contentGroup.eachChild(function (child, idx) {\n if (child.__legendDataIndex === targetDataIndex) {\n index = idx;\n }\n });\n } else {\n index = 0;\n }\n\n return index;\n }\n});\nvar _default = ScrollableLegendView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1201 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n var selectedMap = {};\n var isToggleSelect = methodName === 'toggleSelected';\n var isSelected; // Update all legend components\n\n ecModel.eachComponent('legend', function (legendModel) {\n if (isToggleSelect && isSelected != null) {\n // Force other legend has same selected status\n // Or the first is toggled to true and other are toggled to false\n // In the case one legend has some item unSelected in option. And if other legend\n // doesn't has the item, they will assume it is selected.\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n } else {\n legendModel[methodName](payload.name);\n isSelected = legendModel.isSelected(payload.name);\n }\n\n var legendData = legendModel.getData();\n zrUtil.each(legendData, function (model) {\n var name = model.get('name'); // Wrap element\n\n if (name === '\\n' || name === '') {\n return;\n }\n\n var isItemSelected = legendModel.isSelected(name);\n\n if (selectedMap.hasOwnProperty(name)) {\n // Unselected if any legend is unselected\n selectedMap[name] = selectedMap[name] && isItemSelected;\n } else {\n selectedMap[name] = isItemSelected;\n }\n });\n }); // Return the event explicitly\n\n return {\n name: payload.name,\n selected: selectedMap\n };\n}\n/**\n * @event legendToggleSelect\n * @type {Object}\n * @property {string} type 'legendToggleSelect'\n * @property {string} [from]\n * @property {string} name Series name or data item name\n */\n\n\necharts.registerAction('legendToggleSelect', 'legendselectchanged', zrUtil.curry(legendSelectActionHandler, 'toggleSelected'));\n/**\n * @event legendSelect\n * @type {Object}\n * @property {string} type 'legendSelect'\n * @property {string} name Series name or data item name\n */\n\necharts.registerAction('legendSelect', 'legendselected', zrUtil.curry(legendSelectActionHandler, 'select'));\n/**\n * @event legendUnSelect\n * @type {Object}\n * @property {string} type 'legendUnSelect'\n * @property {string} name Series name or data item name\n */\n\necharts.registerAction('legendUnSelect', 'legendunselected', zrUtil.curry(legendSelectActionHandler, 'unSelect'));\n\n/***/ }),\n/* 1202 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (legendModels && legendModels.length) {\n ecModel.filterSeries(function (series) {\n // If in any legend component the status is not selected.\n // Because in legend series is assumed selected when it is not in the legend data.\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(series.name)) {\n return false;\n }\n }\n\n return true;\n });\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1203 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @event legendScroll\n * @type {Object}\n * @property {string} type 'legendScroll'\n * @property {string} scrollDataIndex\n */\necharts.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n var scrollDataIndex = payload.scrollDataIndex;\n scrollDataIndex != null && ecModel.eachComponent({\n mainType: 'legend',\n subType: 'scroll',\n query: payload\n }, function (legendModel) {\n legendModel.setScrollDataIndex(scrollDataIndex);\n });\n});\n\n/***/ }),\n/* 1204 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1207);\n\n__webpack_require__(1208);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerPreprocessor(function (opt) {\n // Make sure markArea component is enabled\n opt.markArea = opt.markArea || {};\n});\n\n/***/ }),\n/* 1205 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1209);\n\n__webpack_require__(1210);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerPreprocessor(function (opt) {\n // Make sure markLine component is enabled\n opt.markLine = opt.markLine || {};\n});\n\n/***/ }),\n/* 1206 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1211);\n\n__webpack_require__(1212);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// HINT Markpoint can't be used too much\necharts.registerPreprocessor(function (opt) {\n // Make sure markPoint component is enabled\n opt.markPoint = opt.markPoint || {};\n});\n\n/***/ }),\n/* 1207 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar MarkerModel = __webpack_require__(254);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = MarkerModel.extend({\n type: 'markArea',\n defaultOption: {\n zlevel: 0,\n // PENDING\n z: 1,\n tooltip: {\n trigger: 'item'\n },\n // markArea should fixed on the coordinate system\n animation: false,\n label: {\n show: true,\n position: 'top'\n },\n itemStyle: {\n // color and borderColor default to use color from series\n // color: 'auto'\n // borderColor: 'auto'\n borderWidth: 0\n },\n emphasis: {\n label: {\n show: true,\n position: 'top'\n }\n }\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1208 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar colorUtil = __webpack_require__(67);\n\nvar List = __webpack_require__(49);\n\nvar numberUtil = __webpack_require__(8);\n\nvar graphic = __webpack_require__(5);\n\nvar markerHelper = __webpack_require__(256);\n\nvar MarkerView = __webpack_require__(255);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Better on polar\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n var lt = markerHelper.dataTransform(seriesModel, item[0]);\n var rb = markerHelper.dataTransform(seriesModel, item[1]);\n var retrieve = zrUtil.retrieve; // FIXME make sure lt is less than rb\n\n var ltCoord = lt.coord;\n var rbCoord = rb.coord;\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\n rbCoord[1] = retrieve(rbCoord[1], Infinity); // Merge option into one\n\n var result = zrUtil.mergeAll([{}, lt, rb]);\n result.coord = [lt.coord, rb.coord];\n result.x0 = lt.x;\n result.y0 = lt.y;\n result.x1 = rb.x;\n result.y1 = rb.y;\n return result;\n};\n\nfunction isInifinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markArea has one dim\n\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n var fromCoord = item.coord[0];\n var toCoord = item.coord[1];\n\n if (coordSys.type === 'cartesian2d') {\n // In case\n // {\n // markArea: {\n // data: [{ yAxis: 2 }]\n // }\n // }\n if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n }\n }\n\n return markerHelper.dataFilter(coordSys, {\n coord: fromCoord,\n x: item.x0,\n y: item.y0\n }) || markerHelper.dataFilter(coordSys, {\n coord: toCoord,\n x: item.x1,\n y: item.y1\n });\n} // dims can be ['x0', 'y0'], ['x1', 'y1'], ['x0', 'y1'], ['x1', 'y0']\n\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else {\n // Chart like bar may have there own marker positioning logic\n if (seriesModel.getMarkerPosition) {\n // Use the getMarkerPoisition\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n } else {\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n var pt = [x, y];\n coordSys.clampData && coordSys.clampData(pt, pt);\n point = coordSys.dataToPoint(pt, true);\n }\n\n if (coordSys.type === 'cartesian2d') {\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n\n if (isInifinity(x)) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n } else if (isInifinity(y)) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n }\n } // Use x, y if has any\n\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n }\n\n return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\nMarkerView.extend({\n type: 'markArea',\n // updateLayout: function (markAreaModel, ecModel, api) {\n // ecModel.eachSeries(function (seriesModel) {\n // var maModel = seriesModel.markAreaModel;\n // if (maModel) {\n // var areaData = maModel.getData();\n // areaData.each(function (idx) {\n // var points = zrUtil.map(dimPermutations, function (dim) {\n // return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n // });\n // // Layout\n // areaData.setItemLayout(idx, points);\n // var el = areaData.getItemGraphicEl(idx);\n // el.setShape('points', points);\n // });\n // }\n // }, this);\n // },\n updateTransform: function (markAreaModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var maModel = seriesModel.markAreaModel;\n\n if (maModel) {\n var areaData = maModel.getData();\n areaData.each(function (idx) {\n var points = zrUtil.map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n }); // Layout\n\n areaData.setItemLayout(idx, points);\n var el = areaData.getItemGraphicEl(idx);\n el.setShape('points', points);\n });\n }\n }, this);\n },\n renderSeries: function (seriesModel, maModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var areaGroupMap = this.markerGroupMap;\n var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n group: new graphic.Group()\n });\n this.group.add(polygonGroup.group);\n polygonGroup.__keep = true;\n var areaData = createList(coordSys, seriesModel, maModel); // Line data for tooltip and formatter\n\n maModel.setData(areaData); // Update visual and layout of line\n\n areaData.each(function (idx) {\n // Layout\n areaData.setItemLayout(idx, zrUtil.map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n })); // Visual\n\n areaData.setItemVisual(idx, {\n color: seriesData.getVisual('color')\n });\n });\n areaData.diff(polygonGroup.__data).add(function (idx) {\n var polygon = new graphic.Polygon({\n shape: {\n points: areaData.getItemLayout(idx)\n }\n });\n areaData.setItemGraphicEl(idx, polygon);\n polygonGroup.group.add(polygon);\n }).update(function (newIdx, oldIdx) {\n var polygon = polygonGroup.__data.getItemGraphicEl(oldIdx);\n\n graphic.updateProps(polygon, {\n shape: {\n points: areaData.getItemLayout(newIdx)\n }\n }, maModel, newIdx);\n polygonGroup.group.add(polygon);\n areaData.setItemGraphicEl(newIdx, polygon);\n }).remove(function (idx) {\n var polygon = polygonGroup.__data.getItemGraphicEl(idx);\n\n polygonGroup.group.remove(polygon);\n }).execute();\n areaData.eachItemGraphicEl(function (polygon, idx) {\n var itemModel = areaData.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n var color = areaData.getItemVisual(idx, 'color');\n polygon.useStyle(zrUtil.defaults(itemModel.getModel('itemStyle').getItemStyle(), {\n fill: colorUtil.modifyAlpha(color, 0.4),\n stroke: color\n }));\n polygon.hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n graphic.setLabelStyle(polygon.style, polygon.hoverStyle, labelModel, labelHoverModel, {\n labelFetcher: maModel,\n labelDataIndex: idx,\n defaultText: areaData.getName(idx) || '',\n isRectText: true,\n autoColor: color\n });\n graphic.setHoverStyle(polygon, {});\n polygon.dataModel = maModel;\n });\n polygonGroup.__data = areaData;\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n }\n});\n/**\n * @inner\n * @param {module:echarts/coord/*} coordSys\n * @param {module:echarts/model/Series} seriesModel\n * @param {module:echarts/model/Model} mpModel\n */\n\nfunction createList(coordSys, seriesModel, maModel) {\n var coordDimsInfos;\n var areaData;\n var dims = ['x0', 'y0', 'x1', 'y1'];\n\n if (coordSys) {\n coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) {\n var data = seriesModel.getData();\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return zrUtil.defaults({\n name: coordDim\n }, info);\n });\n areaData = new List(zrUtil.map(dims, function (dim, idx) {\n return {\n name: dim,\n type: coordDimsInfos[idx % 2].type\n };\n }), maModel);\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n areaData = new List(coordDimsInfos, maModel);\n }\n\n var optData = zrUtil.map(maModel.get('data'), zrUtil.curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n if (coordSys) {\n optData = zrUtil.filter(optData, zrUtil.curry(markAreaFilter, coordSys));\n }\n\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n } : function (item) {\n return item.value;\n };\n areaData.initData(optData, null, dimValueGetter);\n areaData.hasItemOption = true;\n return areaData;\n}\n\n/***/ }),\n/* 1209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar MarkerModel = __webpack_require__(254);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = MarkerModel.extend({\n type: 'markLine',\n defaultOption: {\n zlevel: 0,\n z: 5,\n symbol: ['circle', 'arrow'],\n symbolSize: [8, 16],\n //symbolRotate: 0,\n precision: 2,\n tooltip: {\n trigger: 'item'\n },\n label: {\n show: true,\n position: 'end'\n },\n lineStyle: {\n type: 'dashed'\n },\n emphasis: {\n label: {\n show: true\n },\n lineStyle: {\n width: 3\n }\n },\n animationEasing: 'linear'\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar List = __webpack_require__(49);\n\nvar numberUtil = __webpack_require__(8);\n\nvar markerHelper = __webpack_require__(256);\n\nvar LineDraw = __webpack_require__(247);\n\nvar MarkerView = __webpack_require__(255);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n var data = seriesModel.getData(); // Special type markLine like 'min', 'max', 'average', 'median'\n\n var mlType = item.type;\n\n if (!zrUtil.isArray(item) && (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' // In case\n // data: [{\n // yAxis: 10\n // }]\n || item.xAxis != null || item.yAxis != null)) {\n var valueAxis;\n var valueDataDim;\n var value;\n\n if (item.yAxis != null || item.xAxis != null) {\n valueDataDim = item.yAxis != null ? 'y' : 'x';\n valueAxis = coordSys.getAxis(valueDataDim);\n value = zrUtil.retrieve(item.yAxis, item.xAxis);\n } else {\n var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n valueDataDim = axisInfo.valueDataDim;\n valueAxis = axisInfo.valueAxis;\n value = markerHelper.numCalculate(data, valueDataDim, mlType);\n }\n\n var valueIndex = valueDataDim === 'x' ? 0 : 1;\n var baseIndex = 1 - valueIndex;\n var mlFrom = zrUtil.clone(item);\n var mlTo = {};\n mlFrom.type = null;\n mlFrom.coord = [];\n mlTo.coord = [];\n mlFrom.coord[baseIndex] = -Infinity;\n mlTo.coord[baseIndex] = Infinity;\n var precision = mlModel.get('precision');\n\n if (precision >= 0 && typeof value === 'number') {\n value = +value.toFixed(Math.min(precision, 20));\n }\n\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n item = [mlFrom, mlTo, {\n // Extra option for tooltip and label\n type: mlType,\n valueIndex: item.valueIndex,\n // Force to use the value of calculated value.\n value: value\n }];\n }\n\n item = [markerHelper.dataTransform(seriesModel, item[0]), markerHelper.dataTransform(seriesModel, item[1]), zrUtil.extend({}, item[2])]; // Avoid line data type is extended by from(to) data type\n\n item[2].type = item[2].type || ''; // Merge from option and to option into line option\n\n zrUtil.merge(item[2], item[0]);\n zrUtil.merge(item[2], item[1]);\n return item;\n};\n\nfunction isInifinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markLine has one dim\n\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n var dimName = coordSys.dimensions[dimIndex];\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n if (coordSys.type === 'cartesian2d') {\n var fromCoord = item[0].coord;\n var toCoord = item[1].coord; // In case\n // {\n // markLine: {\n // data: [{ yAxis: 2 }]\n // }\n // }\n\n if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n }\n }\n\n return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else {\n // Chart like bar may have there own marker positioning logic\n if (seriesModel.getMarkerPosition) {\n // Use the getMarkerPoisition\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n } else {\n var dims = coordSys.dimensions;\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n point = coordSys.dataToPoint([x, y]);\n } // Expand line to the edge of grid if value on one axis is Inifnity\n // In case\n // markLine: {\n // data: [{\n // yAxis: 2\n // // or\n // type: 'average'\n // }]\n // }\n\n\n if (coordSys.type === 'cartesian2d') {\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n var dims = coordSys.dimensions;\n\n if (isInifinity(data.get(dims[0], idx))) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n } else if (isInifinity(data.get(dims[1], idx))) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n }\n } // Use x, y if has any\n\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n }\n\n data.setItemLayout(idx, point);\n}\n\nvar _default = MarkerView.extend({\n type: 'markLine',\n // updateLayout: function (markLineModel, ecModel, api) {\n // ecModel.eachSeries(function (seriesModel) {\n // var mlModel = seriesModel.markLineModel;\n // if (mlModel) {\n // var mlData = mlModel.getData();\n // var fromData = mlModel.__from;\n // var toData = mlModel.__to;\n // // Update visual and layout of from symbol and to symbol\n // fromData.each(function (idx) {\n // updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api);\n // updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api);\n // });\n // // Update layout of line\n // mlData.each(function (idx) {\n // mlData.setItemLayout(idx, [\n // fromData.getItemLayout(idx),\n // toData.getItemLayout(idx)\n // ]);\n // });\n // this.markerGroupMap.get(seriesModel.id).updateLayout();\n // }\n // }, this);\n // },\n updateTransform: function (markLineModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mlModel = seriesModel.markLineModel;\n\n if (mlModel) {\n var mlData = mlModel.getData();\n var fromData = mlModel.__from;\n var toData = mlModel.__to; // Update visual and layout of from symbol and to symbol\n\n fromData.each(function (idx) {\n updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api);\n updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api);\n }); // Update layout of line\n\n mlData.each(function (idx) {\n mlData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n });\n this.markerGroupMap.get(seriesModel.id).updateLayout();\n }\n }, this);\n },\n renderSeries: function (seriesModel, mlModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var lineDrawMap = this.markerGroupMap;\n var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n this.group.add(lineDraw.group);\n var mlData = createList(coordSys, seriesModel, mlModel);\n var fromData = mlData.from;\n var toData = mlData.to;\n var lineData = mlData.line;\n mlModel.__from = fromData;\n mlModel.__to = toData; // Line data for tooltip and formatter\n\n mlModel.setData(lineData);\n var symbolType = mlModel.get('symbol');\n var symbolSize = mlModel.get('symbolSize');\n\n if (!zrUtil.isArray(symbolType)) {\n symbolType = [symbolType, symbolType];\n }\n\n if (typeof symbolSize === 'number') {\n symbolSize = [symbolSize, symbolSize];\n } // Update visual and layout of from symbol and to symbol\n\n\n mlData.from.each(function (idx) {\n updateDataVisualAndLayout(fromData, idx, true);\n updateDataVisualAndLayout(toData, idx, false);\n }); // Update visual and layout of line\n\n lineData.each(function (idx) {\n var lineColor = lineData.getItemModel(idx).get('lineStyle.color');\n lineData.setItemVisual(idx, {\n color: lineColor || fromData.getItemVisual(idx, 'color')\n });\n lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n lineData.setItemVisual(idx, {\n 'fromSymbolSize': fromData.getItemVisual(idx, 'symbolSize'),\n 'fromSymbol': fromData.getItemVisual(idx, 'symbol'),\n 'toSymbolSize': toData.getItemVisual(idx, 'symbolSize'),\n 'toSymbol': toData.getItemVisual(idx, 'symbol')\n });\n });\n lineDraw.updateData(lineData); // Set host model for tooltip\n // FIXME\n\n mlData.line.eachItemGraphicEl(function (el, idx) {\n el.traverse(function (child) {\n child.dataModel = mlModel;\n });\n });\n\n function updateDataVisualAndLayout(data, idx, isFrom) {\n var itemModel = data.getItemModel(idx);\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n data.setItemVisual(idx, {\n symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n color: itemModel.get('itemStyle.color') || seriesData.getVisual('color')\n });\n }\n\n lineDraw.__keep = true;\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n }\n});\n/**\n * @inner\n * @param {module:echarts/coord/*} coordSys\n * @param {module:echarts/model/Series} seriesModel\n * @param {module:echarts/model/Model} mpModel\n */\n\n\nfunction createList(coordSys, seriesModel, mlModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return zrUtil.defaults({\n name: coordDim\n }, info);\n });\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n }\n\n var fromData = new List(coordDimsInfos, mlModel);\n var toData = new List(coordDimsInfos, mlModel); // No dimensions\n\n var lineData = new List([], mlModel);\n var optData = zrUtil.map(mlModel.get('data'), zrUtil.curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n if (coordSys) {\n optData = zrUtil.filter(optData, zrUtil.curry(markLineFilter, coordSys));\n }\n\n var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n return item.value;\n };\n fromData.initData(zrUtil.map(optData, function (item) {\n return item[0];\n }), null, dimValueGetter);\n toData.initData(zrUtil.map(optData, function (item) {\n return item[1];\n }), null, dimValueGetter);\n lineData.initData(zrUtil.map(optData, function (item) {\n return item[2];\n }));\n lineData.hasItemOption = true;\n return {\n from: fromData,\n to: toData,\n line: lineData\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1211 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar MarkerModel = __webpack_require__(254);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = MarkerModel.extend({\n type: 'markPoint',\n defaultOption: {\n zlevel: 0,\n z: 5,\n symbol: 'pin',\n symbolSize: 50,\n //symbolRotate: 0,\n //symbolOffset: [0, 0]\n tooltip: {\n trigger: 'item'\n },\n label: {\n show: true,\n position: 'inside'\n },\n itemStyle: {\n borderWidth: 2\n },\n emphasis: {\n label: {\n show: true\n }\n }\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar SymbolDraw = __webpack_require__(138);\n\nvar numberUtil = __webpack_require__(8);\n\nvar List = __webpack_require__(49);\n\nvar markerHelper = __webpack_require__(256);\n\nvar MarkerView = __webpack_require__(255);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n mpData.each(function (idx) {\n var itemModel = mpData.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } // Chart like bar may have there own marker positioning logic\n else if (seriesModel.getMarkerPosition) {\n // Use the getMarkerPoisition\n point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n } else if (coordSys) {\n var x = mpData.get(coordSys.dimensions[0], idx);\n var y = mpData.get(coordSys.dimensions[1], idx);\n point = coordSys.dataToPoint([x, y]);\n } // Use x, y if has any\n\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n\n mpData.setItemLayout(idx, point);\n });\n}\n\nvar _default = MarkerView.extend({\n type: 'markPoint',\n // updateLayout: function (markPointModel, ecModel, api) {\n // ecModel.eachSeries(function (seriesModel) {\n // var mpModel = seriesModel.markPointModel;\n // if (mpModel) {\n // updateMarkerLayout(mpModel.getData(), seriesModel, api);\n // this.markerGroupMap.get(seriesModel.id).updateLayout(mpModel);\n // }\n // }, this);\n // },\n updateTransform: function (markPointModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mpModel = seriesModel.markPointModel;\n\n if (mpModel) {\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\n this.markerGroupMap.get(seriesModel.id).updateLayout(mpModel);\n }\n }, this);\n },\n renderSeries: function (seriesModel, mpModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var symbolDrawMap = this.markerGroupMap;\n var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n var mpData = createList(coordSys, seriesModel, mpModel); // FIXME\n\n mpModel.setData(mpData);\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\n mpData.each(function (idx) {\n var itemModel = mpData.getItemModel(idx);\n var symbolSize = itemModel.getShallow('symbolSize');\n\n if (typeof symbolSize === 'function') {\n // FIXME 这里不兼容 ECharts 2.x,2.x 貌似参数是整个数据?\n symbolSize = symbolSize(mpModel.getRawValue(idx), mpModel.getDataParams(idx));\n }\n\n mpData.setItemVisual(idx, {\n symbolSize: symbolSize,\n color: itemModel.get('itemStyle.color') || seriesData.getVisual('color'),\n symbol: itemModel.getShallow('symbol')\n });\n }); // TODO Text are wrong\n\n symbolDraw.updateData(mpData);\n this.group.add(symbolDraw.group); // Set host model for tooltip\n // FIXME\n\n mpData.eachItemGraphicEl(function (el) {\n el.traverse(function (child) {\n child.dataModel = mpModel;\n });\n });\n symbolDraw.__keep = true;\n symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n }\n});\n/**\n * @inner\n * @param {module:echarts/coord/*} [coordSys]\n * @param {module:echarts/model/Series} seriesModel\n * @param {module:echarts/model/Model} mpModel\n */\n\n\nfunction createList(coordSys, seriesModel, mpModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return zrUtil.defaults({\n name: coordDim\n }, info);\n });\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n }\n\n var mpData = new List(coordDimsInfos, mpModel);\n var dataOpt = zrUtil.map(mpModel.get('data'), zrUtil.curry(markerHelper.dataTransform, seriesModel));\n\n if (coordSys) {\n dataOpt = zrUtil.filter(dataOpt, zrUtil.curry(markerHelper.dataFilter, coordSys));\n }\n\n mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) {\n return item.value;\n });\n return mpData;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1213 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(398);\n\n__webpack_require__(1173);\n\n__webpack_require__(1170);\n\n/***/ }),\n/* 1214 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar barPolar = __webpack_require__(1288);\n\n__webpack_require__(261);\n\n__webpack_require__(1161);\n\n__webpack_require__(1217);\n\n__webpack_require__(139);\n\n__webpack_require__(1165);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// For reducing size of echarts.min, barLayoutPolar is required by polar.\necharts.registerLayout(zrUtil.curry(barPolar, 'bar')); // Polar view\n\necharts.extendComponentView({\n type: 'polar'\n});\n\n/***/ }),\n/* 1215 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(1279);\n\n__webpack_require__(1280);\n\n__webpack_require__(1216);\n\n/***/ }),\n/* 1216 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar AxisBuilder = __webpack_require__(100);\n\nvar graphic = __webpack_require__(5);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar _default = echarts.extendComponentView({\n type: 'radar',\n render: function (radarModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n\n this._buildAxes(radarModel);\n\n this._buildSplitLineAndArea(radarModel);\n },\n _buildAxes: function (radarModel) {\n var radar = radarModel.coordinateSystem;\n var indicatorAxes = radar.getIndicatorAxes();\n var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n position: [radar.cx, radar.cy],\n rotation: indicatorAxis.angle,\n labelDirection: -1,\n tickDirection: -1,\n nameDirection: 1\n });\n return axisBuilder;\n });\n zrUtil.each(axisBuilders, function (axisBuilder) {\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n this.group.add(axisBuilder.getGroup());\n }, this);\n },\n _buildSplitLineAndArea: function (radarModel) {\n var radar = radarModel.coordinateSystem;\n var indicatorAxes = radar.getIndicatorAxes();\n\n if (!indicatorAxes.length) {\n return;\n }\n\n var shape = radarModel.get('shape');\n var splitLineModel = radarModel.getModel('splitLine');\n var splitAreaModel = radarModel.getModel('splitArea');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var showSplitLine = splitLineModel.get('show');\n var showSplitArea = splitAreaModel.get('show');\n var splitLineColors = lineStyleModel.get('color');\n var splitAreaColors = areaStyleModel.get('color');\n splitLineColors = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n splitAreaColors = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n var splitLines = [];\n var splitAreas = [];\n\n function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n var colorIndex = idx % areaOrLineColorList.length;\n areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n return colorIndex;\n }\n\n if (shape === 'circle') {\n var ticksRadius = indicatorAxes[0].getTicksCoords();\n var cx = radar.cx;\n var cy = radar.cy;\n\n for (var i = 0; i < ticksRadius.length; i++) {\n if (showSplitLine) {\n var colorIndex = getColorIndex(splitLines, splitLineColors, i);\n splitLines[colorIndex].push(new graphic.Circle({\n shape: {\n cx: cx,\n cy: cy,\n r: ticksRadius[i].coord\n }\n }));\n }\n\n if (showSplitArea && i < ticksRadius.length - 1) {\n var colorIndex = getColorIndex(splitAreas, splitAreaColors, i);\n splitAreas[colorIndex].push(new graphic.Ring({\n shape: {\n cx: cx,\n cy: cy,\n r0: ticksRadius[i].coord,\n r: ticksRadius[i + 1].coord\n }\n }));\n }\n }\n } // Polyyon\n else {\n var realSplitNumber;\n var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n var ticksCoords = indicatorAxis.getTicksCoords();\n realSplitNumber = realSplitNumber == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber);\n return zrUtil.map(ticksCoords, function (tickCoord) {\n return radar.coordToPoint(tickCoord.coord, idx);\n });\n });\n var prevPoints = [];\n\n for (var i = 0; i <= realSplitNumber; i++) {\n var points = [];\n\n for (var j = 0; j < indicatorAxes.length; j++) {\n points.push(axesTicksPoints[j][i]);\n } // Close\n\n\n if (points[0]) {\n points.push(points[0].slice());\n } else {}\n\n if (showSplitLine) {\n var colorIndex = getColorIndex(splitLines, splitLineColors, i);\n splitLines[colorIndex].push(new graphic.Polyline({\n shape: {\n points: points\n }\n }));\n }\n\n if (showSplitArea && prevPoints) {\n var colorIndex = getColorIndex(splitAreas, splitAreaColors, i - 1);\n splitAreas[colorIndex].push(new graphic.Polygon({\n shape: {\n points: points.concat(prevPoints)\n }\n }));\n }\n\n prevPoints = points.slice().reverse();\n }\n }\n\n var lineStyle = lineStyleModel.getLineStyle();\n var areaStyle = areaStyleModel.getAreaStyle(); // Add splitArea before splitLine\n\n zrUtil.each(splitAreas, function (splitAreas, idx) {\n this.group.add(graphic.mergePath(splitAreas, {\n style: zrUtil.defaults({\n stroke: 'none',\n fill: splitAreaColors[idx % splitAreaColors.length]\n }, areaStyle),\n silent: true\n }));\n }, this);\n zrUtil.each(splitLines, function (splitLines, idx) {\n this.group.add(graphic.mergePath(splitLines, {\n style: zrUtil.defaults({\n fill: 'none',\n stroke: splitLineColors[idx % splitLineColors.length]\n }, lineStyle),\n silent: true\n }));\n }, this);\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1217 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(261);\n\n__webpack_require__(1171);\n\n/***/ }),\n/* 1218 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar preprocessor = __webpack_require__(1224);\n\n__webpack_require__(1226);\n\n__webpack_require__(1225);\n\n__webpack_require__(1219);\n\n__webpack_require__(1220);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * DataZoom component entry\n */\necharts.registerPreprocessor(preprocessor);\n\n/***/ }),\n/* 1219 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar TimelineModel = __webpack_require__(1222);\n\nvar dataFormatMixin = __webpack_require__(263);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar SliderTimelineModel = TimelineModel.extend({\n type: 'timeline.slider',\n\n /**\n * @protected\n */\n defaultOption: {\n backgroundColor: 'rgba(0,0,0,0)',\n // 时间轴背景颜色\n borderColor: '#ccc',\n // 时间轴边框颜色\n borderWidth: 0,\n // 时间轴边框线宽,单位px,默认为0(无边框)\n orient: 'horizontal',\n // 'vertical'\n inverse: false,\n tooltip: {\n // boolean or Object\n trigger: 'item' // data item may also have tootip attr.\n\n },\n symbol: 'emptyCircle',\n symbolSize: 10,\n lineStyle: {\n show: true,\n width: 2,\n color: '#304654'\n },\n label: {\n // 文本标签\n position: 'auto',\n // auto left right top bottom\n // When using number, label position is not\n // restricted by viewRect.\n // positive: right/bottom, negative: left/top\n show: true,\n interval: 'auto',\n rotate: 0,\n // formatter: null,\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#304654'\n },\n itemStyle: {\n color: '#304654',\n borderWidth: 1\n },\n checkpointStyle: {\n symbol: 'circle',\n symbolSize: 13,\n color: '#c23531',\n borderWidth: 5,\n borderColor: 'rgba(194,53,49, 0.5)',\n animation: true,\n animationDuration: 300,\n animationEasing: 'quinticInOut'\n },\n controlStyle: {\n show: true,\n showPlayBtn: true,\n showPrevBtn: true,\n showNextBtn: true,\n itemSize: 22,\n itemGap: 12,\n position: 'left',\n // 'left' 'right' 'top' 'bottom'\n playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',\n // jshint ignore:line\n stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z',\n // jshint ignore:line\n nextIcon: 'path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z',\n // jshint ignore:line\n prevIcon: 'path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z',\n // jshint ignore:line\n color: '#304654',\n borderColor: '#304654',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true,\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#c23531'\n },\n itemStyle: {\n color: '#c23531'\n },\n controlStyle: {\n color: '#c23531',\n borderColor: '#c23531',\n borderWidth: 2\n }\n },\n data: []\n }\n});\nzrUtil.mixin(SliderTimelineModel, dataFormatMixin);\nvar _default = SliderTimelineModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1220 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar BoundingRect = __webpack_require__(21);\n\nvar matrix = __webpack_require__(36);\n\nvar graphic = __webpack_require__(5);\n\nvar layout = __webpack_require__(16);\n\nvar TimelineView = __webpack_require__(1223);\n\nvar TimelineAxis = __webpack_require__(1221);\n\nvar _symbol = __webpack_require__(50);\n\nvar createSymbol = _symbol.createSymbol;\n\nvar axisHelper = __webpack_require__(58);\n\nvar numberUtil = __webpack_require__(8);\n\nvar _format = __webpack_require__(19);\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar PI = Math.PI;\n\nvar _default = TimelineView.extend({\n type: 'timeline.slider',\n init: function (ecModel, api) {\n this.api = api;\n /**\n * @private\n * @type {module:echarts/component/timeline/TimelineAxis}\n */\n\n this._axis;\n /**\n * @private\n * @type {module:zrender/core/BoundingRect}\n */\n\n this._viewRect;\n /**\n * @type {number}\n */\n\n this._timer;\n /**\n * @type {module:zrender/Element}\n */\n\n this._currentPointer;\n /**\n * @type {module:zrender/container/Group}\n */\n\n this._mainGroup;\n /**\n * @type {module:zrender/container/Group}\n */\n\n this._labelGroup;\n },\n\n /**\n * @override\n */\n render: function (timelineModel, ecModel, api, payload) {\n this.model = timelineModel;\n this.api = api;\n this.ecModel = ecModel;\n this.group.removeAll();\n\n if (timelineModel.get('show', true)) {\n var layoutInfo = this._layout(timelineModel, api);\n\n var mainGroup = this._createGroup('mainGroup');\n\n var labelGroup = this._createGroup('labelGroup');\n /**\n * @private\n * @type {module:echarts/component/timeline/TimelineAxis}\n */\n\n\n var axis = this._axis = this._createAxis(layoutInfo, timelineModel);\n\n timelineModel.formatTooltip = function (dataIndex) {\n return encodeHTML(axis.scale.getLabel(dataIndex));\n };\n\n each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n this['_render' + name](layoutInfo, mainGroup, axis, timelineModel);\n }, this);\n\n this._renderAxisLabel(layoutInfo, labelGroup, axis, timelineModel);\n\n this._position(layoutInfo, timelineModel);\n }\n\n this._doPlayStop();\n },\n\n /**\n * @override\n */\n remove: function () {\n this._clearTimer();\n\n this.group.removeAll();\n },\n\n /**\n * @override\n */\n dispose: function () {\n this._clearTimer();\n },\n _layout: function (timelineModel, api) {\n var labelPosOpt = timelineModel.get('label.position');\n var orient = timelineModel.get('orient');\n var viewRect = getViewRect(timelineModel, api); // Auto label offset.\n\n if (labelPosOpt == null || labelPosOpt === 'auto') {\n labelPosOpt = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n } else if (isNaN(labelPosOpt)) {\n labelPosOpt = {\n horizontal: {\n top: '-',\n bottom: '+'\n },\n vertical: {\n left: '-',\n right: '+'\n }\n }[orient][labelPosOpt];\n }\n\n var labelAlignMap = {\n horizontal: 'center',\n vertical: labelPosOpt >= 0 || labelPosOpt === '+' ? 'left' : 'right'\n };\n var labelBaselineMap = {\n horizontal: labelPosOpt >= 0 || labelPosOpt === '+' ? 'top' : 'bottom',\n vertical: 'middle'\n };\n var rotationMap = {\n horizontal: 0,\n vertical: PI / 2\n }; // Position\n\n var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n var controlModel = timelineModel.getModel('controlStyle');\n var showControl = controlModel.get('show', true);\n var controlSize = showControl ? controlModel.get('itemSize') : 0;\n var controlGap = showControl ? controlModel.get('itemGap') : 0;\n var sizePlusGap = controlSize + controlGap; // Special label rotate.\n\n var labelRotation = timelineModel.get('label.rotate') || 0;\n labelRotation = labelRotation * PI / 180; // To radian.\n\n var playPosition;\n var prevBtnPosition;\n var nextBtnPosition;\n var axisExtent;\n var controlPosition = controlModel.get('position', true);\n var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n var xLeft = 0;\n var xRight = mainLength; // position[0] means left, position[1] means middle.\n\n if (controlPosition === 'left' || controlPosition === 'bottom') {\n showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n } else {\n // 'top' 'right'\n showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n }\n\n axisExtent = [xLeft, xRight];\n\n if (timelineModel.get('inverse')) {\n axisExtent.reverse();\n }\n\n return {\n viewRect: viewRect,\n mainLength: mainLength,\n orient: orient,\n rotation: rotationMap[orient],\n labelRotation: labelRotation,\n labelPosOpt: labelPosOpt,\n labelAlign: timelineModel.get('label.align') || labelAlignMap[orient],\n labelBaseline: timelineModel.get('label.verticalAlign') || timelineModel.get('label.baseline') || labelBaselineMap[orient],\n // Based on mainGroup.\n playPosition: playPosition,\n prevBtnPosition: prevBtnPosition,\n nextBtnPosition: nextBtnPosition,\n axisExtent: axisExtent,\n controlSize: controlSize,\n controlGap: controlGap\n };\n },\n _position: function (layoutInfo, timelineModel) {\n // Position is be called finally, because bounding rect is needed for\n // adapt content to fill viewRect (auto adapt offset).\n // Timeline may be not all in the viewRect when 'offset' is specified\n // as a number, because it is more appropriate that label aligns at\n // 'offset' but not the other edge defined by viewRect.\n var mainGroup = this._mainGroup;\n var labelGroup = this._labelGroup;\n var viewRect = layoutInfo.viewRect;\n\n if (layoutInfo.orient === 'vertical') {\n // transform to horizontal, inverse rotate by left-top point.\n var m = matrix.create();\n var rotateOriginX = viewRect.x;\n var rotateOriginY = viewRect.y + viewRect.height;\n matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n matrix.rotate(m, m, -PI / 2);\n matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n viewRect = viewRect.clone();\n viewRect.applyTransform(m);\n }\n\n var viewBound = getBound(viewRect);\n var mainBound = getBound(mainGroup.getBoundingRect());\n var labelBound = getBound(labelGroup.getBoundingRect());\n var mainPosition = mainGroup.position;\n var labelsPosition = labelGroup.position;\n labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n var labelPosOpt = layoutInfo.labelPosOpt;\n\n if (isNaN(labelPosOpt)) {\n // '+' or '-'\n var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n } else {\n var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n labelsPosition[1] = mainPosition[1] + labelPosOpt;\n }\n\n mainGroup.attr('position', mainPosition);\n labelGroup.attr('position', labelsPosition);\n mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n setOrigin(mainGroup);\n setOrigin(labelGroup);\n\n function setOrigin(targetGroup) {\n var pos = targetGroup.position;\n targetGroup.origin = [viewBound[0][0] - pos[0], viewBound[1][0] - pos[1]];\n }\n\n function getBound(rect) {\n // [[xmin, xmax], [ymin, ymax]]\n return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n }\n\n function toBound(fromPos, from, to, dimIdx, boundIdx) {\n fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n }\n },\n _createAxis: function (layoutInfo, timelineModel) {\n var data = timelineModel.getData();\n var axisType = timelineModel.get('axisType');\n var scale = axisHelper.createScaleByModel(timelineModel, axisType); // Customize scale. The `tickValue` is `dataIndex`.\n\n scale.getTicks = function () {\n return data.mapArray(['value'], function (value) {\n return value;\n });\n };\n\n var dataExtent = data.getDataExtent('value');\n scale.setExtent(dataExtent[0], dataExtent[1]);\n scale.niceTicks();\n var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n axis.model = timelineModel;\n return axis;\n },\n _createGroup: function (name) {\n var newGroup = this['_' + name] = new graphic.Group();\n this.group.add(newGroup);\n return newGroup;\n },\n _renderAxisLine: function (layoutInfo, group, axis, timelineModel) {\n var axisExtent = axis.getExtent();\n\n if (!timelineModel.get('lineStyle.show')) {\n return;\n }\n\n group.add(new graphic.Line({\n shape: {\n x1: axisExtent[0],\n y1: 0,\n x2: axisExtent[1],\n y2: 0\n },\n style: zrUtil.extend({\n lineCap: 'round'\n }, timelineModel.getModel('lineStyle').getLineStyle()),\n silent: true,\n z2: 1\n }));\n },\n\n /**\n * @private\n */\n _renderAxisTick: function (layoutInfo, group, axis, timelineModel) {\n var data = timelineModel.getData(); // Show all ticks, despite ignoring strategy.\n\n var ticks = axis.scale.getTicks(); // The value is dataIndex, see the costomized scale.\n\n each(ticks, function (value) {\n var tickCoord = axis.dataToCoord(value);\n var itemModel = data.getItemModel(value);\n var itemStyleModel = itemModel.getModel('itemStyle');\n var hoverStyleModel = itemModel.getModel('emphasis.itemStyle');\n var symbolOpt = {\n position: [tickCoord, 0],\n onclick: bind(this._changeTimeline, this, value)\n };\n var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n graphic.setHoverStyle(el, hoverStyleModel.getItemStyle());\n\n if (itemModel.get('tooltip')) {\n el.dataIndex = value;\n el.dataModel = timelineModel;\n } else {\n el.dataIndex = el.dataModel = null;\n }\n }, this);\n },\n\n /**\n * @private\n */\n _renderAxisLabel: function (layoutInfo, group, axis, timelineModel) {\n var labelModel = axis.getLabelModel();\n\n if (!labelModel.get('show')) {\n return;\n }\n\n var data = timelineModel.getData();\n var labels = axis.getViewLabels();\n each(labels, function (labelItem) {\n // The tickValue is dataIndex, see the costomized scale.\n var dataIndex = labelItem.tickValue;\n var itemModel = data.getItemModel(dataIndex);\n var normalLabelModel = itemModel.getModel('label');\n var hoverLabelModel = itemModel.getModel('emphasis.label');\n var tickCoord = axis.dataToCoord(labelItem.tickValue);\n var textEl = new graphic.Text({\n position: [tickCoord, 0],\n rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n onclick: bind(this._changeTimeline, this, dataIndex),\n silent: false\n });\n graphic.setTextStyle(textEl.style, normalLabelModel, {\n text: labelItem.formattedLabel,\n textAlign: layoutInfo.labelAlign,\n textVerticalAlign: layoutInfo.labelBaseline\n });\n group.add(textEl);\n graphic.setHoverStyle(textEl, graphic.setTextStyle({}, hoverLabelModel));\n }, this);\n },\n\n /**\n * @private\n */\n _renderControl: function (layoutInfo, group, axis, timelineModel) {\n var controlSize = layoutInfo.controlSize;\n var rotation = layoutInfo.rotation;\n var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n var hoverStyle = timelineModel.getModel('emphasis.controlStyle').getItemStyle();\n var rect = [0, -controlSize / 2, controlSize, controlSize];\n var playState = timelineModel.getPlayState();\n var inverse = timelineModel.get('inverse', true);\n makeBtn(layoutInfo.nextBtnPosition, 'controlStyle.nextIcon', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n makeBtn(layoutInfo.prevBtnPosition, 'controlStyle.prevIcon', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n makeBtn(layoutInfo.playPosition, 'controlStyle.' + (playState ? 'stopIcon' : 'playIcon'), bind(this._handlePlayClick, this, !playState), true);\n\n function makeBtn(position, iconPath, onclick, willRotate) {\n if (!position) {\n return;\n }\n\n var opt = {\n position: position,\n origin: [controlSize / 2, 0],\n rotation: willRotate ? -rotation : 0,\n rectHover: true,\n style: itemStyle,\n onclick: onclick\n };\n var btn = makeIcon(timelineModel, iconPath, rect, opt);\n group.add(btn);\n graphic.setHoverStyle(btn, hoverStyle);\n }\n },\n _renderCurrentPointer: function (layoutInfo, group, axis, timelineModel) {\n var data = timelineModel.getData();\n var currentIndex = timelineModel.getCurrentIndex();\n var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n var me = this;\n var callback = {\n onCreate: function (pointer) {\n pointer.draggable = true;\n pointer.drift = bind(me._handlePointerDrag, me);\n pointer.ondragend = bind(me._handlePointerDragend, me);\n pointerMoveTo(pointer, currentIndex, axis, timelineModel, true);\n },\n onUpdate: function (pointer) {\n pointerMoveTo(pointer, currentIndex, axis, timelineModel);\n }\n }; // Reuse when exists, for animation and drag.\n\n this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n },\n _handlePlayClick: function (nextState) {\n this._clearTimer();\n\n this.api.dispatchAction({\n type: 'timelinePlayChange',\n playState: nextState,\n from: this.uid\n });\n },\n _handlePointerDrag: function (dx, dy, e) {\n this._clearTimer();\n\n this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n },\n _handlePointerDragend: function (e) {\n this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n },\n _pointerChangeTimeline: function (mousePos, trigger) {\n var toCoord = this._toAxisCoord(mousePos)[0];\n\n var axis = this._axis;\n var axisExtent = numberUtil.asc(axis.getExtent().slice());\n toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n this._currentPointer.position[0] = toCoord;\n\n this._currentPointer.dirty();\n\n var targetDataIndex = this._findNearestTick(toCoord);\n\n var timelineModel = this.model;\n\n if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n this._changeTimeline(targetDataIndex);\n }\n },\n _doPlayStop: function () {\n this._clearTimer();\n\n if (this.model.getPlayState()) {\n this._timer = setTimeout(bind(handleFrame, this), this.model.get('playInterval'));\n }\n\n function handleFrame() {\n // Do not cache\n var timelineModel = this.model;\n\n this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n }\n },\n _toAxisCoord: function (vertex) {\n var trans = this._mainGroup.getLocalTransform();\n\n return graphic.applyTransform(vertex, trans, true);\n },\n _findNearestTick: function (axisCoord) {\n var data = this.model.getData();\n var dist = Infinity;\n var targetDataIndex;\n var axis = this._axis;\n data.each(['value'], function (value, dataIndex) {\n var coord = axis.dataToCoord(value);\n var d = Math.abs(coord - axisCoord);\n\n if (d < dist) {\n dist = d;\n targetDataIndex = dataIndex;\n }\n });\n return targetDataIndex;\n },\n _clearTimer: function () {\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n },\n _changeTimeline: function (nextIndex) {\n var currentIndex = this.model.getCurrentIndex();\n\n if (nextIndex === '+') {\n nextIndex = currentIndex + 1;\n } else if (nextIndex === '-') {\n nextIndex = currentIndex - 1;\n }\n\n this.api.dispatchAction({\n type: 'timelineChange',\n currentIndex: nextIndex,\n from: this.uid\n });\n }\n});\n\nfunction getViewRect(model, api) {\n return layout.getLayoutRect(model.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n }, model.get('padding'));\n}\n\nfunction makeIcon(timelineModel, objPath, rect, opts) {\n var icon = graphic.makePath(timelineModel.get(objPath).replace(/^path:\\/\\//, ''), zrUtil.clone(opts || {}), new BoundingRect(rect[0], rect[1], rect[2], rect[3]), 'center');\n return icon;\n}\n/**\n * Create symbol or update symbol\n * opt: basic position and event handlers\n */\n\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n var color = itemStyleModel.get('color');\n\n if (!symbol) {\n var symbolType = hostModel.get('symbol');\n symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n symbol.setStyle('strokeNoScale', true);\n group.add(symbol);\n callback && callback.onCreate(symbol);\n } else {\n symbol.setColor(color);\n group.add(symbol); // Group may be new, also need to add.\n\n callback && callback.onUpdate(symbol);\n } // Style\n\n\n var itemStyle = itemStyleModel.getItemStyle(['color', 'symbol', 'symbolSize']);\n symbol.setStyle(itemStyle); // Transform and events.\n\n opt = zrUtil.merge({\n rectHover: true,\n z2: 100\n }, opt, true);\n var symbolSize = hostModel.get('symbolSize');\n symbolSize = symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n symbolSize[0] /= 2;\n symbolSize[1] /= 2;\n opt.scale = symbolSize;\n var symbolOffset = hostModel.get('symbolOffset');\n\n if (symbolOffset) {\n var pos = opt.position = opt.position || [0, 0];\n pos[0] += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]);\n pos[1] += numberUtil.parsePercent(symbolOffset[1], symbolSize[1]);\n }\n\n var symbolRotate = hostModel.get('symbolRotate');\n opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n symbol.attr(opt); // FIXME\n // (1) When symbol.style.strokeNoScale is true and updateTransform is not performed,\n // getBoundingRect will return wrong result.\n // (This is supposed to be resolved in zrender, but it is a little difficult to\n // leverage performance and auto updateTransform)\n // (2) All of ancesters of symbol do not scale, so we can just updateTransform symbol.\n\n symbol.updateTransform();\n return symbol;\n}\n\nfunction pointerMoveTo(pointer, dataIndex, axis, timelineModel, noAnimation) {\n if (pointer.dragging) {\n return;\n }\n\n var pointerModel = timelineModel.getModel('checkpointStyle');\n var toCoord = axis.dataToCoord(timelineModel.getData().get(['value'], dataIndex));\n\n if (noAnimation || !pointerModel.get('animation', true)) {\n pointer.attr({\n position: [toCoord, 0]\n });\n } else {\n pointer.stopAnimation(true);\n pointer.animateTo({\n position: [toCoord, 0]\n }, pointerModel.get('animationDuration', true), pointerModel.get('animationEasing', true));\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1221 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Axis = __webpack_require__(80);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Extend axis 2d\n * @constructor module:echarts/coord/cartesian/Axis2D\n * @extends {module:echarts/coord/cartesian/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.} coordExtent\n * @param {string} axisType\n * @param {string} position\n */\nvar TimelineAxis = function (dim, scale, coordExtent, axisType) {\n Axis.call(this, dim, scale, coordExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = axisType || 'value';\n /**\n * Axis model\n * @param {module:echarts/component/TimelineModel}\n */\n\n this.model = null;\n};\n\nTimelineAxis.prototype = {\n constructor: TimelineAxis,\n\n /**\n * @override\n */\n getLabelModel: function () {\n return this.model.getModel('label');\n },\n\n /**\n * @override\n */\n isHorizontal: function () {\n return this.model.get('orient') === 'horizontal';\n }\n};\nzrUtil.inherits(TimelineAxis, Axis);\nvar _default = TimelineAxis;\nmodule.exports = _default;\n\n/***/ }),\n/* 1222 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar ComponentModel = __webpack_require__(29);\n\nvar List = __webpack_require__(49);\n\nvar modelUtil = __webpack_require__(9);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar TimelineModel = ComponentModel.extend({\n type: 'timeline',\n layoutMode: 'box',\n\n /**\n * @protected\n */\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 4,\n // 二级层叠\n show: true,\n axisType: 'time',\n // 模式是时间类型,支持 value, category\n realtime: true,\n left: '20%',\n top: null,\n right: '20%',\n bottom: 0,\n width: null,\n height: 40,\n padding: 5,\n controlPosition: 'left',\n // 'left' 'right' 'top' 'bottom' 'none'\n autoPlay: false,\n rewind: false,\n // 反向播放\n loop: true,\n playInterval: 2000,\n // 播放时间间隔,单位ms\n currentIndex: 0,\n itemStyle: {},\n label: {\n color: '#000'\n },\n data: []\n },\n\n /**\n * @override\n */\n init: function (option, parentModel, ecModel) {\n /**\n * @private\n * @type {module:echarts/data/List}\n */\n this._data;\n /**\n * @private\n * @type {Array.}\n */\n\n this._names;\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._initData();\n },\n\n /**\n * @override\n */\n mergeOption: function (option) {\n TimelineModel.superApply(this, 'mergeOption', arguments);\n\n this._initData();\n },\n\n /**\n * @param {number} [currentIndex]\n */\n setCurrentIndex: function (currentIndex) {\n if (currentIndex == null) {\n currentIndex = this.option.currentIndex;\n }\n\n var count = this._data.count();\n\n if (this.option.loop) {\n currentIndex = (currentIndex % count + count) % count;\n } else {\n currentIndex >= count && (currentIndex = count - 1);\n currentIndex < 0 && (currentIndex = 0);\n }\n\n this.option.currentIndex = currentIndex;\n },\n\n /**\n * @return {number} currentIndex\n */\n getCurrentIndex: function () {\n return this.option.currentIndex;\n },\n\n /**\n * @return {boolean}\n */\n isIndexMax: function () {\n return this.getCurrentIndex() >= this._data.count() - 1;\n },\n\n /**\n * @param {boolean} state true: play, false: stop\n */\n setPlayState: function (state) {\n this.option.autoPlay = !!state;\n },\n\n /**\n * @return {boolean} true: play, false: stop\n */\n getPlayState: function () {\n return !!this.option.autoPlay;\n },\n\n /**\n * @private\n */\n _initData: function () {\n var thisOption = this.option;\n var dataArr = thisOption.data || [];\n var axisType = thisOption.axisType;\n var names = this._names = [];\n\n if (axisType === 'category') {\n var idxArr = [];\n zrUtil.each(dataArr, function (item, index) {\n var value = modelUtil.getDataItemValue(item);\n var newItem;\n\n if (zrUtil.isObject(item)) {\n newItem = zrUtil.clone(item);\n newItem.value = index;\n } else {\n newItem = index;\n }\n\n idxArr.push(newItem);\n\n if (!zrUtil.isString(value) && (value == null || isNaN(value))) {\n value = '';\n }\n\n names.push(value + '');\n });\n dataArr = idxArr;\n }\n\n var dimType = {\n category: 'ordinal',\n time: 'time'\n }[axisType] || 'number';\n var data = this._data = new List([{\n name: 'value',\n type: dimType\n }], this);\n data.initData(dataArr, names);\n },\n getData: function () {\n return this._data;\n },\n\n /**\n * @public\n * @return {Array.} categoreis\n */\n getCategories: function () {\n if (this.get('axisType') === 'category') {\n return this._names.slice();\n }\n }\n});\nvar _default = TimelineModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1223 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar ComponentView = __webpack_require__(183);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = ComponentView.extend({\n type: 'timeline'\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1224 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(option) {\n var timelineOpt = option && option.timeline;\n\n if (!zrUtil.isArray(timelineOpt)) {\n timelineOpt = timelineOpt ? [timelineOpt] : [];\n }\n\n zrUtil.each(timelineOpt, function (opt) {\n if (!opt) {\n return;\n }\n\n compatibleEC2(opt);\n });\n}\n\nfunction compatibleEC2(opt) {\n var type = opt.type;\n var ec2Types = {\n 'number': 'value',\n 'time': 'time'\n }; // Compatible with ec2\n\n if (ec2Types[type]) {\n opt.axisType = ec2Types[type];\n delete opt.type;\n }\n\n transferItem(opt);\n\n if (has(opt, 'controlPosition')) {\n var controlStyle = opt.controlStyle || (opt.controlStyle = {});\n\n if (!has(controlStyle, 'position')) {\n controlStyle.position = opt.controlPosition;\n }\n\n if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\n controlStyle.show = false;\n delete controlStyle.position;\n }\n\n delete opt.controlPosition;\n }\n\n zrUtil.each(opt.data || [], function (dataItem) {\n if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) {\n if (!has(dataItem, 'value') && has(dataItem, 'name')) {\n // In ec2, using name as value.\n dataItem.value = dataItem.name;\n }\n\n transferItem(dataItem);\n }\n });\n}\n\nfunction transferItem(opt) {\n var itemStyle = opt.itemStyle || (opt.itemStyle = {});\n var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {}); // Transfer label out\n\n var label = opt.label || opt.label || {};\n var labelNormal = label.normal || (label.normal = {});\n var excludeLabelAttr = {\n normal: 1,\n emphasis: 1\n };\n zrUtil.each(label, function (value, name) {\n if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\n labelNormal[name] = value;\n }\n });\n\n if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\n label.emphasis = itemStyleEmphasis.label;\n delete itemStyleEmphasis.label;\n }\n}\n\nfunction has(obj, attr) {\n return obj.hasOwnProperty(attr);\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1225 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerAction({\n type: 'timelineChange',\n event: 'timelineChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel && payload.currentIndex != null) {\n timelineModel.setCurrentIndex(payload.currentIndex);\n\n if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\n timelineModel.setPlayState(false);\n }\n } // Set normalized currentIndex to payload.\n\n\n ecModel.resetOption('timeline');\n return zrUtil.defaults({\n currentIndex: timelineModel.option.currentIndex\n }, payload);\n});\necharts.registerAction({\n type: 'timelinePlayChange',\n event: 'timelinePlayChanged',\n update: 'update'\n}, function (payload, ecModel) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel && payload.playState != null) {\n timelineModel.setPlayState(payload.playState);\n }\n});\n\n/***/ }),\n/* 1226 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar Component = __webpack_require__(29);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nComponent.registerSubTypeDefaulter('timeline', function () {\n // Only slider now.\n return 'slider';\n});\n\n/***/ }),\n/* 1227 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar graphic = __webpack_require__(5);\n\nvar _layout = __webpack_require__(16);\n\nvar getLayoutRect = _layout.getLayoutRect;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Model\necharts.extendComponentModel({\n type: 'title',\n layoutMode: {\n type: 'box',\n ignoreSize: true\n },\n defaultOption: {\n // 一级层叠\n zlevel: 0,\n // 二级层叠\n z: 6,\n show: true,\n text: '',\n // 超链接跳转\n // link: null,\n // 仅支持self | blank\n target: 'blank',\n subtext: '',\n // 超链接跳转\n // sublink: null,\n // 仅支持self | blank\n subtarget: 'blank',\n // 'center' ¦ 'left' ¦ 'right'\n // ¦ {number}(x坐标,单位px)\n left: 0,\n // 'top' ¦ 'bottom' ¦ 'center'\n // ¦ {number}(y坐标,单位px)\n top: 0,\n // 水平对齐\n // 'auto' | 'left' | 'right' | 'center'\n // 默认根据 left 的位置判断是左对齐还是右对齐\n // textAlign: null\n //\n // 垂直对齐\n // 'auto' | 'top' | 'bottom' | 'middle'\n // 默认根据 top 位置判断是上对齐还是下对齐\n // textBaseline: null\n backgroundColor: 'rgba(0,0,0,0)',\n // 标题边框颜色\n borderColor: '#ccc',\n // 标题边框线宽,单位px,默认为0(无边框)\n borderWidth: 0,\n // 标题内边距,单位px,默认各方向内边距为5,\n // 接受数组分别设定上右下左边距,同css\n padding: 5,\n // 主副标题纵向间隔,单位px,默认为10,\n itemGap: 10,\n textStyle: {\n fontSize: 18,\n fontWeight: 'bolder',\n color: '#333'\n },\n subtextStyle: {\n color: '#aaa'\n }\n }\n}); // View\n\necharts.extendComponentView({\n type: 'title',\n render: function (titleModel, ecModel, api) {\n this.group.removeAll();\n\n if (!titleModel.get('show')) {\n return;\n }\n\n var group = this.group;\n var textStyleModel = titleModel.getModel('textStyle');\n var subtextStyleModel = titleModel.getModel('subtextStyle');\n var textAlign = titleModel.get('textAlign');\n var textBaseline = titleModel.get('textBaseline');\n var textEl = new graphic.Text({\n style: graphic.setTextStyle({}, textStyleModel, {\n text: titleModel.get('text'),\n textFill: textStyleModel.getTextColor()\n }, {\n disableBox: true\n }),\n z2: 10\n });\n var textRect = textEl.getBoundingRect();\n var subText = titleModel.get('subtext');\n var subTextEl = new graphic.Text({\n style: graphic.setTextStyle({}, subtextStyleModel, {\n text: subText,\n textFill: subtextStyleModel.getTextColor(),\n y: textRect.height + titleModel.get('itemGap'),\n textVerticalAlign: 'top'\n }, {\n disableBox: true\n }),\n z2: 10\n });\n var link = titleModel.get('link');\n var sublink = titleModel.get('sublink');\n var triggerEvent = titleModel.get('triggerEvent', true);\n textEl.silent = !link && !triggerEvent;\n subTextEl.silent = !sublink && !triggerEvent;\n\n if (link) {\n textEl.on('click', function () {\n window.open(link, '_' + titleModel.get('target'));\n });\n }\n\n if (sublink) {\n subTextEl.on('click', function () {\n window.open(sublink, '_' + titleModel.get('subtarget'));\n });\n }\n\n textEl.eventData = subTextEl.eventData = triggerEvent ? {\n componentType: 'title',\n componentIndex: titleModel.componentIndex\n } : null;\n group.add(textEl);\n subText && group.add(subTextEl); // If no subText, but add subTextEl, there will be an empty line.\n\n var groupRect = group.getBoundingRect();\n var layoutOption = titleModel.getBoxLayoutParams();\n layoutOption.width = groupRect.width;\n layoutOption.height = groupRect.height;\n var layoutRect = getLayoutRect(layoutOption, {\n width: api.getWidth(),\n height: api.getHeight()\n }, titleModel.get('padding')); // Adjust text align based on position\n\n if (!textAlign) {\n // Align left if title is on the left. center and right is same\n textAlign = titleModel.get('left') || titleModel.get('right');\n\n if (textAlign === 'middle') {\n textAlign = 'center';\n } // Adjust layout by text align\n\n\n if (textAlign === 'right') {\n layoutRect.x += layoutRect.width;\n } else if (textAlign === 'center') {\n layoutRect.x += layoutRect.width / 2;\n }\n }\n\n if (!textBaseline) {\n textBaseline = titleModel.get('top') || titleModel.get('bottom');\n\n if (textBaseline === 'center') {\n textBaseline = 'middle';\n }\n\n if (textBaseline === 'bottom') {\n layoutRect.y += layoutRect.height;\n } else if (textBaseline === 'middle') {\n layoutRect.y += layoutRect.height / 2;\n }\n\n textBaseline = textBaseline || 'top';\n }\n\n group.attr('position', [layoutRect.x, layoutRect.y]);\n var alignStyle = {\n textAlign: textAlign,\n textVerticalAlign: textBaseline\n };\n textEl.setStyle(alignStyle);\n subTextEl.setStyle(alignStyle); // Render background\n // Get groupRect again because textAlign has been changed\n\n groupRect = group.getBoundingRect();\n var padding = layoutRect.margin;\n var style = titleModel.getItemStyle(['color', 'opacity']);\n style.fill = titleModel.get('backgroundColor');\n var rect = new graphic.Rect({\n shape: {\n x: groupRect.x - padding[3],\n y: groupRect.y - padding[0],\n width: groupRect.width + padding[1] + padding[3],\n height: groupRect.height + padding[0] + padding[2],\n r: titleModel.get('borderRadius')\n },\n style: style,\n silent: true\n });\n graphic.subPixelOptimizeRect(rect);\n group.add(rect);\n }\n});\n\n/***/ }),\n/* 1228 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(1229);\n\n__webpack_require__(1230);\n\n__webpack_require__(1236);\n\n__webpack_require__(1234);\n\n__webpack_require__(1232);\n\n__webpack_require__(1233);\n\n__webpack_require__(1235);\n\n/***/ }),\n/* 1229 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar featureManager = __webpack_require__(79);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ToolboxModel = echarts.extendComponentModel({\n type: 'toolbox',\n layoutMode: {\n type: 'box',\n ignoreSize: true\n },\n optionUpdated: function () {\n ToolboxModel.superApply(this, 'optionUpdated', arguments);\n zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n var Feature = featureManager.get(featureName);\n Feature && zrUtil.merge(featureOpt, Feature.defaultOption);\n });\n },\n defaultOption: {\n show: true,\n z: 6,\n zlevel: 0,\n orient: 'horizontal',\n left: 'right',\n top: 'top',\n // right\n // bottom\n backgroundColor: 'transparent',\n borderColor: '#ccc',\n borderRadius: 0,\n borderWidth: 0,\n padding: 5,\n itemSize: 15,\n itemGap: 8,\n showTitle: true,\n iconStyle: {\n borderColor: '#666',\n color: 'none'\n },\n emphasis: {\n iconStyle: {\n borderColor: '#3E98C5'\n } // textStyle: {},\n // feature\n\n }\n }\n});\nvar _default = ToolboxModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1230 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar textContain = __webpack_require__(59);\n\nvar featureManager = __webpack_require__(79);\n\nvar graphic = __webpack_require__(5);\n\nvar Model = __webpack_require__(31);\n\nvar DataDiffer = __webpack_require__(102);\n\nvar listComponentHelper = __webpack_require__(381);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentView({\n type: 'toolbox',\n render: function (toolboxModel, ecModel, api, payload) {\n var group = this.group;\n group.removeAll();\n\n if (!toolboxModel.get('show')) {\n return;\n }\n\n var itemSize = +toolboxModel.get('itemSize');\n var featureOpts = toolboxModel.get('feature') || {};\n var features = this._features || (this._features = {});\n var featureNames = [];\n zrUtil.each(featureOpts, function (opt, name) {\n featureNames.push(name);\n });\n new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute(); // Keep for diff.\n\n this._featureNames = featureNames;\n\n function processFeature(newIndex, oldIndex) {\n var featureName = featureNames[newIndex];\n var oldName = featureNames[oldIndex];\n var featureOpt = featureOpts[featureName];\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n var feature;\n\n if (featureName && !oldName) {\n // Create\n if (isUserFeatureName(featureName)) {\n feature = {\n model: featureModel,\n onclick: featureModel.option.onclick,\n featureName: featureName\n };\n } else {\n var Feature = featureManager.get(featureName);\n\n if (!Feature) {\n return;\n }\n\n feature = new Feature(featureModel, ecModel, api);\n }\n\n features[featureName] = feature;\n } else {\n feature = features[oldName]; // If feature does not exsit.\n\n if (!feature) {\n return;\n }\n\n feature.model = featureModel;\n feature.ecModel = ecModel;\n feature.api = api;\n }\n\n if (!featureName && oldName) {\n feature.dispose && feature.dispose(ecModel, api);\n return;\n }\n\n if (!featureModel.get('show') || feature.unusable) {\n feature.remove && feature.remove(ecModel, api);\n return;\n }\n\n createIconPaths(featureModel, feature, featureName);\n\n featureModel.setIconStatus = function (iconName, status) {\n var option = this.option;\n var iconPaths = this.iconPaths;\n option.iconStatus = option.iconStatus || {};\n option.iconStatus[iconName] = status; // FIXME\n\n iconPaths[iconName] && iconPaths[iconName].trigger(status);\n };\n\n if (feature.render) {\n feature.render(featureModel, ecModel, api, payload);\n }\n }\n\n function createIconPaths(featureModel, feature, featureName) {\n var iconStyleModel = featureModel.getModel('iconStyle');\n var iconStyleEmphasisModel = featureModel.getModel('emphasis.iconStyle'); // If one feature has mutiple icon. they are orginaized as\n // {\n // icon: {\n // foo: '',\n // bar: ''\n // },\n // title: {\n // foo: '',\n // bar: ''\n // }\n // }\n\n var icons = feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n var titles = featureModel.get('title') || {};\n\n if (typeof icons === 'string') {\n var icon = icons;\n var title = titles;\n icons = {};\n titles = {};\n icons[featureName] = icon;\n titles[featureName] = title;\n }\n\n var iconPaths = featureModel.iconPaths = {};\n zrUtil.each(icons, function (iconStr, iconName) {\n var path = graphic.createIcon(iconStr, {}, {\n x: -itemSize / 2,\n y: -itemSize / 2,\n width: itemSize,\n height: itemSize\n });\n path.setStyle(iconStyleModel.getItemStyle());\n path.hoverStyle = iconStyleEmphasisModel.getItemStyle();\n graphic.setHoverStyle(path);\n\n if (toolboxModel.get('showTitle')) {\n path.__title = titles[iconName];\n path.on('mouseover', function () {\n // Should not reuse above hoverStyle, which might be modified.\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n path.setStyle({\n text: titles[iconName],\n textPosition: hoverStyle.textPosition || 'bottom',\n textFill: hoverStyle.fill || hoverStyle.stroke || '#000',\n textAlign: hoverStyle.textAlign || 'center'\n });\n }).on('mouseout', function () {\n path.setStyle({\n textFill: null\n });\n });\n }\n\n path.trigger(featureModel.get('iconStatus.' + iconName) || 'normal');\n group.add(path);\n path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n iconPaths[iconName] = path;\n });\n }\n\n listComponentHelper.layout(group, toolboxModel, api); // Render background after group is layout\n // FIXME\n\n group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel)); // Adjust icon title positions to avoid them out of screen\n\n group.eachChild(function (icon) {\n var titleText = icon.__title;\n var hoverStyle = icon.hoverStyle; // May be background element\n\n if (hoverStyle && titleText) {\n var rect = textContain.getBoundingRect(titleText, textContain.makeFont(hoverStyle));\n var offsetX = icon.position[0] + group.position[0];\n var offsetY = icon.position[1] + group.position[1] + itemSize;\n var needPutOnTop = false;\n\n if (offsetY + rect.height > api.getHeight()) {\n hoverStyle.textPosition = 'top';\n needPutOnTop = true;\n }\n\n var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n if (offsetX + rect.width / 2 > api.getWidth()) {\n hoverStyle.textPosition = ['100%', topOffset];\n hoverStyle.textAlign = 'right';\n } else if (offsetX - rect.width / 2 < 0) {\n hoverStyle.textPosition = [0, topOffset];\n hoverStyle.textAlign = 'left';\n }\n }\n });\n },\n updateView: function (toolboxModel, ecModel, api, payload) {\n zrUtil.each(this._features, function (feature) {\n feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n });\n },\n // updateLayout: function (toolboxModel, ecModel, api, payload) {\n // zrUtil.each(this._features, function (feature) {\n // feature.updateLayout && feature.updateLayout(feature.model, ecModel, api, payload);\n // });\n // },\n remove: function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature.remove && feature.remove(ecModel, api);\n });\n this.group.removeAll();\n },\n dispose: function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature.dispose && feature.dispose(ecModel, api);\n });\n }\n});\n\nfunction isUserFeatureName(featureName) {\n return featureName.indexOf('my') === 0;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1231 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar featureManager = __webpack_require__(79);\n\nvar lang = __webpack_require__(104);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar brushLang = lang.toolbox.brush;\n\nfunction Brush(model, ecModel, api) {\n this.model = model;\n this.ecModel = ecModel;\n this.api = api;\n /**\n * @private\n * @type {string}\n */\n\n this._brushType;\n /**\n * @private\n * @type {string}\n */\n\n this._brushMode;\n}\n\nBrush.defaultOption = {\n show: true,\n type: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'],\n icon: {\n /* eslint-disable */\n rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\n // jshint ignore:line\n polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\n // jshint ignore:line\n lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\n // jshint ignore:line\n lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\n // jshint ignore:line\n keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\n // jshint ignore:line\n clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2' // jshint ignore:line\n\n /* eslint-enable */\n\n },\n // `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear`\n title: zrUtil.clone(brushLang.title)\n};\nvar proto = Brush.prototype; // proto.updateLayout = function (featureModel, ecModel, api) {\n\n/* eslint-disable */\n\nproto.render =\n/* eslint-enable */\nproto.updateView = function (featureModel, ecModel, api) {\n var brushType;\n var brushMode;\n var isBrushed;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n brushType = brushModel.brushType;\n brushMode = brushModel.brushOption.brushMode || 'single';\n isBrushed |= brushModel.areas.length;\n });\n this._brushType = brushType;\n this._brushMode = brushMode;\n zrUtil.each(featureModel.get('type', true), function (type) {\n featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n });\n};\n\nproto.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon', true);\n var icons = {};\n zrUtil.each(model.get('type', true), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n};\n\nproto.onclick = function (ecModel, api, type) {\n var brushType = this._brushType;\n var brushMode = this._brushMode;\n\n if (type === 'clear') {\n // Trigger parallel action firstly\n api.dispatchAction({\n type: 'axisAreaSelect',\n intervals: []\n });\n api.dispatchAction({\n type: 'brush',\n command: 'clear',\n // Clear all areas of all brush components.\n areas: []\n });\n } else {\n api.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'brush',\n brushOption: {\n brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n }\n });\n }\n};\n\nfeatureManager.register('brush', Brush);\nvar _default = Brush;\nmodule.exports = _default;\n\n/***/ }),\n/* 1232 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar eventTool = __webpack_require__(66);\n\nvar lang = __webpack_require__(104);\n\nvar featureManager = __webpack_require__(79);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar dataViewLang = lang.toolbox.dataView;\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n/**\n * Group series into two types\n * 1. on category axis, like line, bar\n * 2. others, like scatter, pie\n * @param {module:echarts/model/Global} ecModel\n * @return {Object}\n * @inner\n */\n\nfunction groupSeries(ecModel) {\n var seriesGroupByCategoryAxis = {};\n var otherSeries = [];\n var meta = [];\n ecModel.eachRawSeries(function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n var baseAxis = coordSys.getBaseAxis();\n\n if (baseAxis.type === 'category') {\n var key = baseAxis.dim + '_' + baseAxis.index;\n\n if (!seriesGroupByCategoryAxis[key]) {\n seriesGroupByCategoryAxis[key] = {\n categoryAxis: baseAxis,\n valueAxis: coordSys.getOtherAxis(baseAxis),\n series: []\n };\n meta.push({\n axisDim: baseAxis.dim,\n axisIndex: baseAxis.index\n });\n }\n\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\n } else {\n otherSeries.push(seriesModel);\n }\n } else {\n otherSeries.push(seriesModel);\n }\n });\n return {\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n other: otherSeries,\n meta: meta\n };\n}\n/**\n * Assemble content of series on cateogory axis\n * @param {Array.} series\n * @return {string}\n * @inner\n */\n\n\nfunction assembleSeriesWithCategoryAxis(series) {\n var tables = [];\n zrUtil.each(series, function (group, key) {\n var categoryAxis = group.categoryAxis;\n var valueAxis = group.valueAxis;\n var valueAxisDim = valueAxis.dim;\n var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n return series.name;\n }));\n var columns = [categoryAxis.model.getCategories()];\n zrUtil.each(group.series, function (series) {\n columns.push(series.getRawData().mapArray(valueAxisDim, function (val) {\n return val;\n }));\n }); // Assemble table content\n\n var lines = [headers.join(ITEM_SPLITER)];\n\n for (var i = 0; i < columns[0].length; i++) {\n var items = [];\n\n for (var j = 0; j < columns.length; j++) {\n items.push(columns[j][i]);\n }\n\n lines.push(items.join(ITEM_SPLITER));\n }\n\n tables.push(lines.join('\\n'));\n });\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n/**\n * Assemble content of other series\n * @param {Array.} series\n * @return {string}\n * @inner\n */\n\n\nfunction assembleOtherSeries(series) {\n return zrUtil.map(series, function (series) {\n var data = series.getRawData();\n var lines = [series.name];\n var vals = [];\n data.each(data.dimensions, function () {\n var argLen = arguments.length;\n var dataIndex = arguments[argLen - 1];\n var name = data.getName(dataIndex);\n\n for (var i = 0; i < argLen - 1; i++) {\n vals[i] = arguments[i];\n }\n\n lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n });\n return lines.join('\\n');\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n/**\n * @param {module:echarts/model/Global}\n * @return {Object}\n * @inner\n */\n\n\nfunction getContentFromModel(ecModel) {\n var result = groupSeries(ecModel);\n return {\n value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n return str.replace(/[\\n\\t\\s]/g, '');\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n meta: result.meta\n };\n}\n\nfunction trim(str) {\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n/**\n * If a block is tsv format\n */\n\n\nfunction isTSVFormat(block) {\n // Simple method to find out if a block is tsv format\n var firstLine = block.slice(0, block.indexOf('\\n'));\n\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n return true;\n }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n/**\n * @param {string} tsv\n * @return {Object}\n */\n\nfunction parseTSVContents(tsv) {\n var tsvLines = tsv.split(/\\n+/g);\n var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n var categories = [];\n var series = zrUtil.map(headers, function (header) {\n return {\n name: header,\n data: []\n };\n });\n\n for (var i = 0; i < tsvLines.length; i++) {\n var items = trim(tsvLines[i]).split(itemSplitRegex);\n categories.push(items.shift());\n\n for (var j = 0; j < items.length; j++) {\n series[j] && (series[j].data[i] = items[j]);\n }\n }\n\n return {\n series: series,\n categories: categories\n };\n}\n/**\n * @param {string} str\n * @return {Array.}\n * @inner\n */\n\n\nfunction parseListContents(str) {\n var lines = str.split(/\\n+/g);\n var seriesName = trim(lines.shift());\n var data = [];\n\n for (var i = 0; i < lines.length; i++) {\n var items = trim(lines[i]).split(itemSplitRegex);\n var name = '';\n var value;\n var hasName = false;\n\n if (isNaN(items[0])) {\n // First item is name\n hasName = true;\n name = items[0];\n items = items.slice(1);\n data[i] = {\n name: name,\n value: []\n };\n value = data[i].value;\n } else {\n value = data[i] = [];\n }\n\n for (var j = 0; j < items.length; j++) {\n value.push(+items[j]);\n }\n\n if (value.length === 1) {\n hasName ? data[i].value = value[0] : data[i] = value[0];\n }\n }\n\n return {\n name: seriesName,\n data: data\n };\n}\n/**\n * @param {string} str\n * @param {Array.} blockMetaList\n * @return {Object}\n * @inner\n */\n\n\nfunction parseContents(str, blockMetaList) {\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n var newOption = {\n series: []\n };\n zrUtil.each(blocks, function (block, idx) {\n if (isTSVFormat(block)) {\n var result = parseTSVContents(block);\n var blockMeta = blockMetaList[idx];\n var axisKey = blockMeta.axisDim + 'Axis';\n\n if (blockMeta) {\n newOption[axisKey] = newOption[axisKey] || [];\n newOption[axisKey][blockMeta.axisIndex] = {\n data: result.categories\n };\n newOption.series = newOption.series.concat(result.series);\n }\n } else {\n var result = parseListContents(block);\n newOption.series.push(result);\n }\n });\n return newOption;\n}\n/**\n * @alias {module:echarts/component/toolbox/feature/DataView}\n * @constructor\n * @param {module:echarts/model/Model} model\n */\n\n\nfunction DataView(model) {\n this._dom = null;\n this.model = model;\n}\n\nDataView.defaultOption = {\n show: true,\n readOnly: false,\n optionToContent: null,\n contentToOption: null,\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n title: zrUtil.clone(dataViewLang.title),\n lang: zrUtil.clone(dataViewLang.lang),\n backgroundColor: '#fff',\n textColor: '#000',\n textareaColor: '#fff',\n textareaBorderColor: '#333',\n buttonColor: '#c23531',\n buttonTextColor: '#fff'\n};\n\nDataView.prototype.onclick = function (ecModel, api) {\n var container = api.getDom();\n var model = this.model;\n\n if (this._dom) {\n container.removeChild(this._dom);\n }\n\n var root = document.createElement('div');\n root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n root.style.backgroundColor = model.get('backgroundColor') || '#fff'; // Create elements\n\n var header = document.createElement('h4');\n var lang = model.get('lang') || [];\n header.innerHTML = lang[0] || model.get('title');\n header.style.cssText = 'margin: 10px 20px;';\n header.style.color = model.get('textColor');\n var viewMain = document.createElement('div');\n var textarea = document.createElement('textarea');\n viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n var optionToContent = model.get('optionToContent');\n var contentToOption = model.get('contentToOption');\n var result = getContentFromModel(ecModel);\n\n if (typeof optionToContent === 'function') {\n var htmlOrDom = optionToContent(api.getOption());\n\n if (typeof htmlOrDom === 'string') {\n viewMain.innerHTML = htmlOrDom;\n } else if (zrUtil.isDom(htmlOrDom)) {\n viewMain.appendChild(htmlOrDom);\n }\n } else {\n // Use default textarea\n viewMain.appendChild(textarea);\n textarea.readOnly = model.get('readOnly');\n textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n textarea.style.color = model.get('textColor');\n textarea.style.borderColor = model.get('textareaBorderColor');\n textarea.style.backgroundColor = model.get('textareaColor');\n textarea.value = result.value;\n }\n\n var blockMetaList = result.meta;\n var buttonContainer = document.createElement('div');\n buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n var closeButton = document.createElement('div');\n var refreshButton = document.createElement('div');\n buttonStyle += ';background-color:' + model.get('buttonColor');\n buttonStyle += ';color:' + model.get('buttonTextColor');\n var self = this;\n\n function close() {\n container.removeChild(root);\n self._dom = null;\n }\n\n eventTool.addEventListener(closeButton, 'click', close);\n eventTool.addEventListener(refreshButton, 'click', function () {\n var newOption;\n\n try {\n if (typeof contentToOption === 'function') {\n newOption = contentToOption(viewMain, api.getOption());\n } else {\n newOption = parseContents(textarea.value, blockMetaList);\n }\n } catch (e) {\n close();\n throw new Error('Data view format error ' + e);\n }\n\n if (newOption) {\n api.dispatchAction({\n type: 'changeDataView',\n newOption: newOption\n });\n }\n\n close();\n });\n closeButton.innerHTML = lang[1];\n refreshButton.innerHTML = lang[2];\n refreshButton.style.cssText = buttonStyle;\n closeButton.style.cssText = buttonStyle;\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n buttonContainer.appendChild(closeButton); // http://stackoverflow.com/questions/6637341/use-tab-to-indent-in-textarea\n\n eventTool.addEventListener(textarea, 'keydown', function (e) {\n if ((e.keyCode || e.which) === 9) {\n // get caret position/selection\n var val = this.value;\n var start = this.selectionStart;\n var end = this.selectionEnd; // set textarea value to: text before caret + tab + text after caret\n\n this.value = val.substring(0, start) + ITEM_SPLITER + val.substring(end); // put caret at right position again\n\n this.selectionStart = this.selectionEnd = start + 1; // prevent the focus lose\n\n eventTool.stop(e);\n }\n });\n root.appendChild(header);\n root.appendChild(viewMain);\n root.appendChild(buttonContainer);\n viewMain.style.height = container.clientHeight - 80 + 'px';\n container.appendChild(root);\n this._dom = root;\n};\n\nDataView.prototype.remove = function (ecModel, api) {\n this._dom && api.getDom().removeChild(this._dom);\n};\n\nDataView.prototype.dispose = function (ecModel, api) {\n this.remove(ecModel, api);\n};\n/**\n * @inner\n */\n\n\nfunction tryMergeDataOption(newData, originalData) {\n return zrUtil.map(newData, function (newVal, idx) {\n var original = originalData && originalData[idx];\n\n if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n if (zrUtil.isObject(newVal) && !zrUtil.isArray(newVal)) {\n newVal = newVal.value;\n } // Original data has option\n\n\n return zrUtil.defaults({\n value: newVal\n }, original);\n } else {\n return newVal;\n }\n });\n}\n\nfeatureManager.register('dataView', DataView);\necharts.registerAction({\n type: 'changeDataView',\n event: 'dataViewChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n var newSeriesOptList = [];\n zrUtil.each(payload.newOption.series, function (seriesOpt) {\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n if (!seriesModel) {\n // New created series\n // Geuss the series type\n newSeriesOptList.push(zrUtil.extend({\n // Default is scatter\n type: 'scatter'\n }, seriesOpt));\n } else {\n var originalData = seriesModel.get('data');\n newSeriesOptList.push({\n name: seriesOpt.name,\n data: tryMergeDataOption(seriesOpt.data, originalData)\n });\n }\n });\n ecModel.mergeOption(zrUtil.defaults({\n series: newSeriesOptList\n }, payload.newOption));\n});\nvar _default = DataView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1233 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar BrushController = __webpack_require__(251);\n\nvar BrushTargetManager = __webpack_require__(377);\n\nvar history = __webpack_require__(374);\n\nvar sliderMove = __webpack_require__(144);\n\nvar lang = __webpack_require__(104);\n\nvar featureManager = __webpack_require__(79);\n\n__webpack_require__(1184);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Use dataZoomSelect\nvar dataZoomLang = lang.toolbox.dataZoom;\nvar each = zrUtil.each; // Spectial component id start with \\0ec\\0, see echarts/model/Global.js~hasInnerId\n\nvar DATA_ZOOM_ID_BASE = '\\0_ec_\\0toolbox-dataZoom_';\n\nfunction DataZoom(model, ecModel, api) {\n /**\n * @private\n * @type {module:echarts/component/helper/BrushController}\n */\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n /**\n * @private\n * @type {boolean}\n */\n\n this._isZoomActive;\n}\n\nDataZoom.defaultOption = {\n show: true,\n // Icon group\n icon: {\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n },\n // `zoom`, `back`\n title: zrUtil.clone(dataZoomLang.title)\n};\nvar proto = DataZoom.prototype;\n\nproto.render = function (featureModel, ecModel, api, payload) {\n this.model = featureModel;\n this.ecModel = ecModel;\n this.api = api;\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n updateBackBtnStatus(featureModel, ecModel);\n};\n\nproto.onclick = function (ecModel, api, type) {\n handlers[type].call(this);\n};\n\nproto.remove = function (ecModel, api) {\n this._brushController.unmount();\n};\n\nproto.dispose = function (ecModel, api) {\n this._brushController.dispose();\n};\n/**\n * @private\n */\n\n\nvar handlers = {\n zoom: function () {\n var nextActive = !this._isZoomActive;\n this.api.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: nextActive\n });\n },\n back: function () {\n this._dispatchZoomAction(history.pop(this.ecModel));\n }\n};\n/**\n * @private\n */\n\nproto._onBrush = function (areas, opt) {\n if (!opt.isEnd || !areas.length) {\n return;\n }\n\n var snapshot = {};\n var ecModel = this.ecModel;\n\n this._brushController.updateCovers([]); // remove cover\n\n\n var brushTargetManager = new BrushTargetManager(retrieveAxisSetting(this.model.option), ecModel, {\n include: ['grid']\n });\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n if (coordSys.type !== 'cartesian2d') {\n return;\n }\n\n var brushType = area.brushType;\n\n if (brushType === 'rect') {\n setBatch('x', coordSys, coordRange[0]);\n setBatch('y', coordSys, coordRange[1]);\n } else {\n setBatch({\n lineX: 'x',\n lineY: 'y'\n }[brushType], coordSys, coordRange);\n }\n });\n history.push(ecModel, snapshot);\n\n this._dispatchZoomAction(snapshot);\n\n function setBatch(dimName, coordSys, minMax) {\n var axis = coordSys.getAxis(dimName);\n var axisModel = axis.model;\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel); // Restrict range.\n\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n }\n\n dataZoomModel && (snapshot[dataZoomModel.id] = {\n dataZoomId: dataZoomModel.id,\n startValue: minMax[0],\n endValue: minMax[1]\n });\n }\n\n function findDataZoom(dimName, axisModel, ecModel) {\n var found;\n ecModel.eachComponent({\n mainType: 'dataZoom',\n subType: 'select'\n }, function (dzModel) {\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n has && (found = dzModel);\n });\n return found;\n }\n};\n/**\n * @private\n */\n\n\nproto._dispatchZoomAction = function (snapshot) {\n var batch = []; // Convert from hash map to array.\n\n each(snapshot, function (batchItem, dataZoomId) {\n batch.push(zrUtil.clone(batchItem));\n });\n batch.length && this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n batch: batch\n });\n};\n\nfunction retrieveAxisSetting(option) {\n var setting = {}; // Compatible with previous setting: null => all axis, false => no axis.\n\n zrUtil.each(['xAxisIndex', 'yAxisIndex'], function (name) {\n setting[name] = option[name];\n setting[name] == null && (setting[name] = 'all');\n (setting[name] === false || setting[name] === 'none') && (setting[name] = []);\n });\n return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n var zoomActive = view._isZoomActive;\n\n if (payload && payload.type === 'takeGlobalCursor') {\n zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n }\n\n view._isZoomActive = zoomActive;\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n var brushTargetManager = new BrushTargetManager(retrieveAxisSetting(featureModel.option), ecModel, {\n include: ['grid']\n });\n\n view._brushController.setPanels(brushTargetManager.makePanelOpts(api, function (targetInfo) {\n return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n })).enableBrush(zoomActive ? {\n brushType: 'auto',\n brushStyle: {\n // FIXME user customized?\n lineWidth: 0,\n fill: 'rgba(0,0,0,0.2)'\n }\n } : false);\n}\n\nfeatureManager.register('dataZoom', DataZoom); // Create special dataZoom option for select\n// FIXME consider the case of merge option, where axes options are not exists.\n\necharts.registerPreprocessor(function (option) {\n if (!option) {\n return;\n }\n\n var dataZoomOpts = option.dataZoom || (option.dataZoom = []);\n\n if (!zrUtil.isArray(dataZoomOpts)) {\n option.dataZoom = dataZoomOpts = [dataZoomOpts];\n }\n\n var toolboxOpt = option.toolbox;\n\n if (toolboxOpt) {\n // Assume there is only one toolbox\n if (zrUtil.isArray(toolboxOpt)) {\n toolboxOpt = toolboxOpt[0];\n }\n\n if (toolboxOpt && toolboxOpt.feature) {\n var dataZoomOpt = toolboxOpt.feature.dataZoom; // FIXME: If add dataZoom when setOption in merge mode,\n // no axis info to be added. See `test/dataZoom-extreme.html`\n\n addForAxis('xAxis', dataZoomOpt);\n addForAxis('yAxis', dataZoomOpt);\n }\n }\n\n function addForAxis(axisName, dataZoomOpt) {\n if (!dataZoomOpt) {\n return;\n } // Try not to modify model, because it is not merged yet.\n\n\n var axisIndicesName = axisName + 'Index';\n var givenAxisIndices = dataZoomOpt[axisIndicesName];\n\n if (givenAxisIndices != null && givenAxisIndices !== 'all' && !zrUtil.isArray(givenAxisIndices)) {\n givenAxisIndices = givenAxisIndices === false || givenAxisIndices === 'none' ? [] : [givenAxisIndices];\n }\n\n forEachComponent(axisName, function (axisOpt, axisIndex) {\n if (givenAxisIndices != null && givenAxisIndices !== 'all' && zrUtil.indexOf(givenAxisIndices, axisIndex) === -1) {\n return;\n }\n\n var newOpt = {\n type: 'select',\n $fromToolbox: true,\n // Id for merge mapping.\n id: DATA_ZOOM_ID_BASE + axisName + axisIndex\n }; // FIXME\n // Only support one axis now.\n\n newOpt[axisIndicesName] = axisIndex;\n dataZoomOpts.push(newOpt);\n });\n }\n\n function forEachComponent(mainType, cb) {\n var opts = option[mainType];\n\n if (!zrUtil.isArray(opts)) {\n opts = opts ? [opts] : [];\n }\n\n each(opts, cb);\n }\n});\nvar _default = DataZoom;\nmodule.exports = _default;\n\n/***/ }),\n/* 1234 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar lang = __webpack_require__(104);\n\nvar featureManager = __webpack_require__(79);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar magicTypeLang = lang.toolbox.magicType;\n\nfunction MagicType(model) {\n this.model = model;\n}\n\nMagicType.defaultOption = {\n show: true,\n type: [],\n // Icon group\n icon: {\n /* eslint-disable */\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z',\n // jshint ignore:line\n tiled: 'M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z'\n /* eslint-enable */\n\n },\n // `line`, `bar`, `stack`, `tiled`\n title: zrUtil.clone(magicTypeLang.title),\n option: {},\n seriesIndex: {}\n};\nvar proto = MagicType.prototype;\n\nproto.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon');\n var icons = {};\n zrUtil.each(model.get('type'), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n};\n\nvar seriesOptGenreator = {\n 'line': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'bar') {\n return zrUtil.merge({\n id: seriesId,\n type: 'line',\n // Preserve data related option\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get('option.line') || {}, true);\n }\n },\n 'bar': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'line') {\n return zrUtil.merge({\n id: seriesId,\n type: 'bar',\n // Preserve data related option\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get('option.bar') || {}, true);\n }\n },\n 'stack': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'line' || seriesType === 'bar') {\n return zrUtil.merge({\n id: seriesId,\n stack: '__ec_magicType_stack__'\n }, model.get('option.stack') || {}, true);\n }\n },\n 'tiled': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'line' || seriesType === 'bar') {\n return zrUtil.merge({\n id: seriesId,\n stack: ''\n }, model.get('option.tiled') || {}, true);\n }\n }\n};\nvar radioTypes = [['line', 'bar'], ['stack', 'tiled']];\n\nproto.onclick = function (ecModel, api, type) {\n var model = this.model;\n var seriesIndex = model.get('seriesIndex.' + type); // Not supported magicType\n\n if (!seriesOptGenreator[type]) {\n return;\n }\n\n var newOption = {\n series: []\n };\n\n var generateNewSeriesTypes = function (seriesModel) {\n var seriesType = seriesModel.subType;\n var seriesId = seriesModel.id;\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n if (newSeriesOpt) {\n // PENDING If merge original option?\n zrUtil.defaults(newSeriesOpt, seriesModel.option);\n newOption.series.push(newSeriesOpt);\n } // Modify boundaryGap\n\n\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (categoryAxis) {\n var axisDim = categoryAxis.dim;\n var axisType = axisDim + 'Axis';\n var axisModel = ecModel.queryComponents({\n mainType: axisType,\n index: seriesModel.get(name + 'Index'),\n id: seriesModel.get(name + 'Id')\n })[0];\n var axisIndex = axisModel.componentIndex;\n newOption[axisType] = newOption[axisType] || [];\n\n for (var i = 0; i <= axisIndex; i++) {\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n }\n\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n }\n }\n };\n\n zrUtil.each(radioTypes, function (radio) {\n if (zrUtil.indexOf(radio, type) >= 0) {\n zrUtil.each(radio, function (item) {\n model.setIconStatus(item, 'normal');\n });\n }\n });\n model.setIconStatus(type, 'emphasis');\n ecModel.eachComponent({\n mainType: 'series',\n query: seriesIndex == null ? null : {\n seriesIndex: seriesIndex\n }\n }, generateNewSeriesTypes);\n api.dispatchAction({\n type: 'changeMagicType',\n currentType: type,\n newOption: newOption\n });\n};\n\necharts.registerAction({\n type: 'changeMagicType',\n event: 'magicTypeChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.mergeOption(payload.newOption);\n});\nfeatureManager.register('magicType', MagicType);\nvar _default = MagicType;\nmodule.exports = _default;\n\n/***/ }),\n/* 1235 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar history = __webpack_require__(374);\n\nvar lang = __webpack_require__(104);\n\nvar featureManager = __webpack_require__(79);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar restoreLang = lang.toolbox.restore;\n\nfunction Restore(model) {\n this.model = model;\n}\n\nRestore.defaultOption = {\n show: true,\n\n /* eslint-disable */\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n\n /* eslint-enable */\n title: restoreLang.title\n};\nvar proto = Restore.prototype;\n\nproto.onclick = function (ecModel, api, type) {\n history.clear(ecModel);\n api.dispatchAction({\n type: 'restore',\n from: this.uid\n });\n};\n\nfeatureManager.register('restore', Restore);\necharts.registerAction({\n type: 'restore',\n event: 'restore',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.resetOption('recreate');\n});\nvar _default = Restore;\nmodule.exports = _default;\n\n/***/ }),\n/* 1236 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar env = __webpack_require__(27);\n\nvar lang = __webpack_require__(104);\n\nvar featureManager = __webpack_require__(79);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Uint8Array */\nvar saveAsImageLang = lang.toolbox.saveAsImage;\n\nfunction SaveAsImage(model) {\n this.model = model;\n}\n\nSaveAsImage.defaultOption = {\n show: true,\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n title: saveAsImageLang.title,\n type: 'png',\n // Default use option.backgroundColor\n // backgroundColor: '#fff',\n name: '',\n excludeComponents: ['toolbox'],\n pixelRatio: 1,\n lang: saveAsImageLang.lang.slice()\n};\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nvar proto = SaveAsImage.prototype;\n\nproto.onclick = function (ecModel, api) {\n var model = this.model;\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n var $a = document.createElement('a');\n var type = model.get('type', true) || 'png';\n $a.download = title + '.' + type;\n $a.target = '_blank';\n var url = api.getConnectedDataURL({\n type: type,\n backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n excludeComponents: model.get('excludeComponents'),\n pixelRatio: model.get('pixelRatio')\n });\n $a.href = url; // Chrome and Firefox\n\n if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) {\n var evt = new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: false\n });\n $a.dispatchEvent(evt);\n } // IE\n else {\n if (window.navigator.msSaveOrOpenBlob) {\n var bstr = atob(url.split(',')[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n var blob = new Blob([u8arr]);\n window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);\n } else {\n var lang = model.get('lang');\n var html = '' + '' + '' + '';\n var tab = window.open();\n tab.document.write(html);\n }\n }\n};\n\nfeatureManager.register('saveAsImage', SaveAsImage);\nvar _default = SaveAsImage;\nmodule.exports = _default;\n\n/***/ }),\n/* 1237 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(139);\n\n__webpack_require__(1239);\n\n__webpack_require__(1241);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME Better way to pack data in graphic element\n\n/**\n * @action\n * @property {string} type\n * @property {number} seriesIndex\n * @property {number} dataIndex\n * @property {number} [x]\n * @property {number} [y]\n */\necharts.registerAction({\n type: 'showTip',\n event: 'showTip',\n update: 'tooltip:manuallyShowTip'\n}, // noop\nfunction () {});\necharts.registerAction({\n type: 'hideTip',\n event: 'hideTip',\n update: 'tooltip:manuallyHideTip'\n}, // noop\nfunction () {});\n\n/***/ }),\n/* 1238 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar zrColor = __webpack_require__(67);\n\nvar eventUtil = __webpack_require__(66);\n\nvar env = __webpack_require__(27);\n\nvar formatUtil = __webpack_require__(19);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar toCamelCase = formatUtil.toCamelCase;\nvar vendors = ['', '-webkit-', '-moz-', '-o-'];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n/**\n * @param {number} duration\n * @return {string}\n * @inner\n */\n\nfunction assembleTransition(duration) {\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n var transitionText = 'left ' + duration + 's ' + transitionCurve + ',' + 'top ' + duration + 's ' + transitionCurve;\n return zrUtil.map(vendors, function (vendorPrefix) {\n return vendorPrefix + 'transition:' + transitionText;\n }).join(';');\n}\n/**\n * @param {Object} textStyle\n * @return {string}\n * @inner\n */\n\n\nfunction assembleFont(textStyleModel) {\n var cssText = [];\n var fontSize = textStyleModel.get('fontSize');\n var color = textStyleModel.getTextColor();\n color && cssText.push('color:' + color);\n cssText.push('font:' + textStyleModel.getFont());\n fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n each(['decoration', 'align'], function (name) {\n var val = textStyleModel.get(name);\n val && cssText.push('text-' + name + ':' + val);\n });\n return cssText.join(';');\n}\n/**\n * @param {Object} tooltipModel\n * @return {string}\n * @inner\n */\n\n\nfunction assembleCssText(tooltipModel) {\n var cssText = [];\n var transitionDuration = tooltipModel.get('transitionDuration');\n var backgroundColor = tooltipModel.get('backgroundColor');\n var textStyleModel = tooltipModel.getModel('textStyle');\n var padding = tooltipModel.get('padding'); // Animation transition. Do not animate when transitionDuration is 0.\n\n transitionDuration && cssText.push(assembleTransition(transitionDuration));\n\n if (backgroundColor) {\n if (env.canvasSupported) {\n cssText.push('background-Color:' + backgroundColor);\n } else {\n // for ie\n cssText.push('background-Color:#' + zrColor.toHex(backgroundColor));\n cssText.push('filter:alpha(opacity=70)');\n }\n } // Border style\n\n\n each(['width', 'color', 'radius'], function (name) {\n var borderName = 'border-' + name;\n var camelCase = toCamelCase(borderName);\n var val = tooltipModel.get(camelCase);\n val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n }); // Text style\n\n cssText.push(assembleFont(textStyleModel)); // Padding\n\n if (padding != null) {\n cssText.push('padding:' + formatUtil.normalizeCssArray(padding).join('px ') + 'px');\n }\n\n return cssText.join(';') + ';';\n}\n/**\n * @alias module:echarts/component/tooltip/TooltipContent\n * @constructor\n */\n\n\nfunction TooltipContent(container, api) {\n if (env.wxa) {\n return null;\n }\n\n var el = document.createElement('div');\n var zr = this._zr = api.getZr();\n this.el = el;\n this._x = api.getWidth() / 2;\n this._y = api.getHeight() / 2;\n container.appendChild(el);\n this._container = container;\n this._show = false;\n /**\n * @private\n */\n\n this._hideTimeout;\n var self = this;\n\n el.onmouseenter = function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n\n self._inContent = true;\n };\n\n el.onmousemove = function (e) {\n e = e || window.event;\n\n if (!self._enterable) {\n // Try trigger zrender event to avoid mouse\n // in and out shape too frequently\n var handler = zr.handler;\n eventUtil.normalizeEvent(container, e, true);\n handler.dispatch('mousemove', e);\n }\n };\n\n el.onmouseleave = function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n\n self._inContent = false;\n };\n}\n\nTooltipContent.prototype = {\n constructor: TooltipContent,\n\n /**\n * @private\n * @type {boolean}\n */\n _enterable: true,\n\n /**\n * Update when tooltip is rendered\n */\n update: function () {\n // FIXME\n // Move this logic to ec main?\n var container = this._container;\n var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n var domStyle = container.style;\n\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n domStyle.position = 'relative';\n } // Hide the tooltip\n // PENDING\n // this.hide();\n\n },\n show: function (tooltipModel) {\n clearTimeout(this._hideTimeout);\n var el = this.el;\n el.style.cssText = gCssText + assembleCssText(tooltipModel) // http://stackoverflow.com/questions/21125587/css3-transition-not-working-in-chrome-anymore\n + ';left:' + this._x + 'px;top:' + this._y + 'px;' + (tooltipModel.get('extraCssText') || '');\n el.style.display = el.innerHTML ? 'block' : 'none'; // If mouse occsionally move over the tooltip, a mouseout event will be\n // triggered by canvas, and cuase some unexpectable result like dragging\n // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n // it. Although it is not suppored by IE8~IE10, fortunately it is a rare\n // scenario.\n\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n this._show = true;\n },\n setContent: function (content) {\n this.el.innerHTML = content == null ? '' : content;\n },\n setEnterable: function (enterable) {\n this._enterable = enterable;\n },\n getSize: function () {\n var el = this.el;\n return [el.clientWidth, el.clientHeight];\n },\n moveTo: function (x, y) {\n // xy should be based on canvas root. But tooltipContent is\n // the sibling of canvas root. So padding of ec container\n // should be considered here.\n var zr = this._zr;\n var viewportRootOffset;\n\n if (zr && zr.painter && (viewportRootOffset = zr.painter.getViewportRootOffset())) {\n x += viewportRootOffset.offsetLeft;\n y += viewportRootOffset.offsetTop;\n }\n\n var style = this.el.style;\n style.left = x + 'px';\n style.top = y + 'px';\n this._x = x;\n this._y = y;\n },\n hide: function () {\n this.el.style.display = 'none';\n this._show = false;\n },\n hideLater: function (time) {\n if (this._show && !(this._inContent && this._enterable)) {\n if (time) {\n this._hideDelay = time; // Set show false to avoid invoke hideLater mutiple times\n\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n },\n isShow: function () {\n return this._show;\n },\n getOuterSize: function () {\n var width = this.el.clientWidth;\n var height = this.el.clientHeight; // Consider browser compatibility.\n // IE8 does not support getComputedStyle.\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n var stl = document.defaultView.getComputedStyle(this.el);\n\n if (stl) {\n width += parseInt(stl.paddingLeft, 10) + parseInt(stl.paddingRight, 10) + parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n height += parseInt(stl.paddingTop, 10) + parseInt(stl.paddingBottom, 10) + parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n }\n }\n\n return {\n width: width,\n height: height\n };\n }\n};\nvar _default = TooltipContent;\nmodule.exports = _default;\n\n/***/ }),\n/* 1239 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentModel({\n type: 'tooltip',\n dependencies: ['axisPointer'],\n defaultOption: {\n zlevel: 0,\n z: 60,\n show: true,\n // tooltip主体内容\n showContent: true,\n // 'trigger' only works on coordinate system.\n // 'item' | 'axis' | 'none'\n trigger: 'item',\n // 'click' | 'mousemove' | 'none'\n triggerOn: 'mousemove|click',\n alwaysShowContent: false,\n displayMode: 'single',\n // 'single' | 'multipleByCoordSys'\n renderMode: 'auto',\n // 'auto' | 'html' | 'richText'\n // 'auto': use html by default, and use non-html if `document` is not defined\n // 'html': use html for tooltip\n // 'richText': use canvas, svg, and etc. for tooltip\n // 位置 {Array} | {Function}\n // position: null\n // Consider triggered from axisPointer handle, verticalAlign should be 'middle'\n // align: null,\n // verticalAlign: null,\n // 是否约束 content 在 viewRect 中。默认 false 是为了兼容以前版本。\n confine: false,\n // 内容格式器:{string}(Template) ¦ {Function}\n // formatter: null\n showDelay: 0,\n // 隐藏延迟,单位ms\n hideDelay: 100,\n // 动画变换时间,单位s\n transitionDuration: 0.4,\n enterable: false,\n // 提示背景颜色,默认为透明度为0.7的黑色\n backgroundColor: 'rgba(50,50,50,0.7)',\n // 提示边框颜色\n borderColor: '#333',\n // 提示边框圆角,单位px,默认为4\n borderRadius: 4,\n // 提示边框线宽,单位px,默认为0(无边框)\n borderWidth: 0,\n // 提示内边距,单位px,默认各方向内边距为5,\n // 接受数组分别设定上右下左边距,同css\n padding: 5,\n // Extra css text\n extraCssText: '',\n // 坐标轴指示器,坐标轴触发有效\n axisPointer: {\n // 默认为直线\n // 可选为:'line' | 'shadow' | 'cross'\n type: 'line',\n // type 为 line 的时候有效,指定 tooltip line 所在的轴,可选\n // 可选 'x' | 'y' | 'angle' | 'radius' | 'auto'\n // 默认 'auto',会选择类型为 category 的轴,对于双数值轴,笛卡尔坐标系会默认选择 x 轴\n // 极坐标系会默认选择 angle 轴\n axis: 'auto',\n animation: 'auto',\n animationDurationUpdate: 200,\n animationEasingUpdate: 'exponentialOut',\n crossStyle: {\n color: '#999',\n width: 1,\n type: 'dashed',\n // TODO formatter\n textStyle: {} // lineStyle and shadowStyle should not be specified here,\n // otherwise it will always override those styles on option.axisPointer.\n\n }\n },\n textStyle: {\n color: '#fff',\n fontSize: 14\n }\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1240 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Text = __webpack_require__(109);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import Group from 'zrender/src/container/Group';\n\n/**\n * @alias module:echarts/component/tooltip/TooltipRichContent\n * @constructor\n */\nfunction TooltipRichContent(api) {\n this._zr = api.getZr();\n this._show = false;\n /**\n * @private\n */\n\n this._hideTimeout;\n}\n\nTooltipRichContent.prototype = {\n constructor: TooltipRichContent,\n\n /**\n * @private\n * @type {boolean}\n */\n _enterable: true,\n\n /**\n * Update when tooltip is rendered\n */\n update: function () {// noop\n },\n show: function (tooltipModel) {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n\n this.el.attr('show', true);\n this._show = true;\n },\n\n /**\n * Set tooltip content\n *\n * @param {string} content rich text string of content\n * @param {Object} markerRich rich text style\n * @param {Object} tooltipModel tooltip model\n */\n setContent: function (content, markerRich, tooltipModel) {\n if (this.el) {\n this._zr.remove(this.el);\n }\n\n var markers = {};\n var text = content;\n var prefix = '{marker';\n var suffix = '|}';\n var startId = text.indexOf(prefix);\n\n while (startId >= 0) {\n var endId = text.indexOf(suffix);\n var name = text.substr(startId + prefix.length, endId - startId - prefix.length);\n\n if (name.indexOf('sub') > -1) {\n markers['marker' + name] = {\n textWidth: 4,\n textHeight: 4,\n textBorderRadius: 2,\n textBackgroundColor: markerRich[name],\n // TODO: textOffset is not implemented for rich text\n textOffset: [3, 0]\n };\n } else {\n markers['marker' + name] = {\n textWidth: 10,\n textHeight: 10,\n textBorderRadius: 5,\n textBackgroundColor: markerRich[name]\n };\n }\n\n text = text.substr(endId + 1);\n startId = text.indexOf('{marker');\n }\n\n this.el = new Text({\n style: {\n rich: markers,\n text: content,\n textLineHeight: 20,\n textBackgroundColor: tooltipModel.get('backgroundColor'),\n textBorderRadius: tooltipModel.get('borderRadius'),\n textFill: tooltipModel.get('textStyle.color'),\n textPadding: tooltipModel.get('padding')\n },\n z: tooltipModel.get('z')\n });\n\n this._zr.add(this.el);\n\n var self = this;\n this.el.on('mouseover', function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n\n self._inContent = true;\n });\n this.el.on('mouseout', function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n\n self._inContent = false;\n });\n },\n setEnterable: function (enterable) {\n this._enterable = enterable;\n },\n getSize: function () {\n var bounding = this.el.getBoundingRect();\n return [bounding.width, bounding.height];\n },\n moveTo: function (x, y) {\n if (this.el) {\n this.el.attr('position', [x, y]);\n }\n },\n hide: function () {\n this.el.hide();\n this._show = false;\n },\n hideLater: function (time) {\n if (this._show && !(this._inContent && this._enterable)) {\n if (time) {\n this._hideDelay = time; // Set show false to avoid invoke hideLater mutiple times\n\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n },\n isShow: function () {\n return this._show;\n },\n getOuterSize: function () {\n return this.getSize();\n }\n};\nvar _default = TooltipRichContent;\nmodule.exports = _default;\n\n/***/ }),\n/* 1241 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar env = __webpack_require__(27);\n\nvar TooltipContent = __webpack_require__(1238);\n\nvar TooltipRichContent = __webpack_require__(1240);\n\nvar formatUtil = __webpack_require__(19);\n\nvar numberUtil = __webpack_require__(8);\n\nvar graphic = __webpack_require__(5);\n\nvar findPointFromSeries = __webpack_require__(370);\n\nvar layoutUtil = __webpack_require__(16);\n\nvar Model = __webpack_require__(31);\n\nvar globalListener = __webpack_require__(371);\n\nvar axisHelper = __webpack_require__(58);\n\nvar axisPointerViewHelper = __webpack_require__(175);\n\nvar _model = __webpack_require__(9);\n\nvar getTooltipRenderMode = _model.getTooltipRenderMode;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n shape: {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n }\n});\n\nvar _default = echarts.extendComponentView({\n type: 'tooltip',\n init: function (ecModel, api) {\n if (env.node) {\n return;\n }\n\n var tooltipModel = ecModel.getComponent('tooltip');\n var renderMode = tooltipModel.get('renderMode');\n this._renderMode = getTooltipRenderMode(renderMode);\n var tooltipContent;\n\n if (this._renderMode === 'html') {\n tooltipContent = new TooltipContent(api.getDom(), api);\n this._newLine = '
';\n } else {\n tooltipContent = new TooltipRichContent(api);\n this._newLine = '\\n';\n }\n\n this._tooltipContent = tooltipContent;\n },\n render: function (tooltipModel, ecModel, api) {\n if (env.node) {\n return;\n } // Reset\n\n\n this.group.removeAll();\n /**\n * @private\n * @type {module:echarts/component/tooltip/TooltipModel}\n */\n\n this._tooltipModel = tooltipModel;\n /**\n * @private\n * @type {module:echarts/model/Global}\n */\n\n this._ecModel = ecModel;\n /**\n * @private\n * @type {module:echarts/ExtensionAPI}\n */\n\n this._api = api;\n /**\n * Should be cleaned when render.\n * @private\n * @type {Array.>}\n */\n\n this._lastDataByCoordSys = null;\n /**\n * @private\n * @type {boolean}\n */\n\n this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n var tooltipContent = this._tooltipContent;\n tooltipContent.update();\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n this._initGlobalListener();\n\n this._keepShow();\n },\n _initGlobalListener: function () {\n var tooltipModel = this._tooltipModel;\n var triggerOn = tooltipModel.get('triggerOn');\n globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n // If 'none', it is not controlled by mouse totally.\n if (triggerOn !== 'none') {\n if (triggerOn.indexOf(currTrigger) >= 0) {\n this._tryShow(e, dispatchAction);\n } else if (currTrigger === 'leave') {\n this._hide(dispatchAction);\n }\n }\n }, this));\n },\n _keepShow: function () {\n var tooltipModel = this._tooltipModel;\n var ecModel = this._ecModel;\n var api = this._api; // Try to keep the tooltip show when refreshing\n\n if (this._lastX != null && this._lastY != null // When user is willing to control tooltip totally using API,\n // self.manuallyShowTip({x, y}) might cause tooltip hide,\n // which is not expected.\n && tooltipModel.get('triggerOn') !== 'none') {\n var self = this;\n clearTimeout(this._refreshUpdateTimeout);\n this._refreshUpdateTimeout = setTimeout(function () {\n // Show tip next tick after other charts are rendered\n // In case highlight action has wrong result\n // FIXME\n self.manuallyShowTip(tooltipModel, ecModel, api, {\n x: self._lastX,\n y: self._lastY\n });\n });\n }\n },\n\n /**\n * Show tip manually by\n * dispatchAction({\n * type: 'showTip',\n * x: 10,\n * y: 10\n * });\n * Or\n * dispatchAction({\n * type: 'showTip',\n * seriesIndex: 0,\n * dataIndex or dataIndexInside or name\n * });\n *\n * TODO Batch\n */\n manuallyShowTip: function (tooltipModel, ecModel, api, payload) {\n if (payload.from === this.uid || env.node) {\n return;\n }\n\n var dispatchAction = makeDispatchAction(payload, api); // Reset ticket\n\n this._ticket = ''; // When triggered from axisPointer.\n\n var dataByCoordSys = payload.dataByCoordSys;\n\n if (payload.tooltip && payload.x != null && payload.y != null) {\n var el = proxyRect;\n el.position = [payload.x, payload.y];\n el.update();\n el.tooltip = payload.tooltip; // Manually show tooltip while view is not using zrender elements.\n\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n target: el\n }, dispatchAction);\n } else if (dataByCoordSys) {\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n event: {},\n dataByCoordSys: payload.dataByCoordSys,\n tooltipOption: payload.tooltipOption\n }, dispatchAction);\n } else if (payload.seriesIndex != null) {\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n return;\n }\n\n var pointInfo = findPointFromSeries(payload, ecModel);\n var cx = pointInfo.point[0];\n var cy = pointInfo.point[1];\n\n if (cx != null && cy != null) {\n this._tryShow({\n offsetX: cx,\n offsetY: cy,\n position: payload.position,\n target: pointInfo.el,\n event: {}\n }, dispatchAction);\n }\n } else if (payload.x != null && payload.y != null) {\n // FIXME\n // should wrap dispatchAction like `axisPointer/globalListener` ?\n api.dispatchAction({\n type: 'updateAxisPointer',\n x: payload.x,\n y: payload.y\n });\n\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n target: api.getZr().findHover(payload.x, payload.y).target,\n event: {}\n }, dispatchAction);\n }\n },\n manuallyHideTip: function (tooltipModel, ecModel, api, payload) {\n var tooltipContent = this._tooltipContent;\n\n if (!this._alwaysShowContent && this._tooltipModel) {\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n }\n\n this._lastX = this._lastY = null;\n\n if (payload.from !== this.uid) {\n this._hide(makeDispatchAction(payload, api));\n }\n },\n // Be compatible with previous design, that is, when tooltip.type is 'axis' and\n // dispatchAction 'showTip' with seriesIndex and dataIndex will trigger axis pointer\n // and tooltip.\n _manuallyAxisShowTip: function (tooltipModel, ecModel, api, payload) {\n var seriesIndex = payload.seriesIndex;\n var dataIndex = payload.dataIndex;\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n return;\n }\n\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n if (!seriesModel) {\n return;\n }\n\n var data = seriesModel.getData();\n var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n if (tooltipModel.get('trigger') !== 'axis') {\n return;\n }\n\n api.dispatchAction({\n type: 'updateAxisPointer',\n seriesIndex: seriesIndex,\n dataIndex: dataIndex,\n position: payload.position\n });\n return true;\n },\n _tryShow: function (e, dispatchAction) {\n var el = e.target;\n var tooltipModel = this._tooltipModel;\n\n if (!tooltipModel) {\n return;\n } // Save mouse x, mouse y. So we can try to keep showing the tip if chart is refreshed\n\n\n this._lastX = e.offsetX;\n this._lastY = e.offsetY;\n var dataByCoordSys = e.dataByCoordSys;\n\n if (dataByCoordSys && dataByCoordSys.length) {\n this._showAxisTooltip(dataByCoordSys, e);\n } // Always show item tooltip if mouse is on the element with dataIndex\n else if (el && el.dataIndex != null) {\n this._lastDataByCoordSys = null;\n\n this._showSeriesItemTooltip(e, el, dispatchAction);\n } // Tooltip provided directly. Like legend.\n else if (el && el.tooltip) {\n this._lastDataByCoordSys = null;\n\n this._showComponentItemTooltip(e, el, dispatchAction);\n } else {\n this._lastDataByCoordSys = null;\n\n this._hide(dispatchAction);\n }\n },\n _showOrMove: function (tooltipModel, cb) {\n // showDelay is used in this case: tooltip.enterable is set\n // as true. User intent to move mouse into tooltip and click\n // something. `showDelay` makes it easyer to enter the content\n // but tooltip do not move immediately.\n var delay = tooltipModel.get('showDelay');\n cb = zrUtil.bind(cb, this);\n clearTimeout(this._showTimout);\n delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n },\n _showAxisTooltip: function (dataByCoordSys, e) {\n var ecModel = this._ecModel;\n var globalTooltipModel = this._tooltipModel;\n var point = [e.offsetX, e.offsetY];\n var singleDefaultHTML = [];\n var singleParamsList = [];\n var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n var renderMode = this._renderMode;\n var newLine = this._newLine;\n var markers = {};\n each(dataByCoordSys, function (itemCoordSys) {\n // var coordParamList = [];\n // var coordDefaultHTML = [];\n // var coordTooltipModel = buildTooltipModel([\n // e.tooltipOption,\n // itemCoordSys.tooltipOption,\n // ecModel.getComponent(itemCoordSys.coordSysMainType, itemCoordSys.coordSysIndex),\n // globalTooltipModel\n // ]);\n // var displayMode = coordTooltipModel.get('displayMode');\n // var paramsList = displayMode === 'single' ? singleParamsList : [];\n each(itemCoordSys.dataByAxis, function (item) {\n var axisModel = ecModel.getComponent(item.axisDim + 'Axis', item.axisIndex);\n var axisValue = item.value;\n var seriesDefaultHTML = [];\n\n if (!axisModel || axisValue == null) {\n return;\n }\n\n var valueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, item.seriesDataIndices, item.valueLabelOpt);\n zrUtil.each(item.seriesDataIndices, function (idxItem) {\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n var dataIndex = idxItem.dataIndexInside;\n var dataParams = series && series.getDataParams(dataIndex);\n dataParams.axisDim = item.axisDim;\n dataParams.axisIndex = item.axisIndex;\n dataParams.axisType = item.axisType;\n dataParams.axisId = item.axisId;\n dataParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, axisValue);\n dataParams.axisValueLabel = valueLabel;\n\n if (dataParams) {\n singleParamsList.push(dataParams);\n var seriesTooltip = series.formatTooltip(dataIndex, true, null, renderMode);\n var html;\n\n if (zrUtil.isObject(seriesTooltip)) {\n html = seriesTooltip.html;\n var newMarkers = seriesTooltip.markers;\n zrUtil.merge(markers, newMarkers);\n } else {\n html = seriesTooltip;\n }\n\n seriesDefaultHTML.push(html);\n }\n }); // Default tooltip content\n // FIXME\n // (1) shold be the first data which has name?\n // (2) themeRiver, firstDataIndex is array, and first line is unnecessary.\n\n var firstLine = valueLabel;\n\n if (renderMode !== 'html') {\n singleDefaultHTML.push(seriesDefaultHTML.join(newLine));\n } else {\n singleDefaultHTML.push((firstLine ? formatUtil.encodeHTML(firstLine) + newLine : '') + seriesDefaultHTML.join(newLine));\n }\n });\n }, this); // In most case, the second axis is shown upper than the first one.\n\n singleDefaultHTML.reverse();\n singleDefaultHTML = singleDefaultHTML.join(this._newLine + this._newLine);\n var positionExpr = e.position;\n\n this._showOrMove(singleTooltipModel, function () {\n if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, singleParamsList);\n } else {\n this._showTooltipContent(singleTooltipModel, singleDefaultHTML, singleParamsList, Math.random(), point[0], point[1], positionExpr, undefined, markers);\n }\n }); // Do not trigger events here, because this branch only be entered\n // from dispatchAction.\n\n },\n _showSeriesItemTooltip: function (e, el, dispatchAction) {\n var ecModel = this._ecModel; // Use dataModel in element if possible\n // Used when mouseover on a element like markPoint or edge\n // In which case, the data is not main data in series.\n\n var seriesIndex = el.seriesIndex;\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex); // For example, graph link.\n\n var dataModel = el.dataModel || seriesModel;\n var dataIndex = el.dataIndex;\n var dataType = el.dataType;\n var data = dataModel.getData();\n var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n var tooltipTrigger = tooltipModel.get('trigger');\n\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n return;\n }\n\n var params = dataModel.getDataParams(dataIndex, dataType);\n var seriesTooltip = dataModel.formatTooltip(dataIndex, false, dataType, this._renderMode);\n var defaultHtml;\n var markers;\n\n if (zrUtil.isObject(seriesTooltip)) {\n defaultHtml = seriesTooltip.html;\n markers = seriesTooltip.markers;\n } else {\n defaultHtml = seriesTooltip;\n markers = null;\n }\n\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n this._showOrMove(tooltipModel, function () {\n this._showTooltipContent(tooltipModel, defaultHtml, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markers);\n }); // FIXME\n // duplicated showtip if manuallyShowTip is called from dispatchAction.\n\n\n dispatchAction({\n type: 'showTip',\n dataIndexInside: dataIndex,\n dataIndex: data.getRawIndex(dataIndex),\n seriesIndex: seriesIndex,\n from: this.uid\n });\n },\n _showComponentItemTooltip: function (e, el, dispatchAction) {\n var tooltipOpt = el.tooltip;\n\n if (typeof tooltipOpt === 'string') {\n var content = tooltipOpt;\n tooltipOpt = {\n content: content,\n // Fixed formatter\n formatter: content\n };\n }\n\n var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n var defaultHtml = subTooltipModel.get('content');\n var asyncTicket = Math.random(); // Do not check whether `trigger` is 'none' here, because `trigger`\n // only works on cooridinate system. In fact, we have not found case\n // that requires setting `trigger` nothing on component yet.\n\n this._showOrMove(subTooltipModel, function () {\n this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el);\n }); // If not dispatch showTip, tip may be hide triggered by axis.\n\n\n dispatchAction({\n type: 'showTip',\n from: this.uid\n });\n },\n _showTooltipContent: function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markers) {\n // Reset ticket\n this._ticket = '';\n\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n return;\n }\n\n var tooltipContent = this._tooltipContent;\n var formatter = tooltipModel.get('formatter');\n positionExpr = positionExpr || tooltipModel.get('position');\n var html = defaultHtml;\n\n if (formatter && typeof formatter === 'string') {\n html = formatUtil.formatTpl(formatter, params, true);\n } else if (typeof formatter === 'function') {\n var callback = bind(function (cbTicket, html) {\n if (cbTicket === this._ticket) {\n tooltipContent.setContent(html, markers, tooltipModel);\n\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n }\n }, this);\n this._ticket = asyncTicket;\n html = formatter(params, asyncTicket, callback);\n }\n\n tooltipContent.setContent(html, markers, tooltipModel);\n tooltipContent.show(tooltipModel);\n\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n },\n\n /**\n * @param {string|Function|Array.|Object} positionExpr\n * @param {number} x Mouse x\n * @param {number} y Mouse y\n * @param {boolean} confine Whether confine tooltip content in view rect.\n * @param {Object|} params\n * @param {module:zrender/Element} el target element\n * @param {module:echarts/ExtensionAPI} api\n * @return {Array.}\n */\n _updatePosition: function (tooltipModel, positionExpr, x, y, content, params, el) {\n var viewWidth = this._api.getWidth();\n\n var viewHeight = this._api.getHeight();\n\n positionExpr = positionExpr || tooltipModel.get('position');\n var contentSize = content.getSize();\n var align = tooltipModel.get('align');\n var vAlign = tooltipModel.get('verticalAlign');\n var rect = el && el.getBoundingRect().clone();\n el && rect.applyTransform(el.transform);\n\n if (typeof positionExpr === 'function') {\n // Callback of position can be an array or a string specify the position\n positionExpr = positionExpr([x, y], params, content.el, rect, {\n viewSize: [viewWidth, viewHeight],\n contentSize: contentSize.slice()\n });\n }\n\n if (zrUtil.isArray(positionExpr)) {\n x = parsePercent(positionExpr[0], viewWidth);\n y = parsePercent(positionExpr[1], viewHeight);\n } else if (zrUtil.isObject(positionExpr)) {\n positionExpr.width = contentSize[0];\n positionExpr.height = contentSize[1];\n var layoutRect = layoutUtil.getLayoutRect(positionExpr, {\n width: viewWidth,\n height: viewHeight\n });\n x = layoutRect.x;\n y = layoutRect.y;\n align = null; // When positionExpr is left/top/right/bottom,\n // align and verticalAlign will not work.\n\n vAlign = null;\n } // Specify tooltip position by string 'top' 'bottom' 'left' 'right' around graphic element\n else if (typeof positionExpr === 'string' && el) {\n var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n x = pos[0];\n y = pos[1];\n } else {\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n x = pos[0];\n y = pos[1];\n }\n\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n if (tooltipModel.get('confine')) {\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n x = pos[0];\n y = pos[1];\n }\n\n content.moveTo(x, y);\n },\n // FIXME\n // Should we remove this but leave this to user?\n _updateContentNotChangedOnAxis: function (dataByCoordSys) {\n var lastCoordSys = this._lastDataByCoordSys;\n var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n var lastDataByAxis = lastItemCoordSys.dataByAxis || {};\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n contentNotChanged &= lastDataByAxis.length === thisDataByAxis.length;\n contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n var thisItem = thisDataByAxis[indexAxis] || {};\n var lastIndices = lastItem.seriesDataIndices || [];\n var newIndices = thisItem.seriesDataIndices || [];\n contentNotChanged &= lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n var newIdxItem = newIndices[j];\n contentNotChanged &= lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n });\n });\n });\n this._lastDataByCoordSys = dataByCoordSys;\n return !!contentNotChanged;\n },\n _hide: function (dispatchAction) {\n // Do not directly hideLater here, because this behavior may be prevented\n // in dispatchAction when showTip is dispatched.\n // FIXME\n // duplicated hideTip if manuallyHideTip is called from dispatchAction.\n this._lastDataByCoordSys = null;\n dispatchAction({\n type: 'hideTip',\n from: this.uid\n });\n },\n dispose: function (ecModel, api) {\n if (env.node) {\n return;\n }\n\n this._tooltipContent.hide();\n\n globalListener.unregister('itemTooltip', api);\n }\n});\n/**\n * @param {Array.} modelCascade\n * From top to bottom. (the last one should be globalTooltipModel);\n */\n\n\nfunction buildTooltipModel(modelCascade) {\n var resultModel = modelCascade.pop();\n\n while (modelCascade.length) {\n var tooltipOpt = modelCascade.pop();\n\n if (tooltipOpt) {\n if (Model.isInstance(tooltipOpt)) {\n tooltipOpt = tooltipOpt.get('tooltip', true);\n } // In each data item tooltip can be simply write:\n // {\n // value: 10,\n // tooltip: 'Something you need to know'\n // }\n\n\n if (typeof tooltipOpt === 'string') {\n tooltipOpt = {\n formatter: tooltipOpt\n };\n }\n\n resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n }\n }\n\n return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n var size = content.getOuterSize();\n var width = size.width;\n var height = size.height;\n\n if (gapH != null) {\n if (x + width + gapH > viewWidth) {\n x -= width + gapH;\n } else {\n x += gapH;\n }\n }\n\n if (gapV != null) {\n if (y + height + gapV > viewHeight) {\n y -= height + gapV;\n } else {\n y += gapV;\n }\n }\n\n return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n var size = content.getOuterSize();\n var width = size.width;\n var height = size.height;\n x = Math.min(x + width, viewWidth) - width;\n y = Math.min(y + height, viewHeight) - height;\n x = Math.max(x, 0);\n y = Math.max(y, 0);\n return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n var domWidth = contentSize[0];\n var domHeight = contentSize[1];\n var gap = 5;\n var x = 0;\n var y = 0;\n var rectWidth = rect.width;\n var rectHeight = rect.height;\n\n switch (position) {\n case 'inside':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n\n case 'top':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y - domHeight - gap;\n break;\n\n case 'bottom':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight + gap;\n break;\n\n case 'left':\n x = rect.x - domWidth - gap;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n\n case 'right':\n x = rect.x + rectWidth + gap;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n }\n\n return [x, y];\n}\n\nfunction isCenterAlign(align) {\n return align === 'center' || align === 'middle';\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1242 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(1243);\n\n__webpack_require__(1244);\n\n/***/ }),\n/* 1243 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar preprocessor = __webpack_require__(389);\n\n__webpack_require__(390);\n\n__webpack_require__(391);\n\n__webpack_require__(1245);\n\n__webpack_require__(1246);\n\n__webpack_require__(392);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * DataZoom component entry\n */\necharts.registerPreprocessor(preprocessor);\n\n/***/ }),\n/* 1244 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar preprocessor = __webpack_require__(389);\n\n__webpack_require__(390);\n\n__webpack_require__(391);\n\n__webpack_require__(1247);\n\n__webpack_require__(1248);\n\n__webpack_require__(392);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * DataZoom component entry\n */\necharts.registerPreprocessor(preprocessor);\n\n/***/ }),\n/* 1245 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar VisualMapModel = __webpack_require__(386);\n\nvar numberUtil = __webpack_require__(8);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Constant\nvar DEFAULT_BAR_BOUND = [20, 140];\nvar ContinuousModel = VisualMapModel.extend({\n type: 'visualMap.continuous',\n\n /**\n * @protected\n */\n defaultOption: {\n align: 'auto',\n // 'auto', 'left', 'right', 'top', 'bottom'\n calculable: false,\n // This prop effect default component type determine,\n // See echarts/component/visualMap/typeDefaulter.\n range: null,\n // selected range. In default case `range` is [min, max]\n // and can auto change along with modification of min max,\n // util use specifid a range.\n realtime: true,\n // Whether realtime update.\n itemHeight: null,\n // The length of the range control edge.\n itemWidth: null,\n // The length of the other side.\n hoverLink: true,\n // Enable hover highlight.\n hoverLinkDataSize: null,\n // The size of hovered data.\n hoverLinkOnHandle: null // Whether trigger hoverLink when hover handle.\n // If not specified, follow the value of `realtime`.\n\n },\n\n /**\n * @override\n */\n optionUpdated: function (newOption, isInit) {\n ContinuousModel.superApply(this, 'optionUpdated', arguments);\n this.resetExtent();\n this.resetVisual(function (mappingOption) {\n mappingOption.mappingMethod = 'linear';\n mappingOption.dataExtent = this.getExtent();\n });\n\n this._resetRange();\n },\n\n /**\n * @protected\n * @override\n */\n resetItemSize: function () {\n ContinuousModel.superApply(this, 'resetItemSize', arguments);\n var itemSize = this.itemSize;\n this._orient === 'horizontal' && itemSize.reverse();\n (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n },\n\n /**\n * @private\n */\n _resetRange: function () {\n var dataExtent = this.getExtent();\n var range = this.option.range;\n\n if (!range || range.auto) {\n // `range` should always be array (so we dont use other\n // value like 'auto') for user-friend. (consider getOption).\n dataExtent.auto = 1;\n this.option.range = dataExtent;\n } else if (zrUtil.isArray(range)) {\n if (range[0] > range[1]) {\n range.reverse();\n }\n\n range[0] = Math.max(range[0], dataExtent[0]);\n range[1] = Math.min(range[1], dataExtent[1]);\n }\n },\n\n /**\n * @protected\n * @override\n */\n completeVisualOption: function () {\n VisualMapModel.prototype.completeVisualOption.apply(this, arguments);\n zrUtil.each(this.stateList, function (state) {\n var symbolSize = this.option.controller[state].symbolSize;\n\n if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n symbolSize[0] = 0; // For good looking.\n }\n }, this);\n },\n\n /**\n * @override\n */\n setSelected: function (selected) {\n this.option.range = selected.slice();\n\n this._resetRange();\n },\n\n /**\n * @public\n */\n getSelected: function () {\n var dataExtent = this.getExtent();\n var dataInterval = numberUtil.asc((this.get('range') || []).slice()); // Clamp\n\n dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n return dataInterval;\n },\n\n /**\n * @override\n */\n getValueState: function (value) {\n var range = this.option.range;\n var dataExtent = this.getExtent(); // When range[0] === dataExtent[0], any value larger than dataExtent[0] maps to 'inRange'.\n // range[1] is processed likewise.\n\n return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n },\n\n /**\n * @params {Array.} range target value: range[0] <= value && value <= range[1]\n * @return {Array.} [{seriesId, dataIndices: >}, ...]\n */\n findTargetDataIndices: function (range) {\n var result = [];\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimension(data), function (value, dataIndex) {\n range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n },\n\n /**\n * @implement\n */\n getVisualMeta: function (getColorVisual) {\n var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n var stops = [];\n\n function setStop(value, valueState) {\n stops.push({\n value: value,\n color: getColorVisual(value, valueState)\n });\n } // Format to: outOfRange -- inRange -- outOfRange.\n\n\n var iIdx = 0;\n var oIdx = 0;\n var iLen = iVals.length;\n var oLen = oVals.length;\n\n for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n // If oVal[oIdx] === iVals[iIdx], oVal[oIdx] should be ignored.\n if (oVals[oIdx] < iVals[iIdx]) {\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n // If range is full, value beyond min, max will be clamped.\n // make a singularity\n first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n setStop(iVals[iIdx], 'inRange');\n }\n\n for (var first = 1; oIdx < oLen; oIdx++) {\n if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n // make a singularity\n if (first) {\n stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n first = 0;\n }\n\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n var stopsLen = stops.length;\n return {\n stops: stops,\n outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n };\n }\n});\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n if (dataExtent[0] === dataExtent[1]) {\n return dataExtent.slice();\n } // When using colorHue mapping, it is not linear color any more.\n // Moreover, canvas gradient seems not to be accurate linear.\n // FIXME\n // Should be arbitrary value 100? or based on pixel size?\n\n\n var count = 200;\n var step = (dataExtent[1] - dataExtent[0]) / count;\n var value = dataExtent[0];\n var stopValues = [];\n\n for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n stopValues.push(value);\n value += step;\n }\n\n stopValues.push(dataExtent[1]);\n return stopValues;\n}\n\nvar _default = ContinuousModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1246 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar LinearGradient = __webpack_require__(274);\n\nvar eventTool = __webpack_require__(66);\n\nvar VisualMapView = __webpack_require__(387);\n\nvar graphic = __webpack_require__(5);\n\nvar numberUtil = __webpack_require__(8);\n\nvar sliderMove = __webpack_require__(144);\n\nvar helper = __webpack_require__(388);\n\nvar modelUtil = __webpack_require__(9);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max; // Arbitrary value\n\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6; // Notice:\n// Any \"interval\" should be by the order of [low, high].\n// \"handle0\" (handleIndex === 0) maps to\n// low data value: this._dataInterval[0] and has low coord.\n// \"handle1\" (handleIndex === 1) maps to\n// high data value: this._dataInterval[1] and has high coord.\n// The logic of transform is implemented in this._createBarGroup.\n\nvar ContinuousView = VisualMapView.extend({\n type: 'visualMap.continuous',\n\n /**\n * @override\n */\n init: function () {\n ContinuousView.superApply(this, 'init', arguments);\n /**\n * @private\n */\n\n this._shapes = {};\n /**\n * @private\n */\n\n this._dataInterval = [];\n /**\n * @private\n */\n\n this._handleEnds = [];\n /**\n * @private\n */\n\n this._orient;\n /**\n * @private\n */\n\n this._useHandle;\n /**\n * @private\n */\n\n this._hoverLinkDataIndices = [];\n /**\n * @private\n */\n\n this._dragging;\n /**\n * @private\n */\n\n this._hovering;\n },\n\n /**\n * @protected\n * @override\n */\n doRender: function (visualMapModel, ecModel, api, payload) {\n if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n this._buildView();\n }\n },\n\n /**\n * @private\n */\n _buildView: function () {\n this.group.removeAll();\n var visualMapModel = this.visualMapModel;\n var thisGroup = this.group;\n this._orient = visualMapModel.get('orient');\n this._useHandle = visualMapModel.get('calculable');\n\n this._resetInterval();\n\n this._renderBar(thisGroup);\n\n var dataRangeText = visualMapModel.get('text');\n\n this._renderEndsText(thisGroup, dataRangeText, 0);\n\n this._renderEndsText(thisGroup, dataRangeText, 1); // Do this for background size calculation.\n\n\n this._updateView(true); // After updating view, inner shapes is built completely,\n // and then background can be rendered.\n\n\n this.renderBackground(thisGroup); // Real update view\n\n this._updateView();\n\n this._enableHoverLinkToSeries();\n\n this._enableHoverLinkFromSeries();\n\n this.positionGroup(thisGroup);\n },\n\n /**\n * @private\n */\n _renderEndsText: function (group, dataRangeText, endsIndex) {\n if (!dataRangeText) {\n return;\n } // Compatible with ec2, text[0] map to high value, text[1] map low value.\n\n\n var text = dataRangeText[1 - endsIndex];\n text = text != null ? text + '' : '';\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var itemSize = visualMapModel.itemSize;\n var barGroup = this._shapes.barGroup;\n\n var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n var orient = this._orient;\n var textStyleModel = this.visualMapModel.textStyleModel;\n this.group.add(new graphic.Text({\n style: {\n x: position[0],\n y: position[1],\n textVerticalAlign: orient === 'horizontal' ? 'middle' : align,\n textAlign: orient === 'horizontal' ? align : 'center',\n text: text,\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n }));\n },\n\n /**\n * @private\n */\n _renderBar: function (targetGroup) {\n var visualMapModel = this.visualMapModel;\n var shapes = this._shapes;\n var itemSize = visualMapModel.itemSize;\n var orient = this._orient;\n var useHandle = this._useHandle;\n var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n var barGroup = shapes.barGroup = this._createBarGroup(itemAlign); // Bar\n\n\n barGroup.add(shapes.outOfRange = createPolygon());\n barGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true)));\n var textRect = visualMapModel.textStyleModel.getTextRect('国');\n var textSize = mathMax(textRect.width, textRect.height); // Handle\n\n if (useHandle) {\n shapes.handleThumbs = [];\n shapes.handleLabels = [];\n shapes.handleLabelPoints = [];\n\n this._createHandle(barGroup, 0, itemSize, textSize, orient, itemAlign);\n\n this._createHandle(barGroup, 1, itemSize, textSize, orient, itemAlign);\n }\n\n this._createIndicator(barGroup, itemSize, textSize, orient);\n\n targetGroup.add(barGroup);\n },\n\n /**\n * @private\n */\n _createHandle: function (barGroup, handleIndex, itemSize, textSize, orient) {\n var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n var handleThumb = createPolygon(createHandlePoints(handleIndex, textSize), getCursor(this._orient), onDrift, onDragEnd);\n handleThumb.position[0] = itemSize[0];\n barGroup.add(handleThumb); // Text is always horizontal layout but should not be effected by\n // transform (orient/inverse). So label is built separately but not\n // use zrender/graphic/helper/RectText, and is located based on view\n // group (according to handleLabelPoint) but not barGroup.\n\n var textStyleModel = this.visualMapModel.textStyleModel;\n var handleLabel = new graphic.Text({\n draggable: true,\n drift: onDrift,\n onmousemove: function (e) {\n // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd,\n style: {\n x: 0,\n y: 0,\n text: '',\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n });\n this.group.add(handleLabel);\n var handleLabelPoint = [orient === 'horizontal' ? textSize / 2 : textSize * 1.5, orient === 'horizontal' ? handleIndex === 0 ? -(textSize * 1.5) : textSize * 1.5 : handleIndex === 0 ? -textSize / 2 : textSize / 2];\n var shapes = this._shapes;\n shapes.handleThumbs[handleIndex] = handleThumb;\n shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n shapes.handleLabels[handleIndex] = handleLabel;\n },\n\n /**\n * @private\n */\n _createIndicator: function (barGroup, itemSize, textSize, orient) {\n var indicator = createPolygon([[0, 0]], 'move');\n indicator.position[0] = itemSize[0];\n indicator.attr({\n invisible: true,\n silent: true\n });\n barGroup.add(indicator);\n var textStyleModel = this.visualMapModel.textStyleModel;\n var indicatorLabel = new graphic.Text({\n silent: true,\n invisible: true,\n style: {\n x: 0,\n y: 0,\n text: '',\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n });\n this.group.add(indicatorLabel);\n var indicatorLabelPoint = [orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT + 3, 0];\n var shapes = this._shapes;\n shapes.indicator = indicator;\n shapes.indicatorLabel = indicatorLabel;\n shapes.indicatorLabelPoint = indicatorLabelPoint;\n },\n\n /**\n * @private\n */\n _dragHandle: function (handleIndex, isEnd, dx, dy) {\n if (!this._useHandle) {\n return;\n }\n\n this._dragging = !isEnd;\n\n if (!isEnd) {\n // Transform dx, dy to bar coordination.\n var vertex = this._applyTransform([dx, dy], this._shapes.barGroup, true);\n\n this._updateInterval(handleIndex, vertex[1]); // Considering realtime, update view should be executed\n // before dispatch action.\n\n\n this._updateView();\n } // dragEnd do not dispatch action when realtime.\n\n\n if (isEnd === !this.visualMapModel.get('realtime')) {\n // jshint ignore:line\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: this._dataInterval.slice()\n });\n }\n\n if (isEnd) {\n !this._hovering && this._clearHoverLinkToSeries();\n } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n }\n },\n\n /**\n * @private\n */\n _resetInterval: function () {\n var visualMapModel = this.visualMapModel;\n var dataInterval = this._dataInterval = visualMapModel.getSelected();\n var dataExtent = visualMapModel.getExtent();\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n },\n\n /**\n * @private\n * @param {(number|string)} handleIndex 0 or 1 or 'all'\n * @param {number} dx\n * @param {number} dy\n */\n _updateInterval: function (handleIndex, delta) {\n delta = delta || 0;\n var visualMapModel = this.visualMapModel;\n var handleEnds = this._handleEnds;\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n sliderMove(delta, handleEnds, sizeExtent, handleIndex, // cross is forbiden\n 0);\n var dataExtent = visualMapModel.getExtent(); // Update data interval.\n\n this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n },\n\n /**\n * @private\n */\n _updateView: function (forSketch) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var shapes = this._shapes;\n var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n shapes.inRange.setStyle({\n fill: visualInRange.barColor,\n opacity: visualInRange.opacity\n }).setShape('points', visualInRange.barPoints);\n shapes.outOfRange.setStyle({\n fill: visualOutOfRange.barColor,\n opacity: visualOutOfRange.opacity\n }).setShape('points', visualOutOfRange.barPoints);\n\n this._updateHandle(inRangeHandleEnds, visualInRange);\n },\n\n /**\n * @private\n */\n _createBarVisual: function (dataInterval, dataExtent, handleEnds, forceState) {\n var opts = {\n forceState: forceState,\n convertOpacityToAlpha: true\n };\n\n var colorStops = this._makeColorGradient(dataInterval, opts);\n\n var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n return {\n barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n barPoints: barPoints,\n handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n };\n },\n\n /**\n * @private\n */\n _makeColorGradient: function (dataInterval, opts) {\n // Considering colorHue, which is not linear, so we have to sample\n // to calculate gradient color stops, but not only caculate head\n // and tail.\n var sampleNumber = 100; // Arbitrary value.\n\n var colorStops = [];\n var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n colorStops.push({\n color: this.getControllerVisual(dataInterval[0], 'color', opts),\n offset: 0\n });\n\n for (var i = 1; i < sampleNumber; i++) {\n var currValue = dataInterval[0] + step * i;\n\n if (currValue > dataInterval[1]) {\n break;\n }\n\n colorStops.push({\n color: this.getControllerVisual(currValue, 'color', opts),\n offset: i / sampleNumber\n });\n }\n\n colorStops.push({\n color: this.getControllerVisual(dataInterval[1], 'color', opts),\n offset: 1\n });\n return colorStops;\n },\n\n /**\n * @private\n */\n _createBarPoints: function (handleEnds, symbolSizes) {\n var itemSize = this.visualMapModel.itemSize;\n return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n },\n\n /**\n * @private\n */\n _createBarGroup: function (itemAlign) {\n var orient = this._orient;\n var inverse = this.visualMapModel.get('inverse');\n return new graphic.Group(orient === 'horizontal' && !inverse ? {\n scale: itemAlign === 'bottom' ? [1, 1] : [-1, 1],\n rotation: Math.PI / 2\n } : orient === 'horizontal' && inverse ? {\n scale: itemAlign === 'bottom' ? [-1, 1] : [1, 1],\n rotation: -Math.PI / 2\n } : orient === 'vertical' && !inverse ? {\n scale: itemAlign === 'left' ? [1, -1] : [-1, -1]\n } : {\n scale: itemAlign === 'left' ? [1, 1] : [-1, 1]\n });\n },\n\n /**\n * @private\n */\n _updateHandle: function (handleEnds, visualInRange) {\n if (!this._useHandle) {\n return;\n }\n\n var shapes = this._shapes;\n var visualMapModel = this.visualMapModel;\n var handleThumbs = shapes.handleThumbs;\n var handleLabels = shapes.handleLabels;\n each([0, 1], function (handleIndex) {\n var handleThumb = handleThumbs[handleIndex];\n handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n handleThumb.position[1] = handleEnds[handleIndex]; // Update handle label position.\n\n var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n textVerticalAlign: 'middle',\n textAlign: this._applyTransform(this._orient === 'horizontal' ? handleIndex === 0 ? 'bottom' : 'top' : 'left', shapes.barGroup)\n });\n }, this);\n },\n\n /**\n * @private\n * @param {number} cursorValue\n * @param {number} textValue\n * @param {string} [rangeSymbol]\n * @param {number} [halfHoverLinkSize]\n */\n _showIndicator: function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var itemSize = visualMapModel.itemSize;\n var sizeExtent = [0, itemSize[1]];\n var pos = linearMap(cursorValue, dataExtent, sizeExtent, true);\n var shapes = this._shapes;\n var indicator = shapes.indicator;\n\n if (!indicator) {\n return;\n }\n\n indicator.position[1] = pos;\n indicator.attr('invisible', false);\n indicator.setShape('points', createIndicatorPoints(!!rangeSymbol, halfHoverLinkSize, pos, itemSize[1]));\n var opts = {\n convertOpacityToAlpha: true\n };\n var color = this.getControllerVisual(cursorValue, 'color', opts);\n indicator.setStyle('fill', color); // Update handle label position.\n\n var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n var indicatorLabel = shapes.indicatorLabel;\n indicatorLabel.attr('invisible', false);\n\n var align = this._applyTransform('left', shapes.barGroup);\n\n var orient = this._orient;\n indicatorLabel.setStyle({\n text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n textVerticalAlign: orient === 'horizontal' ? align : 'middle',\n textAlign: orient === 'horizontal' ? 'center' : align,\n x: textPoint[0],\n y: textPoint[1]\n });\n },\n\n /**\n * @private\n */\n _enableHoverLinkToSeries: function () {\n var self = this;\n\n this._shapes.barGroup.on('mousemove', function (e) {\n self._hovering = true;\n\n if (!self._dragging) {\n var itemSize = self.visualMapModel.itemSize;\n\n var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.barGroup, true, true); // For hover link show when hover handle, which might be\n // below or upper than sizeExtent.\n\n\n pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n }\n }).on('mouseout', function () {\n // When mouse is out of handle, hoverLink still need\n // to be displayed when realtime is set as false.\n self._hovering = false;\n !self._dragging && self._clearHoverLinkToSeries();\n });\n },\n\n /**\n * @private\n */\n _enableHoverLinkFromSeries: function () {\n var zr = this.api.getZr();\n\n if (this.visualMapModel.option.hoverLink) {\n zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n zr.on('mouseout', this._hideIndicator, this);\n } else {\n this._clearHoverLinkFromSeries();\n }\n },\n\n /**\n * @private\n */\n _doHoverLinkToSeries: function (cursorPos, hoverOnBar) {\n var visualMapModel = this.visualMapModel;\n var itemSize = visualMapModel.itemSize;\n\n if (!visualMapModel.option.hoverLink) {\n return;\n }\n\n var sizeExtent = [0, itemSize[1]];\n var dataExtent = visualMapModel.getExtent(); // For hover link show when hover handle, which might be below or upper than sizeExtent.\n\n cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)]; // Consider data range is out of visualMap range, see test/visualMap-continuous.html,\n // where china and india has very large population.\n\n hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity); // Do not show indicator when mouse is over handle,\n // otherwise labels overlap, especially when dragging.\n\n if (hoverOnBar) {\n if (valueRange[0] === -Infinity) {\n this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n } else if (valueRange[1] === Infinity) {\n this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n } else {\n this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n }\n } // When realtime is set as false, handles, which are in barGroup,\n // also trigger hoverLink, which help user to realize where they\n // focus on when dragging. (see test/heatmap-large.html)\n // When realtime is set as true, highlight will not show when hover\n // handle, because the label on handle, which displays a exact value\n // but not range, might mislead users.\n\n\n var oldBatch = this._hoverLinkDataIndices;\n var newBatch = [];\n\n if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n }\n\n var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n this._dispatchHighDown('downplay', helper.convertDataIndex(resultBatches[0]));\n\n this._dispatchHighDown('highlight', helper.convertDataIndex(resultBatches[1]));\n },\n\n /**\n * @private\n */\n _hoverLinkFromSeriesMouseOver: function (e) {\n var el = e.target;\n var visualMapModel = this.visualMapModel;\n\n if (!el || el.dataIndex == null) {\n return;\n }\n\n var dataModel = this.ecModel.getSeriesByIndex(el.seriesIndex);\n\n if (!visualMapModel.isTargetSeries(dataModel)) {\n return;\n }\n\n var data = dataModel.getData(el.dataType);\n var value = data.get(visualMapModel.getDataDimension(data), el.dataIndex, true);\n\n if (!isNaN(value)) {\n this._showIndicator(value, value);\n }\n },\n\n /**\n * @private\n */\n _hideIndicator: function () {\n var shapes = this._shapes;\n shapes.indicator && shapes.indicator.attr('invisible', true);\n shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n },\n\n /**\n * @private\n */\n _clearHoverLinkToSeries: function () {\n this._hideIndicator();\n\n var indices = this._hoverLinkDataIndices;\n\n this._dispatchHighDown('downplay', helper.convertDataIndex(indices));\n\n indices.length = 0;\n },\n\n /**\n * @private\n */\n _clearHoverLinkFromSeries: function () {\n this._hideIndicator();\n\n var zr = this.api.getZr();\n zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n zr.off('mouseout', this._hideIndicator);\n },\n\n /**\n * @private\n */\n _applyTransform: function (vertex, element, inverse, global) {\n var transform = graphic.getTransform(element, global ? null : this.group);\n return graphic[zrUtil.isArray(vertex) ? 'applyTransform' : 'transformDirection'](vertex, transform, inverse);\n },\n\n /**\n * @private\n */\n _dispatchHighDown: function (type, batch) {\n batch && batch.length && this.api.dispatchAction({\n type: type,\n batch: batch\n });\n },\n\n /**\n * @override\n */\n dispose: function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n },\n\n /**\n * @override\n */\n remove: function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n }\n});\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n return new graphic.Polygon({\n shape: {\n points: points\n },\n draggable: !!onDrift,\n cursor: cursor,\n drift: onDrift,\n onmousemove: function (e) {\n // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd\n });\n}\n\nfunction createHandlePoints(handleIndex, textSize) {\n return handleIndex === 0 ? [[0, 0], [textSize, 0], [textSize, -textSize]] : [[0, 0], [textSize, 0], [textSize, textSize]];\n}\n\nfunction createIndicatorPoints(isRange, halfHoverLinkSize, pos, extentMax) {\n return isRange ? [// indicate range\n [0, -mathMin(halfHoverLinkSize, mathMax(pos, 0))], [HOVER_LINK_OUT, 0], [0, mathMin(halfHoverLinkSize, mathMax(extentMax - pos, 0))]] : [// indicate single value\n [0, 0], [5, -5], [5, 5]];\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n if (hoverLinkDataSize) {\n halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n }\n\n return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nvar _default = ContinuousView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1247 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = __webpack_require__(0);\n\nvar VisualMapModel = __webpack_require__(386);\n\nvar VisualMapping = __webpack_require__(106);\n\nvar visualDefault = __webpack_require__(408);\n\nvar _number = __webpack_require__(8);\n\nvar reformIntervals = _number.reformIntervals;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PiecewiseModel = VisualMapModel.extend({\n type: 'visualMap.piecewise',\n\n /**\n * Order Rule:\n *\n * option.categories / option.pieces / option.text / option.selected:\n * If !option.inverse,\n * Order when vertical: ['top', ..., 'bottom'].\n * Order when horizontal: ['left', ..., 'right'].\n * If option.inverse, the meaning of\n * the order should be reversed.\n *\n * this._pieceList:\n * The order is always [low, ..., high].\n *\n * Mapping from location to low-high:\n * If !option.inverse\n * When vertical, top is high.\n * When horizontal, right is high.\n * If option.inverse, reverse.\n */\n\n /**\n * @protected\n */\n defaultOption: {\n selected: null,\n // Object. If not specified, means selected.\n // When pieces and splitNumber: {'0': true, '5': true}\n // When categories: {'cate1': false, 'cate3': true}\n // When selected === false, means all unselected.\n minOpen: false,\n // Whether include values that smaller than `min`.\n maxOpen: false,\n // Whether include values that bigger than `max`.\n align: 'auto',\n // 'auto', 'left', 'right'\n itemWidth: 20,\n // When put the controller vertically, it is the length of\n // horizontal side of each item. Otherwise, vertical side.\n itemHeight: 14,\n // When put the controller vertically, it is the length of\n // vertical side of each item. Otherwise, horizontal side.\n itemSymbol: 'roundRect',\n pieceList: null,\n // Each item is Object, with some of those attrs:\n // {min, max, lt, gt, lte, gte, value,\n // color, colorSaturation, colorAlpha, opacity,\n // symbol, symbolSize}, which customize the range or visual\n // coding of the certain piece. Besides, see \"Order Rule\".\n categories: null,\n // category names, like: ['some1', 'some2', 'some3'].\n // Attr min/max are ignored when categories set. See \"Order Rule\"\n splitNumber: 5,\n // If set to 5, auto split five pieces equally.\n // If set to 0 and component type not set, component type will be\n // determined as \"continuous\". (It is less reasonable but for ec2\n // compatibility, see echarts/component/visualMap/typeDefaulter)\n selectedMode: 'multiple',\n // Can be 'multiple' or 'single'.\n itemGap: 10,\n // The gap between two items, in px.\n hoverLink: true,\n // Enable hover highlight.\n showLabel: null // By default, when text is used, label will hide (the logic\n // is remained for compatibility reason)\n\n },\n\n /**\n * @override\n */\n optionUpdated: function (newOption, isInit) {\n PiecewiseModel.superApply(this, 'optionUpdated', arguments);\n /**\n * The order is always [low, ..., high].\n * [{text: string, interval: Array.}, ...]\n * @private\n * @type {Array.}\n */\n\n this._pieceList = [];\n this.resetExtent();\n /**\n * 'pieces', 'categories', 'splitNumber'\n * @type {string}\n */\n\n var mode = this._mode = this._determineMode();\n\n resetMethods[this._mode].call(this);\n\n this._resetSelected(newOption, isInit);\n\n var categories = this.option.categories;\n this.resetVisual(function (mappingOption, state) {\n if (mode === 'categories') {\n mappingOption.mappingMethod = 'category';\n mappingOption.categories = zrUtil.clone(categories);\n } else {\n mappingOption.dataExtent = this.getExtent();\n mappingOption.mappingMethod = 'piecewise';\n mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n var piece = zrUtil.clone(piece);\n\n if (state !== 'inRange') {\n // FIXME\n // outOfRange do not support special visual in pieces.\n piece.visual = null;\n }\n\n return piece;\n });\n }\n });\n },\n\n /**\n * @protected\n * @override\n */\n completeVisualOption: function () {\n // Consider this case:\n // visualMap: {\n // pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\n // }\n // where no inRange/outOfRange set but only pieces. So we should make\n // default inRange/outOfRange for this case, otherwise visuals that only\n // appear in `pieces` will not be taken into account in visual encoding.\n var option = this.option;\n var visualTypesInPieces = {};\n var visualTypes = VisualMapping.listVisualTypes();\n var isCategory = this.isCategory();\n zrUtil.each(option.pieces, function (piece) {\n zrUtil.each(visualTypes, function (visualType) {\n if (piece.hasOwnProperty(visualType)) {\n visualTypesInPieces[visualType] = 1;\n }\n });\n });\n zrUtil.each(visualTypesInPieces, function (v, visualType) {\n var exists = 0;\n zrUtil.each(this.stateList, function (state) {\n exists |= has(option, state, visualType) || has(option.target, state, visualType);\n }, this);\n !exists && zrUtil.each(this.stateList, function (state) {\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n });\n }, this);\n\n function has(obj, state, visualType) {\n return obj && obj[state] && (zrUtil.isObject(obj[state]) ? obj[state].hasOwnProperty(visualType) : obj[state] === visualType // e.g., inRange: 'symbol'\n );\n }\n\n VisualMapModel.prototype.completeVisualOption.apply(this, arguments);\n },\n _resetSelected: function (newOption, isInit) {\n var thisOption = this.option;\n var pieceList = this._pieceList; // Selected do not merge but all override.\n\n var selected = (isInit ? thisOption : newOption).selected || {};\n thisOption.selected = selected; // Consider 'not specified' means true.\n\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (!selected.hasOwnProperty(key)) {\n selected[key] = true;\n }\n }, this);\n\n if (thisOption.selectedMode === 'single') {\n // Ensure there is only one selected.\n var hasSel = false;\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (selected[key]) {\n hasSel ? selected[key] = false : hasSel = true;\n }\n }, this);\n } // thisOption.selectedMode === 'multiple', default: all selected.\n\n },\n\n /**\n * @public\n */\n getSelectedMapKey: function (piece) {\n return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n },\n\n /**\n * @public\n */\n getPieceList: function () {\n return this._pieceList;\n },\n\n /**\n * @private\n * @return {string}\n */\n _determineMode: function () {\n var option = this.option;\n return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n },\n\n /**\n * @public\n * @override\n */\n setSelected: function (selected) {\n this.option.selected = zrUtil.clone(selected);\n },\n\n /**\n * @public\n * @override\n */\n getValueState: function (value) {\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\n return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n },\n\n /**\n * @public\n * @params {number} pieceIndex piece index in visualMapModel.getPieceList()\n * @return {Array.} [{seriesId, dataIndices: >}, ...]\n */\n findTargetDataIndices: function (pieceIndex) {\n var result = [];\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimension(data), function (value, dataIndex) {\n // Should always base on model pieceList, because it is order sensitive.\n var pIdx = VisualMapping.findPieceIndex(value, this._pieceList);\n pIdx === pieceIndex && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n },\n\n /**\n * @private\n * @param {Object} piece piece.value or piece.interval is required.\n * @return {number} Can be Infinity or -Infinity\n */\n getRepresentValue: function (piece) {\n var representValue;\n\n if (this.isCategory()) {\n representValue = piece.value;\n } else {\n if (piece.value != null) {\n representValue = piece.value;\n } else {\n var pieceInterval = piece.interval || [];\n representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n }\n }\n\n return representValue;\n },\n getVisualMeta: function (getColorVisual) {\n // Do not support category. (category axis is ordinal, numerical)\n if (this.isCategory()) {\n return;\n }\n\n var stops = [];\n var outerColors = [];\n var visualMapModel = this;\n\n function setStop(interval, valueState) {\n var representValue = visualMapModel.getRepresentValue({\n interval: interval\n });\n\n if (!valueState) {\n valueState = visualMapModel.getValueState(representValue);\n }\n\n var color = getColorVisual(representValue, valueState);\n\n if (interval[0] === -Infinity) {\n outerColors[0] = color;\n } else if (interval[1] === Infinity) {\n outerColors[1] = color;\n } else {\n stops.push({\n value: interval[0],\n color: color\n }, {\n value: interval[1],\n color: color\n });\n }\n } // Suplement\n\n\n var pieceList = this._pieceList.slice();\n\n if (!pieceList.length) {\n pieceList.push({\n interval: [-Infinity, Infinity]\n });\n } else {\n var edge = pieceList[0].interval[0];\n edge !== -Infinity && pieceList.unshift({\n interval: [-Infinity, edge]\n });\n edge = pieceList[pieceList.length - 1].interval[1];\n edge !== Infinity && pieceList.push({\n interval: [edge, Infinity]\n });\n }\n\n var curr = -Infinity;\n zrUtil.each(pieceList, function (piece) {\n var interval = piece.interval;\n\n if (interval) {\n // Fulfill gap.\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n setStop(interval.slice());\n curr = interval[1];\n }\n }, this);\n return {\n stops: stops,\n outerColors: outerColors\n };\n }\n});\n/**\n * Key is this._mode\n * @type {Object}\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\n */\n\nvar resetMethods = {\n splitNumber: function () {\n var thisOption = this.option;\n var pieceList = this._pieceList;\n var precision = Math.min(thisOption.precision, 20);\n var dataExtent = this.getExtent();\n var splitNumber = thisOption.splitNumber;\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n thisOption.splitNumber = splitNumber;\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption\n\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n precision++;\n }\n\n thisOption.precision = precision;\n splitStep = +splitStep.toFixed(precision);\n var index = 0;\n\n if (thisOption.minOpen) {\n pieceList.push({\n index: index++,\n interval: [-Infinity, dataExtent[0]],\n close: [0, 0]\n });\n }\n\n for (var curr = dataExtent[0], len = index + splitNumber; index < len; curr += splitStep) {\n var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n pieceList.push({\n index: index++,\n interval: [curr, max],\n close: [1, 1]\n });\n }\n\n if (thisOption.maxOpen) {\n pieceList.push({\n index: index++,\n interval: [dataExtent[1], Infinity],\n close: [0, 0]\n });\n }\n\n reformIntervals(pieceList);\n zrUtil.each(pieceList, function (piece) {\n piece.text = this.formatValueText(piece.interval);\n }, this);\n },\n categories: function () {\n var thisOption = this.option;\n zrUtil.each(thisOption.categories, function (cate) {\n // FIXME category模式也使用pieceList,但在visualMapping中不是使用pieceList。\n // 是否改一致。\n this._pieceList.push({\n text: this.formatValueText(cate, true),\n value: cate\n });\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, this._pieceList);\n },\n pieces: function () {\n var thisOption = this.option;\n var pieceList = this._pieceList;\n zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n if (!zrUtil.isObject(pieceListItem)) {\n pieceListItem = {\n value: pieceListItem\n };\n }\n\n var item = {\n text: '',\n index: index\n };\n\n if (pieceListItem.label != null) {\n item.text = pieceListItem.label;\n }\n\n if (pieceListItem.hasOwnProperty('value')) {\n var value = item.value = pieceListItem.value;\n item.interval = [value, value];\n item.close = [1, 1];\n } else {\n // `min` `max` is legacy option.\n // `lt` `gt` `lte` `gte` is recommanded.\n var interval = item.interval = [];\n var close = item.close = [0, 0];\n var closeList = [1, 0, 1];\n var infinityList = [-Infinity, Infinity];\n var useMinMax = [];\n\n for (var lg = 0; lg < 2; lg++) {\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\n interval[lg] = pieceListItem[names[i]];\n close[lg] = closeList[i];\n useMinMax[lg] = i === 2;\n }\n\n interval[lg] == null && (interval[lg] = infinityList[lg]);\n }\n\n useMinMax[0] && interval[1] === Infinity && (close[0] = 0);\n useMinMax[1] && interval[0] === -Infinity && (close[1] = 0);\n\n if (interval[0] === interval[1] && close[0] && close[1]) {\n // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\n // we use value to lift the priority when min === max\n item.value = interval[0];\n }\n }\n\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n pieceList.push(item);\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, pieceList); // Only pieces\n\n reformIntervals(pieceList);\n zrUtil.each(pieceList, function (piece) {\n var close = piece.close;\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n }, this);\n }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n var inverse = thisOption.inverse;\n\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n pieceList.reverse();\n }\n}\n\nvar _default = PiecewiseModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1248 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar VisualMapView = __webpack_require__(387);\n\nvar graphic = __webpack_require__(5);\n\nvar _symbol = __webpack_require__(50);\n\nvar createSymbol = _symbol.createSymbol;\n\nvar layout = __webpack_require__(16);\n\nvar helper = __webpack_require__(388);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PiecewiseVisualMapView = VisualMapView.extend({\n type: 'visualMap.piecewise',\n\n /**\n * @protected\n * @override\n */\n doRender: function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var textStyleModel = visualMapModel.textStyleModel;\n var textFont = textStyleModel.getFont();\n var textFill = textStyleModel.getTextColor();\n\n var itemAlign = this._getItemAlign();\n\n var itemSize = visualMapModel.itemSize;\n\n var viewData = this._getViewData();\n\n var endsText = viewData.endsText;\n var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n zrUtil.each(viewData.viewPieceList, renderItem, this);\n endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n this.renderBackground(thisGroup);\n this.positionGroup(thisGroup);\n\n function renderItem(item) {\n var piece = item.piece;\n var itemGroup = new graphic.Group();\n itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n this._enableHoverLink(itemGroup, item.indexInModelPieceList);\n\n var representValue = visualMapModel.getRepresentValue(piece);\n\n this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n if (showLabel) {\n var visualState = this.visualMapModel.getValueState(representValue);\n itemGroup.add(new graphic.Text({\n style: {\n x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n y: itemSize[1] / 2,\n text: piece.text,\n textVerticalAlign: 'middle',\n textAlign: itemAlign,\n textFont: textFont,\n textFill: textFill,\n opacity: visualState === 'outOfRange' ? 0.5 : 1\n }\n }));\n }\n\n thisGroup.add(itemGroup);\n }\n },\n\n /**\n * @private\n */\n _enableHoverLink: function (itemGroup, pieceIndex) {\n itemGroup.on('mouseover', zrUtil.bind(onHoverLink, this, 'highlight')).on('mouseout', zrUtil.bind(onHoverLink, this, 'downplay'));\n\n function onHoverLink(method) {\n var visualMapModel = this.visualMapModel;\n visualMapModel.option.hoverLink && this.api.dispatchAction({\n type: method,\n batch: helper.convertDataIndex(visualMapModel.findTargetDataIndices(pieceIndex))\n });\n }\n },\n\n /**\n * @private\n */\n _getItemAlign: function () {\n var visualMapModel = this.visualMapModel;\n var modelOption = visualMapModel.option;\n\n if (modelOption.orient === 'vertical') {\n return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n } else {\n // horizontal, most case left unless specifying right.\n var align = modelOption.align;\n\n if (!align || align === 'auto') {\n align = 'left';\n }\n\n return align;\n }\n },\n\n /**\n * @private\n */\n _renderEndsText: function (group, text, itemSize, showLabel, itemAlign) {\n if (!text) {\n return;\n }\n\n var itemGroup = new graphic.Group();\n var textStyleModel = this.visualMapModel.textStyleModel;\n itemGroup.add(new graphic.Text({\n style: {\n x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n y: itemSize[1] / 2,\n textVerticalAlign: 'middle',\n textAlign: showLabel ? itemAlign : 'center',\n text: text,\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n }));\n group.add(itemGroup);\n },\n\n /**\n * @private\n * @return {Object} {peiceList, endsText} The order is the same as screen pixel order.\n */\n _getViewData: function () {\n var visualMapModel = this.visualMapModel;\n var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n return {\n piece: piece,\n indexInModelPieceList: index\n };\n });\n var endsText = visualMapModel.get('text'); // Consider orient and inverse.\n\n var orient = visualMapModel.get('orient');\n var inverse = visualMapModel.get('inverse'); // Order of model pieceList is always [low, ..., high]\n\n if (orient === 'horizontal' ? inverse : !inverse) {\n viewPieceList.reverse();\n } // Origin order of endsText is [high, low]\n else if (endsText) {\n endsText = endsText.slice().reverse();\n }\n\n return {\n viewPieceList: viewPieceList,\n endsText: endsText\n };\n },\n\n /**\n * @private\n */\n _createItemSymbol: function (group, representValue, shapeParam) {\n group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\n },\n\n /**\n * @private\n */\n _onItemClick: function (piece) {\n var visualMapModel = this.visualMapModel;\n var option = visualMapModel.option;\n var selected = zrUtil.clone(option.selected);\n var newKey = visualMapModel.getSelectedMapKey(piece);\n\n if (option.selectedMode === 'single') {\n selected[newKey] = true;\n zrUtil.each(selected, function (o, key) {\n selected[key] = key === newKey;\n });\n } else {\n selected[newKey] = !selected[newKey];\n }\n\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: selected\n });\n }\n});\nvar _default = PiecewiseVisualMapView;\nmodule.exports = _default;\n\n/***/ }),\n/* 1249 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar textContain = __webpack_require__(59);\n\nvar _model = __webpack_require__(9);\n\nvar makeInner = _model.makeInner;\n\nvar _axisHelper = __webpack_require__(58);\n\nvar makeLabelFormatter = _axisHelper.makeLabelFormatter;\nvar getOptionCategoryInterval = _axisHelper.getOptionCategoryInterval;\nvar shouldShowAllLabels = _axisHelper.shouldShowAllLabels;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\n/**\n * @param {module:echats/coord/Axis} axis\n * @return {Object} {\n * labels: [{\n * formattedLabel: string,\n * rawLabel: string,\n * tickValue: number\n * }, ...],\n * labelCategoryInterval: number\n * }\n */\n\nfunction createAxisLabels(axis) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\n/**\n * @param {module:echats/coord/Axis} axis\n * @param {module:echarts/model/Model} tickModel For example, can be axisTick, splitLine, splitArea.\n * @return {Object} {\n * ticks: Array.\n * tickCategoryInterval: number\n * }\n */\n\n\nfunction createAxisTicks(axis, tickModel) {\n // Only ordinal scale support tick interval\n return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n ticks: axis.scale.getTicks()\n };\n}\n\nfunction makeCategoryLabels(axis) {\n var labelModel = axis.getLabelModel();\n var result = makeCategoryLabelsActually(axis, labelModel);\n return !labelModel.get('show') || axis.scale.isBlank() ? {\n labels: [],\n labelCategoryInterval: result.labelCategoryInterval\n } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n var labelsCache = getListCache(axis, 'labels');\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\n var result = listCacheGet(labelsCache, optionLabelInterval);\n\n if (result) {\n return result;\n }\n\n var labels;\n var numericLabelInterval;\n\n if (zrUtil.isFunction(optionLabelInterval)) {\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n } else {\n numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n } // Cache to avoid calling interval function repeatly.\n\n\n return listCacheSet(labelsCache, optionLabelInterval, {\n labels: labels,\n labelCategoryInterval: numericLabelInterval\n });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n var ticksCache = getListCache(axis, 'ticks');\n var optionTickInterval = getOptionCategoryInterval(tickModel);\n var result = listCacheGet(ticksCache, optionTickInterval);\n\n if (result) {\n return result;\n }\n\n var ticks;\n var tickCategoryInterval; // Optimize for the case that large category data and no label displayed,\n // we should not return all ticks.\n\n if (!tickModel.get('show') || axis.scale.isBlank()) {\n ticks = [];\n }\n\n if (zrUtil.isFunction(optionTickInterval)) {\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n } // Always use label interval by default despite label show. Consider this\n // scenario, Use multiple grid with the xAxis sync, and only one xAxis shows\n // labels. `splitLine` and `axisTick` should be consistent in this case.\n else if (optionTickInterval === 'auto') {\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n tickCategoryInterval = labelsResult.labelCategoryInterval;\n ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n return labelItem.tickValue;\n });\n } else {\n tickCategoryInterval = optionTickInterval;\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n } // Cache to avoid calling interval function repeatly.\n\n\n return listCacheSet(ticksCache, optionTickInterval, {\n ticks: ticks,\n tickCategoryInterval: tickCategoryInterval\n });\n}\n\nfunction makeRealNumberLabels(axis) {\n var ticks = axis.scale.getTicks();\n var labelFormatter = makeLabelFormatter(axis);\n return {\n labels: zrUtil.map(ticks, function (tickValue, idx) {\n return {\n formattedLabel: labelFormatter(tickValue, idx),\n rawLabel: axis.scale.getLabel(tickValue),\n tickValue: tickValue\n };\n })\n };\n} // Large category data calculation is performence sensitive, and ticks and label\n// probably be fetched by multiple times. So we cache the result.\n// axis is created each time during a ec process, so we do not need to clear cache.\n\n\nfunction getListCache(axis, prop) {\n // Because key can be funciton, and cache size always be small, we use array cache.\n return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].key === key) {\n return cache[i].value;\n }\n }\n}\n\nfunction listCacheSet(cache, key, value) {\n cache.push({\n key: key,\n value: value\n });\n return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n var result = inner(axis).autoInterval;\n return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n/**\n * Calculate interval for category axis ticks and labels.\n * To get precise result, at least one of `getRotate` and `isHorizontal`\n * should be implemented in axis.\n */\n\n\nfunction calculateCategoryInterval(axis) {\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\n var labelFormatter = makeLabelFormatter(axis);\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization:\n // avoid generating a long array by `getTicks`\n // in large category data case.\n\n var tickCount = ordinalScale.count();\n\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n return 0;\n }\n\n var step = 1; // Simple optimization. Empirical value: tick count should less than 40.\n\n if (tickCount > 40) {\n step = Math.max(1, Math.floor(tickCount / 40));\n }\n\n var tickValue = ordinalExtent[0];\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\n var maxW = 0;\n var maxH = 0; // Caution: Performance sensitive for large category data.\n // Consider dataZoom, we should make appropriate step to avoid O(n) loop.\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n var width = 0;\n var height = 0; // Not precise, do not consider align and vertical align\n // and each distance from axis line yet.\n\n var rect = textContain.getBoundingRect(labelFormatter(tickValue), params.font, 'center', 'top'); // Magic number\n\n width = rect.width * 1.3;\n height = rect.height * 1.3; // Min size, void long loop.\n\n maxW = Math.max(maxW, width, 7);\n maxH = Math.max(maxH, height, 7);\n }\n\n var dw = maxW / unitW;\n var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity.\n\n isNaN(dw) && (dw = Infinity);\n isNaN(dh) && (dh = Infinity);\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n var cache = inner(axis.model);\n var lastAutoInterval = cache.lastAutoInterval;\n var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window,\n // otherwise the calculated interval might jitter when the zoom\n // window size is close to the interval-changing size.\n\n if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical\n // point is not the same when zooming in or zooming out.\n && lastAutoInterval > interval) {\n interval = lastAutoInterval;\n } // Only update cache if cache not used, otherwise the\n // changing of interval is too insensitive.\n else {\n cache.lastTickCount = tickCount;\n cache.lastAutoInterval = interval;\n }\n\n return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n var labelModel = axis.getLabelModel();\n return {\n axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n labelRotate: labelModel.get('rotate') || 0,\n font: labelModel.getFont()\n };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n var labelFormatter = makeLabelFormatter(axis);\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent();\n var labelModel = axis.getLabelModel();\n var result = []; // TODO: axisType: ordinalTime, pick the tick from each month/day/year/...\n\n var step = Math.max((categoryInterval || 0) + 1, 1);\n var startTick = ordinalExtent[0];\n var tickCount = ordinalScale.count(); // Calculate start tick based on zero if possible to keep label consistent\n // while zooming and moving while interval > 0. Otherwise the selection\n // of displayable ticks and symbols probably keep changing.\n // 3 is empirical value.\n\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n startTick = Math.round(Math.ceil(startTick / step) * step);\n } // (1) Only add min max label here but leave overlap checking\n // to render stage, which also ensure the returned list\n // suitable for splitLine and splitArea rendering.\n // (2) Scales except category always contain min max label so\n // do not need to perform this process.\n\n\n var showAllLabel = shouldShowAllLabels(axis);\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\n addItem(ordinalExtent[0]);\n } // Optimize: avoid generating large array by `ordinalScale.getTicks()`.\n\n\n var tickValue = startTick;\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n addItem(tickValue);\n }\n\n if (includeMaxLabel && tickValue !== ordinalExtent[1]) {\n addItem(ordinalExtent[1]);\n }\n\n function addItem(tVal) {\n result.push(onlyTick ? tVal : {\n formattedLabel: labelFormatter(tVal),\n rawLabel: ordinalScale.getLabel(tVal),\n tickValue: tVal\n });\n }\n\n return result;\n} // When interval is function, the result `false` means ignore the tick.\n// It is time consuming for large category data.\n\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n var ordinalScale = axis.scale;\n var labelFormatter = makeLabelFormatter(axis);\n var result = [];\n zrUtil.each(ordinalScale.getTicks(), function (tickValue) {\n var rawLabel = ordinalScale.getLabel(tickValue);\n\n if (categoryInterval(tickValue, rawLabel)) {\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tickValue),\n rawLabel: rawLabel,\n tickValue: tickValue\n });\n }\n });\n return result;\n}\n\nexports.createAxisLabels = createAxisLabels;\nexports.createAxisTicks = createAxisTicks;\nexports.calculateCategoryInterval = calculateCategoryInterval;\n\n/***/ }),\n/* 1250 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar layout = __webpack_require__(16);\n\nvar numberUtil = __webpack_require__(8);\n\nvar CoordinateSystem = __webpack_require__(57);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// (24*60*60*1000)\nvar PROXIMATE_ONE_DAY = 86400000;\n/**\n * Calendar\n *\n * @constructor\n *\n * @param {Object} calendarModel calendarModel\n * @param {Object} ecModel ecModel\n * @param {Object} api api\n */\n\nfunction Calendar(calendarModel, ecModel, api) {\n this._model = calendarModel;\n}\n\nCalendar.prototype = {\n constructor: Calendar,\n type: 'calendar',\n dimensions: ['time', 'value'],\n // Required in createListFromData\n getDimensionsInfo: function () {\n return [{\n name: 'time',\n type: 'time'\n }, 'value'];\n },\n getRangeInfo: function () {\n return this._rangeInfo;\n },\n getModel: function () {\n return this._model;\n },\n getRect: function () {\n return this._rect;\n },\n getCellWidth: function () {\n return this._sw;\n },\n getCellHeight: function () {\n return this._sh;\n },\n getOrient: function () {\n return this._orient;\n },\n\n /**\n * getFirstDayOfWeek\n *\n * @example\n * 0 : start at Sunday\n * 1 : start at Monday\n *\n * @return {number}\n */\n getFirstDayOfWeek: function () {\n return this._firstDayOfWeek;\n },\n\n /**\n * get date info\n *\n * @param {string|number} date date\n * @return {Object}\n * {\n * y: string, local full year, eg., '1940',\n * m: string, local month, from '01' ot '12',\n * d: string, local date, from '01' to '31' (if exists),\n * day: It is not date.getDay(). It is the location of the cell in a week, from 0 to 6,\n * time: timestamp,\n * formatedDate: string, yyyy-MM-dd,\n * date: original date object.\n * }\n */\n getDateInfo: function (date) {\n date = numberUtil.parseDate(date);\n var y = date.getFullYear();\n var m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n var d = date.getDate();\n d = d < 10 ? '0' + d : d;\n var day = date.getDay();\n day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n return {\n y: y,\n m: m,\n d: d,\n day: day,\n time: date.getTime(),\n formatedDate: y + '-' + m + '-' + d,\n date: date\n };\n },\n getNextNDay: function (date, n) {\n n = n || 0;\n\n if (n === 0) {\n return this.getDateInfo(date);\n }\n\n date = new Date(this.getDateInfo(date).time);\n date.setDate(date.getDate() + n);\n return this.getDateInfo(date);\n },\n update: function (ecModel, api) {\n this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n this._orient = this._model.get('orient');\n this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n var weeks = this._rangeInfo.weeks || 1;\n var whNames = ['width', 'height'];\n\n var cellSize = this._model.get('cellSize').slice();\n\n var layoutParams = this._model.getBoxLayoutParams();\n\n var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n zrUtil.each([0, 1], function (idx) {\n if (cellSizeSpecified(cellSize, idx)) {\n layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n }\n });\n var whGlobal = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n zrUtil.each([0, 1], function (idx) {\n if (!cellSizeSpecified(cellSize, idx)) {\n cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n }\n });\n\n function cellSizeSpecified(cellSize, idx) {\n return cellSize[idx] != null && cellSize[idx] !== 'auto';\n }\n\n this._sw = cellSize[0];\n this._sh = cellSize[1];\n },\n\n /**\n * Convert a time data(time, value) item to (x, y) point.\n *\n * @override\n * @param {Array|number} data data\n * @param {boolean} [clamp=true] out of range\n * @return {Array} point\n */\n dataToPoint: function (data, clamp) {\n zrUtil.isArray(data) && (data = data[0]);\n clamp == null && (clamp = true);\n var dayInfo = this.getDateInfo(data);\n var range = this._rangeInfo;\n var date = dayInfo.formatedDate; // if not in range return [NaN, NaN]\n\n if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n return [NaN, NaN];\n }\n\n var week = dayInfo.day;\n\n var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n if (this._orient === 'vertical') {\n return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n }\n\n return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n },\n\n /**\n * Convert a (x, y) point to time data\n *\n * @override\n * @param {string} point point\n * @return {string} data\n */\n pointToData: function (point) {\n var date = this.pointToDate(point);\n return date && date.time;\n },\n\n /**\n * Convert a time date item to (x, y) four point.\n *\n * @param {Array} data date[0] is date\n * @param {boolean} [clamp=true] out of range\n * @return {Object} point\n */\n dataToRect: function (data, clamp) {\n var point = this.dataToPoint(data, clamp);\n return {\n contentShape: {\n x: point[0] - (this._sw - this._lineWidth) / 2,\n y: point[1] - (this._sh - this._lineWidth) / 2,\n width: this._sw - this._lineWidth,\n height: this._sh - this._lineWidth\n },\n center: point,\n tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n };\n },\n\n /**\n * Convert a (x, y) point to time date\n *\n * @param {Array} point point\n * @return {Object} date\n */\n pointToDate: function (point) {\n var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n var range = this._rangeInfo.range;\n\n if (this._orient === 'vertical') {\n return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n }\n\n return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n },\n\n /**\n * @inheritDoc\n */\n convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n /**\n * @inheritDoc\n */\n convertFromPixel: zrUtil.curry(doConvert, 'pointToData'),\n\n /**\n * initRange\n *\n * @private\n * @return {Array} [start, end]\n */\n _initRangeOption: function () {\n var range = this._model.get('range');\n\n var rg = range;\n\n if (zrUtil.isArray(rg) && rg.length === 1) {\n rg = rg[0];\n }\n\n if (/^\\d{4}$/.test(rg)) {\n range = [rg + '-01-01', rg + '-12-31'];\n }\n\n if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rg)) {\n var start = this.getDateInfo(rg);\n var firstDay = start.date;\n firstDay.setMonth(firstDay.getMonth() + 1);\n var end = this.getNextNDay(firstDay, -1);\n range = [start.formatedDate, end.formatedDate];\n }\n\n if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rg)) {\n range = [rg, rg];\n }\n\n var tmp = this._getRangeInfo(range);\n\n if (tmp.start.time > tmp.end.time) {\n range.reverse();\n }\n\n return range;\n },\n\n /**\n * range info\n *\n * @private\n * @param {Array} range range ['2017-01-01', '2017-07-08']\n * If range[0] > range[1], they will not be reversed.\n * @return {Object} obj\n */\n _getRangeInfo: function (range) {\n range = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n var reversed;\n\n if (range[0].time > range[1].time) {\n reversed = true;\n range.reverse();\n }\n\n var allDay = Math.floor(range[1].time / PROXIMATE_ONE_DAY) - Math.floor(range[0].time / PROXIMATE_ONE_DAY) + 1; // Consider case:\n // Firstly set system timezone as \"Time Zone: America/Toronto\",\n // ```\n // var first = new Date(1478412000000 - 3600 * 1000 * 2.5);\n // var second = new Date(1478412000000);\n // var allDays = Math.floor(second / ONE_DAY) - Math.floor(first / ONE_DAY) + 1;\n // ```\n // will get wrong result because of DST. So we should fix it.\n\n var date = new Date(range[0].time);\n var startDateNum = date.getDate();\n var endDateNum = range[1].date.getDate();\n date.setDate(startDateNum + allDay - 1); // The bias can not over a month, so just compare date.\n\n if (date.getDate() !== endDateNum) {\n var sign = date.getTime() - range[1].time > 0 ? 1 : -1;\n\n while (date.getDate() !== endDateNum && (date.getTime() - range[1].time) * sign > 0) {\n allDay -= sign;\n date.setDate(startDateNum + allDay - 1);\n }\n }\n\n var weeks = Math.floor((allDay + range[0].day + 6) / 7);\n var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n reversed && range.reverse();\n return {\n range: [range[0].formatedDate, range[1].formatedDate],\n start: range[0],\n end: range[1],\n allDay: allDay,\n weeks: weeks,\n // From 0.\n nthWeek: nthWeek,\n fweek: range[0].day,\n lweek: range[1].day\n };\n },\n\n /**\n * get date by nthWeeks and week day in range\n *\n * @private\n * @param {number} nthWeek the week\n * @param {number} day the week day\n * @param {Array} range [d1, d2]\n * @return {Object}\n */\n _getDateByWeeksAndDay: function (nthWeek, day, range) {\n var rangeInfo = this._getRangeInfo(range);\n\n if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n return false;\n }\n\n var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n var date = new Date(rangeInfo.start.time);\n date.setDate(rangeInfo.start.d + nthDay);\n return this.getDateInfo(date);\n }\n};\nCalendar.dimensions = Calendar.prototype.dimensions;\nCalendar.getDimensionsInfo = Calendar.prototype.getDimensionsInfo;\n\nCalendar.create = function (ecModel, api) {\n var calendarList = [];\n ecModel.eachComponent('calendar', function (calendarModel) {\n var calendar = new Calendar(calendarModel, ecModel, api);\n calendarList.push(calendar);\n calendarModel.coordinateSystem = calendar;\n });\n ecModel.eachSeries(function (calendarSeries) {\n if (calendarSeries.get('coordinateSystem') === 'calendar') {\n // Inject coordinate system\n calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n }\n });\n return calendarList;\n};\n\nfunction doConvert(methodName, ecModel, finder, value) {\n var calendarModel = finder.calendarModel;\n var seriesModel = finder.seriesModel;\n var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nCoordinateSystem.register('calendar', Calendar);\nvar _default = Calendar;\nmodule.exports = _default;\n\n/***/ }),\n/* 1251 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar ComponentModel = __webpack_require__(29);\n\nvar _layout = __webpack_require__(16);\n\nvar getLayoutParams = _layout.getLayoutParams;\nvar sizeCalculable = _layout.sizeCalculable;\nvar mergeLayoutParam = _layout.mergeLayoutParam;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar CalendarModel = ComponentModel.extend({\n type: 'calendar',\n\n /**\n * @type {module:echarts/coord/calendar/Calendar}\n */\n coordinateSystem: null,\n defaultOption: {\n zlevel: 0,\n z: 2,\n left: 80,\n top: 60,\n cellSize: 20,\n // horizontal vertical\n orient: 'horizontal',\n // month separate line style\n splitLine: {\n show: true,\n lineStyle: {\n color: '#000',\n width: 1,\n type: 'solid'\n }\n },\n // rect style temporarily unused emphasis\n itemStyle: {\n color: '#fff',\n borderWidth: 1,\n borderColor: '#ccc'\n },\n // week text style\n dayLabel: {\n show: true,\n // a week first day\n firstDay: 0,\n // start end\n position: 'start',\n margin: '50%',\n // 50% of cellSize\n nameMap: 'en',\n color: '#000'\n },\n // month text style\n monthLabel: {\n show: true,\n // start end\n position: 'start',\n margin: 5,\n // center or left\n align: 'center',\n // cn en []\n nameMap: 'en',\n formatter: null,\n color: '#000'\n },\n // year text style\n yearLabel: {\n show: true,\n // top bottom left right\n position: null,\n margin: 30,\n formatter: null,\n color: '#ccc',\n fontFamily: 'sans-serif',\n fontWeight: 'bolder',\n fontSize: 20\n }\n },\n\n /**\n * @override\n */\n init: function (option, parentModel, ecModel, extraOpt) {\n var inputPositionParams = getLayoutParams(option);\n CalendarModel.superApply(this, 'init', arguments);\n mergeAndNormalizeLayoutParams(option, inputPositionParams);\n },\n\n /**\n * @override\n */\n mergeOption: function (option, extraOpt) {\n CalendarModel.superApply(this, 'mergeOption', arguments);\n mergeAndNormalizeLayoutParams(this.option, option);\n }\n});\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n // Normalize cellSize\n var cellSize = target.cellSize;\n\n if (!zrUtil.isArray(cellSize)) {\n cellSize = target.cellSize = [cellSize, cellSize];\n } else if (cellSize.length === 1) {\n cellSize[1] = cellSize[0];\n }\n\n var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n // If user have set `width` or both `left` and `right`, cellSize\n // will be automatically set to 'auto', otherwise the default\n // setting of cellSize will make `width` setting not work.\n if (sizeCalculable(raw, hvIdx)) {\n cellSize[hvIdx] = 'auto';\n }\n\n return cellSize[hvIdx] != null && cellSize[hvIdx] !== 'auto';\n });\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: ignoreSize\n });\n}\n\nvar _default = CalendarModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1252 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(coordSys) {\n var rect = coordSys.getRect();\n var rangeInfo = coordSys.getRangeInfo();\n return {\n coordSys: {\n type: 'calendar',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n cellWidth: coordSys.getCellWidth(),\n cellHeight: coordSys.getCellHeight(),\n rangeInfo: {\n start: rangeInfo.start,\n end: rangeInfo.end,\n weeks: rangeInfo.weeks,\n dayCount: rangeInfo.allDay\n }\n },\n api: {\n coord: function (data, clamp) {\n return coordSys.dataToPoint(data, clamp);\n }\n }\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1253 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Axis = __webpack_require__(80);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Extend axis 2d\n * @constructor module:echarts/coord/cartesian/Axis2D\n * @extends {module:echarts/coord/cartesian/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.} coordExtent\n * @param {string} axisType\n * @param {string} position\n */\nvar Axis2D = function (dim, scale, coordExtent, axisType, position) {\n Axis.call(this, dim, scale, coordExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = axisType || 'value';\n /**\n * Axis position\n * - 'top'\n * - 'bottom'\n * - 'left'\n * - 'right'\n */\n\n this.position = position || 'bottom';\n};\n\nAxis2D.prototype = {\n constructor: Axis2D,\n\n /**\n * Index of axis, can be used as key\n */\n index: 0,\n\n /**\n * Implemented in .\n * @return {Array.}\n * If not on zero of other axis, return null/undefined.\n * If no axes, return an empty array.\n */\n getAxesOnZeroOf: null,\n\n /**\n * Axis model\n * @param {module:echarts/coord/cartesian/AxisModel}\n */\n model: null,\n isHorizontal: function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n },\n\n /**\n * Each item cooresponds to this.getExtent(), which\n * means globalExtent[0] may greater than globalExtent[1],\n * unless `asc` is input.\n *\n * @param {boolean} [asc]\n * @return {Array.}\n */\n getGlobalExtent: function (asc) {\n var ret = this.getExtent();\n ret[0] = this.toGlobalCoord(ret[0]);\n ret[1] = this.toGlobalCoord(ret[1]);\n asc && ret[0] > ret[1] && ret.reverse();\n return ret;\n },\n getOtherAxis: function () {\n this.grid.getOtherAxis();\n },\n\n /**\n * @override\n */\n pointToData: function (point, clamp) {\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n },\n\n /**\n * Transform global coord to local coord,\n * i.e. var localCoord = axis.toLocalCoord(80);\n * designate by module:echarts/coord/cartesian/Grid.\n * @type {Function}\n */\n toLocalCoord: null,\n\n /**\n * Transform global coord to local coord,\n * i.e. var globalCoord = axis.toLocalCoord(40);\n * designate by module:echarts/coord/cartesian/Grid.\n * @type {Function}\n */\n toGlobalCoord: null\n};\nzrUtil.inherits(Axis2D, Axis);\nvar _default = Axis2D;\nmodule.exports = _default;\n\n/***/ }),\n/* 1254 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Cartesian coordinate system\n * @module echarts/coord/Cartesian\n *\n */\nfunction dimAxisMapper(dim) {\n return this._axes[dim];\n}\n/**\n * @alias module:echarts/coord/Cartesian\n * @constructor\n */\n\n\nvar Cartesian = function (name) {\n this._axes = {};\n this._dimList = [];\n /**\n * @type {string}\n */\n\n this.name = name || '';\n};\n\nCartesian.prototype = {\n constructor: Cartesian,\n type: 'cartesian',\n\n /**\n * Get axis\n * @param {number|string} dim\n * @return {module:echarts/coord/Cartesian~Axis}\n */\n getAxis: function (dim) {\n return this._axes[dim];\n },\n\n /**\n * Get axes list\n * @return {Array.}\n */\n getAxes: function () {\n return zrUtil.map(this._dimList, dimAxisMapper, this);\n },\n\n /**\n * Get axes list by given scale type\n */\n getAxesByScale: function (scaleType) {\n scaleType = scaleType.toLowerCase();\n return zrUtil.filter(this.getAxes(), function (axis) {\n return axis.scale.type === scaleType;\n });\n },\n\n /**\n * Add axis\n * @param {module:echarts/coord/Cartesian.Axis}\n */\n addAxis: function (axis) {\n var dim = axis.dim;\n this._axes[dim] = axis;\n\n this._dimList.push(dim);\n },\n\n /**\n * Convert data to coord in nd space\n * @param {Array.|Object.} val\n * @return {Array.|Object.}\n */\n dataToCoord: function (val) {\n return this._dataCoordConvert(val, 'dataToCoord');\n },\n\n /**\n * Convert coord in nd space to data\n * @param {Array.|Object.} val\n * @return {Array.|Object.}\n */\n coordToData: function (val) {\n return this._dataCoordConvert(val, 'coordToData');\n },\n _dataCoordConvert: function (input, method) {\n var dimList = this._dimList;\n var output = input instanceof Array ? [] : {};\n\n for (var i = 0; i < dimList.length; i++) {\n var dim = dimList[i];\n var axis = this._axes[dim];\n output[dim] = axis[method](input[dim]);\n }\n\n return output;\n }\n};\nvar _default = Cartesian;\nmodule.exports = _default;\n\n/***/ }),\n/* 1255 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Cartesian = __webpack_require__(1254);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction Cartesian2D(name) {\n Cartesian.call(this, name);\n}\n\nCartesian2D.prototype = {\n constructor: Cartesian2D,\n type: 'cartesian2d',\n\n /**\n * @type {Array.}\n * @readOnly\n */\n dimensions: ['x', 'y'],\n\n /**\n * Base axis will be used on stacking.\n *\n * @return {module:echarts/coord/cartesian/Axis2D}\n */\n getBaseAxis: function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n },\n\n /**\n * If contain point\n * @param {Array.} point\n * @return {boolean}\n */\n containPoint: function (point) {\n var axisX = this.getAxis('x');\n var axisY = this.getAxis('y');\n return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n },\n\n /**\n * If contain data\n * @param {Array.} data\n * @return {boolean}\n */\n containData: function (data) {\n return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n },\n\n /**\n * @param {Array.} data\n * @param {Array.} out\n * @return {Array.}\n */\n dataToPoint: function (data, reserved, out) {\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out = out || [];\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(data[0]));\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(data[1]));\n return out;\n },\n\n /**\n * @param {Array.} data\n * @param {Array.} out\n * @return {Array.}\n */\n clampData: function (data, out) {\n var xScale = this.getAxis('x').scale;\n var yScale = this.getAxis('y').scale;\n var xAxisExtent = xScale.getExtent();\n var yAxisExtent = yScale.getExtent();\n var x = xScale.parse(data[0]);\n var y = yScale.parse(data[1]);\n out = out || [];\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n return out;\n },\n\n /**\n * @param {Array.} point\n * @param {Array.} out\n * @return {Array.}\n */\n pointToData: function (point, out) {\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out = out || [];\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n return out;\n },\n\n /**\n * Get other axis\n * @param {module:echarts/coord/cartesian/Axis2D} axis\n */\n getOtherAxis: function (axis) {\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n }\n};\nzrUtil.inherits(Cartesian2D, Cartesian);\nvar _default = Cartesian2D;\nmodule.exports = _default;\n\n/***/ }),\n/* 1256 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n__webpack_require__(394);\n\nvar ComponentModel = __webpack_require__(29);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Grid 是在有直角坐标系的时候必须要存在的\n// 所以这里也要被 Cartesian2D 依赖\nvar _default = ComponentModel.extend({\n type: 'grid',\n dependencies: ['xAxis', 'yAxis'],\n layoutMode: 'box',\n\n /**\n * @type {module:echarts/coord/cartesian/Grid}\n */\n coordinateSystem: null,\n defaultOption: {\n show: false,\n zlevel: 0,\n z: 0,\n left: '10%',\n top: 60,\n right: '10%',\n bottom: 60,\n // If grid size contain label\n containLabel: false,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 1,\n borderColor: '#ccc'\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1257 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n // dataItem is necessary in log axis.\n dataItem = dataItem || [0, 0];\n return zrUtil.map(['x', 'y'], function (dim, dimIdx) {\n var axis = this.getAxis(dim);\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n }, this);\n}\n\nfunction _default(coordSys) {\n var rect = coordSys.grid.getRect();\n return {\n coordSys: {\n // The name exposed to user is always 'cartesian2d' but not 'grid'.\n type: 'cartesian2d',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n api: {\n coord: function (data) {\n // do not provide \"out\" param\n return coordSys.dataToPoint(data);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1258 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar BoundingRect = __webpack_require__(21);\n\nvar View = __webpack_require__(257);\n\nvar geoSourceManager = __webpack_require__(178);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * [Geo description]\n * For backward compatibility, the orginal interface:\n * `name, map, geoJson, specialAreas, nameMap` is kept.\n *\n * @param {string|Object} name\n * @param {string} map Map type\n * Specify the positioned areas by left, top, width, height\n * @param {Object.} [nameMap]\n * Specify name alias\n * @param {boolean} [invertLongitute=true]\n */\nfunction Geo(name, map, nameMap, invertLongitute) {\n View.call(this, name);\n /**\n * Map type\n * @type {string}\n */\n\n this.map = map;\n var source = geoSourceManager.load(map, nameMap);\n this._nameCoordMap = source.nameCoordMap;\n this._regionsMap = source.regionsMap;\n this._invertLongitute = invertLongitute == null ? true : invertLongitute;\n /**\n * @readOnly\n */\n\n this.regions = source.regions;\n /**\n * @type {module:zrender/src/core/BoundingRect}\n */\n\n this._rect = source.boundingRect;\n}\n\nGeo.prototype = {\n constructor: Geo,\n type: 'geo',\n\n /**\n * @param {Array.}\n * @readOnly\n */\n dimensions: ['lng', 'lat'],\n\n /**\n * If contain given lng,lat coord\n * @param {Array.}\n * @readOnly\n */\n containCoord: function (coord) {\n var regions = this.regions;\n\n for (var i = 0; i < regions.length; i++) {\n if (regions[i].contain(coord)) {\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * @override\n */\n transformTo: function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var invertLongitute = this._invertLongitute;\n rect = rect.clone();\n\n if (invertLongitute) {\n // Longitute is inverted\n rect.y = -rect.y - rect.height;\n }\n\n var rawTransformable = this._rawTransformable;\n rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n rawTransformable.decomposeTransform();\n\n if (invertLongitute) {\n var scale = rawTransformable.scale;\n scale[1] = -scale[1];\n }\n\n rawTransformable.updateTransform();\n\n this._updateTransform();\n },\n\n /**\n * @param {string} name\n * @return {module:echarts/coord/geo/Region}\n */\n getRegion: function (name) {\n return this._regionsMap.get(name);\n },\n getRegionByCoord: function (coord) {\n var regions = this.regions;\n\n for (var i = 0; i < regions.length; i++) {\n if (regions[i].contain(coord)) {\n return regions[i];\n }\n }\n },\n\n /**\n * Add geoCoord for indexing by name\n * @param {string} name\n * @param {Array.} geoCoord\n */\n addGeoCoord: function (name, geoCoord) {\n this._nameCoordMap.set(name, geoCoord);\n },\n\n /**\n * Get geoCoord by name\n * @param {string} name\n * @return {Array.}\n */\n getGeoCoord: function (name) {\n return this._nameCoordMap.get(name);\n },\n\n /**\n * @override\n */\n getBoundingRect: function () {\n return this._rect;\n },\n\n /**\n * @param {string|Array.} data\n * @param {boolean} noRoam\n * @param {Array.} [out]\n * @return {Array.}\n */\n dataToPoint: function (data, noRoam, out) {\n if (typeof data === 'string') {\n // Map area name to geoCoord\n data = this.getGeoCoord(data);\n }\n\n if (data) {\n return View.prototype.dataToPoint.call(this, data, noRoam, out);\n }\n },\n\n /**\n * @override\n */\n convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n /**\n * @override\n */\n convertFromPixel: zrUtil.curry(doConvert, 'pointToData')\n};\nzrUtil.mixin(Geo, View);\n\nfunction doConvert(methodName, ecModel, finder, value) {\n var geoModel = finder.geoModel;\n var seriesModel = finder.seriesModel;\n var coordSys = geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem // For map.\n || (seriesModel.getReferringComponents('geo')[0] || {}).coordinateSystem : null;\n return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nvar _default = Geo;\nmodule.exports = _default;\n\n/***/ }),\n/* 1259 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar modelUtil = __webpack_require__(9);\n\nvar ComponentModel = __webpack_require__(29);\n\nvar Model = __webpack_require__(31);\n\nvar selectableMixin = __webpack_require__(253);\n\nvar geoCreator = __webpack_require__(259);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GeoModel = ComponentModel.extend({\n type: 'geo',\n\n /**\n * @type {module:echarts/coord/geo/Geo}\n */\n coordinateSystem: null,\n layoutMode: 'box',\n init: function (option) {\n ComponentModel.prototype.init.apply(this, arguments); // Default label emphasis `show`\n\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n },\n optionUpdated: function () {\n var option = this.option;\n var self = this;\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n if (regionOpt.name) {\n optionModelMap.set(regionOpt.name, new Model(regionOpt, self));\n }\n\n return optionModelMap;\n }, zrUtil.createHashMap());\n this.updateSelectedMap(option.regions);\n },\n defaultOption: {\n zlevel: 0,\n z: 0,\n show: true,\n left: 'center',\n top: 'center',\n // width:,\n // height:,\n // right\n // bottom\n // Aspect is width / height. Inited to be geoJson bbox aspect\n // This parameter is used for scale this aspect\n // If svg used, aspectScale is 1 by default.\n // aspectScale: 0.75,\n aspectScale: null,\n ///// Layout with center and size\n // If you wan't to put map in a fixed size box with right aspect ratio\n // This two properties may more conveninet\n // layoutCenter: [50%, 50%]\n // layoutSize: 100\n silent: false,\n // Map type\n map: '',\n // Define left-top, right-bottom coords to control view\n // For example, [ [180, 90], [-180, -90] ]\n boundingCoords: null,\n // Default on center of map\n center: null,\n zoom: 1,\n scaleLimit: null,\n // selectedMode: false\n label: {\n show: false,\n color: '#000'\n },\n itemStyle: {\n // color: 各异,\n borderWidth: 0.5,\n borderColor: '#444',\n color: '#eee'\n },\n emphasis: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n regions: []\n },\n\n /**\n * Get model of region\n * @param {string} name\n * @return {module:echarts/model/Model}\n */\n getRegionModel: function (name) {\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n },\n\n /**\n * Format label\n * @param {string} name Region name\n * @param {string} [status='normal'] 'normal' or 'emphasis'\n * @return {string}\n */\n getFormattedLabel: function (name, status) {\n var regionModel = this.getRegionModel(name);\n var formatter = regionModel.get('label.' + status + '.formatter');\n var params = {\n name: name\n };\n\n if (typeof formatter === 'function') {\n params.status = status;\n return formatter(params);\n } else if (typeof formatter === 'string') {\n return formatter.replace('{a}', name != null ? name : '');\n }\n },\n setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n }\n});\nzrUtil.mixin(GeoModel, selectableMixin);\nvar _default = GeoModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1260 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 钓鱼岛\n// var Region = require('../Region');\n// var zrUtil = require('zrender/src/core/util');\n// var geoCoord = [126, 25];\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\n\nfunction _default(mapType, region) {\n if (mapType === 'china' && region.name === '台湾') {\n region.geometries.push({\n type: 'polygon',\n exterior: points[0]\n });\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1261 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar geoCoordMap = {\n 'Russia': [100, 60],\n 'United States': [-99, 38],\n 'United States of America': [-99, 38]\n};\n\nfunction _default(mapType, region) {\n if (mapType === 'world') {\n var geoCoord = geoCoordMap[region.name];\n\n if (geoCoord) {\n var cp = region.center;\n cp[0] = geoCoord[0];\n cp[1] = geoCoord[1];\n }\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1262 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Region = __webpack_require__(396);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 南海诸岛\nvar geoCoord = [126, 25];\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n for (var k = 0; k < points[i].length; k++) {\n points[i][k][0] /= 10.5;\n points[i][k][1] /= -10.5 / 0.75;\n points[i][k][0] += geoCoord[0];\n points[i][k][1] += geoCoord[1];\n }\n}\n\nfunction _default(mapType, regions) {\n if (mapType === 'china') {\n regions.push(new Region('南海诸岛', zrUtil.map(points, function (exterior) {\n return {\n type: 'polygon',\n exterior: exterior\n };\n }), geoCoord));\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1263 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar coordsOffsetMap = {\n '南海诸岛': [32, 80],\n // 全国\n '广东': [0, -10],\n '香港': [10, 5],\n '澳门': [-10, 10],\n //'北京': [-10, 0],\n '天津': [5, 5]\n};\n\nfunction _default(mapType, region) {\n if (mapType === 'china') {\n var coordFix = coordsOffsetMap[region.name];\n\n if (coordFix) {\n var cp = region.center;\n cp[0] += coordFix[0] / 10.5;\n cp[1] += -coordFix[1] / (10.5 / 0.75);\n }\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1264 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = __webpack_require__(0);\n\nvar each = _util.each;\n\nvar parseGeoJson = __webpack_require__(397);\n\nvar _model = __webpack_require__(9);\n\nvar makeInner = _model.makeInner;\n\nvar fixNanhai = __webpack_require__(1262);\n\nvar fixTextCoord = __webpack_require__(1263);\n\nvar fixGeoCoord = __webpack_require__(1261);\n\nvar fixDiaoyuIsland = __webpack_require__(1260);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Built-in GEO fixer.\nvar inner = makeInner();\nvar _default = {\n /**\n * @param {string} mapName\n * @param {Object} mapRecord {specialAreas, geoJSON}\n * @return {Object} {regions, boundingRect}\n */\n load: function (mapName, mapRecord) {\n var parsed = inner(mapRecord).parsed;\n\n if (parsed) {\n return parsed;\n }\n\n var specialAreas = mapRecord.specialAreas || {};\n var geoJSON = mapRecord.geoJSON;\n var regions; // https://jsperf.com/try-catch-performance-overhead\n\n try {\n regions = geoJSON ? parseGeoJson(geoJSON) : [];\n } catch (e) {\n throw new Error('Invalid geoJson format\\n' + e.message);\n }\n\n each(regions, function (region) {\n var regionName = region.name;\n fixTextCoord(mapName, region);\n fixGeoCoord(mapName, region);\n fixDiaoyuIsland(mapName, region); // Some area like Alaska in USA map needs to be tansformed\n // to look better\n\n var specialArea = specialAreas[regionName];\n\n if (specialArea) {\n region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n }\n });\n fixNanhai(mapName, regions);\n return inner(mapRecord).parsed = {\n regions: regions,\n boundingRect: getBoundingRect(regions)\n };\n }\n};\n\nfunction getBoundingRect(regions) {\n var rect;\n\n for (var i = 0; i < regions.length; i++) {\n var regionRect = regions[i].getBoundingRect();\n rect = rect || regionRect.clone();\n rect.union(regionRect);\n }\n\n return rect;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1265 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _parseSVG = __webpack_require__(569);\n\nvar parseSVG = _parseSVG.parseSVG;\nvar makeViewBoxTransform = _parseSVG.makeViewBoxTransform;\n\nvar Group = __webpack_require__(122);\n\nvar Rect = __webpack_require__(277);\n\nvar _util = __webpack_require__(0);\n\nvar assert = _util.assert;\nvar createHashMap = _util.createHashMap;\n\nvar BoundingRect = __webpack_require__(21);\n\nvar _model = __webpack_require__(9);\n\nvar makeInner = _model.makeInner;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\nvar _default = {\n /**\n * @param {string} mapName\n * @param {Object} mapRecord {specialAreas, geoJSON}\n * @return {Object} {root, boundingRect}\n */\n load: function (mapName, mapRecord) {\n var originRoot = inner(mapRecord).originRoot;\n\n if (originRoot) {\n return {\n root: originRoot,\n boundingRect: inner(mapRecord).boundingRect\n };\n }\n\n var graphic = buildGraphic(mapRecord);\n inner(mapRecord).originRoot = graphic.root;\n inner(mapRecord).boundingRect = graphic.boundingRect;\n return graphic;\n },\n makeGraphic: function (mapName, mapRecord, hostKey) {\n // For performance consideration (in large SVG), graphic only maked\n // when necessary and reuse them according to hostKey.\n var field = inner(mapRecord);\n var rootMap = field.rootMap || (field.rootMap = createHashMap());\n var root = rootMap.get(hostKey);\n\n if (root) {\n return root;\n }\n\n var originRoot = field.originRoot;\n var boundingRect = field.boundingRect; // For performance, if originRoot is not used by a view,\n // assign it to a view, but not reproduce graphic elements.\n\n if (!field.originRootHostKey) {\n field.originRootHostKey = hostKey;\n root = originRoot;\n } else {\n root = buildGraphic(mapRecord, boundingRect).root;\n }\n\n return rootMap.set(hostKey, root);\n },\n removeGraphic: function (mapName, mapRecord, hostKey) {\n var field = inner(mapRecord);\n var rootMap = field.rootMap;\n rootMap && rootMap.removeKey(hostKey);\n\n if (hostKey === field.originRootHostKey) {\n field.originRootHostKey = null;\n }\n }\n};\n\nfunction buildGraphic(mapRecord, boundingRect) {\n var svgXML = mapRecord.svgXML;\n var result;\n var root;\n\n try {\n result = svgXML && parseSVG(svgXML, {\n ignoreViewBox: true,\n ignoreRootClip: true\n }) || {};\n root = result.root;\n assert(root != null);\n } catch (e) {\n throw new Error('Invalid svg format\\n' + e.message);\n }\n\n var svgWidth = result.width;\n var svgHeight = result.height;\n var viewBoxRect = result.viewBoxRect;\n\n if (!boundingRect) {\n boundingRect = svgWidth == null || svgHeight == null ? // If svg width / height not specified, calculate\n // bounding rect as the width / height\n root.getBoundingRect() : new BoundingRect(0, 0, 0, 0);\n\n if (svgWidth != null) {\n boundingRect.width = svgWidth;\n }\n\n if (svgHeight != null) {\n boundingRect.height = svgHeight;\n }\n }\n\n if (viewBoxRect) {\n var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height);\n var elRoot = root;\n root = new Group();\n root.add(elRoot);\n elRoot.scale = viewBoxTransform.scale;\n elRoot.position = viewBoxTransform.position;\n }\n\n root.setClipPath(new Rect({\n shape: boundingRect.plain()\n }));\n return {\n root: root,\n boundingRect: boundingRect\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1266 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n dataItem = dataItem || [0, 0];\n return zrUtil.map([0, 1], function (dimIdx) {\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var p1 = [];\n var p2 = [];\n p1[dimIdx] = val - halfSize;\n p2[dimIdx] = val + halfSize;\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n }, this);\n}\n\nfunction _default(coordSys) {\n var rect = coordSys.getBoundingRect();\n return {\n coordSys: {\n type: 'geo',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n zoom: coordSys.getZoom()\n },\n api: {\n coord: function (data) {\n // do not provide \"out\" and noRoam param,\n // Compatible with this usage:\n // echarts.util.map(item.points, api.coord)\n return coordSys.dataToPoint(data);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1267 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar ComponentModel = __webpack_require__(29);\n\nvar makeStyleMapper = __webpack_require__(119);\n\nvar axisModelCreator = __webpack_require__(177);\n\nvar numberUtil = __webpack_require__(8);\n\nvar axisModelCommonMixin = __webpack_require__(117);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AxisModel = ComponentModel.extend({\n type: 'baseParallelAxis',\n\n /**\n * @type {module:echarts/coord/parallel/Axis}\n */\n axis: null,\n\n /**\n * @type {Array.}\n * @readOnly\n */\n activeIntervals: [],\n\n /**\n * @return {Object}\n */\n getAreaSelectStyle: function () {\n return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle'));\n },\n\n /**\n * The code of this feature is put on AxisModel but not ParallelAxis,\n * because axisModel can be alive after echarts updating but instance of\n * ParallelAxis having been disposed. this._activeInterval should be kept\n * when action dispatched (i.e. legend click).\n *\n * @param {Array.>} intervals interval.length === 0\n * means set all active.\n * @public\n */\n setActiveIntervals: function (intervals) {\n var activeIntervals = this.activeIntervals = zrUtil.clone(intervals); // Normalize\n\n if (activeIntervals) {\n for (var i = activeIntervals.length - 1; i >= 0; i--) {\n numberUtil.asc(activeIntervals[i]);\n }\n }\n },\n\n /**\n * @param {number|string} [value] When attempting to detect 'no activeIntervals set',\n * value can not be input.\n * @return {string} 'normal': no activeIntervals set,\n * 'active',\n * 'inactive'.\n * @public\n */\n getActiveState: function (value) {\n var activeIntervals = this.activeIntervals;\n\n if (!activeIntervals.length) {\n return 'normal';\n }\n\n if (value == null || isNaN(value)) {\n return 'inactive';\n } // Simple optimization\n\n\n if (activeIntervals.length === 1) {\n var interval = activeIntervals[0];\n\n if (interval[0] <= value && value <= interval[1]) {\n return 'active';\n }\n } else {\n for (var i = 0, len = activeIntervals.length; i < len; i++) {\n if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n return 'active';\n }\n }\n }\n\n return 'inactive';\n }\n});\nvar defaultOption = {\n type: 'value',\n\n /**\n * @type {Array.}\n */\n dim: null,\n // 0, 1, 2, ...\n // parallelIndex: null,\n areaSelectStyle: {\n width: 20,\n borderWidth: 1,\n borderColor: 'rgba(160,197,232)',\n color: 'rgba(160,197,232)',\n opacity: 0.3\n },\n realtime: true,\n // Whether realtime update view when select.\n z: 10\n};\nzrUtil.merge(AxisModel.prototype, axisModelCommonMixin);\n\nfunction getAxisType(axisName, option) {\n return option.type || (option.data ? 'category' : 'value');\n}\n\naxisModelCreator('parallel', AxisModel, getAxisType, defaultOption);\nvar _default = AxisModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1268 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar matrix = __webpack_require__(36);\n\nvar layoutUtil = __webpack_require__(16);\n\nvar axisHelper = __webpack_require__(58);\n\nvar ParallelAxis = __webpack_require__(1269);\n\nvar graphic = __webpack_require__(5);\n\nvar numberUtil = __webpack_require__(8);\n\nvar sliderMove = __webpack_require__(144);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Parallel Coordinates\n * \n */\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nfunction Parallel(parallelModel, ecModel, api) {\n /**\n * key: dimension\n * @type {Object.}\n * @private\n */\n this._axesMap = zrUtil.createHashMap();\n /**\n * key: dimension\n * value: {position: [], rotation, }\n * @type {Object.}\n * @private\n */\n\n this._axesLayout = {};\n /**\n * Always follow axis order.\n * @type {Array.}\n * @readOnly\n */\n\n this.dimensions = parallelModel.dimensions;\n /**\n * @type {module:zrender/core/BoundingRect}\n */\n\n this._rect;\n /**\n * @type {module:echarts/coord/parallel/ParallelModel}\n */\n\n this._model = parallelModel;\n\n this._init(parallelModel, ecModel, api);\n}\n\nParallel.prototype = {\n type: 'parallel',\n constructor: Parallel,\n\n /**\n * Initialize cartesian coordinate systems\n * @private\n */\n _init: function (parallelModel, ecModel, api) {\n var dimensions = parallelModel.dimensions;\n var parallelAxisIndex = parallelModel.parallelAxisIndex;\n each(dimensions, function (dim, idx) {\n var axisIndex = parallelAxisIndex[idx];\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse'); // Injection\n\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.coordinateSystem = axisModel.coordinateSystem = this;\n }, this);\n },\n\n /**\n * Update axis scale after data processed\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\n update: function (ecModel, api) {\n this._updateAxesFromSeries(this._model, ecModel);\n },\n\n /**\n * @override\n */\n containPoint: function (point) {\n var layoutInfo = this._makeLayoutInfo();\n\n var axisBase = layoutInfo.axisBase;\n var layoutBase = layoutInfo.layoutBase;\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var pAxis = point[1 - pixelDimIndex];\n var pLayout = point[pixelDimIndex];\n return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n },\n getModel: function () {\n return this._model;\n },\n\n /**\n * Update properties from series\n * @private\n */\n _updateAxesFromSeries: function (parallelModel, ecModel) {\n ecModel.eachSeries(function (seriesModel) {\n if (!parallelModel.contains(seriesModel, ecModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n each(this.dimensions, function (dim) {\n var axis = this._axesMap.get(dim);\n\n axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n axisHelper.niceScaleExtent(axis.scale, axis.model);\n }, this);\n }, this);\n },\n\n /**\n * Resize the parallel coordinate system.\n * @param {module:echarts/coord/parallel/ParallelModel} parallelModel\n * @param {module:echarts/ExtensionAPI} api\n */\n resize: function (parallelModel, api) {\n this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n\n this._layoutAxes();\n },\n\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n getRect: function () {\n return this._rect;\n },\n\n /**\n * @private\n */\n _makeLayoutInfo: function () {\n var parallelModel = this._model;\n var rect = this._rect;\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n var layout = parallelModel.get('layout');\n var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n var layoutLength = rect[wh[pixelDimIndex]];\n var layoutExtent = [0, layoutLength];\n var axisCount = this.dimensions.length;\n var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0; // `axisExpandWindow` is According to the coordinates of [0, axisExpandLength],\n // for sake of consider the case that axisCollapseWidth is 0 (when screen is narrow),\n // where collapsed axes should be overlapped.\n\n var axisExpandWindow = parallelModel.get('axisExpandWindow');\n var winSize;\n\n if (!axisExpandWindow) {\n winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n } else {\n winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n }\n\n var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount); // Avoid axisCollapseWidth is too small.\n\n axisCollapseWidth < 3 && (axisCollapseWidth = 0); // Find the first and last indices > ewin[0] and < ewin[1].\n\n var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1]; // Pos in ec coordinates.\n\n var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n return {\n layout: layout,\n pixelDimIndex: pixelDimIndex,\n layoutBase: rect[xy[pixelDimIndex]],\n layoutLength: layoutLength,\n axisBase: rect[xy[1 - pixelDimIndex]],\n axisLength: rect[wh[1 - pixelDimIndex]],\n axisExpandable: axisExpandable,\n axisExpandWidth: axisExpandWidth,\n axisCollapseWidth: axisCollapseWidth,\n axisExpandWindow: axisExpandWindow,\n axisCount: axisCount,\n winInnerIndices: winInnerIndices,\n axisExpandWindow0Pos: axisExpandWindow0Pos\n };\n },\n\n /**\n * @private\n */\n _layoutAxes: function () {\n var rect = this._rect;\n var axes = this._axesMap;\n var dimensions = this.dimensions;\n\n var layoutInfo = this._makeLayoutInfo();\n\n var layout = layoutInfo.layout;\n axes.each(function (axis) {\n var axisExtent = [0, layoutInfo.axisLength];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n });\n each(dimensions, function (dim, idx) {\n var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n var positionTable = {\n horizontal: {\n x: posInfo.position,\n y: layoutInfo.axisLength\n },\n vertical: {\n x: 0,\n y: posInfo.position\n }\n };\n var rotationTable = {\n horizontal: PI / 2,\n vertical: 0\n };\n var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n var rotation = rotationTable[layout];\n var transform = matrix.create();\n matrix.rotate(transform, transform, rotation);\n matrix.translate(transform, transform, position); // TODO\n // tick等排布信息。\n // TODO\n // 根据axis order 更新 dimensions顺序。\n\n this._axesLayout[dim] = {\n position: position,\n rotation: rotation,\n transform: transform,\n axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n axisLabelShow: posInfo.axisLabelShow,\n nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n tickDirection: 1,\n labelDirection: 1\n };\n }, this);\n },\n\n /**\n * Get axis by dim.\n * @param {string} dim\n * @return {module:echarts/coord/parallel/ParallelAxis} [description]\n */\n getAxis: function (dim) {\n return this._axesMap.get(dim);\n },\n\n /**\n * Convert a dim value of a single item of series data to Point.\n * @param {*} value\n * @param {string} dim\n * @return {Array}\n */\n dataToPoint: function (value, dim) {\n return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n },\n\n /**\n * Travel data for one time, get activeState of each data item.\n * @param {module:echarts/data/List} data\n * @param {Functio} cb param: {string} activeState 'active' or 'inactive' or 'normal'\n * {number} dataIndex\n * @param {number} [start=0] the start dataIndex that travel from.\n * @param {number} [end=data.count()] the next dataIndex of the last dataIndex will be travel.\n */\n eachActiveState: function (data, callback, start, end) {\n start == null && (start = 0);\n end == null && (end = data.count());\n var axesMap = this._axesMap;\n var dimensions = this.dimensions;\n var dataDimensions = [];\n var axisModels = [];\n zrUtil.each(dimensions, function (axisDim) {\n dataDimensions.push(data.mapDimension(axisDim));\n axisModels.push(axesMap.get(axisDim).model);\n });\n var hasActiveSet = this.hasAxisBrushed();\n\n for (var dataIndex = start; dataIndex < end; dataIndex++) {\n var activeState;\n\n if (!hasActiveSet) {\n activeState = 'normal';\n } else {\n activeState = 'active';\n var values = data.getValues(dataDimensions, dataIndex);\n\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n var state = axisModels[j].getActiveState(values[j]);\n\n if (state === 'inactive') {\n activeState = 'inactive';\n break;\n }\n }\n }\n\n callback(activeState, dataIndex);\n }\n },\n\n /**\n * Whether has any activeSet.\n * @return {boolean}\n */\n hasAxisBrushed: function () {\n var dimensions = this.dimensions;\n var axesMap = this._axesMap;\n var hasActiveSet = false;\n\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n hasActiveSet = true;\n }\n }\n\n return hasActiveSet;\n },\n\n /**\n * Convert coords of each axis to Point.\n * Return point. For example: [10, 20]\n * @param {Array.} coords\n * @param {string} dim\n * @return {Array.}\n */\n axisCoordToPoint: function (coord, dim) {\n var axisLayout = this._axesLayout[dim];\n return graphic.applyTransform([coord, 0], axisLayout.transform);\n },\n\n /**\n * Get axis layout.\n */\n getAxisLayout: function (dim) {\n return zrUtil.clone(this._axesLayout[dim]);\n },\n\n /**\n * @param {Array.} point\n * @return {Object} {axisExpandWindow, delta, behavior: 'jump' | 'slide' | 'none'}.\n */\n getSlidedAxisExpandWindow: function (point) {\n var layoutInfo = this._makeLayoutInfo();\n\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)]; // Out of the area of coordinate system.\n\n if (!this.containPoint(point)) {\n return {\n behavior: 'none',\n axisExpandWindow: axisExpandWindow\n };\n } // Conver the point from global to expand coordinates.\n\n\n var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos; // For dragging operation convenience, the window should not be\n // slided when mouse is the center area of the window.\n\n var delta;\n var behavior = 'slide';\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n var triggerArea = this._model.get('axisExpandSlideTriggerArea'); // But consider touch device, jump is necessary.\n\n\n var useJump = triggerArea[0] != null;\n\n if (axisCollapseWidth) {\n if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n behavior = 'jump';\n delta = pointCoord - winSize * triggerArea[2];\n } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n behavior = 'jump';\n delta = pointCoord - winSize * (1 - triggerArea[2]);\n } else {\n (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n }\n\n delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n delta ? sliderMove(delta, axisExpandWindow, extent, 'all') // Avoid nonsense triger on mousemove.\n : behavior = 'none';\n } // When screen is too narrow, make it visible and slidable, although it is hard to interact.\n else {\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n var pos = extent[1] * pointCoord / winSize;\n axisExpandWindow = [mathMax(0, pos - winSize / 2)];\n axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize);\n axisExpandWindow[0] = axisExpandWindow[1] - winSize;\n }\n\n return {\n axisExpandWindow: axisExpandWindow,\n behavior: behavior\n };\n }\n};\n\nfunction restrict(len, extent) {\n return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n return {\n position: step * axisIndex,\n axisNameAvailableWidth: step,\n axisLabelShow: true\n };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n var layoutLength = layoutInfo.layoutLength;\n var axisExpandWidth = layoutInfo.axisExpandWidth;\n var axisCount = layoutInfo.axisCount;\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n var winInnerIndices = layoutInfo.winInnerIndices;\n var position;\n var axisNameAvailableWidth = axisCollapseWidth;\n var axisLabelShow = false;\n var nameTruncateMaxWidth;\n\n if (axisIndex < winInnerIndices[0]) {\n position = axisIndex * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n } else if (axisIndex <= winInnerIndices[1]) {\n position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n axisNameAvailableWidth = axisExpandWidth;\n axisLabelShow = true;\n } else {\n position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n }\n\n return {\n position: position,\n axisNameAvailableWidth: axisNameAvailableWidth,\n axisLabelShow: axisLabelShow,\n nameTruncateMaxWidth: nameTruncateMaxWidth\n };\n}\n\nvar _default = Parallel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1269 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Axis = __webpack_require__(80);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @constructor module:echarts/coord/parallel/ParallelAxis\n * @extends {module:echarts/coord/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.} coordExtent\n * @param {string} axisType\n */\nvar ParallelAxis = function (dim, scale, coordExtent, axisType, axisIndex) {\n Axis.call(this, dim, scale, coordExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = axisType || 'value';\n /**\n * @type {number}\n * @readOnly\n */\n\n this.axisIndex = axisIndex;\n};\n\nParallelAxis.prototype = {\n constructor: ParallelAxis,\n\n /**\n * Axis model\n * @param {module:echarts/coord/parallel/AxisModel}\n */\n model: null,\n\n /**\n * @override\n */\n isHorizontal: function () {\n return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n }\n};\nzrUtil.inherits(ParallelAxis, Axis);\nvar _default = ParallelAxis;\nmodule.exports = _default;\n\n/***/ }),\n/* 1270 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Component = __webpack_require__(29);\n\n__webpack_require__(1267);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = Component.extend({\n type: 'parallel',\n dependencies: ['parallelAxis'],\n\n /**\n * @type {module:echarts/coord/parallel/Parallel}\n */\n coordinateSystem: null,\n\n /**\n * Each item like: 'dim0', 'dim1', 'dim2', ...\n * @type {Array.}\n * @readOnly\n */\n dimensions: null,\n\n /**\n * Coresponding to dimensions.\n * @type {Array.}\n * @readOnly\n */\n parallelAxisIndex: null,\n layoutMode: 'box',\n defaultOption: {\n zlevel: 0,\n z: 0,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n layout: 'horizontal',\n // 'horizontal' or 'vertical'\n // FIXME\n // naming?\n axisExpandable: false,\n axisExpandCenter: null,\n axisExpandCount: 0,\n axisExpandWidth: 50,\n // FIXME '10%' ?\n axisExpandRate: 17,\n axisExpandDebounce: 50,\n // [out, in, jumpTarget]. In percentage. If use [null, 0.05], null means full.\n // Do not doc to user until necessary.\n axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n axisExpandTriggerOn: 'click',\n // 'mousemove' or 'click'\n parallelAxisDefault: null\n },\n\n /**\n * @override\n */\n init: function () {\n Component.prototype.init.apply(this, arguments);\n this.mergeOption({});\n },\n\n /**\n * @override\n */\n mergeOption: function (newOption) {\n var thisOption = this.option;\n newOption && zrUtil.merge(thisOption, newOption, true);\n\n this._initDimensions();\n },\n\n /**\n * Whether series or axis is in this coordinate system.\n * @param {module:echarts/model/Series|module:echarts/coord/parallel/AxisModel} model\n * @param {module:echarts/model/Global} ecModel\n */\n contains: function (model, ecModel) {\n var parallelIndex = model.get('parallelIndex');\n return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n },\n setAxisExpand: function (opt) {\n zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n if (opt.hasOwnProperty(name)) {\n this.option[name] = opt[name];\n }\n }, this);\n },\n\n /**\n * @private\n */\n _initDimensions: function () {\n var dimensions = this.dimensions = [];\n var parallelAxisIndex = this.parallelAxisIndex = [];\n var axisModels = zrUtil.filter(this.dependentModels.parallelAxis, function (axisModel) {\n // Can not use this.contains here, because\n // initialization has not been completed yet.\n return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n }, this);\n zrUtil.each(axisModels, function (axisModel) {\n dimensions.push('dim' + axisModel.get('dim'));\n parallelAxisIndex.push(axisModel.componentIndex);\n });\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1271 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar modelUtil = __webpack_require__(9);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(option) {\n createParallelIfNeeded(option);\n mergeAxisOptionFromParallel(option);\n}\n/**\n * Create a parallel coordinate if not exists.\n * @inner\n */\n\n\nfunction createParallelIfNeeded(option) {\n if (option.parallel) {\n return;\n }\n\n var hasParallelSeries = false;\n zrUtil.each(option.series, function (seriesOpt) {\n if (seriesOpt && seriesOpt.type === 'parallel') {\n hasParallelSeries = true;\n }\n });\n\n if (hasParallelSeries) {\n option.parallel = [{}];\n }\n}\n/**\n * Merge aixs definition from parallel option (if exists) to axis option.\n * @inner\n */\n\n\nfunction mergeAxisOptionFromParallel(option) {\n var axes = modelUtil.normalizeToArray(option.parallelAxis);\n zrUtil.each(axes, function (axisOption) {\n if (!zrUtil.isObject(axisOption)) {\n return;\n }\n\n var parallelIndex = axisOption.parallelIndex || 0;\n var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n\n if (parallelOption && parallelOption.parallelAxisDefault) {\n zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1272 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar textContain = __webpack_require__(59);\n\nvar Axis = __webpack_require__(80);\n\nvar _model = __webpack_require__(9);\n\nvar makeInner = _model.makeInner;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\n\nfunction AngleAxis(scale, angleExtent) {\n angleExtent = angleExtent || [0, 360];\n Axis.call(this, 'angle', scale, angleExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = 'category';\n}\n\nAngleAxis.prototype = {\n constructor: AngleAxis,\n\n /**\n * @override\n */\n pointToData: function (point, clamp) {\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n },\n dataToAngle: Axis.prototype.dataToCoord,\n angleToData: Axis.prototype.coordToData,\n\n /**\n * Only be called in category axis.\n * Angle axis uses text height to decide interval\n *\n * @override\n * @return {number} Auto interval for cateogry axis tick and label\n */\n calculateCategoryInterval: function () {\n var axis = this;\n var labelModel = axis.getLabelModel();\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization:\n // avoid generating a long array by `getTicks`\n // in large category data case.\n\n var tickCount = ordinalScale.count();\n\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n return 0;\n }\n\n var tickValue = ordinalExtent[0];\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n var unitH = Math.abs(unitSpan); // Not precise, just use height as text width\n // and each distance from axis line yet.\n\n var rect = textContain.getBoundingRect(tickValue, labelModel.getFont(), 'center', 'top');\n var maxH = Math.max(rect.height, 7);\n var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity.\n\n isNaN(dh) && (dh = Infinity);\n var interval = Math.max(0, Math.floor(dh));\n var cache = inner(axis.model);\n var lastAutoInterval = cache.lastAutoInterval;\n var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window,\n // otherwise the calculated interval might jitter when the zoom\n // window size is close to the interval-changing size.\n\n if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical\n // point is not the same when zooming in or zooming out.\n && lastAutoInterval > interval) {\n interval = lastAutoInterval;\n } // Only update cache if cache not used, otherwise the\n // changing of interval is too insensitive.\n else {\n cache.lastTickCount = tickCount;\n cache.lastAutoInterval = interval;\n }\n\n return interval;\n }\n};\nzrUtil.inherits(AngleAxis, Axis);\nvar _default = AngleAxis;\nmodule.exports = _default;\n\n/***/ }),\n/* 1273 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar ComponentModel = __webpack_require__(29);\n\nvar axisModelCreator = __webpack_require__(177);\n\nvar axisModelCommonMixin = __webpack_require__(117);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PolarAxisModel = ComponentModel.extend({\n type: 'polarAxis',\n\n /**\n * @type {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n */\n axis: null,\n\n /**\n * @override\n */\n getCoordSysModel: function () {\n return this.ecModel.queryComponents({\n mainType: 'polar',\n index: this.option.polarIndex,\n id: this.option.polarId\n })[0];\n }\n});\nzrUtil.merge(PolarAxisModel.prototype, axisModelCommonMixin);\nvar polarAxisDefaultExtendedOption = {\n angle: {\n // polarIndex: 0,\n // polarId: '',\n startAngle: 90,\n clockwise: true,\n splitNumber: 12,\n axisLabel: {\n rotate: false\n }\n },\n radius: {\n // polarIndex: 0,\n // polarId: '',\n splitNumber: 5\n }\n};\n\nfunction getAxisType(axisDim, option) {\n // Default axis with data is category axis\n return option.type || (option.data ? 'category' : 'value');\n}\n\naxisModelCreator('angle', PolarAxisModel, getAxisType, polarAxisDefaultExtendedOption.angle);\naxisModelCreator('radius', PolarAxisModel, getAxisType, polarAxisDefaultExtendedOption.radius);\n\n/***/ }),\n/* 1274 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar RadiusAxis = __webpack_require__(1276);\n\nvar AngleAxis = __webpack_require__(1272);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/coord/polar/Polar\n */\n\n/**\n * @alias {module:echarts/coord/polar/Polar}\n * @constructor\n * @param {string} name\n */\nvar Polar = function (name) {\n /**\n * @type {string}\n */\n this.name = name || '';\n /**\n * x of polar center\n * @type {number}\n */\n\n this.cx = 0;\n /**\n * y of polar center\n * @type {number}\n */\n\n this.cy = 0;\n /**\n * @type {module:echarts/coord/polar/RadiusAxis}\n * @private\n */\n\n this._radiusAxis = new RadiusAxis();\n /**\n * @type {module:echarts/coord/polar/AngleAxis}\n * @private\n */\n\n this._angleAxis = new AngleAxis();\n this._radiusAxis.polar = this._angleAxis.polar = this;\n};\n\nPolar.prototype = {\n type: 'polar',\n axisPointerEnabled: true,\n constructor: Polar,\n\n /**\n * @param {Array.}\n * @readOnly\n */\n dimensions: ['radius', 'angle'],\n\n /**\n * @type {module:echarts/coord/PolarModel}\n */\n model: null,\n\n /**\n * If contain coord\n * @param {Array.} point\n * @return {boolean}\n */\n containPoint: function (point) {\n var coord = this.pointToCoord(point);\n return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n },\n\n /**\n * If contain data\n * @param {Array.} data\n * @return {boolean}\n */\n containData: function (data) {\n return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n },\n\n /**\n * @param {string} dim\n * @return {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n */\n getAxis: function (dim) {\n return this['_' + dim + 'Axis'];\n },\n\n /**\n * @return {Array.}\n */\n getAxes: function () {\n return [this._radiusAxis, this._angleAxis];\n },\n\n /**\n * Get axes by type of scale\n * @param {string} scaleType\n * @return {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n */\n getAxesByScale: function (scaleType) {\n var axes = [];\n var angleAxis = this._angleAxis;\n var radiusAxis = this._radiusAxis;\n angleAxis.scale.type === scaleType && axes.push(angleAxis);\n radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n return axes;\n },\n\n /**\n * @return {module:echarts/coord/polar/AngleAxis}\n */\n getAngleAxis: function () {\n return this._angleAxis;\n },\n\n /**\n * @return {module:echarts/coord/polar/RadiusAxis}\n */\n getRadiusAxis: function () {\n return this._radiusAxis;\n },\n\n /**\n * @param {module:echarts/coord/polar/Axis}\n * @return {module:echarts/coord/polar/Axis}\n */\n getOtherAxis: function (axis) {\n var angleAxis = this._angleAxis;\n return axis === angleAxis ? this._radiusAxis : angleAxis;\n },\n\n /**\n * Base axis will be used on stacking.\n *\n * @return {module:echarts/coord/polar/Axis}\n */\n getBaseAxis: function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n },\n\n /**\n * @param {string} [dim] 'radius' or 'angle' or 'auto' or null/undefined\n * @return {Object} {baseAxes: [], otherAxes: []}\n */\n getTooltipAxes: function (dim) {\n var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n return {\n baseAxes: [baseAxis],\n otherAxes: [this.getOtherAxis(baseAxis)]\n };\n },\n\n /**\n * Convert a single data item to (x, y) point.\n * Parameter data is an array which the first element is radius and the second is angle\n * @param {Array.} data\n * @param {boolean} [clamp=false]\n * @return {Array.}\n */\n dataToPoint: function (data, clamp) {\n return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n },\n\n /**\n * Convert a (x, y) point to data\n * @param {Array.} point\n * @param {boolean} [clamp=false]\n * @return {Array.}\n */\n pointToData: function (point, clamp) {\n var coord = this.pointToCoord(point);\n return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n },\n\n /**\n * Convert a (x, y) point to (radius, angle) coord\n * @param {Array.} point\n * @return {Array.}\n */\n pointToCoord: function (point) {\n var dx = point[0] - this.cx;\n var dy = point[1] - this.cy;\n var angleAxis = this.getAngleAxis();\n var extent = angleAxis.getExtent();\n var minAngle = Math.min(extent[0], extent[1]);\n var maxAngle = Math.max(extent[0], extent[1]); // Fix fixed extent in polarCreator\n // FIXME\n\n angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n var radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n var radian = Math.atan2(-dy, dx) / Math.PI * 180; // move to angleExtent\n\n var dir = radian < minAngle ? 1 : -1;\n\n while (radian < minAngle || radian > maxAngle) {\n radian += dir * 360;\n }\n\n return [radius, radian];\n },\n\n /**\n * Convert a (radius, angle) coord to (x, y) point\n * @param {Array.} coord\n * @return {Array.}\n */\n coordToPoint: function (coord) {\n var radius = coord[0];\n var radian = coord[1] / 180 * Math.PI;\n var x = Math.cos(radian) * radius + this.cx; // Inverse the y\n\n var y = -Math.sin(radian) * radius + this.cy;\n return [x, y];\n }\n};\nvar _default = Polar;\nmodule.exports = _default;\n\n/***/ }),\n/* 1275 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\n__webpack_require__(1273);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentModel({\n type: 'polar',\n dependencies: ['polarAxis', 'angleAxis'],\n\n /**\n * @type {module:echarts/coord/polar/Polar}\n */\n coordinateSystem: null,\n\n /**\n * @param {string} axisType\n * @return {module:echarts/coord/polar/AxisModel}\n */\n findAxisModel: function (axisType) {\n var foundAxisModel;\n var ecModel = this.ecModel;\n ecModel.eachComponent(axisType, function (axisModel) {\n if (axisModel.getCoordSysModel() === this) {\n foundAxisModel = axisModel;\n }\n }, this);\n return foundAxisModel;\n },\n defaultOption: {\n zlevel: 0,\n z: 0,\n center: ['50%', '50%'],\n radius: '80%'\n }\n});\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1276 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Axis = __webpack_require__(80);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction RadiusAxis(scale, radiusExtent) {\n Axis.call(this, 'radius', scale, radiusExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = 'category';\n}\n\nRadiusAxis.prototype = {\n constructor: RadiusAxis,\n\n /**\n * @override\n */\n pointToData: function (point, clamp) {\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n },\n dataToRadius: Axis.prototype.dataToCoord,\n radiusToData: Axis.prototype.coordToData\n};\nzrUtil.inherits(RadiusAxis, Axis);\nvar _default = RadiusAxis;\nmodule.exports = _default;\n\n/***/ }),\n/* 1277 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n // dataItem is necessary in log axis.\n return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n var axis = this['get' + dim + 'Axis']();\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var method = 'dataTo' + dim;\n var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis[method](val - halfSize) - axis[method](val + halfSize));\n\n if (dim === 'Angle') {\n result = result * Math.PI / 180;\n }\n\n return result;\n }, this);\n}\n\nfunction _default(coordSys) {\n var radiusAxis = coordSys.getRadiusAxis();\n var angleAxis = coordSys.getAngleAxis();\n var radius = radiusAxis.getExtent();\n radius[0] > radius[1] && radius.reverse();\n return {\n coordSys: {\n type: 'polar',\n cx: coordSys.cx,\n cy: coordSys.cy,\n r: radius[1],\n r0: radius[0]\n },\n api: {\n coord: zrUtil.bind(function (data) {\n var radius = radiusAxis.dataToRadius(data[0]);\n var angle = angleAxis.dataToAngle(data[1]);\n var coord = coordSys.coordToPoint([radius, angle]);\n coord.push(radius, angle * Math.PI / 180);\n return coord;\n }),\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1278 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Axis = __webpack_require__(80);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction IndicatorAxis(dim, scale, radiusExtent) {\n Axis.call(this, dim, scale, radiusExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = 'value';\n this.angle = 0;\n /**\n * Indicator name\n * @type {string}\n */\n\n this.name = '';\n /**\n * @type {module:echarts/model/Model}\n */\n\n this.model;\n}\n\nzrUtil.inherits(IndicatorAxis, Axis);\nvar _default = IndicatorAxis;\nmodule.exports = _default;\n\n/***/ }),\n/* 1279 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar IndicatorAxis = __webpack_require__(1278);\n\nvar IntervalScale = __webpack_require__(181);\n\nvar numberUtil = __webpack_require__(8);\n\nvar _axisHelper = __webpack_require__(58);\n\nvar getScaleExtent = _axisHelper.getScaleExtent;\nvar niceScaleExtent = _axisHelper.niceScaleExtent;\n\nvar CoordinateSystem = __webpack_require__(57);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO clockwise\nfunction Radar(radarModel, ecModel, api) {\n this._model = radarModel;\n /**\n * Radar dimensions\n * @type {Array.}\n */\n\n this.dimensions = [];\n this._indicatorAxes = zrUtil.map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n var dim = 'indicator_' + idx;\n var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\n indicatorAxis.name = indicatorModel.get('name'); // Inject model and axis\n\n indicatorAxis.model = indicatorModel;\n indicatorModel.axis = indicatorAxis;\n this.dimensions.push(dim);\n return indicatorAxis;\n }, this);\n this.resize(radarModel, api);\n /**\n * @type {number}\n * @readOnly\n */\n\n this.cx;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.cy;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.r;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.r0;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.startAngle;\n}\n\nRadar.prototype.getIndicatorAxes = function () {\n return this._indicatorAxes;\n};\n\nRadar.prototype.dataToPoint = function (value, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n};\n\nRadar.prototype.coordToPoint = function (coord, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n var angle = indicatorAxis.angle;\n var x = this.cx + coord * Math.cos(angle);\n var y = this.cy - coord * Math.sin(angle);\n return [x, y];\n};\n\nRadar.prototype.pointToData = function (pt) {\n var dx = pt[0] - this.cx;\n var dy = pt[1] - this.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n var radian = Math.atan2(-dy, dx); // Find the closest angle\n // FIXME index can calculated directly\n\n var minRadianDiff = Infinity;\n var closestAxis;\n var closestAxisIdx = -1;\n\n for (var i = 0; i < this._indicatorAxes.length; i++) {\n var indicatorAxis = this._indicatorAxes[i];\n var diff = Math.abs(radian - indicatorAxis.angle);\n\n if (diff < minRadianDiff) {\n closestAxis = indicatorAxis;\n closestAxisIdx = i;\n minRadianDiff = diff;\n }\n }\n\n return [closestAxisIdx, +(closestAxis && closestAxis.coodToData(radius))];\n};\n\nRadar.prototype.resize = function (radarModel, api) {\n var center = radarModel.get('center');\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n var viewSize = Math.min(viewWidth, viewHeight) / 2;\n this.cx = numberUtil.parsePercent(center[0], viewWidth);\n this.cy = numberUtil.parsePercent(center[1], viewHeight);\n this.startAngle = radarModel.get('startAngle') * Math.PI / 180; // radius may be single value like `20`, `'80%'`, or array like `[10, '80%']`\n\n var radius = radarModel.get('radius');\n\n if (typeof radius === 'string' || typeof radius === 'number') {\n radius = [0, radius];\n }\n\n this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n this.r = numberUtil.parsePercent(radius[1], viewSize);\n zrUtil.each(this._indicatorAxes, function (indicatorAxis, idx) {\n indicatorAxis.setExtent(this.r0, this.r);\n var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length; // Normalize to [-PI, PI]\n\n angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n indicatorAxis.angle = angle;\n }, this);\n};\n\nRadar.prototype.update = function (ecModel, api) {\n var indicatorAxes = this._indicatorAxes;\n var radarModel = this._model;\n zrUtil.each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.setExtent(Infinity, -Infinity);\n });\n ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n if (radarSeries.get('coordinateSystem') !== 'radar' || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n return;\n }\n\n var data = radarSeries.getData();\n zrUtil.each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n });\n }, this);\n var splitNumber = radarModel.get('splitNumber');\n\n function increaseInterval(interval) {\n var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10)); // Increase interval\n\n var f = interval / exp10;\n\n if (f === 2) {\n f = 5;\n } else {\n // f is 2 or 5\n f *= 2;\n }\n\n return f * exp10;\n } // Force all the axis fixing the maxSplitNumber.\n\n\n zrUtil.each(indicatorAxes, function (indicatorAxis, idx) {\n var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n var axisModel = indicatorAxis.model;\n var scale = indicatorAxis.scale;\n var fixedMin = axisModel.getMin();\n var fixedMax = axisModel.getMax();\n var interval = scale.getInterval();\n\n if (fixedMin != null && fixedMax != null) {\n // User set min, max, divide to get new interval\n scale.setExtent(+fixedMin, +fixedMax);\n scale.setInterval((fixedMax - fixedMin) / splitNumber);\n } else if (fixedMin != null) {\n var max; // User set min, expand extent on the other side\n\n do {\n max = fixedMin + interval * splitNumber;\n scale.setExtent(+fixedMin, max); // Interval must been set after extent\n // FIXME\n\n scale.setInterval(interval);\n interval = increaseInterval(interval);\n } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\n } else if (fixedMax != null) {\n var min; // User set min, expand extent on the other side\n\n do {\n min = fixedMax - interval * splitNumber;\n scale.setExtent(min, +fixedMax);\n scale.setInterval(interval);\n interval = increaseInterval(interval);\n } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\n } else {\n var nicedSplitNumber = scale.getTicks().length - 1;\n\n if (nicedSplitNumber > splitNumber) {\n interval = increaseInterval(interval);\n } // PENDING\n\n\n var center = Math.round((rawExtent[0] + rawExtent[1]) / 2 / interval) * interval;\n var halfSplitNumber = Math.round(splitNumber / 2);\n scale.setExtent(numberUtil.round(center - halfSplitNumber * interval), numberUtil.round(center + (splitNumber - halfSplitNumber) * interval));\n scale.setInterval(interval);\n }\n });\n};\n/**\n * Radar dimensions is based on the data\n * @type {Array}\n */\n\n\nRadar.dimensions = [];\n\nRadar.create = function (ecModel, api) {\n var radarList = [];\n ecModel.eachComponent('radar', function (radarModel) {\n var radar = new Radar(radarModel, ecModel, api);\n radarList.push(radar);\n radarModel.coordinateSystem = radar;\n });\n ecModel.eachSeriesByType('radar', function (radarSeries) {\n if (radarSeries.get('coordinateSystem') === 'radar') {\n // Inject coordinate system\n radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n }\n });\n return radarList;\n};\n\nCoordinateSystem.register('radar', Radar);\nvar _default = Radar;\nmodule.exports = _default;\n\n/***/ }),\n/* 1280 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = __webpack_require__(3);\n\nvar zrUtil = __webpack_require__(0);\n\nvar axisDefault = __webpack_require__(393);\n\nvar Model = __webpack_require__(31);\n\nvar axisModelCommonMixin = __webpack_require__(117);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar valueAxisDefault = axisDefault.valueAxis;\n\nfunction defaultsShow(opt, show) {\n return zrUtil.defaults({\n show: show\n }, opt);\n}\n\nvar RadarModel = echarts.extendComponentModel({\n type: 'radar',\n optionUpdated: function () {\n var boundaryGap = this.get('boundaryGap');\n var splitNumber = this.get('splitNumber');\n var scale = this.get('scale');\n var axisLine = this.get('axisLine');\n var axisTick = this.get('axisTick');\n var axisLabel = this.get('axisLabel');\n var nameTextStyle = this.get('name');\n var showName = this.get('name.show');\n var nameFormatter = this.get('name.formatter');\n var nameGap = this.get('nameGap');\n var triggerEvent = this.get('triggerEvent');\n var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n // PENDING\n if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n indicatorOpt.min = 0;\n } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n indicatorOpt.max = 0;\n }\n\n var iNameTextStyle = nameTextStyle;\n\n if (indicatorOpt.color != null) {\n iNameTextStyle = zrUtil.defaults({\n color: indicatorOpt.color\n }, nameTextStyle);\n } // Use same configuration\n\n\n indicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n boundaryGap: boundaryGap,\n splitNumber: splitNumber,\n scale: scale,\n axisLine: axisLine,\n axisTick: axisTick,\n axisLabel: axisLabel,\n // Competitable with 2 and use text\n name: indicatorOpt.text,\n nameLocation: 'end',\n nameGap: nameGap,\n // min: 0,\n nameTextStyle: iNameTextStyle,\n triggerEvent: triggerEvent\n }, false);\n\n if (!showName) {\n indicatorOpt.name = '';\n }\n\n if (typeof nameFormatter === 'string') {\n var indName = indicatorOpt.name;\n indicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n } else if (typeof nameFormatter === 'function') {\n indicatorOpt.name = nameFormatter(indicatorOpt.name, indicatorOpt);\n }\n\n var model = zrUtil.extend(new Model(indicatorOpt, null, this.ecModel), axisModelCommonMixin); // For triggerEvent.\n\n model.mainType = 'radar';\n model.componentIndex = this.componentIndex;\n return model;\n }, this);\n\n this.getIndicatorModels = function () {\n return indicatorModels;\n };\n },\n defaultOption: {\n zlevel: 0,\n z: 0,\n center: ['50%', '50%'],\n radius: '75%',\n startAngle: 90,\n name: {\n show: true // formatter: null\n // textStyle: {}\n\n },\n boundaryGap: [0, 0],\n splitNumber: 5,\n nameGap: 15,\n scale: false,\n // Polygon or circle\n shape: 'polygon',\n axisLine: zrUtil.merge({\n lineStyle: {\n color: '#bbb'\n }\n }, valueAxisDefault.axisLine),\n axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n // {text, min, max}\n indicator: []\n }\n});\nvar _default = RadarModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1281 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar ComponentModel = __webpack_require__(29);\n\nvar axisModelCreator = __webpack_require__(177);\n\nvar axisModelCommonMixin = __webpack_require__(117);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AxisModel = ComponentModel.extend({\n type: 'singleAxis',\n layoutMode: 'box',\n\n /**\n * @type {module:echarts/coord/single/SingleAxis}\n */\n axis: null,\n\n /**\n * @type {module:echarts/coord/single/Single}\n */\n coordinateSystem: null,\n\n /**\n * @override\n */\n getCoordSysModel: function () {\n return this;\n }\n});\nvar defaultOption = {\n left: '5%',\n top: '5%',\n right: '5%',\n bottom: '5%',\n type: 'value',\n position: 'bottom',\n orient: 'horizontal',\n axisLine: {\n show: true,\n lineStyle: {\n width: 2,\n type: 'solid'\n }\n },\n // Single coordinate system and single axis is the,\n // which is used as the parent tooltip model.\n // same model, so we set default tooltip show as true.\n tooltip: {\n show: true\n },\n axisTick: {\n show: true,\n length: 6,\n lineStyle: {\n width: 2\n }\n },\n axisLabel: {\n show: true,\n interval: 'auto'\n },\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dashed',\n opacity: 0.2\n }\n }\n};\n\nfunction getAxisType(axisName, option) {\n return option.type || (option.data ? 'category' : 'value');\n}\n\nzrUtil.merge(AxisModel.prototype, axisModelCommonMixin);\naxisModelCreator('single', AxisModel, getAxisType, defaultOption);\nvar _default = AxisModel;\nmodule.exports = _default;\n\n/***/ }),\n/* 1282 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SingleAxis = __webpack_require__(1283);\n\nvar axisHelper = __webpack_require__(58);\n\nvar _layout = __webpack_require__(16);\n\nvar getLayoutRect = _layout.getLayoutRect;\n\nvar _util = __webpack_require__(0);\n\nvar each = _util.each;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Single coordinates system.\n */\n\n/**\n * Create a single coordinates system.\n *\n * @param {module:echarts/coord/single/AxisModel} axisModel\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\nfunction Single(axisModel, ecModel, api) {\n /**\n * @type {string}\n * @readOnly\n */\n this.dimension = 'single';\n /**\n * Add it just for draw tooltip.\n *\n * @type {Array.}\n * @readOnly\n */\n\n this.dimensions = ['single'];\n /**\n * @private\n * @type {module:echarts/coord/single/SingleAxis}.\n */\n\n this._axis = null;\n /**\n * @private\n * @type {module:zrender/core/BoundingRect}\n */\n\n this._rect;\n\n this._init(axisModel, ecModel, api);\n /**\n * @type {module:echarts/coord/single/AxisModel}\n */\n\n\n this.model = axisModel;\n}\n\nSingle.prototype = {\n type: 'singleAxis',\n axisPointerEnabled: true,\n constructor: Single,\n\n /**\n * Initialize single coordinate system.\n *\n * @param {module:echarts/coord/single/AxisModel} axisModel\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n * @private\n */\n _init: function (axisModel, ecModel, api) {\n var dim = this.dimension;\n var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse');\n axis.orient = axisModel.get('orient');\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.coordinateSystem = this;\n this._axis = axis;\n },\n\n /**\n * Update axis scale after data processed\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\n update: function (ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.coordinateSystem === this) {\n var data = seriesModel.getData();\n each(data.mapDimension(this.dimension, true), function (dim) {\n this._axis.scale.unionExtentFromData(data, dim);\n }, this);\n axisHelper.niceScaleExtent(this._axis.scale, this._axis.model);\n }\n }, this);\n },\n\n /**\n * Resize the single coordinate system.\n *\n * @param {module:echarts/coord/single/AxisModel} axisModel\n * @param {module:echarts/ExtensionAPI} api\n */\n resize: function (axisModel, api) {\n this._rect = getLayoutRect({\n left: axisModel.get('left'),\n top: axisModel.get('top'),\n right: axisModel.get('right'),\n bottom: axisModel.get('bottom'),\n width: axisModel.get('width'),\n height: axisModel.get('height')\n }, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n\n this._adjustAxis();\n },\n\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n getRect: function () {\n return this._rect;\n },\n\n /**\n * @private\n */\n _adjustAxis: function () {\n var rect = this._rect;\n var axis = this._axis;\n var isHorizontal = axis.isHorizontal();\n var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\n var idx = axis.reverse ? 1 : 0;\n axis.setExtent(extent[idx], extent[1 - idx]);\n\n this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\n },\n\n /**\n * @param {module:echarts/coord/single/SingleAxis} axis\n * @param {number} coordBase\n */\n _updateAxisTransform: function (axis, coordBase) {\n var axisExtent = axis.getExtent();\n var extentSum = axisExtent[0] + axisExtent[1];\n var isHorizontal = axis.isHorizontal();\n axis.toGlobalCoord = isHorizontal ? function (coord) {\n return coord + coordBase;\n } : function (coord) {\n return extentSum - coord + coordBase;\n };\n axis.toLocalCoord = isHorizontal ? function (coord) {\n return coord - coordBase;\n } : function (coord) {\n return extentSum - coord + coordBase;\n };\n },\n\n /**\n * Get axis.\n *\n * @return {module:echarts/coord/single/SingleAxis}\n */\n getAxis: function () {\n return this._axis;\n },\n\n /**\n * Get axis, add it just for draw tooltip.\n *\n * @return {[type]} [description]\n */\n getBaseAxis: function () {\n return this._axis;\n },\n\n /**\n * @return {Array.}\n */\n getAxes: function () {\n return [this._axis];\n },\n\n /**\n * @return {Object} {baseAxes: [], otherAxes: []}\n */\n getTooltipAxes: function () {\n return {\n baseAxes: [this.getAxis()]\n };\n },\n\n /**\n * If contain point.\n *\n * @param {Array.} point\n * @return {boolean}\n */\n containPoint: function (point) {\n var rect = this.getRect();\n var axis = this.getAxis();\n var orient = axis.orient;\n\n if (orient === 'horizontal') {\n return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n } else {\n return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height;\n }\n },\n\n /**\n * @param {Array.} point\n * @return {Array.}\n */\n pointToData: function (point) {\n var axis = this.getAxis();\n return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\n },\n\n /**\n * Convert the series data to concrete point.\n *\n * @param {number|Array.} val\n * @return {Array.}\n */\n dataToPoint: function (val) {\n var axis = this.getAxis();\n var rect = this.getRect();\n var pt = [];\n var idx = axis.orient === 'horizontal' ? 0 : 1;\n\n if (val instanceof Array) {\n val = val[0];\n }\n\n pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\n pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2;\n return pt;\n }\n};\nvar _default = Single;\nmodule.exports = _default;\n\n/***/ }),\n/* 1283 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Axis = __webpack_require__(80);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @constructor module:echarts/coord/single/SingleAxis\n * @extends {module:echarts/coord/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.} coordExtent\n * @param {string} axisType\n * @param {string} position\n */\nvar SingleAxis = function (dim, scale, coordExtent, axisType, position) {\n Axis.call(this, dim, scale, coordExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = axisType || 'value';\n /**\n * Axis position\n * - 'top'\n * - 'bottom'\n * - 'left'\n * - 'right'\n * @type {string}\n */\n\n this.position = position || 'bottom';\n /**\n * Axis orient\n * - 'horizontal'\n * - 'vertical'\n * @type {[type]}\n */\n\n this.orient = null;\n};\n\nSingleAxis.prototype = {\n constructor: SingleAxis,\n\n /**\n * Axis model\n * @type {module:echarts/coord/single/AxisModel}\n */\n model: null,\n\n /**\n * Judge the orient of the axis.\n * @return {boolean}\n */\n isHorizontal: function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n },\n\n /**\n * @override\n */\n pointToData: function (point, clamp) {\n return this.coordinateSystem.pointToData(point, clamp)[0];\n },\n\n /**\n * Convert the local coord(processed by dataToCoord())\n * to global coord(concrete pixel coord).\n * designated by module:echarts/coord/single/Single.\n * @type {Function}\n */\n toGlobalCoord: null,\n\n /**\n * Convert the global coord to local coord.\n * designated by module:echarts/coord/single/Single.\n * @type {Function}\n */\n toLocalCoord: null\n};\nzrUtil.inherits(SingleAxis, Axis);\nvar _default = SingleAxis;\nmodule.exports = _default;\n\n/***/ }),\n/* 1284 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n // dataItem is necessary in log axis.\n var axis = this.getAxis();\n var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nfunction _default(coordSys) {\n var rect = coordSys.getRect();\n return {\n coordSys: {\n type: 'singleAxis',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n api: {\n coord: function (val) {\n // do not provide \"out\" param\n return coordSys.dataToPoint(val);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1285 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar Single = __webpack_require__(1282);\n\nvar CoordinateSystem = __webpack_require__(57);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Single coordinate system creator.\n */\n\n/**\n * Create single coordinate system and inject it into seriesModel.\n *\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n * @return {Array.}\n */\nfunction create(ecModel, api) {\n var singles = [];\n ecModel.eachComponent('singleAxis', function (axisModel, idx) {\n var single = new Single(axisModel, ecModel, api);\n single.name = 'single_' + idx;\n single.resize(axisModel, api);\n axisModel.coordinateSystem = single;\n singles.push(single);\n });\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'singleAxis') {\n var singleAxisModel = ecModel.queryComponents({\n mainType: 'singleAxis',\n index: seriesModel.get('singleAxisIndex'),\n id: seriesModel.get('singleAxisId')\n })[0];\n seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\n }\n });\n return singles;\n}\n\nCoordinateSystem.register('single', {\n create: create,\n dimensions: Single.prototype.dimensions\n});\n\n/***/ }),\n/* 1286 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = __webpack_require__(13);\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = __webpack_require__(0);\n\nvar _clazz = __webpack_require__(72);\n\nvar enableClassCheck = _clazz.enableClassCheck;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Graph data structure\n *\n * @module echarts/data/Graph\n * @author Yi Shen(https://www.github.com/pissang)\n */\n// id may be function name of Object, add a prefix to avoid this problem.\nfunction generateNodeKey(id) {\n return '_EC_' + id;\n}\n/**\n * @alias module:echarts/data/Graph\n * @constructor\n * @param {boolean} directed\n */\n\n\nvar Graph = function (directed) {\n /**\n * 是否是有向图\n * @type {boolean}\n * @private\n */\n this._directed = directed || false;\n /**\n * @type {Array.}\n * @readOnly\n */\n\n this.nodes = [];\n /**\n * @type {Array.}\n * @readOnly\n */\n\n this.edges = [];\n /**\n * @type {Object.}\n * @private\n */\n\n this._nodesMap = {};\n /**\n * @type {Object.}\n * @private\n */\n\n this._edgesMap = {};\n /**\n * @type {module:echarts/data/List}\n * @readOnly\n */\n\n this.data;\n /**\n * @type {module:echarts/data/List}\n * @readOnly\n */\n\n this.edgeData;\n};\n\nvar graphProto = Graph.prototype;\n/**\n * @type {string}\n */\n\ngraphProto.type = 'graph';\n/**\n * If is directed graph\n * @return {boolean}\n */\n\ngraphProto.isDirected = function () {\n return this._directed;\n};\n/**\n * Add a new node\n * @param {string} id\n * @param {number} [dataIndex]\n */\n\n\ngraphProto.addNode = function (id, dataIndex) {\n id = id || '' + dataIndex;\n var nodesMap = this._nodesMap;\n\n if (nodesMap[generateNodeKey(id)]) {\n return;\n }\n\n var node = new Node(id, dataIndex);\n node.hostGraph = this;\n this.nodes.push(node);\n nodesMap[generateNodeKey(id)] = node;\n return node;\n};\n/**\n * Get node by data index\n * @param {number} dataIndex\n * @return {module:echarts/data/Graph~Node}\n */\n\n\ngraphProto.getNodeByIndex = function (dataIndex) {\n var rawIdx = this.data.getRawIndex(dataIndex);\n return this.nodes[rawIdx];\n};\n/**\n * Get node by id\n * @param {string} id\n * @return {module:echarts/data/Graph.Node}\n */\n\n\ngraphProto.getNodeById = function (id) {\n return this._nodesMap[generateNodeKey(id)];\n};\n/**\n * Add a new edge\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {number} [dataIndex=-1]\n * @return {module:echarts/data/Graph.Edge}\n */\n\n\ngraphProto.addEdge = function (n1, n2, dataIndex) {\n var nodesMap = this._nodesMap;\n var edgesMap = this._edgesMap; // PNEDING\n\n if (typeof n1 === 'number') {\n n1 = this.nodes[n1];\n }\n\n if (typeof n2 === 'number') {\n n2 = this.nodes[n2];\n }\n\n if (!Node.isInstance(n1)) {\n n1 = nodesMap[generateNodeKey(n1)];\n }\n\n if (!Node.isInstance(n2)) {\n n2 = nodesMap[generateNodeKey(n2)];\n }\n\n if (!n1 || !n2) {\n return;\n }\n\n var key = n1.id + '-' + n2.id; // PENDING\n\n if (edgesMap[key]) {\n return;\n }\n\n var edge = new Edge(n1, n2, dataIndex);\n edge.hostGraph = this;\n\n if (this._directed) {\n n1.outEdges.push(edge);\n n2.inEdges.push(edge);\n }\n\n n1.edges.push(edge);\n\n if (n1 !== n2) {\n n2.edges.push(edge);\n }\n\n this.edges.push(edge);\n edgesMap[key] = edge;\n return edge;\n};\n/**\n * Get edge by data index\n * @param {number} dataIndex\n * @return {module:echarts/data/Graph~Node}\n */\n\n\ngraphProto.getEdgeByIndex = function (dataIndex) {\n var rawIdx = this.edgeData.getRawIndex(dataIndex);\n return this.edges[rawIdx];\n};\n/**\n * Get edge by two linked nodes\n * @param {module:echarts/data/Graph.Node|string} n1\n * @param {module:echarts/data/Graph.Node|string} n2\n * @return {module:echarts/data/Graph.Edge}\n */\n\n\ngraphProto.getEdge = function (n1, n2) {\n if (Node.isInstance(n1)) {\n n1 = n1.id;\n }\n\n if (Node.isInstance(n2)) {\n n2 = n2.id;\n }\n\n var edgesMap = this._edgesMap;\n\n if (this._directed) {\n return edgesMap[n1 + '-' + n2];\n } else {\n return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1];\n }\n};\n/**\n * Iterate all nodes\n * @param {Function} cb\n * @param {*} [context]\n */\n\n\ngraphProto.eachNode = function (cb, context) {\n var nodes = this.nodes;\n var len = nodes.length;\n\n for (var i = 0; i < len; i++) {\n if (nodes[i].dataIndex >= 0) {\n cb.call(context, nodes[i], i);\n }\n }\n};\n/**\n * Iterate all edges\n * @param {Function} cb\n * @param {*} [context]\n */\n\n\ngraphProto.eachEdge = function (cb, context) {\n var edges = this.edges;\n var len = edges.length;\n\n for (var i = 0; i < len; i++) {\n if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {\n cb.call(context, edges[i], i);\n }\n }\n};\n/**\n * Breadth first traverse\n * @param {Function} cb\n * @param {module:echarts/data/Graph.Node} startNode\n * @param {string} [direction='none'] 'none'|'in'|'out'\n * @param {*} [context]\n */\n\n\ngraphProto.breadthFirstTraverse = function (cb, startNode, direction, context) {\n if (!Node.isInstance(startNode)) {\n startNode = this._nodesMap[generateNodeKey(startNode)];\n }\n\n if (!startNode) {\n return;\n }\n\n var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges';\n\n for (var i = 0; i < this.nodes.length; i++) {\n this.nodes[i].__visited = false;\n }\n\n if (cb.call(context, startNode, null)) {\n return;\n }\n\n var queue = [startNode];\n\n while (queue.length) {\n var currentNode = queue.shift();\n var edges = currentNode[edgeType];\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n var otherNode = e.node1 === currentNode ? e.node2 : e.node1;\n\n if (!otherNode.__visited) {\n if (cb.call(context, otherNode, currentNode)) {\n // Stop traversing\n return;\n }\n\n queue.push(otherNode);\n otherNode.__visited = true;\n }\n }\n }\n}; // TODO\n// graphProto.depthFirstTraverse = function (\n// cb, startNode, direction, context\n// ) {\n// };\n// Filter update\n\n\ngraphProto.update = function () {\n var data = this.data;\n var edgeData = this.edgeData;\n var nodes = this.nodes;\n var edges = this.edges;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n nodes[i].dataIndex = -1;\n }\n\n for (var i = 0, len = data.count(); i < len; i++) {\n nodes[data.getRawIndex(i)].dataIndex = i;\n }\n\n edgeData.filterSelf(function (idx) {\n var edge = edges[edgeData.getRawIndex(idx)];\n return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\n }); // Update edge\n\n for (var i = 0, len = edges.length; i < len; i++) {\n edges[i].dataIndex = -1;\n }\n\n for (var i = 0, len = edgeData.count(); i < len; i++) {\n edges[edgeData.getRawIndex(i)].dataIndex = i;\n }\n};\n/**\n * @return {module:echarts/data/Graph}\n */\n\n\ngraphProto.clone = function () {\n var graph = new Graph(this._directed);\n var nodes = this.nodes;\n var edges = this.edges;\n\n for (var i = 0; i < nodes.length; i++) {\n graph.addNode(nodes[i].id, nodes[i].dataIndex);\n }\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\n }\n\n return graph;\n};\n/**\n * @alias module:echarts/data/Graph.Node\n */\n\n\nfunction Node(id, dataIndex) {\n /**\n * @type {string}\n */\n this.id = id == null ? '' : id;\n /**\n * @type {Array.}\n */\n\n this.inEdges = [];\n /**\n * @type {Array.}\n */\n\n this.outEdges = [];\n /**\n * @type {Array.}\n */\n\n this.edges = [];\n /**\n * @type {module:echarts/data/Graph}\n */\n\n this.hostGraph;\n /**\n * @type {number}\n */\n\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\n}\n\nNode.prototype = {\n constructor: Node,\n\n /**\n * @return {number}\n */\n degree: function () {\n return this.edges.length;\n },\n\n /**\n * @return {number}\n */\n inDegree: function () {\n return this.inEdges.length;\n },\n\n /**\n * @return {number}\n */\n outDegree: function () {\n return this.outEdges.length;\n },\n\n /**\n * @param {string} [path]\n * @return {module:echarts/model/Model}\n */\n getModel: function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var graph = this.hostGraph;\n var itemModel = graph.data.getItemModel(this.dataIndex);\n return itemModel.getModel(path);\n }\n};\n/**\n * 图边\n * @alias module:echarts/data/Graph.Edge\n * @param {module:echarts/data/Graph.Node} n1\n * @param {module:echarts/data/Graph.Node} n2\n * @param {number} [dataIndex=-1]\n */\n\nfunction Edge(n1, n2, dataIndex) {\n /**\n * 节点1,如果是有向图则为源节点\n * @type {module:echarts/data/Graph.Node}\n */\n this.node1 = n1;\n /**\n * 节点2,如果是有向图则为目标节点\n * @type {module:echarts/data/Graph.Node}\n */\n\n this.node2 = n2;\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\n}\n/**\n * @param {string} [path]\n * @return {module:echarts/model/Model}\n */\n\n\nEdge.prototype.getModel = function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var graph = this.hostGraph;\n var itemModel = graph.edgeData.getItemModel(this.dataIndex);\n return itemModel.getModel(path);\n};\n\nvar createGraphDataProxyMixin = function (hostName, dataName) {\n return {\n /**\n * @param {string=} [dimension='value'] Default 'value'. can be 'a', 'b', 'c', 'd', 'e'.\n * @return {number}\n */\n getValue: function (dimension) {\n var data = this[hostName][dataName];\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n },\n\n /**\n * @param {Object|string} key\n * @param {*} [value]\n */\n setVisual: function (key, value) {\n this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\n },\n\n /**\n * @param {string} key\n * @return {boolean}\n */\n getVisual: function (key, ignoreParent) {\n return this[hostName][dataName].getItemVisual(this.dataIndex, key, ignoreParent);\n },\n\n /**\n * @param {Object} layout\n * @return {boolean} [merge=false]\n */\n setLayout: function (layout, merge) {\n this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\n },\n\n /**\n * @return {Object}\n */\n getLayout: function () {\n return this[hostName][dataName].getItemLayout(this.dataIndex);\n },\n\n /**\n * @return {module:zrender/Element}\n */\n getGraphicEl: function () {\n return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\n },\n\n /**\n * @return {number}\n */\n getRawIndex: function () {\n return this[hostName][dataName].getRawIndex(this.dataIndex);\n }\n };\n};\n\nzrUtil.mixin(Node, createGraphDataProxyMixin('hostGraph', 'data'));\nzrUtil.mixin(Edge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\nGraph.Node = Node;\nGraph.Edge = Edge;\nenableClassCheck(Node);\nenableClassCheck(Edge);\nvar _default = Graph;\nmodule.exports = _default;\n\n/***/ }),\n/* 1287 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar createListFromArray = __webpack_require__(70);\n\nvar axisHelper = __webpack_require__(58);\n\nvar axisModelCommonMixin = __webpack_require__(117);\n\nvar Model = __webpack_require__(31);\n\nvar _layout = __webpack_require__(16);\n\nvar getLayoutRect = _layout.getLayoutRect;\nexports.getLayoutRect = _layout.getLayoutRect;\n\nvar _dataStackHelper = __webpack_require__(71);\n\nvar enableDataStack = _dataStackHelper.enableDataStack;\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nvar _completeDimensions = __webpack_require__(401);\n\nexports.completeDimensions = _completeDimensions;\n\nvar _createDimensions = __webpack_require__(118);\n\nexports.createDimensions = _createDimensions;\n\nvar _symbol = __webpack_require__(50);\n\nexports.createSymbol = _symbol.createSymbol;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import createGraphFromNodeEdge from './chart/helper/createGraphFromNodeEdge';\n\n/**\n * Create a muti dimension List structure from seriesModel.\n * @param {module:echarts/model/Model} seriesModel\n * @return {module:echarts/data/List} list\n */\nfunction createList(seriesModel) {\n return createListFromArray(seriesModel.getSource(), seriesModel);\n} // export function createGraph(seriesModel) {\n// var nodes = seriesModel.get('data');\n// var links = seriesModel.get('links');\n// return createGraphFromNodeEdge(nodes, links, seriesModel);\n// }\n\n\nvar dataStack = {\n isDimensionStacked: isDimensionStacked,\n enableDataStack: enableDataStack,\n getStackedDimension: getStackedDimension\n};\n/**\n * Create a symbol element with given symbol configuration: shape, x, y, width, height, color\n * @see http://echarts.baidu.com/option.html#series-scatter.symbol\n * @param {string} symbolDesc\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {string} color\n */\n\n/**\n * Create scale\n * @param {Array.} dataExtent\n * @param {Object|module:echarts/Model} option\n */\nfunction createScale(dataExtent, option) {\n var axisModel = option;\n\n if (!Model.isInstance(option)) {\n axisModel = new Model(option);\n zrUtil.mixin(axisModel, axisModelCommonMixin);\n }\n\n var scale = axisHelper.createScaleByModel(axisModel);\n scale.setExtent(dataExtent[0], dataExtent[1]);\n axisHelper.niceScaleExtent(scale, axisModel);\n return scale;\n}\n/**\n * Mixin common methods to axis model,\n *\n * Inlcude methods\n * `getFormattedLabels() => Array.`\n * `getCategories() => Array.`\n * `getMin(origin: boolean) => number`\n * `getMax(origin: boolean) => number`\n * `getNeedCrossZero() => boolean`\n * `setRange(start: number, end: number)`\n * `resetRange()`\n */\n\n\nfunction mixinAxisModelCommonMethods(Model) {\n zrUtil.mixin(Model, axisModelCommonMixin);\n}\n\nexports.createList = createList;\nexports.dataStack = dataStack;\nexports.createScale = createScale;\nexports.mixinAxisModelCommonMethods = mixinAxisModelCommonMethods;\n\n/***/ }),\n/* 1288 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar _number = __webpack_require__(8);\n\nvar parsePercent = _number.parsePercent;\n\nvar _dataStackHelper = __webpack_require__(71);\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n return axis.dim;\n}\n/**\n * @param {string} seriesType\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\n\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n // FIXME\n // Revert becuase it brings bar progressive bug.\n // The complete fix will be added in the next version.\n var width = api.getWidth();\n var height = api.getHeight();\n var lastStackCoords = {};\n var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n }));\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n // Check series coordinate, do layout for polar only\n if (seriesModel.coordinateSystem.type !== 'polar') {\n return;\n }\n\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n var valueAxis = polar.getOtherAxis(baseAxis);\n var cx = seriesModel.coordinateSystem.cx;\n var cy = seriesModel.coordinateSystem.cy;\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n var barMinAngle = seriesModel.get('barMinAngle') || 0;\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var stacked = isDimensionStacked(data, valueDim\n /*, baseDim*/\n );\n var valueAxisStart = valueAxis.getExtent()[0];\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n var value = data.get(valueDim, idx);\n var baseValue = data.get(baseDim, idx);\n\n if (isNaN(value)) {\n continue;\n }\n\n var sign = value >= 0 ? 'p' : 'n';\n var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in\n // stackResultDimension directly.\n // Only ordinal axis can be stacked.\n\n if (stacked) {\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n // Positive stack\n n: valueAxisStart // Negative stack\n\n };\n } // Should also consider #4243\n\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var r0;\n var r;\n var startAngle;\n var endAngle; // radial sector\n\n if (valueAxis.dim === 'radius') {\n var radiusSpan = valueAxis.dataToRadius(value) - valueAxisStart;\n var angle = baseAxis.dataToAngle(baseValue);\n\n if (Math.abs(radiusSpan) < barMinHeight) {\n radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n }\n\n r0 = baseCoord;\n r = baseCoord + radiusSpan;\n startAngle = angle - columnOffset;\n endAngle = startAngle - columnWidth;\n stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n } // tangential sector\n else {\n // angleAxis must be clamped.\n var angleSpan = valueAxis.dataToAngle(value, true) - valueAxisStart;\n var radius = baseAxis.dataToRadius(baseValue);\n\n if (Math.abs(angleSpan) < barMinAngle) {\n angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n }\n\n r0 = radius + columnOffset;\n r = r0 + columnWidth;\n startAngle = baseCoord;\n endAngle = baseCoord + angleSpan; // if the previous stack is at the end of the ring,\n // add a round to differentiate it from origin\n // var extent = angleAxis.getExtent();\n // var stackCoord = angle;\n // if (stackCoord === extent[0] && value > 0) {\n // stackCoord = extent[1];\n // }\n // else if (stackCoord === extent[1] && value < 0) {\n // stackCoord = extent[0];\n // }\n\n stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n }\n\n data.setItemLayout(idx, {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r,\n // Consider that positive angle is anti-clockwise,\n // while positive radian of sector is clockwise\n startAngle: -startAngle * Math.PI / 180,\n endAngle: -endAngle * Math.PI / 180\n });\n }\n }, this);\n}\n/**\n * Calculate bar width and offset for radial bar charts\n */\n\n\nfunction calRadialBar(barSeries, api) {\n // Columns info on each category axis. Key is polar name\n var columnsMap = {};\n zrUtil.each(barSeries, function (seriesModel, idx) {\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisExtent = baseAxis.getExtent();\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n var columnsOnAxis = columnsMap[getAxisKey(baseAxis)] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: '20%',\n gap: '30%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[getAxisKey(baseAxis)] = columnsOnAxis;\n var stackId = getSeriesStackId(seriesModel);\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n };\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n\n if (barWidth && !stacks[stackId].width) {\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n stacks[stackId].width = barWidth;\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n barGap != null && (columnsOnAxis.gap = barGap);\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n zrUtil.each(stacks, function (column, stack) {\n var maxWidth = column.maxWidth;\n\n if (maxWidth && maxWidth < autoWidth) {\n maxWidth = Math.min(maxWidth, remainedWidth);\n\n if (column.width) {\n maxWidth = Math.min(maxWidth, column.width);\n }\n\n remainedWidth -= maxWidth;\n column.width = maxWidth;\n autoWidthCount--;\n }\n }); // Recalculate width again\n\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n zrUtil.each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n zrUtil.each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n\nvar _default = barLayoutPolar;\nmodule.exports = _default;\n\n/***/ }),\n/* 1289 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar graphic = __webpack_require__(5);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PI = Math.PI;\n/**\n * @param {module:echarts/ExtensionAPI} api\n * @param {Object} [opts]\n * @param {string} [opts.text]\n * @param {string} [opts.color]\n * @param {string} [opts.textColor]\n * @return {module:zrender/Element}\n */\n\nfunction _default(api, opts) {\n opts = opts || {};\n zrUtil.defaults(opts, {\n text: 'loading',\n color: '#c23531',\n textColor: '#000',\n maskColor: 'rgba(255, 255, 255, 0.8)',\n zlevel: 0\n });\n var mask = new graphic.Rect({\n style: {\n fill: opts.maskColor\n },\n zlevel: opts.zlevel,\n z: 10000\n });\n var arc = new graphic.Arc({\n shape: {\n startAngle: -PI / 2,\n endAngle: -PI / 2 + 0.1,\n r: 10\n },\n style: {\n stroke: opts.color,\n lineCap: 'round',\n lineWidth: 5\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n var labelRect = new graphic.Rect({\n style: {\n fill: 'none',\n text: opts.text,\n textPosition: 'right',\n textDistance: 10,\n textFill: opts.textColor\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n arc.animateShape(true).when(1000, {\n endAngle: PI * 3 / 2\n }).start('circularInOut');\n arc.animateShape(true).when(1000, {\n startAngle: PI * 3 / 2\n }).delay(300).start('circularInOut');\n var group = new graphic.Group();\n group.add(arc);\n group.add(labelRect);\n group.add(mask); // Inject resize\n\n group.resize = function () {\n var cx = api.getWidth() / 2;\n var cy = api.getHeight() / 2;\n arc.setShape({\n cx: cx,\n cy: cy\n });\n var r = arc.shape.r;\n labelRect.setShape({\n x: cx - r,\n y: cy - r,\n width: r * 2,\n height: r * 2\n });\n mask.setShape({\n x: 0,\n y: 0,\n width: api.getWidth(),\n height: api.getHeight()\n });\n };\n\n group.resize();\n return group;\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1290 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar modelUtil = __webpack_require__(9);\n\nvar ComponentModel = __webpack_require__(29);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * ECharts option manager\n *\n * @module {echarts/model/OptionManager}\n */\nvar each = zrUtil.each;\nvar clone = zrUtil.clone;\nvar map = zrUtil.map;\nvar merge = zrUtil.merge;\nvar QUERY_REG = /^(min|max)?(.+)$/;\n/**\n * TERM EXPLANATIONS:\n *\n * [option]:\n *\n * An object that contains definitions of components. For example:\n * var option = {\n * title: {...},\n * legend: {...},\n * visualMap: {...},\n * series: [\n * {data: [...]},\n * {data: [...]},\n * ...\n * ]\n * };\n *\n * [rawOption]:\n *\n * An object input to echarts.setOption. 'rawOption' may be an\n * 'option', or may be an object contains multi-options. For example:\n * var option = {\n * baseOption: {\n * title: {...},\n * legend: {...},\n * series: [\n * {data: [...]},\n * {data: [...]},\n * ...\n * ]\n * },\n * timeline: {...},\n * options: [\n * {title: {...}, series: {data: [...]}},\n * {title: {...}, series: {data: [...]}},\n * ...\n * ],\n * media: [\n * {\n * query: {maxWidth: 320},\n * option: {series: {x: 20}, visualMap: {show: false}}\n * },\n * {\n * query: {minWidth: 320, maxWidth: 720},\n * option: {series: {x: 500}, visualMap: {show: true}}\n * },\n * {\n * option: {series: {x: 1200}, visualMap: {show: true}}\n * }\n * ]\n * };\n *\n * @alias module:echarts/model/OptionManager\n * @param {module:echarts/ExtensionAPI} api\n */\n\nfunction OptionManager(api) {\n /**\n * @private\n * @type {module:echarts/ExtensionAPI}\n */\n this._api = api;\n /**\n * @private\n * @type {Array.}\n */\n\n this._timelineOptions = [];\n /**\n * @private\n * @type {Array.}\n */\n\n this._mediaList = [];\n /**\n * @private\n * @type {Object}\n */\n\n this._mediaDefault;\n /**\n * -1, means default.\n * empty means no media.\n * @private\n * @type {Array.}\n */\n\n this._currentMediaIndices = [];\n /**\n * @private\n * @type {Object}\n */\n\n this._optionBackup;\n /**\n * @private\n * @type {Object}\n */\n\n this._newBaseOption;\n} // timeline.notMerge is not supported in ec3. Firstly there is rearly\n// case that notMerge is needed. Secondly supporting 'notMerge' requires\n// rawOption cloned and backuped when timeline changed, which does no\n// good to performance. What's more, that both timeline and setOption\n// method supply 'notMerge' brings complex and some problems.\n// Consider this case:\n// (step1) chart.setOption({timeline: {notMerge: false}, ...}, false);\n// (step2) chart.setOption({timeline: {notMerge: true}, ...}, false);\n\n\nOptionManager.prototype = {\n constructor: OptionManager,\n\n /**\n * @public\n * @param {Object} rawOption Raw option.\n * @param {module:echarts/model/Global} ecModel\n * @param {Array.} optionPreprocessorFuncs\n * @return {Object} Init option\n */\n setOption: function (rawOption, optionPreprocessorFuncs) {\n if (rawOption) {\n // That set dat primitive is dangerous if user reuse the data when setOption again.\n zrUtil.each(modelUtil.normalizeToArray(rawOption.series), function (series) {\n series && series.data && zrUtil.isTypedArray(series.data) && zrUtil.setAsPrimitive(series.data);\n });\n } // Caution: some series modify option data, if do not clone,\n // it should ensure that the repeat modify correctly\n // (create a new object when modify itself).\n\n\n rawOption = clone(rawOption, true); // FIXME\n // 如果 timeline options 或者 media 中设置了某个属性,而baseOption中没有设置,则进行警告。\n\n var oldOptionBackup = this._optionBackup;\n var newParsedOption = parseRawOption.call(this, rawOption, optionPreprocessorFuncs, !oldOptionBackup);\n this._newBaseOption = newParsedOption.baseOption; // For setOption at second time (using merge mode);\n\n if (oldOptionBackup) {\n // Only baseOption can be merged.\n mergeOption(oldOptionBackup.baseOption, newParsedOption.baseOption); // For simplicity, timeline options and media options do not support merge,\n // that is, if you `setOption` twice and both has timeline options, the latter\n // timeline opitons will not be merged to the formers, but just substitude them.\n\n if (newParsedOption.timelineOptions.length) {\n oldOptionBackup.timelineOptions = newParsedOption.timelineOptions;\n }\n\n if (newParsedOption.mediaList.length) {\n oldOptionBackup.mediaList = newParsedOption.mediaList;\n }\n\n if (newParsedOption.mediaDefault) {\n oldOptionBackup.mediaDefault = newParsedOption.mediaDefault;\n }\n } else {\n this._optionBackup = newParsedOption;\n }\n },\n\n /**\n * @param {boolean} isRecreate\n * @return {Object}\n */\n mountOption: function (isRecreate) {\n var optionBackup = this._optionBackup; // TODO\n // 如果没有reset功能则不clone。\n\n this._timelineOptions = map(optionBackup.timelineOptions, clone);\n this._mediaList = map(optionBackup.mediaList, clone);\n this._mediaDefault = clone(optionBackup.mediaDefault);\n this._currentMediaIndices = [];\n return clone(isRecreate // this._optionBackup.baseOption, which is created at the first `setOption`\n // called, and is merged into every new option by inner method `mergeOption`\n // each time `setOption` called, can be only used in `isRecreate`, because\n // its reliability is under suspicion. In other cases option merge is\n // performed by `model.mergeOption`.\n ? optionBackup.baseOption : this._newBaseOption);\n },\n\n /**\n * @param {module:echarts/model/Global} ecModel\n * @return {Object}\n */\n getTimelineOption: function (ecModel) {\n var option;\n var timelineOptions = this._timelineOptions;\n\n if (timelineOptions.length) {\n // getTimelineOption can only be called after ecModel inited,\n // so we can get currentIndex from timelineModel.\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel) {\n option = clone(timelineOptions[timelineModel.getCurrentIndex()], true);\n }\n }\n\n return option;\n },\n\n /**\n * @param {module:echarts/model/Global} ecModel\n * @return {Array.}\n */\n getMediaOption: function (ecModel) {\n var ecWidth = this._api.getWidth();\n\n var ecHeight = this._api.getHeight();\n\n var mediaList = this._mediaList;\n var mediaDefault = this._mediaDefault;\n var indices = [];\n var result = []; // No media defined.\n\n if (!mediaList.length && !mediaDefault) {\n return result;\n } // Multi media may be applied, the latter defined media has higher priority.\n\n\n for (var i = 0, len = mediaList.length; i < len; i++) {\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n indices.push(i);\n }\n } // FIXME\n // 是否mediaDefault应该强制用户设置,否则可能修改不能回归。\n\n\n if (!indices.length && mediaDefault) {\n indices = [-1];\n }\n\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n result = map(indices, function (index) {\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n });\n } // Otherwise return nothing.\n\n\n this._currentMediaIndices = indices;\n return result;\n }\n};\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n var timelineOptions = [];\n var mediaList = [];\n var mediaDefault;\n var baseOption; // Compatible with ec2.\n\n var timelineOpt = rawOption.timeline;\n\n if (rawOption.baseOption) {\n baseOption = rawOption.baseOption;\n } // For timeline\n\n\n if (timelineOpt || rawOption.options) {\n baseOption = baseOption || {};\n timelineOptions = (rawOption.options || []).slice();\n } // For media query\n\n\n if (rawOption.media) {\n baseOption = baseOption || {};\n var media = rawOption.media;\n each(media, function (singleMedia) {\n if (singleMedia && singleMedia.option) {\n if (singleMedia.query) {\n mediaList.push(singleMedia);\n } else if (!mediaDefault) {\n // Use the first media default.\n mediaDefault = singleMedia;\n }\n }\n });\n } // For normal option\n\n\n if (!baseOption) {\n baseOption = rawOption;\n } // Set timelineOpt to baseOption in ec3,\n // which is convenient for merge option.\n\n\n if (!baseOption.timeline) {\n baseOption.timeline = timelineOpt;\n } // Preprocess.\n\n\n each([baseOption].concat(timelineOptions).concat(zrUtil.map(mediaList, function (media) {\n return media.option;\n })), function (option) {\n each(optionPreprocessorFuncs, function (preProcess) {\n preProcess(option, isNew);\n });\n });\n return {\n baseOption: baseOption,\n timelineOptions: timelineOptions,\n mediaDefault: mediaDefault,\n mediaList: mediaList\n };\n}\n/**\n * @see \n * Support: width, height, aspectRatio\n * Can use max or min as prefix.\n */\n\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n var realMap = {\n width: ecWidth,\n height: ecHeight,\n aspectratio: ecWidth / ecHeight // lowser case for convenientce.\n\n };\n var applicatable = true;\n zrUtil.each(query, function (value, attr) {\n var matched = attr.match(QUERY_REG);\n\n if (!matched || !matched[1] || !matched[2]) {\n return;\n }\n\n var operator = matched[1];\n var realAttr = matched[2].toLowerCase();\n\n if (!compare(realMap[realAttr], value, operator)) {\n applicatable = false;\n }\n });\n return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n if (operator === 'min') {\n return real >= expect;\n } else if (operator === 'max') {\n return real <= expect;\n } else {\n // Equals\n return real === expect;\n }\n}\n\nfunction indicesEquals(indices1, indices2) {\n // indices is always order by asc and has only finite number.\n return indices1.join(',') === indices2.join(',');\n}\n/**\n * Consider case:\n * `chart.setOption(opt1);`\n * Then user do some interaction like dataZoom, dataView changing.\n * `chart.setOption(opt2);`\n * Then user press 'reset button' in toolbox.\n *\n * After doing that all of the interaction effects should be reset, the\n * chart should be the same as the result of invoke\n * `chart.setOption(opt1); chart.setOption(opt2);`.\n *\n * Although it is not able ensure that\n * `chart.setOption(opt1); chart.setOption(opt2);` is equivalents to\n * `chart.setOption(merge(opt1, opt2));` exactly,\n * this might be the only simple way to implement that feature.\n *\n * MEMO: We've considered some other approaches:\n * 1. Each model handle its self restoration but not uniform treatment.\n * (Too complex in logic and error-prone)\n * 2. Use a shadow ecModel. (Performace expensive)\n */\n\n\nfunction mergeOption(oldOption, newOption) {\n newOption = newOption || {};\n each(newOption, function (newCptOpt, mainType) {\n if (newCptOpt == null) {\n return;\n }\n\n var oldCptOpt = oldOption[mainType];\n\n if (!ComponentModel.hasClass(mainType)) {\n oldOption[mainType] = merge(oldCptOpt, newCptOpt, true);\n } else {\n newCptOpt = modelUtil.normalizeToArray(newCptOpt);\n oldCptOpt = modelUtil.normalizeToArray(oldCptOpt);\n var mapResult = modelUtil.mappingToExists(oldCptOpt, newCptOpt);\n oldOption[mainType] = map(mapResult, function (item) {\n return item.option && item.exist ? merge(item.exist, item.option, true) : item.exist || item.option;\n });\n }\n });\n}\n\nvar _default = OptionManager;\nmodule.exports = _default;\n\n/***/ }),\n/* 1291 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar platform = ''; // Navigator not exists in node\n\nif (typeof navigator !== 'undefined') {\n platform = navigator.platform || '';\n}\n\nvar _default = {\n // backgroundColor: 'rgba(0,0,0,0)',\n // https://dribbble.com/shots/1065960-Infographic-Pie-chart-visualization\n // color: ['#5793f3', '#d14a61', '#fd9c35', '#675bba', '#fec42c', '#dd4444', '#d4df5a', '#cd4870'],\n // Light colors:\n // color: ['#bcd3bb', '#e88f70', '#edc1a5', '#9dc5c8', '#e1e8c8', '#7b7c68', '#e5b5b5', '#f0b489', '#928ea8', '#bda29a'],\n // color: ['#cc5664', '#9bd6ec', '#ea946e', '#8acaaa', '#f1ec64', '#ee8686', '#a48dc1', '#5da6bc', '#b9dcae'],\n // Dark colors:\n color: ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a', '#6e7074', '#546570', '#c4ccd3'],\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n // If xAxis and yAxis declared, grid is created by default.\n // grid: {},\n textStyle: {\n // color: '#000',\n // decoration: 'none',\n // PENDING\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n // fontFamily: 'Arial, Verdana, sans-serif',\n fontSize: 12,\n fontStyle: 'normal',\n fontWeight: 'normal'\n },\n // http://blogs.adobe.com/webplatform/2014/02/24/using-blend-modes-in-html-canvas/\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n // Default is source-over\n blendMode: null,\n animation: 'auto',\n animationDuration: 1000,\n animationDurationUpdate: 300,\n animationEasing: 'exponentialOut',\n animationEasingUpdate: 'cubicOut',\n animationThreshold: 2000,\n // Configuration for progressive/incremental rendering\n progressiveThreshold: 3000,\n progressive: 400,\n // Threshold of if use single hover layer to optimize.\n // It is recommended that `hoverLayerThreshold` is equivalent to or less than\n // `progressiveThreshold`, otherwise hover will cause restart of progressive,\n // which is unexpected.\n // see example .\n hoverLayerThreshold: 3000,\n // See: module:echarts/scale/Time\n useUTC: false\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1292 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar makeStyleMapper = __webpack_require__(119);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar getAreaStyle = makeStyleMapper([['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']]);\nvar _default = {\n getAreaStyle: function (excludes, includes) {\n return getAreaStyle(this, excludes, includes);\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1293 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = {\n getBoxLayoutParams: function () {\n return {\n left: this.get('left'),\n top: this.get('top'),\n right: this.get('right'),\n bottom: this.get('bottom'),\n width: this.get('width'),\n height: this.get('height')\n };\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1294 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar makeStyleMapper = __webpack_require__(119);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar getItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['textPosition'], ['textAlign']]);\nvar _default = {\n getItemStyle: function (excludes, includes) {\n var style = getItemStyle(this, excludes, includes);\n var lineDash = this.getBorderLineDash();\n lineDash && (style.lineDash = lineDash);\n return style;\n },\n getBorderLineDash: function () {\n var lineType = this.get('borderType');\n return lineType === 'solid' || lineType == null ? null : lineType === 'dashed' ? [5, 5] : [1, 1];\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1295 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar makeStyleMapper = __webpack_require__(119);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar getLineStyle = makeStyleMapper([['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\nvar _default = {\n getLineStyle: function (excludes) {\n var style = getLineStyle(this, excludes);\n var lineDash = this.getLineDash(style.lineWidth);\n lineDash && (style.lineDash = lineDash);\n return style;\n },\n getLineDash: function (lineWidth) {\n if (lineWidth == null) {\n lineWidth = 1;\n }\n\n var lineType = this.get('type');\n var dotSize = Math.max(lineWidth, 2);\n var dashSize = lineWidth * 4;\n return lineType === 'solid' || lineType == null ? null : lineType === 'dashed' ? [dashSize, dashSize] : [dotSize, dotSize];\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1296 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar textContain = __webpack_require__(59);\n\nvar graphicUtil = __webpack_require__(5);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PATH_COLOR = ['textStyle', 'color'];\nvar _default = {\n /**\n * Get color property or get color from option.textStyle.color\n * @param {boolean} [isEmphasis]\n * @return {string}\n */\n getTextColor: function (isEmphasis) {\n var ecModel = this.ecModel;\n return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n },\n\n /**\n * Create font string from fontStyle, fontWeight, fontSize, fontFamily\n * @return {string}\n */\n getFont: function () {\n return graphicUtil.getFont({\n fontStyle: this.getShallow('fontStyle'),\n fontWeight: this.getShallow('fontWeight'),\n fontSize: this.getShallow('fontSize'),\n fontFamily: this.getShallow('fontFamily')\n }, this.ecModel);\n },\n getTextRect: function (text) {\n return textContain.getBoundingRect(text, this.getFont(), this.getShallow('align'), this.getShallow('verticalAlign') || this.getShallow('baseline'), this.getShallow('padding'), this.getShallow('lineHeight'), this.getShallow('rich'), this.getShallow('truncateText'));\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1297 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = __webpack_require__(0);\n\nvar each = _util.each;\nvar isArray = _util.isArray;\nvar isObject = _util.isObject;\n\nvar compatStyle = __webpack_require__(1298);\n\nvar _model = __webpack_require__(9);\n\nvar normalizeToArray = _model.normalizeToArray;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Compatitable with 2.0\nfunction get(opt, path) {\n path = path.split(',');\n var obj = opt;\n\n for (var i = 0; i < path.length; i++) {\n obj = obj && obj[path[i]];\n\n if (obj == null) {\n break;\n }\n }\n\n return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n path = path.split(',');\n var obj = opt;\n var key;\n\n for (var i = 0; i < path.length - 1; i++) {\n key = path[i];\n\n if (obj[key] == null) {\n obj[key] = {};\n }\n\n obj = obj[key];\n }\n\n if (overwrite || obj[path[i]] == null) {\n obj[path[i]] = val;\n }\n}\n\nfunction compatLayoutProperties(option) {\n each(LAYOUT_PROPERTIES, function (prop) {\n if (prop[0] in option && !(prop[1] in option)) {\n option[prop[1]] = option[prop[0]];\n }\n });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\n\nfunction _default(option, isTheme) {\n compatStyle(option, isTheme); // Make sure series array for model initialization.\n\n option.series = normalizeToArray(option.series);\n each(option.series, function (seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n var seriesType = seriesOpt.type;\n\n if (seriesType === 'pie' || seriesType === 'gauge') {\n if (seriesOpt.clockWise != null) {\n seriesOpt.clockwise = seriesOpt.clockWise;\n }\n }\n\n if (seriesType === 'gauge') {\n var pointerColor = get(seriesOpt, 'pointer.color');\n pointerColor != null && set(seriesOpt, 'itemStyle.normal.color', pointerColor);\n }\n\n compatLayoutProperties(seriesOpt);\n }); // dataRange has changed to visualMap\n\n if (option.dataRange) {\n option.visualMap = option.dataRange;\n }\n\n each(COMPATITABLE_COMPONENTS, function (componentName) {\n var options = option[componentName];\n\n if (options) {\n if (!isArray(options)) {\n options = [options];\n }\n\n each(options, function (option) {\n compatLayoutProperties(option);\n });\n }\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1298 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar modelUtil = __webpack_require__(9);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n var itemStyleOpt = opt && opt.itemStyle;\n\n if (!itemStyleOpt) {\n return;\n }\n\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n var styleName = POSSIBLE_STYLES[i];\n var normalItemStyleOpt = itemStyleOpt.normal;\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].normal) {\n opt[styleName].normal = normalItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n }\n\n normalItemStyleOpt[styleName] = null;\n }\n\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].emphasis) {\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n }\n\n emphasisItemStyleOpt[styleName] = null;\n }\n }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n var normalOpt = opt[optType].normal;\n var emphasisOpt = opt[optType].emphasis;\n\n if (normalOpt) {\n // Timeline controlStyle has other properties besides normal and emphasis\n if (useExtend) {\n opt[optType].normal = opt[optType].emphasis = null;\n zrUtil.defaults(opt[optType], normalOpt);\n } else {\n opt[optType] = normalOpt;\n }\n }\n\n if (emphasisOpt) {\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[optType] = emphasisOpt;\n }\n }\n}\n\nfunction removeEC3NormalStatus(opt) {\n convertNormalEmphasis(opt, 'itemStyle');\n convertNormalEmphasis(opt, 'lineStyle');\n convertNormalEmphasis(opt, 'areaStyle');\n convertNormalEmphasis(opt, 'label');\n convertNormalEmphasis(opt, 'labelLine'); // treemap\n\n convertNormalEmphasis(opt, 'upperLabel'); // graph\n\n convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n // Check whether is not object (string\\null\\undefined ...)\n var labelOptSingle = isObject(opt) && opt[propName];\n var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n if (textStyle) {\n for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n var propName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n if (textStyle.hasOwnProperty(propName)) {\n labelOptSingle[propName] = textStyle[propName];\n }\n }\n }\n}\n\nfunction compatEC3CommonStyles(opt) {\n if (opt) {\n removeEC3NormalStatus(opt);\n compatTextStyle(opt, 'label');\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n }\n}\n\nfunction processSeries(seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n compatEC2ItemStyle(seriesOpt);\n removeEC3NormalStatus(seriesOpt);\n compatTextStyle(seriesOpt, 'label'); // treemap\n\n compatTextStyle(seriesOpt, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt, 'edgeLabel');\n\n if (seriesOpt.emphasis) {\n compatTextStyle(seriesOpt.emphasis, 'label'); // treemap\n\n compatTextStyle(seriesOpt.emphasis, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n }\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint) {\n compatEC2ItemStyle(markPoint);\n compatEC3CommonStyles(markPoint);\n }\n\n var markLine = seriesOpt.markLine;\n\n if (markLine) {\n compatEC2ItemStyle(markLine);\n compatEC3CommonStyles(markLine);\n }\n\n var markArea = seriesOpt.markArea;\n\n if (markArea) {\n compatEC3CommonStyles(markArea);\n }\n\n var data = seriesOpt.data; // Break with ec3: if `setOption` again, there may be no `type` in option,\n // then the backward compat based on option type will not be performed.\n\n if (seriesOpt.type === 'graph') {\n data = data || seriesOpt.nodes;\n var edgeData = seriesOpt.links || seriesOpt.edges;\n\n if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n for (var i = 0; i < edgeData.length; i++) {\n compatEC3CommonStyles(edgeData[i]);\n }\n }\n\n zrUtil.each(seriesOpt.categories, function (opt) {\n removeEC3NormalStatus(opt);\n });\n }\n\n if (data && !zrUtil.isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatEC3CommonStyles(data[i]);\n }\n } // mark point data\n\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint && markPoint.data) {\n var mpData = markPoint.data;\n\n for (var i = 0; i < mpData.length; i++) {\n compatEC3CommonStyles(mpData[i]);\n }\n } // mark line data\n\n\n var markLine = seriesOpt.markLine;\n\n if (markLine && markLine.data) {\n var mlData = markLine.data;\n\n for (var i = 0; i < mlData.length; i++) {\n if (zrUtil.isArray(mlData[i])) {\n compatEC3CommonStyles(mlData[i][0]);\n compatEC3CommonStyles(mlData[i][1]);\n } else {\n compatEC3CommonStyles(mlData[i]);\n }\n }\n } // Series\n\n\n if (seriesOpt.type === 'gauge') {\n compatTextStyle(seriesOpt, 'axisLabel');\n compatTextStyle(seriesOpt, 'title');\n compatTextStyle(seriesOpt, 'detail');\n } else if (seriesOpt.type === 'treemap') {\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n zrUtil.each(seriesOpt.levels, function (opt) {\n removeEC3NormalStatus(opt);\n });\n } else if (seriesOpt.type === 'tree') {\n removeEC3NormalStatus(seriesOpt.leaves);\n } // sunburst starts from ec4, so it does not need to compat levels.\n\n}\n\nfunction toArr(o) {\n return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nfunction _default(option, isTheme) {\n each(toArr(option.series), function (seriesOpt) {\n isObject(seriesOpt) && processSeries(seriesOpt);\n });\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n each(axes, function (axisName) {\n each(toArr(option[axisName]), function (axisOpt) {\n if (axisOpt) {\n compatTextStyle(axisOpt, 'axisLabel');\n compatTextStyle(axisOpt.axisPointer, 'label');\n }\n });\n });\n each(toArr(option.parallel), function (parallelOpt) {\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n compatTextStyle(parallelAxisDefault, 'axisLabel');\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n });\n each(toArr(option.calendar), function (calendarOpt) {\n convertNormalEmphasis(calendarOpt, 'itemStyle');\n compatTextStyle(calendarOpt, 'dayLabel');\n compatTextStyle(calendarOpt, 'monthLabel');\n compatTextStyle(calendarOpt, 'yearLabel');\n }); // radar.name.textStyle\n\n each(toArr(option.radar), function (radarOpt) {\n compatTextStyle(radarOpt, 'name');\n });\n each(toArr(option.geo), function (geoOpt) {\n if (isObject(geoOpt)) {\n compatEC3CommonStyles(geoOpt);\n each(toArr(geoOpt.regions), function (regionObj) {\n compatEC3CommonStyles(regionObj);\n });\n }\n });\n each(toArr(option.timeline), function (timelineOpt) {\n compatEC3CommonStyles(timelineOpt);\n convertNormalEmphasis(timelineOpt, 'label');\n convertNormalEmphasis(timelineOpt, 'itemStyle');\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n var data = timelineOpt.data;\n zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n if (zrUtil.isObject(item)) {\n convertNormalEmphasis(item, 'label');\n convertNormalEmphasis(item, 'itemStyle');\n }\n });\n });\n each(toArr(option.toolbox), function (toolboxOpt) {\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\n each(toolboxOpt.feature, function (featureOpt) {\n convertNormalEmphasis(featureOpt, 'iconStyle');\n });\n });\n compatTextStyle(toObj(option.axisPointer), 'label');\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1299 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar samplers = {\n average: function (frame) {\n var sum = 0;\n var count = 0;\n\n for (var i = 0; i < frame.length; i++) {\n if (!isNaN(frame[i])) {\n sum += frame[i];\n count++;\n }\n } // Return NaN if count is 0\n\n\n return count === 0 ? NaN : sum / count;\n },\n sum: function (frame) {\n var sum = 0;\n\n for (var i = 0; i < frame.length; i++) {\n // Ignore NaN\n sum += frame[i] || 0;\n }\n\n return sum;\n },\n max: function (frame) {\n var max = -Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] > max && (max = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(max) ? max : NaN;\n },\n min: function (frame) {\n var min = Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] < min && (min = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(min) ? min : NaN;\n },\n // TODO\n // Median\n nearest: function (frame) {\n return frame[0];\n }\n};\n\nvar indexSampler = function (frame, value) {\n return Math.round(frame.length / 2);\n};\n\nfunction _default(seriesType) {\n return {\n seriesType: seriesType,\n modifyOutputEnd: true,\n reset: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var sampling = seriesModel.get('sampling');\n var coordSys = seriesModel.coordinateSystem; // Only cartesian2d support down sampling\n\n if (coordSys.type === 'cartesian2d' && sampling) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var extent = baseAxis.getExtent(); // Coordinste system has been resized\n\n var size = extent[1] - extent[0];\n var rate = Math.round(data.count() / size);\n\n if (rate > 1) {\n var sampler;\n\n if (typeof sampling === 'string') {\n sampler = samplers[sampling];\n } else if (typeof sampling === 'function') {\n sampler = sampling;\n }\n\n if (sampler) {\n // Only support sample the first dim mapped from value axis.\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n }\n }\n }\n }\n };\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1300 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = __webpack_require__(0);\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// (1) [Caution]: the logic is correct based on the premises:\n// data processing stage is blocked in stream.\n// See \n// (2) Only register once when import repeatly.\n// Should be executed before after series filtered and before stack calculation.\nfunction _default(ecModel) {\n var stackInfoMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var stack = seriesModel.get('stack'); // Compatibal: when `stack` is set as '', do not stack.\n\n if (stack) {\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n var data = seriesModel.getData();\n var stackInfo = {\n // Used for calculate axis extent automatically.\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n stackedDimension: data.getCalculationInfo('stackedDimension'),\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n data: data,\n seriesModel: seriesModel\n }; // If stacked on axis that do not support data stack.\n\n if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n return;\n }\n\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n stackInfoList.push(stackInfo);\n }\n });\n stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n each(stackInfoList, function (targetStackInfo, idxInStack) {\n var resultVal = [];\n var resultNaN = [NaN, NaN];\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n var targetData = targetStackInfo.data;\n var isStackedByIndex = targetStackInfo.isStackedByIndex; // Should not write on raw data, because stack series model list changes\n // depending on legend selection.\n\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex); // Consider `connectNulls` of line area, if value is NaN, stackedOver\n // should also be NaN, to draw a appropriate belt area.\n\n if (isNaN(sum)) {\n return resultNaN;\n }\n\n var byValue;\n var stackedDataRawIndex;\n\n if (isStackedByIndex) {\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n } else {\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n } // If stackOver is NaN, chart view will render point on value start.\n\n\n var stackedOver = NaN;\n\n for (var j = idxInStack - 1; j >= 0; j--) {\n var stackInfo = stackInfoList[j]; // Has been optimized by inverted indices on `stackedByDimension`.\n\n if (!isStackedByIndex) {\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n }\n\n if (stackedDataRawIndex >= 0) {\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex); // Considering positive stack, negative stack and empty data\n\n if (sum >= 0 && val > 0 || // Positive stack\n sum <= 0 && val < 0 // Negative stack\n ) {\n sum += val;\n stackedOver = val;\n break;\n }\n }\n }\n\n resultVal[0] = sum;\n resultVal[1] = stackedOver;\n return resultVal;\n });\n targetData.hostModel.setData(newData); // Update for consequent calculation\n\n targetStackInfo.data = newData;\n });\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1301 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Scale = __webpack_require__(182);\n\nvar numberUtil = __webpack_require__(8);\n\nvar IntervalScale = __webpack_require__(181);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Log scale\n * @module echarts/scale/Log\n */\n// Use some method of IntervalScale\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\nvar LogScale = Scale.extend({\n type: 'log',\n base: 10,\n $constructor: function () {\n Scale.apply(this, arguments);\n this._originalScale = new IntervalScale();\n },\n\n /**\n * @return {Array.}\n */\n getTicks: function () {\n var originalScale = this._originalScale;\n var extent = this._extent;\n var originalExtent = originalScale.getExtent();\n return zrUtil.map(intervalScaleProto.getTicks.call(this), function (val) {\n var powVal = numberUtil.round(mathPow(this.base, val)); // Fix #4158\n\n powVal = val === extent[0] && originalScale.__fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n powVal = val === extent[1] && originalScale.__fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n return powVal;\n }, this);\n },\n\n /**\n * @param {number} val\n * @return {string}\n */\n getLabel: intervalScaleProto.getLabel,\n\n /**\n * @param {number} val\n * @return {number}\n */\n scale: function (val) {\n val = scaleProto.scale.call(this, val);\n return mathPow(this.base, val);\n },\n\n /**\n * @param {number} start\n * @param {number} end\n */\n setExtent: function (start, end) {\n var base = this.base;\n start = mathLog(start) / mathLog(base);\n end = mathLog(end) / mathLog(base);\n intervalScaleProto.setExtent.call(this, start, end);\n },\n\n /**\n * @return {number} end\n */\n getExtent: function () {\n var base = this.base;\n var extent = scaleProto.getExtent.call(this);\n extent[0] = mathPow(base, extent[0]);\n extent[1] = mathPow(base, extent[1]); // Fix #4158\n\n var originalScale = this._originalScale;\n var originalExtent = originalScale.getExtent();\n originalScale.__fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n originalScale.__fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n return extent;\n },\n\n /**\n * @param {Array.} extent\n */\n unionExtent: function (extent) {\n this._originalScale.unionExtent(extent);\n\n var base = this.base;\n extent[0] = mathLog(extent[0]) / mathLog(base);\n extent[1] = mathLog(extent[1]) / mathLog(base);\n scaleProto.unionExtent.call(this, extent);\n },\n\n /**\n * @override\n */\n unionExtentFromData: function (data, dim) {\n // TODO\n // filter value that <= 0\n this.unionExtent(data.getApproximateExtent(dim));\n },\n\n /**\n * Update interval and extent of intervals for nice ticks\n * @param {number} [approxTickNum = 10] Given approx tick number\n */\n niceTicks: function (approxTickNum) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (span === Infinity || span <= 0) {\n return;\n }\n\n var interval = numberUtil.quantity(span);\n var err = approxTickNum / span * interval; // Filter ticks to get closer to the desired count.\n\n if (err <= 0.5) {\n interval *= 10;\n } // Interval should be integer\n\n\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n interval *= 10;\n }\n\n var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n this._interval = interval;\n this._niceExtent = niceExtent;\n },\n\n /**\n * Nice extent.\n * @override\n */\n niceExtent: function (opt) {\n intervalScaleProto.niceExtent.call(this, opt);\n var originalScale = this._originalScale;\n originalScale.__fixMin = opt.fixMin;\n originalScale.__fixMax = opt.fixMax;\n }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n LogScale.prototype[methodName] = function (val) {\n val = mathLog(val) / mathLog(this.base);\n return scaleProto[methodName].call(this, val);\n };\n});\n\nLogScale.create = function () {\n return new LogScale();\n};\n\nfunction fixRoundingError(val, originalVal) {\n return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nvar _default = LogScale;\nmodule.exports = _default;\n\n/***/ }),\n/* 1302 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar Scale = __webpack_require__(182);\n\nvar OrdinalMeta = __webpack_require__(400);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Linear continuous scale\n * @module echarts/coord/scale/Ordinal\n *\n * http://en.wikipedia.org/wiki/Level_of_measurement\n */\n// FIXME only one data\nvar scaleProto = Scale.prototype;\nvar OrdinalScale = Scale.extend({\n type: 'ordinal',\n\n /**\n * @param {module:echarts/data/OrdianlMeta|Array.} ordinalMeta\n */\n init: function (ordinalMeta, extent) {\n // Caution: Should not use instanceof, consider ec-extensions using\n // import approach to get OrdinalMeta class.\n if (!ordinalMeta || zrUtil.isArray(ordinalMeta)) {\n ordinalMeta = new OrdinalMeta({\n categories: ordinalMeta\n });\n }\n\n this._ordinalMeta = ordinalMeta;\n this._extent = extent || [0, ordinalMeta.categories.length - 1];\n },\n parse: function (val) {\n return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) // val might be float.\n : Math.round(val);\n },\n contain: function (rank) {\n rank = this.parse(rank);\n return scaleProto.contain.call(this, rank) && this._ordinalMeta.categories[rank] != null;\n },\n\n /**\n * Normalize given rank or name to linear [0, 1]\n * @param {number|string} [val]\n * @return {number}\n */\n normalize: function (val) {\n return scaleProto.normalize.call(this, this.parse(val));\n },\n scale: function (val) {\n return Math.round(scaleProto.scale.call(this, val));\n },\n\n /**\n * @return {Array}\n */\n getTicks: function () {\n var ticks = [];\n var extent = this._extent;\n var rank = extent[0];\n\n while (rank <= extent[1]) {\n ticks.push(rank);\n rank++;\n }\n\n return ticks;\n },\n\n /**\n * Get item on rank n\n * @param {number} n\n * @return {string}\n */\n getLabel: function (n) {\n if (!this.isBlank()) {\n // Note that if no data, ordinalMeta.categories is an empty array.\n return this._ordinalMeta.categories[n];\n }\n },\n\n /**\n * @return {number}\n */\n count: function () {\n return this._extent[1] - this._extent[0] + 1;\n },\n\n /**\n * @override\n */\n unionExtentFromData: function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n },\n getOrdinalMeta: function () {\n return this._ordinalMeta;\n },\n niceTicks: zrUtil.noop,\n niceExtent: zrUtil.noop\n});\n/**\n * @return {module:echarts/scale/Time}\n */\n\nOrdinalScale.create = function () {\n return new OrdinalScale();\n};\n\nvar _default = OrdinalScale;\nmodule.exports = _default;\n\n/***/ }),\n/* 1303 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar numberUtil = __webpack_require__(8);\n\nvar formatUtil = __webpack_require__(19);\n\nvar scaleHelper = __webpack_require__(407);\n\nvar IntervalScale = __webpack_require__(181);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* The \"scaleLevels\" was originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment on the definition of \"scaleLevels\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\n// [About UTC and local time zone]:\n// In most cases, `number.parseDate` will treat input data string as local time\n// (except time zone is specified in time string). And `format.formateTime` returns\n// local time by default. option.useUTC is false by default. This design have\n// concidered these common case:\n// (1) Time that is persistent in server is in UTC, but it is needed to be diplayed\n// in local time by default.\n// (2) By default, the input data string (e.g., '2011-01-02') should be displayed\n// as its original time, without any time difference.\nvar intervalScaleProto = IntervalScale.prototype;\nvar mathCeil = Math.ceil;\nvar mathFloor = Math.floor;\nvar ONE_SECOND = 1000;\nvar ONE_MINUTE = ONE_SECOND * 60;\nvar ONE_HOUR = ONE_MINUTE * 60;\nvar ONE_DAY = ONE_HOUR * 24; // FIXME 公用?\n\nvar bisect = function (a, x, lo, hi) {\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n\n if (a[mid][1] < x) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n\n return lo;\n};\n/**\n * @alias module:echarts/coord/scale/Time\n * @constructor\n */\n\n\nvar TimeScale = IntervalScale.extend({\n type: 'time',\n\n /**\n * @override\n */\n getLabel: function (val) {\n var stepLvl = this._stepLvl;\n var date = new Date(val);\n return formatUtil.formatTime(stepLvl[0], date, this.getSetting('useUTC'));\n },\n\n /**\n * @override\n */\n niceExtent: function (opt) {\n var extent = this._extent; // If extent start and end are same, expand them\n\n if (extent[0] === extent[1]) {\n // Expand extent\n extent[0] -= ONE_DAY;\n extent[1] += ONE_DAY;\n } // If there are no data and extent are [Infinity, -Infinity]\n\n\n if (extent[1] === -Infinity && extent[0] === Infinity) {\n var d = new Date();\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n extent[0] = extent[1] - ONE_DAY;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent;\n\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = numberUtil.round(mathFloor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = numberUtil.round(mathCeil(extent[1] / interval) * interval);\n }\n },\n\n /**\n * @override\n */\n niceTicks: function (approxTickNum, minInterval, maxInterval) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n var approxInterval = span / approxTickNum;\n\n if (minInterval != null && approxInterval < minInterval) {\n approxInterval = minInterval;\n }\n\n if (maxInterval != null && approxInterval > maxInterval) {\n approxInterval = maxInterval;\n }\n\n var scaleLevelsLen = scaleLevels.length;\n var idx = bisect(scaleLevels, approxInterval, 0, scaleLevelsLen);\n var level = scaleLevels[Math.min(idx, scaleLevelsLen - 1)];\n var interval = level[1]; // Same with interval scale if span is much larger than 1 year\n\n if (level[0] === 'year') {\n var yearSpan = span / interval; // From \"Nice Numbers for Graph Labels\" of Graphic Gems\n // var niceYearSpan = numberUtil.nice(yearSpan, false);\n\n var yearStep = numberUtil.nice(yearSpan / approxTickNum, true);\n interval *= yearStep;\n }\n\n var timezoneOffset = this.getSetting('useUTC') ? 0 : new Date(+extent[0] || +extent[1]).getTimezoneOffset() * 60 * 1000;\n var niceExtent = [Math.round(mathCeil((extent[0] - timezoneOffset) / interval) * interval + timezoneOffset), Math.round(mathFloor((extent[1] - timezoneOffset) / interval) * interval + timezoneOffset)];\n scaleHelper.fixExtent(niceExtent, extent);\n this._stepLvl = level; // Interval will be used in getTicks\n\n this._interval = interval;\n this._niceExtent = niceExtent;\n },\n parse: function (val) {\n // val might be float.\n return +numberUtil.parseDate(val);\n }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n TimeScale.prototype[methodName] = function (val) {\n return intervalScaleProto[methodName].call(this, this.parse(val));\n };\n});\n/**\n * This implementation was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\nvar scaleLevels = [// Format interval\n['hh:mm:ss', ONE_SECOND], // 1s\n['hh:mm:ss', ONE_SECOND * 5], // 5s\n['hh:mm:ss', ONE_SECOND * 10], // 10s\n['hh:mm:ss', ONE_SECOND * 15], // 15s\n['hh:mm:ss', ONE_SECOND * 30], // 30s\n['hh:mm\\nMM-dd', ONE_MINUTE], // 1m\n['hh:mm\\nMM-dd', ONE_MINUTE * 5], // 5m\n['hh:mm\\nMM-dd', ONE_MINUTE * 10], // 10m\n['hh:mm\\nMM-dd', ONE_MINUTE * 15], // 15m\n['hh:mm\\nMM-dd', ONE_MINUTE * 30], // 30m\n['hh:mm\\nMM-dd', ONE_HOUR], // 1h\n['hh:mm\\nMM-dd', ONE_HOUR * 2], // 2h\n['hh:mm\\nMM-dd', ONE_HOUR * 6], // 6h\n['hh:mm\\nMM-dd', ONE_HOUR * 12], // 12h\n['MM-dd\\nyyyy', ONE_DAY], // 1d\n['MM-dd\\nyyyy', ONE_DAY * 2], // 2d\n['MM-dd\\nyyyy', ONE_DAY * 3], // 3d\n['MM-dd\\nyyyy', ONE_DAY * 4], // 4d\n['MM-dd\\nyyyy', ONE_DAY * 5], // 5d\n['MM-dd\\nyyyy', ONE_DAY * 6], // 6d\n['week', ONE_DAY * 7], // 7d\n['MM-dd\\nyyyy', ONE_DAY * 10], // 10d\n['week', ONE_DAY * 14], // 2w\n['week', ONE_DAY * 21], // 3w\n['month', ONE_DAY * 31], // 1M\n['week', ONE_DAY * 42], // 6w\n['month', ONE_DAY * 62], // 2M\n['week', ONE_DAY * 70], // 10w\n['quarter', ONE_DAY * 95], // 3M\n['month', ONE_DAY * 31 * 4], // 4M\n['month', ONE_DAY * 31 * 5], // 5M\n['half-year', ONE_DAY * 380 / 2], // 6M\n['month', ONE_DAY * 31 * 8], // 8M\n['month', ONE_DAY * 31 * 10], // 10M\n['year', ONE_DAY * 380] // 1Y\n];\n/**\n * @param {module:echarts/model/Model}\n * @return {module:echarts/scale/Time}\n */\n\nTimeScale.create = function (model) {\n return new TimeScale({\n useUTC: model.ecModel.get('useUTC')\n });\n};\n\nvar _default = TimeScale;\nmodule.exports = _default;\n\n/***/ }),\n/* 1304 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = __webpack_require__(0);\n\nvar each = _util.each;\nvar map = _util.map;\nvar isFunction = _util.isFunction;\nvar createHashMap = _util.createHashMap;\nvar noop = _util.noop;\n\nvar _task = __webpack_require__(264);\n\nvar createTask = _task.createTask;\n\nvar _component = __webpack_require__(150);\n\nvar getUID = _component.getUID;\n\nvar GlobalModel = __webpack_require__(404);\n\nvar ExtensionAPI = __webpack_require__(350);\n\nvar _model = __webpack_require__(9);\n\nvar normalizeToArray = _model.normalizeToArray;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/stream/Scheduler\n */\n\n/**\n * @constructor\n */\nfunction Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n this.ecInstance = ecInstance;\n this.api = api;\n this.unfinished; // Fix current processors in case that in some rear cases that\n // processors might be registered after echarts instance created.\n // Register processors incrementally for a echarts instance is\n // not supported by this stream architecture.\n\n var dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n var visualHandlers = this._visualHandlers = visualHandlers.slice();\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n /**\n * @private\n * @type {\n * [handlerUID: string]: {\n * seriesTaskMap?: {\n * [seriesUID: string]: Task\n * },\n * overallTask?: Task\n * }\n * }\n */\n\n this._stageTaskMap = createHashMap();\n}\n\nvar proto = Scheduler.prototype;\n/**\n * @param {module:echarts/model/Global} ecModel\n * @param {Object} payload\n */\n\nproto.restoreData = function (ecModel, payload) {\n // TODO: Only restroe needed series and components, but not all components.\n // Currently `restoreData` of all of the series and component will be called.\n // But some independent components like `title`, `legend`, `graphic`, `toolbox`,\n // `tooltip`, `axisPointer`, etc, do not need series refresh when `setOption`,\n // and some components like coordinate system, axes, dataZoom, visualMap only\n // need their target series refresh.\n // (1) If we are implementing this feature some day, we should consider these cases:\n // if a data processor depends on a component (e.g., dataZoomProcessor depends\n // on the settings of `dataZoom`), it should be re-performed if the component\n // is modified by `setOption`.\n // (2) If a processor depends on sevral series, speicified by its `getTargetSeries`,\n // it should be re-performed when the result array of `getTargetSeries` changed.\n // We use `dependencies` to cover these issues.\n // (3) How to update target series when coordinate system related components modified.\n // TODO: simply the dirty mechanism? Check whether only the case here can set tasks dirty,\n // and this case all of the tasks will be set as dirty.\n ecModel.restoreData(payload); // Theoretically an overall task not only depends on each of its target series, but also\n // depends on all of the series.\n // The overall task is not in pipeline, and `ecModel.restoreData` only set pipeline tasks\n // dirty. If `getTargetSeries` of an overall task returns nothing, we should also ensure\n // that the overall task is set as dirty and to be performed, otherwise it probably cause\n // state chaos. So we have to set dirty of all of the overall tasks manually, otherwise it\n // probably cause state chaos (consider `dataZoomProcessor`).\n\n this._stageTaskMap.each(function (taskRecord) {\n var overallTask = taskRecord.overallTask;\n overallTask && overallTask.dirty();\n });\n}; // If seriesModel provided, incremental threshold is check by series data.\n\n\nproto.getPerformArgs = function (task, isBlock) {\n // For overall task\n if (!task.__pipeline) {\n return;\n }\n\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n var pCtx = pipeline.context;\n var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n var step = incremental ? pipeline.step : null;\n var modDataCount = pCtx && pCtx.modDataCount;\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n return {\n step: step,\n modBy: modBy,\n modDataCount: modDataCount\n };\n};\n\nproto.getPipeline = function (pipelineId) {\n return this._pipelineMap.get(pipelineId);\n};\n/**\n * Current, progressive rendering starts from visual and layout.\n * Always detect render mode in the same stage, avoiding that incorrect\n * detection caused by data filtering.\n * Caution:\n * `updateStreamModes` use `seriesModel.getData()`.\n */\n\n\nproto.updateStreamModes = function (seriesModel, view) {\n var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n var data = seriesModel.getData();\n var dataLen = data.count(); // `progressiveRender` means that can render progressively in each\n // animation frame. Note that some types of series do not provide\n // `view.incrementalPrepareRender` but support `chart.appendData`. We\n // use the term `incremental` but not `progressive` to describe the\n // case that `chart.appendData`.\n\n var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold'); // TODO: modDataCount should not updated if `appendData`, otherwise cause whole repaint.\n // see `test/candlestick-large3.html`\n\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n seriesModel.pipelineContext = pipeline.context = {\n progressiveRender: progressiveRender,\n modDataCount: modDataCount,\n large: large\n };\n};\n\nproto.restorePipelines = function (ecModel) {\n var scheduler = this;\n var pipelineMap = scheduler._pipelineMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var progressive = seriesModel.getProgressive();\n var pipelineId = seriesModel.uid;\n pipelineMap.set(pipelineId, {\n id: pipelineId,\n head: null,\n tail: null,\n threshold: seriesModel.getProgressiveThreshold(),\n progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n blockIndex: -1,\n step: Math.round(progressive || 700),\n count: 0\n });\n pipe(scheduler, seriesModel, seriesModel.dataTask);\n });\n};\n\nproto.prepareStageTasks = function () {\n var stageTaskMap = this._stageTaskMap;\n var ecModel = this.ecInstance.getModel();\n var api = this.api;\n each(this._allHandlers, function (handler) {\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, []);\n handler.reset && createSeriesStageTask(this, handler, record, ecModel, api);\n handler.overallReset && createOverallStageTask(this, handler, record, ecModel, api);\n }, this);\n};\n\nproto.prepareView = function (view, model, ecModel, api) {\n var renderTask = view.renderTask;\n var context = renderTask.context;\n context.model = model;\n context.ecModel = ecModel;\n context.api = api;\n renderTask.__block = !view.incrementalPrepareRender;\n pipe(this, model, renderTask);\n};\n\nproto.performDataProcessorTasks = function (ecModel, payload) {\n // If we do not use `block` here, it should be considered when to update modes.\n performStageTasks(this, this._dataProcessorHandlers, ecModel, payload, {\n block: true\n });\n}; // opt\n// opt.visualType: 'visual' or 'layout'\n// opt.setDirty\n\n\nproto.performVisualTasks = function (ecModel, payload, opt) {\n performStageTasks(this, this._visualHandlers, ecModel, payload, opt);\n};\n\nfunction performStageTasks(scheduler, stageHandlers, ecModel, payload, opt) {\n opt = opt || {};\n var unfinished;\n each(stageHandlers, function (stageHandler, idx) {\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n return;\n }\n\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n var overallTask = stageHandlerRecord.overallTask;\n\n if (overallTask) {\n var overallNeedDirty;\n var agentStubMap = overallTask.agentStubMap;\n agentStubMap.each(function (stub) {\n if (needSetDirty(opt, stub)) {\n stub.dirty();\n overallNeedDirty = true;\n }\n });\n overallNeedDirty && overallTask.dirty();\n updatePayload(overallTask, payload);\n var performArgs = scheduler.getPerformArgs(overallTask, opt.block); // Execute stubs firstly, which may set the overall task dirty,\n // then execute the overall task. And stub will call seriesModel.setData,\n // which ensures that in the overallTask seriesModel.getData() will not\n // return incorrect data.\n\n agentStubMap.each(function (stub) {\n stub.perform(performArgs);\n });\n unfinished |= overallTask.perform(performArgs);\n } else if (seriesTaskMap) {\n seriesTaskMap.each(function (task, pipelineId) {\n if (needSetDirty(opt, task)) {\n task.dirty();\n }\n\n var performArgs = scheduler.getPerformArgs(task, opt.block);\n performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n updatePayload(task, payload);\n unfinished |= task.perform(performArgs);\n });\n }\n });\n\n function needSetDirty(opt, task) {\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n }\n\n scheduler.unfinished |= unfinished;\n}\n\nproto.performSeriesTasks = function (ecModel) {\n var unfinished;\n ecModel.eachSeries(function (seriesModel) {\n // Progress to the end for dataInit and dataRestore.\n unfinished |= seriesModel.dataTask.perform();\n });\n this.unfinished |= unfinished;\n};\n\nproto.plan = function () {\n // Travel pipelines, check block.\n this._pipelineMap.each(function (pipeline) {\n var task = pipeline.tail;\n\n do {\n if (task.__block) {\n pipeline.blockIndex = task.__idxInPipeline;\n break;\n }\n\n task = task.getUpstream();\n } while (task);\n });\n};\n\nvar updatePayload = proto.updatePayload = function (task, payload) {\n payload !== 'remain' && (task.context.payload = payload);\n};\n\nfunction createSeriesStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) {\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap || (stageHandlerRecord.seriesTaskMap = createHashMap());\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries; // If a stageHandler should cover all series, `createOnAllSeries` should be declared mandatorily,\n // to avoid some typo or abuse. Otherwise if an extension do not specify a `seriesType`,\n // it works but it may cause other irrelevant charts blocked.\n\n if (stageHandler.createOnAllSeries) {\n ecModel.eachRawSeries(create);\n } else if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, create);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(create);\n }\n\n function create(seriesModel) {\n var pipelineId = seriesModel.uid; // Init tasks for each seriesModel only once.\n // Reuse original task instance.\n\n var task = seriesTaskMap.get(pipelineId) || seriesTaskMap.set(pipelineId, createTask({\n plan: seriesTaskPlan,\n reset: seriesTaskReset,\n count: seriesTaskCount\n }));\n task.context = {\n model: seriesModel,\n ecModel: ecModel,\n api: api,\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n plan: stageHandler.plan,\n reset: stageHandler.reset,\n scheduler: scheduler\n };\n pipe(scheduler, seriesModel, task);\n } // Clear unused series tasks.\n\n\n var pipelineMap = scheduler._pipelineMap;\n seriesTaskMap.each(function (task, pipelineId) {\n if (!pipelineMap.get(pipelineId)) {\n task.dispose();\n seriesTaskMap.removeKey(pipelineId);\n }\n });\n}\n\nfunction createOverallStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) {\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask // For overall task, the function only be called on reset stage.\n || createTask({\n reset: overallTaskReset\n });\n overallTask.context = {\n ecModel: ecModel,\n api: api,\n overallReset: stageHandler.overallReset,\n scheduler: scheduler\n }; // Reuse orignal stubs.\n\n var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap || createHashMap();\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries;\n var overallProgress = true;\n var modifyOutputEnd = stageHandler.modifyOutputEnd; // An overall task with seriesType detected or has `getTargetSeries`, we add\n // stub in each pipelines, it will set the overall task dirty when the pipeline\n // progress. Moreover, to avoid call the overall task each frame (too frequent),\n // we set the pipeline block.\n\n if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, createStub);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(createStub);\n } // Otherwise, (usually it is legancy case), the overall task will only be\n // executed when upstream dirty. Otherwise the progressive rendering of all\n // pipelines will be disabled unexpectedly. But it still needs stubs to receive\n // dirty info from upsteam.\n else {\n overallProgress = false;\n each(ecModel.getSeries(), createStub);\n }\n\n function createStub(seriesModel) {\n var pipelineId = seriesModel.uid;\n var stub = agentStubMap.get(pipelineId);\n\n if (!stub) {\n stub = agentStubMap.set(pipelineId, createTask({\n reset: stubReset,\n onDirty: stubOnDirty\n })); // When the result of `getTargetSeries` changed, the overallTask\n // should be set as dirty and re-performed.\n\n overallTask.dirty();\n }\n\n stub.context = {\n model: seriesModel,\n overallProgress: overallProgress,\n modifyOutputEnd: modifyOutputEnd\n };\n stub.agent = overallTask;\n stub.__block = overallProgress;\n pipe(scheduler, seriesModel, stub);\n } // Clear unused stubs.\n\n\n var pipelineMap = scheduler._pipelineMap;\n agentStubMap.each(function (stub, pipelineId) {\n if (!pipelineMap.get(pipelineId)) {\n stub.dispose(); // When the result of `getTargetSeries` changed, the overallTask\n // should be set as dirty and re-performed.\n\n overallTask.dirty();\n agentStubMap.removeKey(pipelineId);\n }\n });\n}\n\nfunction overallTaskReset(context) {\n context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context, upstreamContext) {\n return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n this.agent.dirty();\n this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n return context.plan && context.plan(context.model, context.ecModel, context.api, context.payload);\n}\n\nfunction seriesTaskReset(context) {\n if (context.useClearVisual) {\n context.data.clearAllVisual();\n }\n\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n return makeSeriesTaskProgress(idx);\n }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n return function (params, context) {\n var data = context.data;\n var resetDefine = context.resetDefines[resetDefineIdx];\n\n if (resetDefine && resetDefine.dataEach) {\n for (var i = params.start; i < params.end; i++) {\n resetDefine.dataEach(data, i);\n }\n } else if (resetDefine && resetDefine.progress) {\n resetDefine.progress(params, data);\n }\n };\n}\n\nfunction seriesTaskCount(context) {\n return context.data.count();\n}\n\nfunction pipe(scheduler, seriesModel, task) {\n var pipelineId = seriesModel.uid;\n\n var pipeline = scheduler._pipelineMap.get(pipelineId);\n\n !pipeline.head && (pipeline.head = task);\n pipeline.tail && pipeline.tail.pipe(task);\n pipeline.tail = task;\n task.__idxInPipeline = pipeline.count++;\n task.__pipeline = pipeline;\n}\n\nScheduler.wrapStageHandler = function (stageHandler, visualType) {\n if (isFunction(stageHandler)) {\n stageHandler = {\n overallReset: stageHandler,\n seriesType: detectSeriseType(stageHandler)\n };\n }\n\n stageHandler.uid = getUID('stageHandler');\n visualType && (stageHandler.visualType = visualType);\n return stageHandler;\n};\n/**\n * Only some legacy stage handlers (usually in echarts extensions) are pure function.\n * To ensure that they can work normally, they should work in block mode, that is,\n * they should not be started util the previous tasks finished. So they cause the\n * progressive rendering disabled. We try to detect the series type, to narrow down\n * the block range to only the series type they concern, but not all series.\n */\n\n\nfunction detectSeriseType(legacyFunc) {\n seriesType = null;\n\n try {\n // Assume there is no async when calling `eachSeriesByType`.\n legacyFunc(ecModelMock, apiMock);\n } catch (e) {}\n\n return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n if (cond.mainType === 'series' && cond.subType) {\n seriesType = cond.subType;\n }\n};\n\nfunction mockMethods(target, Clz) {\n /* eslint-disable */\n for (var name in Clz.prototype) {\n // Do not use hasOwnProperty\n target[name] = noop;\n }\n /* eslint-enable */\n\n}\n\nvar _default = Scheduler;\nmodule.exports = _default;\n\n/***/ }),\n/* 1305 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar contrastColor = '#eee';\n\nvar axisCommon = function () {\n return {\n axisLine: {\n lineStyle: {\n color: contrastColor\n }\n },\n axisTick: {\n lineStyle: {\n color: contrastColor\n }\n },\n axisLabel: {\n textStyle: {\n color: contrastColor\n }\n },\n splitLine: {\n lineStyle: {\n type: 'dashed',\n color: '#aaa'\n }\n },\n splitArea: {\n areaStyle: {\n color: contrastColor\n }\n }\n };\n};\n\nvar colorPalette = ['#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53', '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42'];\nvar theme = {\n color: colorPalette,\n backgroundColor: '#333',\n tooltip: {\n axisPointer: {\n lineStyle: {\n color: contrastColor\n },\n crossStyle: {\n color: contrastColor\n }\n }\n },\n legend: {\n textStyle: {\n color: contrastColor\n }\n },\n textStyle: {\n color: contrastColor\n },\n title: {\n textStyle: {\n color: contrastColor\n }\n },\n toolbox: {\n iconStyle: {\n normal: {\n borderColor: contrastColor\n }\n }\n },\n dataZoom: {\n textStyle: {\n color: contrastColor\n }\n },\n visualMap: {\n textStyle: {\n color: contrastColor\n }\n },\n timeline: {\n lineStyle: {\n color: contrastColor\n },\n itemStyle: {\n normal: {\n color: colorPalette[1]\n }\n },\n label: {\n normal: {\n textStyle: {\n color: contrastColor\n }\n }\n },\n controlStyle: {\n normal: {\n color: contrastColor,\n borderColor: contrastColor\n }\n }\n },\n timeAxis: axisCommon(),\n logAxis: axisCommon(),\n valueAxis: axisCommon(),\n categoryAxis: axisCommon(),\n line: {\n symbol: 'circle'\n },\n graph: {\n color: colorPalette\n },\n gauge: {\n title: {\n textStyle: {\n color: contrastColor\n }\n }\n },\n candlestick: {\n itemStyle: {\n normal: {\n color: '#FD1050',\n color0: '#0CF49B',\n borderColor: '#FD1050',\n borderColor0: '#0CF49B'\n }\n }\n }\n};\ntheme.categoryAxis.splitLine.show = false;\nvar _default = theme;\nmodule.exports = _default;\n\n/***/ }),\n/* 1306 */\n/***/ (function(module, exports) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nvar _default = {\n color: colorAll,\n colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1307 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {number} [time=500] Time in ms\n * @param {string} [easing='linear']\n * @param {number} [delay=0]\n * @param {Function} [callback]\n *\n * @example\n * // Animate position\n * animation\n * .createWrap()\n * .add(el1, {position: [10, 10]})\n * .add(el2, {shape: {width: 500}, style: {fill: 'red'}}, 400)\n * .done(function () { // done })\n * .start('cubicOut');\n */\nfunction createWrap() {\n var storage = [];\n var elExistsMap = {};\n var doneCallback;\n return {\n /**\n * Caution: a el can only be added once, otherwise 'done'\n * might not be called. This method checks this (by el.id),\n * suppresses adding and returns false when existing el found.\n *\n * @param {modele:zrender/Element} el\n * @param {Object} target\n * @param {number} [time=500]\n * @param {number} [delay=0]\n * @param {string} [easing='linear']\n * @return {boolean} Whether adding succeeded.\n *\n * @example\n * add(el, target, time, delay, easing);\n * add(el, target, time, easing);\n * add(el, target, time);\n * add(el, target);\n */\n add: function (el, target, time, delay, easing) {\n if (zrUtil.isString(delay)) {\n easing = delay;\n delay = 0;\n }\n\n if (elExistsMap[el.id]) {\n return false;\n }\n\n elExistsMap[el.id] = 1;\n storage.push({\n el: el,\n target: target,\n time: time,\n delay: delay,\n easing: easing\n });\n return true;\n },\n\n /**\n * Only execute when animation finished. Will not execute when any\n * of 'stop' or 'stopAnimation' called.\n *\n * @param {Function} callback\n */\n done: function (callback) {\n doneCallback = callback;\n return this;\n },\n\n /**\n * Will stop exist animation firstly.\n */\n start: function () {\n var count = storage.length;\n\n for (var i = 0, len = storage.length; i < len; i++) {\n var item = storage[i];\n item.el.animateTo(item.target, item.time, item.delay, item.easing, done);\n }\n\n return this;\n\n function done() {\n count--;\n\n if (!count) {\n storage.length = 0;\n elExistsMap = {};\n doneCallback && doneCallback();\n }\n }\n }\n };\n}\n\nexports.createWrap = createWrap;\n\n/***/ }),\n/* 1308 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = __webpack_require__(0);\n\nvar lang = __webpack_require__(104);\n\nvar _dataProvider = __webpack_require__(103);\n\nvar retrieveRawValue = _dataProvider.retrieveRawValue;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(dom, ecModel) {\n var ariaModel = ecModel.getModel('aria');\n\n if (!ariaModel.get('show')) {\n return;\n } else if (ariaModel.get('description')) {\n dom.setAttribute('aria-label', ariaModel.get('description'));\n return;\n }\n\n var seriesCnt = 0;\n ecModel.eachSeries(function (seriesModel, idx) {\n ++seriesCnt;\n }, this);\n var maxDataCnt = ariaModel.get('data.maxCount') || 10;\n var maxSeriesCnt = ariaModel.get('series.maxCount') || 10;\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n var ariaLabel;\n\n if (seriesCnt < 1) {\n // No series, no aria label\n return;\n } else {\n var title = getTitle();\n\n if (title) {\n ariaLabel = replace(getConfig('general.withTitle'), {\n title: title\n });\n } else {\n ariaLabel = getConfig('general.withoutTitle');\n }\n\n var seriesLabels = [];\n var prefix = seriesCnt > 1 ? 'series.multiple.prefix' : 'series.single.prefix';\n ariaLabel += replace(getConfig(prefix), {\n seriesCount: seriesCnt\n });\n ecModel.eachSeries(function (seriesModel, idx) {\n if (idx < displaySeriesCnt) {\n var seriesLabel;\n var seriesName = seriesModel.get('name');\n var seriesTpl = 'series.' + (seriesCnt > 1 ? 'multiple' : 'single') + '.';\n seriesLabel = getConfig(seriesName ? seriesTpl + 'withName' : seriesTpl + 'withoutName');\n seriesLabel = replace(seriesLabel, {\n seriesId: seriesModel.seriesIndex,\n seriesName: seriesModel.get('name'),\n seriesType: getSeriesTypeName(seriesModel.subType)\n });\n var data = seriesModel.getData();\n window.data = data;\n\n if (data.count() > maxDataCnt) {\n // Show part of data\n seriesLabel += replace(getConfig('data.partialData'), {\n displayCnt: maxDataCnt\n });\n } else {\n seriesLabel += getConfig('data.allData');\n }\n\n var dataLabels = [];\n\n for (var i = 0; i < data.count(); i++) {\n if (i < maxDataCnt) {\n var name = data.getName(i);\n var value = retrieveRawValue(data, i);\n dataLabels.push(replace(name ? getConfig('data.withName') : getConfig('data.withoutName'), {\n name: name,\n value: value\n }));\n }\n }\n\n seriesLabel += dataLabels.join(getConfig('data.separator.middle')) + getConfig('data.separator.end');\n seriesLabels.push(seriesLabel);\n }\n });\n ariaLabel += seriesLabels.join(getConfig('series.multiple.separator.middle')) + getConfig('series.multiple.separator.end');\n dom.setAttribute('aria-label', ariaLabel);\n }\n\n function replace(str, keyValues) {\n if (typeof str !== 'string') {\n return str;\n }\n\n var result = str;\n zrUtil.each(keyValues, function (value, key) {\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n });\n return result;\n }\n\n function getConfig(path) {\n var userConfig = ariaModel.get(path);\n\n if (userConfig == null) {\n var pathArr = path.split('.');\n var result = lang.aria;\n\n for (var i = 0; i < pathArr.length; ++i) {\n result = result[pathArr[i]];\n }\n\n return result;\n } else {\n return userConfig;\n }\n }\n\n function getTitle() {\n var title = ecModel.getModel('title').option;\n\n if (title && title.length) {\n title = title[0];\n }\n\n return title && title.text;\n }\n\n function getSeriesTypeName(type) {\n return lang.series.typeNames[type] || '自定义图';\n }\n}\n\nmodule.exports = _default;\n\n/***/ }),\n/* 1309 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar Gradient = __webpack_require__(189);\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n var colorAccessPath = (seriesModel.visualColorAccessPath || 'itemStyle.color').split('.');\n var color = seriesModel.get(colorAccessPath) // Set in itemStyle\n || seriesModel.getColorFromPalette( // TODO series count changed.\n seriesModel.name, null, ecModel.getSeriesCount()); // Default color\n // FIXME Set color function or use the platte color\n\n data.setVisual('color', color); // Only visible series has each data be visual encoded\n\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n if (typeof color === 'function' && !(color instanceof Gradient)) {\n data.each(function (idx) {\n data.setItemVisual(idx, 'color', color(seriesModel.getDataParams(idx)));\n });\n } // itemStyle in each data item\n\n\n var dataEach = function (data, idx) {\n var itemModel = data.getItemModel(idx);\n var color = itemModel.get(colorAccessPath, true);\n\n if (color != null) {\n data.setItemVisual(idx, 'color', color);\n }\n };\n\n return {\n dataEach: data.hasItemOption ? dataEach : null\n };\n }\n }\n};\nmodule.exports = _default;\n\n/***/ }),\n/* 1310 */\n/***/ (function(module, exports) {\n\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(34);\n\n\n/***/ },\n\n/***/ 3:\n/***/ function(module, exports) {\n\n\t/* globals __VUE_SSR_CONTEXT__ */\n\n\t// this module is a runtime utility for cleaner component module output and will\n\t// be included in the final webpack user bundle\n\n\tmodule.exports = function normalizeComponent (\n\t rawScriptExports,\n\t compiledTemplate,\n\t injectStyles,\n\t scopeId,\n\t moduleIdentifier /* server only */\n\t) {\n\t var esModule\n\t var scriptExports = rawScriptExports = rawScriptExports || {}\n\n\t // ES6 modules interop\n\t var type = typeof rawScriptExports.default\n\t if (type === 'object' || type === 'function') {\n\t esModule = rawScriptExports\n\t scriptExports = rawScriptExports.default\n\t }\n\n\t // Vue.extend constructor export interop\n\t var options = typeof scriptExports === 'function'\n\t ? scriptExports.options\n\t : scriptExports\n\n\t // render functions\n\t if (compiledTemplate) {\n\t options.render = compiledTemplate.render\n\t options.staticRenderFns = compiledTemplate.staticRenderFns\n\t }\n\n\t // scopedId\n\t if (scopeId) {\n\t options._scopeId = scopeId\n\t }\n\n\t var hook\n\t if (moduleIdentifier) { // server build\n\t hook = function (context) {\n\t // 2.3 injection\n\t context = context || (this.$vnode && this.$vnode.ssrContext)\n\t // 2.2 with runInNewContext: true\n\t if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n\t context = __VUE_SSR_CONTEXT__\n\t }\n\t // inject component styles\n\t if (injectStyles) {\n\t injectStyles.call(this, context)\n\t }\n\t // register component module identifier for async chunk inferrence\n\t if (context && context._registeredComponents) {\n\t context._registeredComponents.add(moduleIdentifier)\n\t }\n\t }\n\t // used by ssr in case component is cached and beforeCreate\n\t // never gets called\n\t options._ssrRegister = hook\n\t } else if (injectStyles) {\n\t hook = injectStyles\n\t }\n\n\t if (hook) {\n\t // inject component registration as beforeCreate hook\n\t var existing = options.beforeCreate\n\t options.beforeCreate = existing\n\t ? [].concat(existing, hook)\n\t : [hook]\n\t }\n\n\t return {\n\t esModule: esModule,\n\t exports: scriptExports,\n\t options: options\n\t }\n\t}\n\n\n/***/ },\n\n/***/ 34:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _buttonGroup = __webpack_require__(35);\n\n\tvar _buttonGroup2 = _interopRequireDefault(_buttonGroup);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* istanbul ignore next */\n\t_buttonGroup2.default.install = function (Vue) {\n\t Vue.component(_buttonGroup2.default.name, _buttonGroup2.default);\n\t};\n\n\texports.default = _buttonGroup2.default;\n\n/***/ },\n\n/***/ 35:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(36),\n\t /* template */\n\t __webpack_require__(37),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 36:\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\t//\n\t//\n\t//\n\t//\n\t//\n\n\t/**\n\t * button\n\t * @module components/basic/menu\n\t * @desc 用于按钮组\n\t * @param {string} label - 名称\n\t */\n\texports.default = {\n\t name: 'ElButtonGroup'\n\t};\n\n/***/ },\n\n/***/ 37:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('div', {\n\t staticClass: \"el-button-group\"\n\t }, [_vm._t(\"default\")], 2)\n\t},staticRenderFns: []}\n\n/***/ }\n\n/******/ });\n\n/***/ }),\n/* 1311 */\n/***/ (function(module, exports) {\n\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(30);\n\n\n/***/ },\n\n/***/ 3:\n/***/ function(module, exports) {\n\n\t/* globals __VUE_SSR_CONTEXT__ */\n\n\t// this module is a runtime utility for cleaner component module output and will\n\t// be included in the final webpack user bundle\n\n\tmodule.exports = function normalizeComponent (\n\t rawScriptExports,\n\t compiledTemplate,\n\t injectStyles,\n\t scopeId,\n\t moduleIdentifier /* server only */\n\t) {\n\t var esModule\n\t var scriptExports = rawScriptExports = rawScriptExports || {}\n\n\t // ES6 modules interop\n\t var type = typeof rawScriptExports.default\n\t if (type === 'object' || type === 'function') {\n\t esModule = rawScriptExports\n\t scriptExports = rawScriptExports.default\n\t }\n\n\t // Vue.extend constructor export interop\n\t var options = typeof scriptExports === 'function'\n\t ? scriptExports.options\n\t : scriptExports\n\n\t // render functions\n\t if (compiledTemplate) {\n\t options.render = compiledTemplate.render\n\t options.staticRenderFns = compiledTemplate.staticRenderFns\n\t }\n\n\t // scopedId\n\t if (scopeId) {\n\t options._scopeId = scopeId\n\t }\n\n\t var hook\n\t if (moduleIdentifier) { // server build\n\t hook = function (context) {\n\t // 2.3 injection\n\t context = context || (this.$vnode && this.$vnode.ssrContext)\n\t // 2.2 with runInNewContext: true\n\t if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n\t context = __VUE_SSR_CONTEXT__\n\t }\n\t // inject component styles\n\t if (injectStyles) {\n\t injectStyles.call(this, context)\n\t }\n\t // register component module identifier for async chunk inferrence\n\t if (context && context._registeredComponents) {\n\t context._registeredComponents.add(moduleIdentifier)\n\t }\n\t }\n\t // used by ssr in case component is cached and beforeCreate\n\t // never gets called\n\t options._ssrRegister = hook\n\t } else if (injectStyles) {\n\t hook = injectStyles\n\t }\n\n\t if (hook) {\n\t // inject component registration as beforeCreate hook\n\t var existing = options.beforeCreate\n\t options.beforeCreate = existing\n\t ? [].concat(existing, hook)\n\t : [hook]\n\t }\n\n\t return {\n\t esModule: esModule,\n\t exports: scriptExports,\n\t options: options\n\t }\n\t}\n\n\n/***/ },\n\n/***/ 30:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _button = __webpack_require__(31);\n\n\tvar _button2 = _interopRequireDefault(_button);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* istanbul ignore next */\n\t_button2.default.install = function (Vue) {\n\t Vue.component(_button2.default.name, _button2.default);\n\t};\n\n\texports.default = _button2.default;\n\n/***/ },\n\n/***/ 31:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(32),\n\t /* template */\n\t __webpack_require__(33),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 32:\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\n\texports.default = {\n\t name: 'ElButton',\n\n\t props: {\n\t type: {\n\t type: String,\n\t default: 'default'\n\t },\n\t size: String,\n\t icon: {\n\t type: String,\n\t default: ''\n\t },\n\t nativeType: {\n\t type: String,\n\t default: 'button'\n\t },\n\t loading: Boolean,\n\t disabled: Boolean,\n\t plain: Boolean,\n\t autofocus: Boolean\n\t },\n\n\t methods: {\n\t handleClick: function handleClick(evt) {\n\t this.$emit('click', evt);\n\t },\n\t handleInnerClick: function handleInnerClick(evt) {\n\t if (this.disabled) {\n\t evt.stopPropagation();\n\t }\n\t }\n\t }\n\t};\n\n/***/ },\n\n/***/ 33:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('button', {\n\t staticClass: \"el-button\",\n\t class: [\n\t _vm.type ? 'el-button--' + _vm.type : '',\n\t _vm.size ? 'el-button--' + _vm.size : '', {\n\t 'is-disabled': _vm.disabled,\n\t 'is-loading': _vm.loading,\n\t 'is-plain': _vm.plain\n\t }\n\t ],\n\t attrs: {\n\t \"disabled\": _vm.disabled,\n\t \"autofocus\": _vm.autofocus,\n\t \"type\": _vm.nativeType\n\t },\n\t on: {\n\t \"click\": _vm.handleClick\n\t }\n\t }, [(_vm.loading) ? _c('i', {\n\t staticClass: \"el-icon-loading\",\n\t on: {\n\t \"click\": _vm.handleInnerClick\n\t }\n\t }) : _vm._e(), (_vm.icon && !_vm.loading) ? _c('i', {\n\t class: 'el-icon-' + _vm.icon,\n\t on: {\n\t \"click\": _vm.handleInnerClick\n\t }\n\t }) : _vm._e(), (_vm.$slots.default) ? _c('span', {\n\t on: {\n\t \"click\": _vm.handleInnerClick\n\t }\n\t }, [_vm._t(\"default\")], 2) : _vm._e()])\n\t},staticRenderFns: []}\n\n/***/ }\n\n/******/ });\n\n/***/ }),\n/* 1312 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(73);\n\n\n/***/ },\n\n/***/ 3:\n/***/ function(module, exports) {\n\n\t/* globals __VUE_SSR_CONTEXT__ */\n\n\t// this module is a runtime utility for cleaner component module output and will\n\t// be included in the final webpack user bundle\n\n\tmodule.exports = function normalizeComponent (\n\t rawScriptExports,\n\t compiledTemplate,\n\t injectStyles,\n\t scopeId,\n\t moduleIdentifier /* server only */\n\t) {\n\t var esModule\n\t var scriptExports = rawScriptExports = rawScriptExports || {}\n\n\t // ES6 modules interop\n\t var type = typeof rawScriptExports.default\n\t if (type === 'object' || type === 'function') {\n\t esModule = rawScriptExports\n\t scriptExports = rawScriptExports.default\n\t }\n\n\t // Vue.extend constructor export interop\n\t var options = typeof scriptExports === 'function'\n\t ? scriptExports.options\n\t : scriptExports\n\n\t // render functions\n\t if (compiledTemplate) {\n\t options.render = compiledTemplate.render\n\t options.staticRenderFns = compiledTemplate.staticRenderFns\n\t }\n\n\t // scopedId\n\t if (scopeId) {\n\t options._scopeId = scopeId\n\t }\n\n\t var hook\n\t if (moduleIdentifier) { // server build\n\t hook = function (context) {\n\t // 2.3 injection\n\t context = context || (this.$vnode && this.$vnode.ssrContext)\n\t // 2.2 with runInNewContext: true\n\t if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n\t context = __VUE_SSR_CONTEXT__\n\t }\n\t // inject component styles\n\t if (injectStyles) {\n\t injectStyles.call(this, context)\n\t }\n\t // register component module identifier for async chunk inferrence\n\t if (context && context._registeredComponents) {\n\t context._registeredComponents.add(moduleIdentifier)\n\t }\n\t }\n\t // used by ssr in case component is cached and beforeCreate\n\t // never gets called\n\t options._ssrRegister = hook\n\t } else if (injectStyles) {\n\t hook = injectStyles\n\t }\n\n\t if (hook) {\n\t // inject component registration as beforeCreate hook\n\t var existing = options.beforeCreate\n\t options.beforeCreate = existing\n\t ? [].concat(existing, hook)\n\t : [hook]\n\t }\n\n\t return {\n\t esModule: esModule,\n\t exports: scriptExports,\n\t options: options\n\t }\n\t}\n\n\n/***/ },\n\n/***/ 14:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(120);\n\n/***/ },\n\n/***/ 73:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _checkboxGroup = __webpack_require__(74);\n\n\tvar _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* istanbul ignore next */\n\t_checkboxGroup2.default.install = function (Vue) {\n\t Vue.component(_checkboxGroup2.default.name, _checkboxGroup2.default);\n\t};\n\n\texports.default = _checkboxGroup2.default;\n\n/***/ },\n\n/***/ 74:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(75),\n\t /* template */\n\t __webpack_require__(76),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 75:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _emitter = __webpack_require__(14);\n\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\texports.default = {\n\t name: 'ElCheckboxGroup',\n\n\t componentName: 'ElCheckboxGroup',\n\n\t mixins: [_emitter2.default],\n\n\t props: {\n\t value: {},\n\t min: Number,\n\t max: Number,\n\t size: String,\n\t fill: String,\n\t textColor: String\n\t },\n\n\t watch: {\n\t value: function value(_value) {\n\t this.dispatch('ElFormItem', 'el.form.change', [_value]);\n\t }\n\t }\n\t};\n\n/***/ },\n\n/***/ 76:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('div', {\n\t staticClass: \"el-checkbox-group\"\n\t }, [_vm._t(\"default\")], 2)\n\t},staticRenderFns: []}\n\n/***/ }\n\n/******/ });\n\n/***/ }),\n/* 1313 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(65);\n\n\n/***/ },\n\n/***/ 3:\n/***/ function(module, exports) {\n\n\t/* globals __VUE_SSR_CONTEXT__ */\n\n\t// this module is a runtime utility for cleaner component module output and will\n\t// be included in the final webpack user bundle\n\n\tmodule.exports = function normalizeComponent (\n\t rawScriptExports,\n\t compiledTemplate,\n\t injectStyles,\n\t scopeId,\n\t moduleIdentifier /* server only */\n\t) {\n\t var esModule\n\t var scriptExports = rawScriptExports = rawScriptExports || {}\n\n\t // ES6 modules interop\n\t var type = typeof rawScriptExports.default\n\t if (type === 'object' || type === 'function') {\n\t esModule = rawScriptExports\n\t scriptExports = rawScriptExports.default\n\t }\n\n\t // Vue.extend constructor export interop\n\t var options = typeof scriptExports === 'function'\n\t ? scriptExports.options\n\t : scriptExports\n\n\t // render functions\n\t if (compiledTemplate) {\n\t options.render = compiledTemplate.render\n\t options.staticRenderFns = compiledTemplate.staticRenderFns\n\t }\n\n\t // scopedId\n\t if (scopeId) {\n\t options._scopeId = scopeId\n\t }\n\n\t var hook\n\t if (moduleIdentifier) { // server build\n\t hook = function (context) {\n\t // 2.3 injection\n\t context = context || (this.$vnode && this.$vnode.ssrContext)\n\t // 2.2 with runInNewContext: true\n\t if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n\t context = __VUE_SSR_CONTEXT__\n\t }\n\t // inject component styles\n\t if (injectStyles) {\n\t injectStyles.call(this, context)\n\t }\n\t // register component module identifier for async chunk inferrence\n\t if (context && context._registeredComponents) {\n\t context._registeredComponents.add(moduleIdentifier)\n\t }\n\t }\n\t // used by ssr in case component is cached and beforeCreate\n\t // never gets called\n\t options._ssrRegister = hook\n\t } else if (injectStyles) {\n\t hook = injectStyles\n\t }\n\n\t if (hook) {\n\t // inject component registration as beforeCreate hook\n\t var existing = options.beforeCreate\n\t options.beforeCreate = existing\n\t ? [].concat(existing, hook)\n\t : [hook]\n\t }\n\n\t return {\n\t esModule: esModule,\n\t exports: scriptExports,\n\t options: options\n\t }\n\t}\n\n\n/***/ },\n\n/***/ 14:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(120);\n\n/***/ },\n\n/***/ 65:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _checkbox = __webpack_require__(66);\n\n\tvar _checkbox2 = _interopRequireDefault(_checkbox);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* istanbul ignore next */\n\t_checkbox2.default.install = function (Vue) {\n\t Vue.component(_checkbox2.default.name, _checkbox2.default);\n\t};\n\n\texports.default = _checkbox2.default;\n\n/***/ },\n\n/***/ 66:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(67),\n\t /* template */\n\t __webpack_require__(68),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 67:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _emitter = __webpack_require__(14);\n\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\texports.default = {\n\t name: 'ElCheckbox',\n\n\t mixins: [_emitter2.default],\n\n\t componentName: 'ElCheckbox',\n\n\t data: function data() {\n\t return {\n\t selfModel: false,\n\t focus: false\n\t };\n\t },\n\n\n\t computed: {\n\t model: {\n\t get: function get() {\n\t return this.isGroup ? this.store : this.value !== undefined ? this.value : this.selfModel;\n\t },\n\t set: function set(val) {\n\t if (this.isGroup) {\n\t var isLimitExceeded = false;\n\t this._checkboxGroup.min !== undefined && val.length < this._checkboxGroup.min && (isLimitExceeded = true);\n\n\t this._checkboxGroup.max !== undefined && val.length > this._checkboxGroup.max && (isLimitExceeded = true);\n\n\t isLimitExceeded === false && this.dispatch('ElCheckboxGroup', 'input', [val]);\n\t } else {\n\t this.$emit('input', val);\n\t this.selfModel = val;\n\t }\n\t }\n\t },\n\n\t isChecked: function isChecked() {\n\t if ({}.toString.call(this.model) === '[object Boolean]') {\n\t return this.model;\n\t } else if (Array.isArray(this.model)) {\n\t return this.model.indexOf(this.label) > -1;\n\t } else if (this.model !== null && this.model !== undefined) {\n\t return this.model === this.trueLabel;\n\t }\n\t },\n\t isGroup: function isGroup() {\n\t var parent = this.$parent;\n\t while (parent) {\n\t if (parent.$options.componentName !== 'ElCheckboxGroup') {\n\t parent = parent.$parent;\n\t } else {\n\t this._checkboxGroup = parent;\n\t return true;\n\t }\n\t }\n\t return false;\n\t },\n\t store: function store() {\n\t return this._checkboxGroup ? this._checkboxGroup.value : this.value;\n\t }\n\t },\n\n\t props: {\n\t value: {},\n\t label: {},\n\t indeterminate: Boolean,\n\t disabled: Boolean,\n\t checked: Boolean,\n\t name: String,\n\t trueLabel: [String, Number],\n\t falseLabel: [String, Number]\n\t },\n\n\t methods: {\n\t addToStore: function addToStore() {\n\t if (Array.isArray(this.model) && this.model.indexOf(this.label) === -1) {\n\t this.model.push(this.label);\n\t } else {\n\t this.model = this.trueLabel || true;\n\t }\n\t },\n\t handleChange: function handleChange(ev) {\n\t var _this = this;\n\n\t this.$emit('change', ev);\n\t if (this.isGroup) {\n\t this.$nextTick(function (_) {\n\t _this.dispatch('ElCheckboxGroup', 'change', [_this._checkboxGroup.value]);\n\t });\n\t }\n\t }\n\t },\n\n\t created: function created() {\n\t this.checked && this.addToStore();\n\t }\n\t}; //\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\n/***/ },\n\n/***/ 68:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('label', {\n\t staticClass: \"el-checkbox\"\n\t }, [_c('span', {\n\t staticClass: \"el-checkbox__input\",\n\t class: {\n\t 'is-disabled': _vm.disabled,\n\t 'is-checked': _vm.isChecked,\n\t 'is-indeterminate': _vm.indeterminate,\n\t 'is-focus': _vm.focus\n\t }\n\t }, [_c('span', {\n\t staticClass: \"el-checkbox__inner\"\n\t }), (_vm.trueLabel || _vm.falseLabel) ? _c('input', {\n\t directives: [{\n\t name: \"model\",\n\t rawName: \"v-model\",\n\t value: (_vm.model),\n\t expression: \"model\"\n\t }],\n\t staticClass: \"el-checkbox__original\",\n\t attrs: {\n\t \"type\": \"checkbox\",\n\t \"name\": _vm.name,\n\t \"disabled\": _vm.disabled,\n\t \"true-value\": _vm.trueLabel,\n\t \"false-value\": _vm.falseLabel\n\t },\n\t domProps: {\n\t \"checked\": Array.isArray(_vm.model) ? _vm._i(_vm.model, null) > -1 : _vm._q(_vm.model, _vm.trueLabel)\n\t },\n\t on: {\n\t \"change\": _vm.handleChange,\n\t \"focus\": function($event) {\n\t _vm.focus = true\n\t },\n\t \"blur\": function($event) {\n\t _vm.focus = false\n\t },\n\t \"__c\": function($event) {\n\t var $$a = _vm.model,\n\t $$el = $event.target,\n\t $$c = $$el.checked ? (_vm.trueLabel) : (_vm.falseLabel);\n\t if (Array.isArray($$a)) {\n\t var $$v = null,\n\t $$i = _vm._i($$a, $$v);\n\t if ($$c) {\n\t $$i < 0 && (_vm.model = $$a.concat($$v))\n\t } else {\n\t $$i > -1 && (_vm.model = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n\t }\n\t } else {\n\t _vm.model = $$c\n\t }\n\t }\n\t }\n\t }) : _c('input', {\n\t directives: [{\n\t name: \"model\",\n\t rawName: \"v-model\",\n\t value: (_vm.model),\n\t expression: \"model\"\n\t }],\n\t staticClass: \"el-checkbox__original\",\n\t attrs: {\n\t \"type\": \"checkbox\",\n\t \"disabled\": _vm.disabled,\n\t \"name\": _vm.name\n\t },\n\t domProps: {\n\t \"value\": _vm.label,\n\t \"checked\": Array.isArray(_vm.model) ? _vm._i(_vm.model, _vm.label) > -1 : (_vm.model)\n\t },\n\t on: {\n\t \"change\": _vm.handleChange,\n\t \"focus\": function($event) {\n\t _vm.focus = true\n\t },\n\t \"blur\": function($event) {\n\t _vm.focus = false\n\t },\n\t \"__c\": function($event) {\n\t var $$a = _vm.model,\n\t $$el = $event.target,\n\t $$c = $$el.checked ? (true) : (false);\n\t if (Array.isArray($$a)) {\n\t var $$v = _vm.label,\n\t $$i = _vm._i($$a, $$v);\n\t if ($$c) {\n\t $$i < 0 && (_vm.model = $$a.concat($$v))\n\t } else {\n\t $$i > -1 && (_vm.model = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n\t }\n\t } else {\n\t _vm.model = $$c\n\t }\n\t }\n\t }\n\t })]), (_vm.$slots.default || _vm.label) ? _c('span', {\n\t staticClass: \"el-checkbox__label\"\n\t }, [_vm._t(\"default\"), (!_vm.$slots.default) ? [_vm._v(_vm._s(_vm.label))] : _vm._e()], 2) : _vm._e()])\n\t},staticRenderFns: []}\n\n/***/ }\n\n/******/ });\n\n/***/ }),\n/* 1314 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(172);\n\n\n/***/ },\n\n/***/ 3:\n/***/ function(module, exports) {\n\n\t/* globals __VUE_SSR_CONTEXT__ */\n\n\t// this module is a runtime utility for cleaner component module output and will\n\t// be included in the final webpack user bundle\n\n\tmodule.exports = function normalizeComponent (\n\t rawScriptExports,\n\t compiledTemplate,\n\t injectStyles,\n\t scopeId,\n\t moduleIdentifier /* server only */\n\t) {\n\t var esModule\n\t var scriptExports = rawScriptExports = rawScriptExports || {}\n\n\t // ES6 modules interop\n\t var type = typeof rawScriptExports.default\n\t if (type === 'object' || type === 'function') {\n\t esModule = rawScriptExports\n\t scriptExports = rawScriptExports.default\n\t }\n\n\t // Vue.extend constructor export interop\n\t var options = typeof scriptExports === 'function'\n\t ? scriptExports.options\n\t : scriptExports\n\n\t // render functions\n\t if (compiledTemplate) {\n\t options.render = compiledTemplate.render\n\t options.staticRenderFns = compiledTemplate.staticRenderFns\n\t }\n\n\t // scopedId\n\t if (scopeId) {\n\t options._scopeId = scopeId\n\t }\n\n\t var hook\n\t if (moduleIdentifier) { // server build\n\t hook = function (context) {\n\t // 2.3 injection\n\t context = context || (this.$vnode && this.$vnode.ssrContext)\n\t // 2.2 with runInNewContext: true\n\t if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n\t context = __VUE_SSR_CONTEXT__\n\t }\n\t // inject component styles\n\t if (injectStyles) {\n\t injectStyles.call(this, context)\n\t }\n\t // register component module identifier for async chunk inferrence\n\t if (context && context._registeredComponents) {\n\t context._registeredComponents.add(moduleIdentifier)\n\t }\n\t }\n\t // used by ssr in case component is cached and beforeCreate\n\t // never gets called\n\t options._ssrRegister = hook\n\t } else if (injectStyles) {\n\t hook = injectStyles\n\t }\n\n\t if (hook) {\n\t // inject component registration as beforeCreate hook\n\t var existing = options.beforeCreate\n\t options.beforeCreate = existing\n\t ? [].concat(existing, hook)\n\t : [hook]\n\t }\n\n\t return {\n\t esModule: esModule,\n\t exports: scriptExports,\n\t options: options\n\t }\n\t}\n\n\n/***/ },\n\n/***/ 9:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(265);\n\n/***/ },\n\n/***/ 63:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(186);\n\n/***/ },\n\n/***/ 123:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(81);\n\n/***/ },\n\n/***/ 172:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _inputNumber = __webpack_require__(173);\n\n\tvar _inputNumber2 = _interopRequireDefault(_inputNumber);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* istanbul ignore next */\n\t_inputNumber2.default.install = function (Vue) {\n\t Vue.component(_inputNumber2.default.name, _inputNumber2.default);\n\t};\n\n\texports.default = _inputNumber2.default;\n\n/***/ },\n\n/***/ 173:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(174),\n\t /* template */\n\t __webpack_require__(175),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 174:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _input = __webpack_require__(9);\n\n\tvar _input2 = _interopRequireDefault(_input);\n\n\tvar _dom = __webpack_require__(123);\n\n\tvar _debounce = __webpack_require__(63);\n\n\tvar _debounce2 = _interopRequireDefault(_debounce);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\texports.default = {\n\t name: 'ElInputNumber',\n\t directives: {\n\t repeatClick: {\n\t bind: function bind(el, binding, vnode) {\n\t var interval = null;\n\t var startTime = void 0;\n\t var handler = function handler() {\n\t return vnode.context[binding.expression].apply();\n\t };\n\t var clear = function clear() {\n\t if (new Date() - startTime < 100) {\n\t handler();\n\t }\n\t clearInterval(interval);\n\t interval = null;\n\t };\n\n\t (0, _dom.on)(el, 'mousedown', function () {\n\t startTime = new Date();\n\t (0, _dom.once)(document, 'mouseup', clear);\n\t clearInterval(interval);\n\t interval = setInterval(handler, 100);\n\t });\n\t }\n\t }\n\t },\n\t components: {\n\t ElInput: _input2.default\n\t },\n\t props: {\n\t step: {\n\t type: Number,\n\t default: 1\n\t },\n\t max: {\n\t type: Number,\n\t default: Infinity\n\t },\n\t min: {\n\t type: Number,\n\t default: -Infinity\n\t },\n\t value: {\n\t default: 0\n\t },\n\t disabled: Boolean,\n\t size: String,\n\t controls: {\n\t type: Boolean,\n\t default: true\n\t },\n\t debounce: {\n\t type: Number,\n\t default: 300\n\t }\n\t },\n\t data: function data() {\n\t return {\n\t currentValue: 0\n\t };\n\t },\n\n\t watch: {\n\t value: {\n\t immediate: true,\n\t handler: function handler(value) {\n\t var newVal = Number(value);\n\t if (isNaN(newVal)) return;\n\t if (newVal >= this.max) newVal = this.max;\n\t if (newVal <= this.min) newVal = this.min;\n\t this.currentValue = newVal;\n\t this.$emit('input', newVal);\n\t }\n\t }\n\t },\n\t computed: {\n\t minDisabled: function minDisabled() {\n\t return this._decrease(this.value, this.step) < this.min;\n\t },\n\t maxDisabled: function maxDisabled() {\n\t return this._increase(this.value, this.step) > this.max;\n\t },\n\t precision: function precision() {\n\t var value = this.value,\n\t step = this.step,\n\t getPrecision = this.getPrecision;\n\n\t return Math.max(getPrecision(value), getPrecision(step));\n\t }\n\t },\n\t methods: {\n\t toPrecision: function toPrecision(num, precision) {\n\t if (precision === undefined) precision = this.precision;\n\t return parseFloat(parseFloat(Number(num).toFixed(precision)));\n\t },\n\t getPrecision: function getPrecision(value) {\n\t var valueString = value.toString();\n\t var dotPosition = valueString.indexOf('.');\n\t var precision = 0;\n\t if (dotPosition !== -1) {\n\t precision = valueString.length - dotPosition - 1;\n\t }\n\t return precision;\n\t },\n\t _increase: function _increase(val, step) {\n\t if (typeof val !== 'number') return this.currentValue;\n\n\t var precisionFactor = Math.pow(10, this.precision);\n\n\t return this.toPrecision((precisionFactor * val + precisionFactor * step) / precisionFactor);\n\t },\n\t _decrease: function _decrease(val, step) {\n\t if (typeof val !== 'number') return this.currentValue;\n\n\t var precisionFactor = Math.pow(10, this.precision);\n\n\t return this.toPrecision((precisionFactor * val - precisionFactor * step) / precisionFactor);\n\t },\n\t increase: function increase() {\n\t if (this.disabled || this.maxDisabled) return;\n\t var value = this.value || 0;\n\t var newVal = this._increase(value, this.step);\n\t if (newVal > this.max) return;\n\t this.setCurrentValue(newVal);\n\t },\n\t decrease: function decrease() {\n\t if (this.disabled || this.minDisabled) return;\n\t var value = this.value || 0;\n\t var newVal = this._decrease(value, this.step);\n\t if (newVal < this.min) return;\n\t this.setCurrentValue(newVal);\n\t },\n\t handleBlur: function handleBlur() {\n\t this.$refs.input.setCurrentValue(this.currentValue);\n\t },\n\t setCurrentValue: function setCurrentValue(newVal) {\n\t var oldVal = this.currentValue;\n\t if (newVal >= this.max) newVal = this.max;\n\t if (newVal <= this.min) newVal = this.min;\n\t if (oldVal === newVal) {\n\t this.$refs.input.setCurrentValue(this.currentValue);\n\t return;\n\t }\n\t this.$emit('change', newVal, oldVal);\n\t this.$emit('input', newVal);\n\t this.currentValue = newVal;\n\t },\n\t handleInput: function handleInput(value) {\n\t if (value === '') {\n\t return;\n\t }\n\t var newVal = Number(value);\n\t if (!isNaN(newVal)) {\n\t this.setCurrentValue(newVal);\n\t } else {\n\t this.$refs.input.setCurrentValue(this.currentValue);\n\t }\n\t }\n\t },\n\t created: function created() {\n\t var _this = this;\n\n\t this.debounceHandleInput = (0, _debounce2.default)(this.debounce, function (value) {\n\t _this.handleInput(value);\n\t });\n\t }\n\t}; //\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\n/***/ },\n\n/***/ 175:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('div', {\n\t staticClass: \"el-input-number\",\n\t class: [\n\t _vm.size ? 'el-input-number--' + _vm.size : '', {\n\t 'is-disabled': _vm.disabled\n\t }, {\n\t 'is-without-controls': !_vm.controls\n\t }\n\t ]\n\t }, [(_vm.controls) ? _c('span', {\n\t directives: [{\n\t name: \"repeat-click\",\n\t rawName: \"v-repeat-click\",\n\t value: (_vm.decrease),\n\t expression: \"decrease\"\n\t }],\n\t staticClass: \"el-input-number__decrease\",\n\t class: {\n\t 'is-disabled': _vm.minDisabled\n\t }\n\t }, [_c('i', {\n\t staticClass: \"el-icon-minus\"\n\t })]) : _vm._e(), (_vm.controls) ? _c('span', {\n\t directives: [{\n\t name: \"repeat-click\",\n\t rawName: \"v-repeat-click\",\n\t value: (_vm.increase),\n\t expression: \"increase\"\n\t }],\n\t staticClass: \"el-input-number__increase\",\n\t class: {\n\t 'is-disabled': _vm.maxDisabled\n\t }\n\t }, [_c('i', {\n\t staticClass: \"el-icon-plus\"\n\t })]) : _vm._e(), _c('el-input', {\n\t ref: \"input\",\n\t attrs: {\n\t \"value\": _vm.currentValue,\n\t \"disabled\": _vm.disabled,\n\t \"size\": _vm.size,\n\t \"max\": _vm.max,\n\t \"min\": _vm.min\n\t },\n\t on: {\n\t \"blur\": _vm.handleBlur,\n\t \"input\": _vm.debounceHandleInput\n\t },\n\t nativeOn: {\n\t \"keydown\": [function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"up\", 38)) { return null; }\n\t $event.preventDefault();\n\t _vm.increase($event)\n\t }, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"down\", 40)) { return null; }\n\t $event.preventDefault();\n\t _vm.decrease($event)\n\t }]\n\t }\n\t }, [(_vm.$slots.prepend) ? _c('template', {\n\t slot: \"prepend\"\n\t }, [_vm._t(\"prepend\")], 2) : _vm._e(), (_vm.$slots.append) ? _c('template', {\n\t slot: \"append\"\n\t }, [_vm._t(\"append\")], 2) : _vm._e()], 2)], 1)\n\t},staticRenderFns: []}\n\n/***/ }\n\n/******/ });\n\n/***/ }),\n/* 1315 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nexports.default = function (Vue) {\n\n /**\n * template\n *\n * @param {String} string\n * @param {Array} ...args\n * @return {String}\n */\n\n function template(string) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (args.length === 1 && _typeof(args[0]) === 'object') {\n args = args[0];\n }\n\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n\n return string.replace(RE_NARGS, function (match, prefix, i, index) {\n var result = void 0;\n\n if (string[index - 1] === '{' && string[index + match.length] === '}') {\n return i;\n } else {\n result = (0, _util.hasOwn)(args, i) ? args[i] : null;\n if (result === null || result === undefined) {\n return '';\n }\n\n return result;\n }\n });\n }\n\n return template;\n};\n\nvar _util = __webpack_require__(121);\n\nvar RE_NARGS = /(%|)\\{([0-9a-zA-Z_]+)\\}/g;\n/**\n * String format template\n * - Inspired:\n * https://github.com/Matt-Esch/string-template/index.js\n */\n\n/***/ }),\n/* 1316 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = {\n el: {\n colorpicker: {\n confirm: '确定',\n clear: '清空'\n },\n datepicker: {\n now: '此刻',\n today: '今天',\n cancel: '取消',\n clear: '清空',\n confirm: '确定',\n selectDate: '选择日期',\n selectTime: '选择时间',\n startDate: '开始日期',\n startTime: '开始时间',\n endDate: '结束日期',\n endTime: '结束时间',\n year: '年',\n month1: '1 月',\n month2: '2 月',\n month3: '3 月',\n month4: '4 月',\n month5: '5 月',\n month6: '6 月',\n month7: '7 月',\n month8: '8 月',\n month9: '9 月',\n month10: '10 月',\n month11: '11 月',\n month12: '12 月',\n // week: '周次',\n weeks: {\n sun: '日',\n mon: '一',\n tue: '二',\n wed: '三',\n thu: '四',\n fri: '五',\n sat: '六'\n },\n months: {\n jan: '一月',\n feb: '二月',\n mar: '三月',\n apr: '四月',\n may: '五月',\n jun: '六月',\n jul: '七月',\n aug: '八月',\n sep: '九月',\n oct: '十月',\n nov: '十一月',\n dec: '十二月'\n }\n },\n select: {\n loading: '加载中',\n noMatch: '无匹配数据',\n noData: '无数据',\n placeholder: '请选择'\n },\n cascader: {\n noMatch: '无匹配数据',\n loading: '加载中',\n placeholder: '请选择'\n },\n pagination: {\n goto: '前往',\n pagesize: '条/页',\n total: '共 {total} 条',\n pageClassifier: '页'\n },\n messagebox: {\n title: '提示',\n confirm: '确定',\n cancel: '取消',\n error: '输入的数据不合法!'\n },\n upload: {\n delete: '删除',\n preview: '查看图片',\n continue: '继续上传'\n },\n table: {\n emptyText: '暂无数据',\n confirmFilter: '筛选',\n resetFilter: '重置',\n clearFilter: '全部',\n sumText: '合计'\n },\n tree: {\n emptyText: '暂无数据'\n },\n transfer: {\n noMatch: '无匹配数据',\n noData: '无数据',\n titles: ['列表 1', '列表 2'],\n filterPlaceholder: '请输入搜索内容',\n noCheckedFormat: '共 {total} 项',\n hasCheckedFormat: '已选 {checked}/{total} 项'\n }\n }\n};\n\n/***/ }),\n/* 1317 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n/**\n * Show migrating guide in browser console.\n *\n * Usage:\n * import Migrating from 'element-ui/src/mixins/migrating';\n *\n * mixins: [Migrating]\n *\n * add getMigratingConfig method for your component.\n * getMigratingConfig() {\n * return {\n * props: {\n * 'allow-no-selection': 'allow-no-selection is removed.',\n * 'selection-mode': 'selection-mode is removed.'\n * },\n * events: {\n * selectionchange: 'selectionchange is renamed to selection-change.'\n * }\n * };\n * },\n */\nexports.default = {\n mounted: function mounted() {\n if (true) return;\n if (!this.$vnode) return;\n\n var _getMigratingConfig = this.getMigratingConfig(),\n props = _getMigratingConfig.props,\n events = _getMigratingConfig.events;\n\n var _$vnode = this.$vnode,\n data = _$vnode.data,\n componentOptions = _$vnode.componentOptions;\n\n var definedProps = data.attrs || {};\n var definedEvents = componentOptions.listeners || {};\n\n for (var propName in definedProps) {\n if (definedProps.hasOwnProperty(propName) && props[propName]) {\n console.warn('[Element Migrating][Attribute]: ' + props[propName]);\n }\n }\n\n for (var eventName in definedEvents) {\n if (definedEvents.hasOwnProperty(eventName) && events[eventName]) {\n console.warn('[Element Migrating][Event]: ' + events[eventName]);\n }\n }\n },\n\n methods: {\n getMigratingConfig: function getMigratingConfig() {\n return {\n props: {},\n events: {}\n };\n }\n }\n};\n\n/***/ }),\n/* 1318 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(217);\n\n\n/***/ },\n\n/***/ 3:\n/***/ function(module, exports) {\n\n\t/* globals __VUE_SSR_CONTEXT__ */\n\n\t// this module is a runtime utility for cleaner component module output and will\n\t// be included in the final webpack user bundle\n\n\tmodule.exports = function normalizeComponent (\n\t rawScriptExports,\n\t compiledTemplate,\n\t injectStyles,\n\t scopeId,\n\t moduleIdentifier /* server only */\n\t) {\n\t var esModule\n\t var scriptExports = rawScriptExports = rawScriptExports || {}\n\n\t // ES6 modules interop\n\t var type = typeof rawScriptExports.default\n\t if (type === 'object' || type === 'function') {\n\t esModule = rawScriptExports\n\t scriptExports = rawScriptExports.default\n\t }\n\n\t // Vue.extend constructor export interop\n\t var options = typeof scriptExports === 'function'\n\t ? scriptExports.options\n\t : scriptExports\n\n\t // render functions\n\t if (compiledTemplate) {\n\t options.render = compiledTemplate.render\n\t options.staticRenderFns = compiledTemplate.staticRenderFns\n\t }\n\n\t // scopedId\n\t if (scopeId) {\n\t options._scopeId = scopeId\n\t }\n\n\t var hook\n\t if (moduleIdentifier) { // server build\n\t hook = function (context) {\n\t // 2.3 injection\n\t context = context || (this.$vnode && this.$vnode.ssrContext)\n\t // 2.2 with runInNewContext: true\n\t if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n\t context = __VUE_SSR_CONTEXT__\n\t }\n\t // inject component styles\n\t if (injectStyles) {\n\t injectStyles.call(this, context)\n\t }\n\t // register component module identifier for async chunk inferrence\n\t if (context && context._registeredComponents) {\n\t context._registeredComponents.add(moduleIdentifier)\n\t }\n\t }\n\t // used by ssr in case component is cached and beforeCreate\n\t // never gets called\n\t options._ssrRegister = hook\n\t } else if (injectStyles) {\n\t hook = injectStyles\n\t }\n\n\t if (hook) {\n\t // inject component registration as beforeCreate hook\n\t var existing = options.beforeCreate\n\t options.beforeCreate = existing\n\t ? [].concat(existing, hook)\n\t : [hook]\n\t }\n\n\t return {\n\t esModule: esModule,\n\t exports: scriptExports,\n\t options: options\n\t }\n\t}\n\n\n/***/ },\n\n/***/ 14:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(120);\n\n/***/ },\n\n/***/ 217:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _option = __webpack_require__(218);\n\n\tvar _option2 = _interopRequireDefault(_option);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* istanbul ignore next */\n\t_option2.default.install = function (Vue) {\n\t Vue.component(_option2.default.name, _option2.default);\n\t};\n\n\texports.default = _option2.default;\n\n/***/ },\n\n/***/ 218:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(219),\n\t /* template */\n\t __webpack_require__(221),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 219:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _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; }; //\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\n\tvar _emitter = __webpack_require__(14);\n\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\n\tvar _util = __webpack_require__(220);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\texports.default = {\n\t mixins: [_emitter2.default],\n\n\t name: 'ElOption',\n\n\t componentName: 'ElOption',\n\n\t props: {\n\t value: {\n\t required: true\n\t },\n\t label: [String, Number],\n\t created: Boolean,\n\t disabled: {\n\t type: Boolean,\n\t default: false\n\t }\n\t },\n\n\t data: function data() {\n\t return {\n\t index: -1,\n\t groupDisabled: false,\n\t visible: true,\n\t hitState: false\n\t };\n\t },\n\n\n\t computed: {\n\t isObject: function isObject() {\n\t return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';\n\t },\n\t currentLabel: function currentLabel() {\n\t return this.label || (this.isObject ? '' : this.value);\n\t },\n\t currentValue: function currentValue() {\n\t return this.value || this.label || '';\n\t },\n\t parent: function parent() {\n\t var result = this.$parent;\n\t while (!result.isSelect) {\n\t result = result.$parent;\n\t }\n\t return result;\n\t },\n\t itemSelected: function itemSelected() {\n\t if (!this.parent.multiple) {\n\t return this.isEqual(this.value, this.parent.value);\n\t } else {\n\t return this.contains(this.parent.value, this.value);\n\t }\n\t },\n\t limitReached: function limitReached() {\n\t if (this.parent.multiple) {\n\t return !this.itemSelected && this.parent.value.length >= this.parent.multipleLimit && this.parent.multipleLimit > 0;\n\t } else {\n\t return false;\n\t }\n\t }\n\t },\n\n\t watch: {\n\t currentLabel: function currentLabel() {\n\t if (!this.created && !this.parent.remote) this.dispatch('ElSelect', 'setSelected');\n\t },\n\t value: function value() {\n\t if (!this.created && !this.parent.remote) this.dispatch('ElSelect', 'setSelected');\n\t }\n\t },\n\n\t methods: {\n\t isEqual: function isEqual(a, b) {\n\t if (!this.isObject) {\n\t return a === b;\n\t } else {\n\t var valueKey = this.parent.valueKey;\n\t return (0, _util.getValueByPath)(a, valueKey) === (0, _util.getValueByPath)(b, valueKey);\n\t }\n\t },\n\t contains: function contains() {\n\t var _this = this;\n\n\t var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\t var target = arguments[1];\n\n\t if (!this.isObject) {\n\t return arr.indexOf(target) > -1;\n\t } else {\n\t var _ret = function () {\n\t var valueKey = _this.parent.valueKey;\n\t return {\n\t v: arr.some(function (item) {\n\t return (0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(target, valueKey);\n\t })\n\t };\n\t }();\n\n\t if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n\t }\n\t },\n\t handleGroupDisabled: function handleGroupDisabled(val) {\n\t this.groupDisabled = val;\n\t },\n\t hoverItem: function hoverItem() {\n\t if (!this.disabled && !this.groupDisabled) {\n\t this.parent.hoverIndex = this.parent.options.indexOf(this);\n\t }\n\t },\n\t selectOptionClick: function selectOptionClick() {\n\t if (this.disabled !== true && this.groupDisabled !== true) {\n\t this.dispatch('ElSelect', 'handleOptionClick', this);\n\t }\n\t },\n\t queryChange: function queryChange(query) {\n\t // query 里如果有正则中的特殊字符,需要先将这些字符转义\n\t var parsedQuery = String(query).replace(/(\\^|\\(|\\)|\\[|\\]|\\$|\\*|\\+|\\.|\\?|\\\\|\\{|\\}|\\|)/g, '\\\\$1');\n\t this.visible = new RegExp(parsedQuery, 'i').test(this.currentLabel) || this.created;\n\t if (!this.visible) {\n\t this.parent.filteredOptionsCount--;\n\t }\n\t },\n\t resetIndex: function resetIndex() {\n\t var _this2 = this;\n\n\t this.$nextTick(function () {\n\t _this2.index = _this2.parent.options.indexOf(_this2);\n\t });\n\t }\n\t },\n\n\t created: function created() {\n\t this.parent.options.push(this);\n\t this.parent.cachedOptions.push(this);\n\t this.parent.optionsCount++;\n\t this.parent.filteredOptionsCount++;\n\t this.index = this.parent.options.indexOf(this);\n\n\t this.$on('queryChange', this.queryChange);\n\t this.$on('handleGroupDisabled', this.handleGroupDisabled);\n\t this.$on('resetIndex', this.resetIndex);\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t this.dispatch('ElSelect', 'onOptionDestroy', this);\n\t }\n\t};\n\n/***/ },\n\n/***/ 220:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(121);\n\n/***/ },\n\n/***/ 221:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('li', {\n\t directives: [{\n\t name: \"show\",\n\t rawName: \"v-show\",\n\t value: (_vm.visible),\n\t expression: \"visible\"\n\t }],\n\t staticClass: \"el-select-dropdown__item\",\n\t class: {\n\t 'selected': _vm.itemSelected,\n\t 'is-disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,\n\t 'hover': _vm.parent.hoverIndex === _vm.index\n\t },\n\t on: {\n\t \"mouseenter\": _vm.hoverItem,\n\t \"click\": function($event) {\n\t $event.stopPropagation();\n\t _vm.selectOptionClick($event)\n\t }\n\t }\n\t }, [_vm._t(\"default\", [_c('span', [_vm._v(_vm._s(_vm.currentLabel))])])], 2)\n\t},staticRenderFns: []}\n\n/***/ }\n\n/******/ });\n\n/***/ }),\n/* 1319 */\n/***/ (function(module, exports) {\n\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(238);\n\n\n/***/ },\n\n/***/ 3:\n/***/ function(module, exports) {\n\n\t/* globals __VUE_SSR_CONTEXT__ */\n\n\t// this module is a runtime utility for cleaner component module output and will\n\t// be included in the final webpack user bundle\n\n\tmodule.exports = function normalizeComponent (\n\t rawScriptExports,\n\t compiledTemplate,\n\t injectStyles,\n\t scopeId,\n\t moduleIdentifier /* server only */\n\t) {\n\t var esModule\n\t var scriptExports = rawScriptExports = rawScriptExports || {}\n\n\t // ES6 modules interop\n\t var type = typeof rawScriptExports.default\n\t if (type === 'object' || type === 'function') {\n\t esModule = rawScriptExports\n\t scriptExports = rawScriptExports.default\n\t }\n\n\t // Vue.extend constructor export interop\n\t var options = typeof scriptExports === 'function'\n\t ? scriptExports.options\n\t : scriptExports\n\n\t // render functions\n\t if (compiledTemplate) {\n\t options.render = compiledTemplate.render\n\t options.staticRenderFns = compiledTemplate.staticRenderFns\n\t }\n\n\t // scopedId\n\t if (scopeId) {\n\t options._scopeId = scopeId\n\t }\n\n\t var hook\n\t if (moduleIdentifier) { // server build\n\t hook = function (context) {\n\t // 2.3 injection\n\t context = context || (this.$vnode && this.$vnode.ssrContext)\n\t // 2.2 with runInNewContext: true\n\t if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n\t context = __VUE_SSR_CONTEXT__\n\t }\n\t // inject component styles\n\t if (injectStyles) {\n\t injectStyles.call(this, context)\n\t }\n\t // register component module identifier for async chunk inferrence\n\t if (context && context._registeredComponents) {\n\t context._registeredComponents.add(moduleIdentifier)\n\t }\n\t }\n\t // used by ssr in case component is cached and beforeCreate\n\t // never gets called\n\t options._ssrRegister = hook\n\t } else if (injectStyles) {\n\t hook = injectStyles\n\t }\n\n\t if (hook) {\n\t // inject component registration as beforeCreate hook\n\t var existing = options.beforeCreate\n\t options.beforeCreate = existing\n\t ? [].concat(existing, hook)\n\t : [hook]\n\t }\n\n\t return {\n\t esModule: esModule,\n\t exports: scriptExports,\n\t options: options\n\t }\n\t}\n\n\n/***/ },\n\n/***/ 238:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _progress = __webpack_require__(239);\n\n\tvar _progress2 = _interopRequireDefault(_progress);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* istanbul ignore next */\n\t_progress2.default.install = function (Vue) {\n\t Vue.component(_progress2.default.name, _progress2.default);\n\t};\n\n\texports.default = _progress2.default;\n\n/***/ },\n\n/***/ 239:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(240),\n\t /* template */\n\t __webpack_require__(241),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 240:\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\n\texports.default = {\n\t name: 'ElProgress',\n\t props: {\n\t type: {\n\t type: String,\n\t default: 'line',\n\t validator: function validator(val) {\n\t return ['line', 'circle'].indexOf(val) > -1;\n\t }\n\t },\n\t percentage: {\n\t type: Number,\n\t default: 0,\n\t required: true,\n\t validator: function validator(val) {\n\t return val >= 0 && val <= 100;\n\t }\n\t },\n\t status: {\n\t type: String\n\t },\n\t strokeWidth: {\n\t type: Number,\n\t default: 6\n\t },\n\t textInside: {\n\t type: Boolean,\n\t default: false\n\t },\n\t width: {\n\t type: Number,\n\t default: 126\n\t },\n\t showText: {\n\t type: Boolean,\n\t default: true\n\t }\n\t },\n\t computed: {\n\t barStyle: function barStyle() {\n\t var style = {};\n\t style.width = this.percentage + '%';\n\t return style;\n\t },\n\t relativeStrokeWidth: function relativeStrokeWidth() {\n\t return (this.strokeWidth / this.width * 100).toFixed(1);\n\t },\n\t trackPath: function trackPath() {\n\t var radius = parseInt(50 - parseFloat(this.relativeStrokeWidth) / 2, 10);\n\n\t return 'M 50 50 m 0 -' + radius + ' a ' + radius + ' ' + radius + ' 0 1 1 0 ' + radius * 2 + ' a ' + radius + ' ' + radius + ' 0 1 1 0 -' + radius * 2;\n\t },\n\t perimeter: function perimeter() {\n\t var radius = 50 - parseFloat(this.relativeStrokeWidth) / 2;\n\t return 2 * Math.PI * radius;\n\t },\n\t circlePathStyle: function circlePathStyle() {\n\t var perimeter = this.perimeter;\n\t return {\n\t strokeDasharray: perimeter + 'px,' + perimeter + 'px',\n\t strokeDashoffset: (1 - this.percentage / 100) * perimeter + 'px',\n\t transition: 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease'\n\t };\n\t },\n\t stroke: function stroke() {\n\t var ret;\n\t switch (this.status) {\n\t case 'success':\n\t ret = '#13ce66';\n\t break;\n\t case 'exception':\n\t ret = '#ff4949';\n\t break;\n\t default:\n\t ret = '#20a0ff';\n\t }\n\t return ret;\n\t },\n\t iconClass: function iconClass() {\n\t if (this.type === 'line') {\n\t return this.status === 'success' ? 'el-icon-circle-check' : 'el-icon-circle-cross';\n\t } else {\n\t return this.status === 'success' ? 'el-icon-check' : 'el-icon-close';\n\t }\n\t },\n\t progressTextSize: function progressTextSize() {\n\t return this.type === 'line' ? 12 + this.strokeWidth * 0.4 : this.width * 0.111111 + 2;\n\t }\n\t }\n\t};\n\n/***/ },\n\n/***/ 241:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('div', {\n\t staticClass: \"el-progress\",\n\t class: [\n\t 'el-progress--' + _vm.type,\n\t _vm.status ? 'is-' + _vm.status : '', {\n\t 'el-progress--without-text': !_vm.showText,\n\t 'el-progress--text-inside': _vm.textInside,\n\t }\n\t ]\n\t }, [(_vm.type === 'line') ? _c('div', {\n\t staticClass: \"el-progress-bar\"\n\t }, [_c('div', {\n\t staticClass: \"el-progress-bar__outer\",\n\t style: ({\n\t height: _vm.strokeWidth + 'px'\n\t })\n\t }, [_c('div', {\n\t staticClass: \"el-progress-bar__inner\",\n\t style: (_vm.barStyle)\n\t }, [(_vm.showText && _vm.textInside) ? _c('div', {\n\t staticClass: \"el-progress-bar__innerText\"\n\t }, [_vm._v(_vm._s(_vm.percentage) + \"%\")]) : _vm._e()])])]) : _c('div', {\n\t staticClass: \"el-progress-circle\",\n\t style: ({\n\t height: _vm.width + 'px',\n\t width: _vm.width + 'px'\n\t })\n\t }, [_c('svg', {\n\t attrs: {\n\t \"viewBox\": \"0 0 100 100\"\n\t }\n\t }, [_c('path', {\n\t staticClass: \"el-progress-circle__track\",\n\t attrs: {\n\t \"d\": _vm.trackPath,\n\t \"stroke\": \"#e5e9f2\",\n\t \"stroke-width\": _vm.relativeStrokeWidth,\n\t \"fill\": \"none\"\n\t }\n\t }), _c('path', {\n\t staticClass: \"el-progress-circle__path\",\n\t style: (_vm.circlePathStyle),\n\t attrs: {\n\t \"d\": _vm.trackPath,\n\t \"stroke-linecap\": \"round\",\n\t \"stroke\": _vm.stroke,\n\t \"stroke-width\": _vm.relativeStrokeWidth,\n\t \"fill\": \"none\"\n\t }\n\t })])]), (_vm.showText && !_vm.textInside) ? _c('div', {\n\t staticClass: \"el-progress__text\",\n\t style: ({\n\t fontSize: _vm.progressTextSize + 'px'\n\t })\n\t }, [(!_vm.status) ? [_vm._v(_vm._s(_vm.percentage) + \"%\")] : _c('i', {\n\t class: _vm.iconClass\n\t })], 2) : _vm._e()])\n\t},staticRenderFns: []}\n\n/***/ }\n\n/******/ });\n\n/***/ }),\n/* 1320 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(265);\n\n\n/***/ },\n\n/***/ 3:\n/***/ function(module, exports) {\n\n\t/* globals __VUE_SSR_CONTEXT__ */\n\n\t// this module is a runtime utility for cleaner component module output and will\n\t// be included in the final webpack user bundle\n\n\tmodule.exports = function normalizeComponent (\n\t rawScriptExports,\n\t compiledTemplate,\n\t injectStyles,\n\t scopeId,\n\t moduleIdentifier /* server only */\n\t) {\n\t var esModule\n\t var scriptExports = rawScriptExports = rawScriptExports || {}\n\n\t // ES6 modules interop\n\t var type = typeof rawScriptExports.default\n\t if (type === 'object' || type === 'function') {\n\t esModule = rawScriptExports\n\t scriptExports = rawScriptExports.default\n\t }\n\n\t // Vue.extend constructor export interop\n\t var options = typeof scriptExports === 'function'\n\t ? scriptExports.options\n\t : scriptExports\n\n\t // render functions\n\t if (compiledTemplate) {\n\t options.render = compiledTemplate.render\n\t options.staticRenderFns = compiledTemplate.staticRenderFns\n\t }\n\n\t // scopedId\n\t if (scopeId) {\n\t options._scopeId = scopeId\n\t }\n\n\t var hook\n\t if (moduleIdentifier) { // server build\n\t hook = function (context) {\n\t // 2.3 injection\n\t context = context || (this.$vnode && this.$vnode.ssrContext)\n\t // 2.2 with runInNewContext: true\n\t if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n\t context = __VUE_SSR_CONTEXT__\n\t }\n\t // inject component styles\n\t if (injectStyles) {\n\t injectStyles.call(this, context)\n\t }\n\t // register component module identifier for async chunk inferrence\n\t if (context && context._registeredComponents) {\n\t context._registeredComponents.add(moduleIdentifier)\n\t }\n\t }\n\t // used by ssr in case component is cached and beforeCreate\n\t // never gets called\n\t options._ssrRegister = hook\n\t } else if (injectStyles) {\n\t hook = injectStyles\n\t }\n\n\t if (hook) {\n\t // inject component registration as beforeCreate hook\n\t var existing = options.beforeCreate\n\t options.beforeCreate = existing\n\t ? [].concat(existing, hook)\n\t : [hook]\n\t }\n\n\t return {\n\t esModule: esModule,\n\t exports: scriptExports,\n\t options: options\n\t }\n\t}\n\n\n/***/ },\n\n/***/ 9:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(265);\n\n/***/ },\n\n/***/ 10:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(412);\n\n/***/ },\n\n/***/ 13:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(270);\n\n/***/ },\n\n/***/ 14:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(120);\n\n/***/ },\n\n/***/ 15:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(410);\n\n/***/ },\n\n/***/ 46:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(268);\n\n/***/ },\n\n/***/ 60:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(414);\n\n/***/ },\n\n/***/ 61:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(409);\n\n/***/ },\n\n/***/ 62:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(266);\n\n/***/ },\n\n/***/ 63:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(186);\n\n/***/ },\n\n/***/ 123:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(81);\n\n/***/ },\n\n/***/ 218:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(219),\n\t /* template */\n\t __webpack_require__(221),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 219:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _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; }; //\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\n\tvar _emitter = __webpack_require__(14);\n\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\n\tvar _util = __webpack_require__(220);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\texports.default = {\n\t mixins: [_emitter2.default],\n\n\t name: 'ElOption',\n\n\t componentName: 'ElOption',\n\n\t props: {\n\t value: {\n\t required: true\n\t },\n\t label: [String, Number],\n\t created: Boolean,\n\t disabled: {\n\t type: Boolean,\n\t default: false\n\t }\n\t },\n\n\t data: function data() {\n\t return {\n\t index: -1,\n\t groupDisabled: false,\n\t visible: true,\n\t hitState: false\n\t };\n\t },\n\n\n\t computed: {\n\t isObject: function isObject() {\n\t return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';\n\t },\n\t currentLabel: function currentLabel() {\n\t return this.label || (this.isObject ? '' : this.value);\n\t },\n\t currentValue: function currentValue() {\n\t return this.value || this.label || '';\n\t },\n\t parent: function parent() {\n\t var result = this.$parent;\n\t while (!result.isSelect) {\n\t result = result.$parent;\n\t }\n\t return result;\n\t },\n\t itemSelected: function itemSelected() {\n\t if (!this.parent.multiple) {\n\t return this.isEqual(this.value, this.parent.value);\n\t } else {\n\t return this.contains(this.parent.value, this.value);\n\t }\n\t },\n\t limitReached: function limitReached() {\n\t if (this.parent.multiple) {\n\t return !this.itemSelected && this.parent.value.length >= this.parent.multipleLimit && this.parent.multipleLimit > 0;\n\t } else {\n\t return false;\n\t }\n\t }\n\t },\n\n\t watch: {\n\t currentLabel: function currentLabel() {\n\t if (!this.created && !this.parent.remote) this.dispatch('ElSelect', 'setSelected');\n\t },\n\t value: function value() {\n\t if (!this.created && !this.parent.remote) this.dispatch('ElSelect', 'setSelected');\n\t }\n\t },\n\n\t methods: {\n\t isEqual: function isEqual(a, b) {\n\t if (!this.isObject) {\n\t return a === b;\n\t } else {\n\t var valueKey = this.parent.valueKey;\n\t return (0, _util.getValueByPath)(a, valueKey) === (0, _util.getValueByPath)(b, valueKey);\n\t }\n\t },\n\t contains: function contains() {\n\t var _this = this;\n\n\t var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\t var target = arguments[1];\n\n\t if (!this.isObject) {\n\t return arr.indexOf(target) > -1;\n\t } else {\n\t var _ret = function () {\n\t var valueKey = _this.parent.valueKey;\n\t return {\n\t v: arr.some(function (item) {\n\t return (0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(target, valueKey);\n\t })\n\t };\n\t }();\n\n\t if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n\t }\n\t },\n\t handleGroupDisabled: function handleGroupDisabled(val) {\n\t this.groupDisabled = val;\n\t },\n\t hoverItem: function hoverItem() {\n\t if (!this.disabled && !this.groupDisabled) {\n\t this.parent.hoverIndex = this.parent.options.indexOf(this);\n\t }\n\t },\n\t selectOptionClick: function selectOptionClick() {\n\t if (this.disabled !== true && this.groupDisabled !== true) {\n\t this.dispatch('ElSelect', 'handleOptionClick', this);\n\t }\n\t },\n\t queryChange: function queryChange(query) {\n\t // query 里如果有正则中的特殊字符,需要先将这些字符转义\n\t var parsedQuery = String(query).replace(/(\\^|\\(|\\)|\\[|\\]|\\$|\\*|\\+|\\.|\\?|\\\\|\\{|\\}|\\|)/g, '\\\\$1');\n\t this.visible = new RegExp(parsedQuery, 'i').test(this.currentLabel) || this.created;\n\t if (!this.visible) {\n\t this.parent.filteredOptionsCount--;\n\t }\n\t },\n\t resetIndex: function resetIndex() {\n\t var _this2 = this;\n\n\t this.$nextTick(function () {\n\t _this2.index = _this2.parent.options.indexOf(_this2);\n\t });\n\t }\n\t },\n\n\t created: function created() {\n\t this.parent.options.push(this);\n\t this.parent.cachedOptions.push(this);\n\t this.parent.optionsCount++;\n\t this.parent.filteredOptionsCount++;\n\t this.index = this.parent.options.indexOf(this);\n\n\t this.$on('queryChange', this.queryChange);\n\t this.$on('handleGroupDisabled', this.handleGroupDisabled);\n\t this.$on('resetIndex', this.resetIndex);\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t this.dispatch('ElSelect', 'onOptionDestroy', this);\n\t }\n\t};\n\n/***/ },\n\n/***/ 220:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(121);\n\n/***/ },\n\n/***/ 221:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('li', {\n\t directives: [{\n\t name: \"show\",\n\t rawName: \"v-show\",\n\t value: (_vm.visible),\n\t expression: \"visible\"\n\t }],\n\t staticClass: \"el-select-dropdown__item\",\n\t class: {\n\t 'selected': _vm.itemSelected,\n\t 'is-disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,\n\t 'hover': _vm.parent.hoverIndex === _vm.index\n\t },\n\t on: {\n\t \"mouseenter\": _vm.hoverItem,\n\t \"click\": function($event) {\n\t $event.stopPropagation();\n\t _vm.selectOptionClick($event)\n\t }\n\t }\n\t }, [_vm._t(\"default\", [_c('span', [_vm._v(_vm._s(_vm.currentLabel))])])], 2)\n\t},staticRenderFns: []}\n\n/***/ },\n\n/***/ 265:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _select = __webpack_require__(266);\n\n\tvar _select2 = _interopRequireDefault(_select);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* istanbul ignore next */\n\t_select2.default.install = function (Vue) {\n\t Vue.component(_select2.default.name, _select2.default);\n\t};\n\n\texports.default = _select2.default;\n\n/***/ },\n\n/***/ 266:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(267),\n\t /* template */\n\t __webpack_require__(272),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 267:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _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; }; //\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\n\tvar _emitter = __webpack_require__(14);\n\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\n\tvar _locale = __webpack_require__(61);\n\n\tvar _locale2 = _interopRequireDefault(_locale);\n\n\tvar _input = __webpack_require__(9);\n\n\tvar _input2 = _interopRequireDefault(_input);\n\n\tvar _selectDropdown = __webpack_require__(268);\n\n\tvar _selectDropdown2 = _interopRequireDefault(_selectDropdown);\n\n\tvar _option = __webpack_require__(218);\n\n\tvar _option2 = _interopRequireDefault(_option);\n\n\tvar _tag = __webpack_require__(271);\n\n\tvar _tag2 = _interopRequireDefault(_tag);\n\n\tvar _scrollbar = __webpack_require__(15);\n\n\tvar _scrollbar2 = _interopRequireDefault(_scrollbar);\n\n\tvar _debounce = __webpack_require__(63);\n\n\tvar _debounce2 = _interopRequireDefault(_debounce);\n\n\tvar _clickoutside = __webpack_require__(10);\n\n\tvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\n\tvar _dom = __webpack_require__(123);\n\n\tvar _resizeEvent = __webpack_require__(46);\n\n\tvar _locale3 = __webpack_require__(62);\n\n\tvar _scrollIntoView = __webpack_require__(60);\n\n\tvar _scrollIntoView2 = _interopRequireDefault(_scrollIntoView);\n\n\tvar _util = __webpack_require__(220);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tvar sizeMap = {\n\t 'large': 42,\n\t 'small': 30,\n\t 'mini': 22\n\t};\n\n\texports.default = {\n\t mixins: [_emitter2.default, _locale2.default],\n\n\t name: 'ElSelect',\n\n\t componentName: 'ElSelect',\n\n\t computed: {\n\t iconClass: function iconClass() {\n\t var criteria = this.clearable && !this.disabled && this.inputHovering && !this.multiple && this.value !== undefined && this.value !== '';\n\t return criteria ? 'circle-close is-show-close' : this.remote && this.filterable ? '' : 'caret-top';\n\t },\n\t debounce: function debounce() {\n\t return this.remote ? 300 : 0;\n\t },\n\t emptyText: function emptyText() {\n\t if (this.loading) {\n\t return this.loadingText || this.t('el.select.loading');\n\t } else {\n\t if (this.remote && this.query === '' && this.options.length === 0) return false;\n\t if (this.filterable && this.options.length > 0 && this.filteredOptionsCount === 0) {\n\t return this.noMatchText || this.t('el.select.noMatch');\n\t }\n\t if (this.options.length === 0) {\n\t return this.noDataText || this.t('el.select.noData');\n\t }\n\t }\n\t return null;\n\t },\n\t showNewOption: function showNewOption() {\n\t var _this = this;\n\n\t var hasExistingOption = this.options.filter(function (option) {\n\t return !option.created;\n\t }).some(function (option) {\n\t return option.currentLabel === _this.query;\n\t });\n\t return this.filterable && this.allowCreate && this.query !== '' && !hasExistingOption;\n\t }\n\t },\n\n\t components: {\n\t ElInput: _input2.default,\n\t ElSelectMenu: _selectDropdown2.default,\n\t ElOption: _option2.default,\n\t ElTag: _tag2.default,\n\t ElScrollbar: _scrollbar2.default\n\t },\n\n\t directives: { Clickoutside: _clickoutside2.default },\n\n\t props: {\n\t name: String,\n\t value: {\n\t required: true\n\t },\n\t id: String,\n\t size: String,\n\t disabled: Boolean,\n\t clearable: Boolean,\n\t filterable: Boolean,\n\t allowCreate: Boolean,\n\t loading: Boolean,\n\t popperClass: String,\n\t remote: Boolean,\n\t loadingText: String,\n\t noMatchText: String,\n\t noDataText: String,\n\t remoteMethod: Function,\n\t filterMethod: Function,\n\t multiple: Boolean,\n\t multipleLimit: {\n\t type: Number,\n\t default: 0\n\t },\n\t placeholder: {\n\t type: String,\n\t default: function _default() {\n\t return (0, _locale3.t)('el.select.placeholder');\n\t }\n\t },\n\t defaultFirstOption: Boolean,\n\t valueKey: {\n\t type: String,\n\t default: 'value'\n\t }\n\t },\n\n\t data: function data() {\n\t return {\n\t options: [],\n\t cachedOptions: [],\n\t createdLabel: null,\n\t createdSelected: false,\n\t selected: this.multiple ? [] : {},\n\t isSelect: true,\n\t inputLength: 20,\n\t inputWidth: 0,\n\t cachedPlaceHolder: '',\n\t optionsCount: 0,\n\t filteredOptionsCount: 0,\n\t visible: false,\n\t selectedLabel: '',\n\t hoverIndex: -1,\n\t query: '',\n\t optionsAllDisabled: false,\n\t inputHovering: false,\n\t currentPlaceholder: ''\n\t };\n\t },\n\n\n\t watch: {\n\t disabled: function disabled() {\n\t var _this2 = this;\n\n\t this.$nextTick(function () {\n\t _this2.resetInputHeight();\n\t });\n\t },\n\t placeholder: function placeholder(val) {\n\t this.cachedPlaceHolder = this.currentPlaceholder = val;\n\t },\n\t value: function value(val) {\n\t if (this.multiple) {\n\t this.resetInputHeight();\n\t if (val.length > 0 || this.$refs.input && this.query !== '') {\n\t this.currentPlaceholder = '';\n\t } else {\n\t this.currentPlaceholder = this.cachedPlaceHolder;\n\t }\n\t }\n\t this.setSelected();\n\t if (this.filterable && !this.multiple) {\n\t this.inputLength = 20;\n\t }\n\t this.$emit('change', val);\n\t this.dispatch('ElFormItem', 'el.form.change', val);\n\t },\n\t query: function query(val) {\n\t var _this3 = this;\n\n\t if (val === null || val === undefined) return;\n\t this.$nextTick(function () {\n\t if (_this3.visible) _this3.broadcast('ElSelectDropdown', 'updatePopper');\n\t });\n\t this.hoverIndex = -1;\n\t if (this.multiple && this.filterable) {\n\t this.inputLength = this.$refs.input.value.length * 15 + 20;\n\t this.managePlaceholder();\n\t this.resetInputHeight();\n\t }\n\t if (this.remote && typeof this.remoteMethod === 'function') {\n\t this.hoverIndex = -1;\n\t this.remoteMethod(val);\n\t this.broadcast('ElOption', 'resetIndex');\n\t } else if (typeof this.filterMethod === 'function') {\n\t this.filterMethod(val);\n\t this.broadcast('ElOptionGroup', 'queryChange');\n\t } else {\n\t this.filteredOptionsCount = this.optionsCount;\n\t this.broadcast('ElOption', 'queryChange', val);\n\t this.broadcast('ElOptionGroup', 'queryChange');\n\t }\n\t if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {\n\t this.checkDefaultFirstOption();\n\t }\n\t },\n\t visible: function visible(val) {\n\t var _this4 = this;\n\n\t if (!val) {\n\t this.$refs.reference.$el.querySelector('input').blur();\n\t this.handleIconHide();\n\t this.broadcast('ElSelectDropdown', 'destroyPopper');\n\t if (this.$refs.input) {\n\t this.$refs.input.blur();\n\t }\n\t this.query = '';\n\t this.selectedLabel = '';\n\t this.inputLength = 20;\n\t this.resetHoverIndex();\n\t this.$nextTick(function () {\n\t if (_this4.$refs.input && _this4.$refs.input.value === '' && _this4.selected.length === 0) {\n\t _this4.currentPlaceholder = _this4.cachedPlaceHolder;\n\t }\n\t });\n\t if (!this.multiple) {\n\t if (this.selected) {\n\t if (this.filterable && this.allowCreate && this.createdSelected && this.createdOption) {\n\t this.selectedLabel = this.createdLabel;\n\t } else {\n\t this.selectedLabel = this.selected.currentLabel;\n\t }\n\t if (this.filterable) this.query = this.selectedLabel;\n\t }\n\t }\n\t } else {\n\t this.handleIconShow();\n\t this.broadcast('ElSelectDropdown', 'updatePopper');\n\t if (this.filterable) {\n\t this.query = this.selectedLabel;\n\t if (this.multiple) {\n\t this.$refs.input.focus();\n\t } else {\n\t if (!this.remote) {\n\t this.broadcast('ElOption', 'queryChange', '');\n\t this.broadcast('ElOptionGroup', 'queryChange');\n\t }\n\t this.broadcast('ElInput', 'inputSelect');\n\t }\n\t }\n\t }\n\t this.$emit('visible-change', val);\n\t },\n\t options: function options(val) {\n\t if (this.$isServer) return;\n\t this.optionsAllDisabled = val.length === val.filter(function (item) {\n\t return item.disabled === true;\n\t }).length;\n\t if (this.multiple) {\n\t this.resetInputHeight();\n\t }\n\t var inputs = this.$el.querySelectorAll('input');\n\t if ([].indexOf.call(inputs, document.activeElement) === -1) {\n\t this.setSelected();\n\t }\n\t if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {\n\t this.checkDefaultFirstOption();\n\t }\n\t }\n\t },\n\n\t methods: {\n\t handleIconHide: function handleIconHide() {\n\t var icon = this.$el.querySelector('.el-input__icon');\n\t if (icon) {\n\t (0, _dom.removeClass)(icon, 'is-reverse');\n\t }\n\t },\n\t handleIconShow: function handleIconShow() {\n\t var icon = this.$el.querySelector('.el-input__icon');\n\t if (icon && !(0, _dom.hasClass)(icon, 'el-icon-circle-close')) {\n\t (0, _dom.addClass)(icon, 'is-reverse');\n\t }\n\t },\n\t scrollToOption: function scrollToOption(option) {\n\t var target = Array.isArray(option) && option[0] ? option[0].$el : option.$el;\n\t if (this.$refs.popper && target) {\n\t var menu = this.$refs.popper.$el.querySelector('.el-select-dropdown__wrap');\n\t (0, _scrollIntoView2.default)(menu, target);\n\t }\n\t },\n\t handleMenuEnter: function handleMenuEnter() {\n\t var _this5 = this;\n\n\t this.$nextTick(function () {\n\t return _this5.scrollToOption(_this5.selected);\n\t });\n\t },\n\t getOption: function getOption(value) {\n\t var option = void 0;\n\t var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';\n\t for (var i = this.cachedOptions.length - 1; i >= 0; i--) {\n\t var cachedOption = this.cachedOptions[i];\n\t var isEqual = isObject ? (0, _util.getValueByPath)(cachedOption.value, this.valueKey) === (0, _util.getValueByPath)(value, this.valueKey) : cachedOption.value === value;\n\t if (isEqual) {\n\t option = cachedOption;\n\t break;\n\t }\n\t }\n\t if (option) return option;\n\t var label = !isObject ? value : '';\n\t var newOption = {\n\t value: value,\n\t currentLabel: label\n\t };\n\t if (this.multiple) {\n\t newOption.hitState = false;\n\t }\n\t return newOption;\n\t },\n\t setSelected: function setSelected() {\n\t var _this6 = this;\n\n\t if (!this.multiple) {\n\t var option = this.getOption(this.value);\n\t if (option.created) {\n\t this.createdLabel = option.currentLabel;\n\t this.createdSelected = true;\n\t } else {\n\t this.createdSelected = false;\n\t }\n\t this.selectedLabel = option.currentLabel;\n\t this.selected = option;\n\t if (this.filterable) this.query = this.selectedLabel;\n\t return;\n\t }\n\t var result = [];\n\t if (Array.isArray(this.value)) {\n\t this.value.forEach(function (value) {\n\t result.push(_this6.getOption(value));\n\t });\n\t }\n\t this.selected = result;\n\t this.$nextTick(function () {\n\t _this6.resetInputHeight();\n\t });\n\t },\n\t handleFocus: function handleFocus() {\n\t this.visible = true;\n\t },\n\t handleIconClick: function handleIconClick(event) {\n\t if (this.iconClass.indexOf('circle-close') > -1) {\n\t this.deleteSelected(event);\n\t } else {\n\t this.toggleMenu();\n\t }\n\t },\n\t handleMouseDown: function handleMouseDown(event) {\n\t if (event.target.tagName !== 'INPUT') return;\n\t if (this.visible) {\n\t this.handleClose();\n\t event.preventDefault();\n\t }\n\t },\n\t doDestroy: function doDestroy() {\n\t this.$refs.popper && this.$refs.popper.doDestroy();\n\t this.dropdownUl = null;\n\t },\n\t handleClose: function handleClose() {\n\t this.visible = false;\n\t },\n\t toggleLastOptionHitState: function toggleLastOptionHitState(hit) {\n\t if (!Array.isArray(this.selected)) return;\n\t var option = this.selected[this.selected.length - 1];\n\t if (!option) return;\n\n\t if (hit === true || hit === false) {\n\t option.hitState = hit;\n\t return hit;\n\t }\n\n\t option.hitState = !option.hitState;\n\t return option.hitState;\n\t },\n\t deletePrevTag: function deletePrevTag(e) {\n\t if (e.target.value.length <= 0 && !this.toggleLastOptionHitState()) {\n\t var value = this.value.slice();\n\t value.pop();\n\t this.$emit('input', value);\n\t }\n\t },\n\t managePlaceholder: function managePlaceholder() {\n\t if (this.currentPlaceholder !== '') {\n\t this.currentPlaceholder = this.$refs.input.value ? '' : this.cachedPlaceHolder;\n\t }\n\t },\n\t resetInputState: function resetInputState(e) {\n\t if (e.keyCode !== 8) this.toggleLastOptionHitState(false);\n\t this.inputLength = this.$refs.input.value.length * 15 + 20;\n\t this.resetInputHeight();\n\t },\n\t resetInputHeight: function resetInputHeight() {\n\t var _this7 = this;\n\n\t this.$nextTick(function () {\n\t if (!_this7.$refs.reference) return;\n\t var inputChildNodes = _this7.$refs.reference.$el.childNodes;\n\t var input = [].filter.call(inputChildNodes, function (item) {\n\t return item.tagName === 'INPUT';\n\t })[0];\n\t var tags = _this7.$refs.tags;\n\t input.style.height = _this7.selected.length === 0 ? sizeMap[_this7.size] + 'px' : Math.max(tags ? tags.clientHeight + 6 : 0, sizeMap[_this7.size] || 36) + 'px';\n\t if (_this7.visible && _this7.emptyText !== false) {\n\t _this7.broadcast('ElSelectDropdown', 'updatePopper');\n\t }\n\t });\n\t },\n\t resetHoverIndex: function resetHoverIndex() {\n\t var _this8 = this;\n\n\t setTimeout(function () {\n\t if (!_this8.multiple) {\n\t _this8.hoverIndex = _this8.options.indexOf(_this8.selected);\n\t } else {\n\t if (_this8.selected.length > 0) {\n\t _this8.hoverIndex = Math.min.apply(null, _this8.selected.map(function (item) {\n\t return _this8.options.indexOf(item);\n\t }));\n\t } else {\n\t _this8.hoverIndex = -1;\n\t }\n\t }\n\t }, 300);\n\t },\n\t handleOptionSelect: function handleOptionSelect(option) {\n\t var _this9 = this;\n\n\t if (this.multiple) {\n\t var value = this.value.slice();\n\t var optionIndex = this.getValueIndex(value, option.value);\n\t if (optionIndex > -1) {\n\t value.splice(optionIndex, 1);\n\t } else if (this.multipleLimit <= 0 || value.length < this.multipleLimit) {\n\t value.push(option.value);\n\t }\n\t this.$emit('input', value);\n\t if (option.created) {\n\t this.query = '';\n\t this.inputLength = 20;\n\t }\n\t if (this.filterable) this.$refs.input.focus();\n\t } else {\n\t this.$emit('input', option.value);\n\t this.visible = false;\n\t }\n\t this.$nextTick(function () {\n\t return _this9.scrollToOption(option);\n\t });\n\t },\n\t getValueIndex: function getValueIndex() {\n\t var _this10 = this;\n\n\t var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\t var value = arguments[1];\n\n\t var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';\n\t if (!isObject) {\n\t return arr.indexOf(value);\n\t } else {\n\t var _ret = function () {\n\t var valueKey = _this10.valueKey;\n\t var index = -1;\n\t arr.some(function (item, i) {\n\t if ((0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(value, valueKey)) {\n\t index = i;\n\t return true;\n\t }\n\t return false;\n\t });\n\t return {\n\t v: index\n\t };\n\t }();\n\n\t if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n\t }\n\t },\n\t toggleMenu: function toggleMenu() {\n\t if (this.filterable && this.query === '' && this.visible) {\n\t return;\n\t }\n\t if (!this.disabled) {\n\t this.visible = !this.visible;\n\t }\n\t },\n\t navigateOptions: function navigateOptions(direction) {\n\t var _this11 = this;\n\n\t if (!this.visible) {\n\t this.visible = true;\n\t return;\n\t }\n\t if (this.options.length === 0 || this.filteredOptionsCount === 0) return;\n\t this.optionsAllDisabled = this.options.length === this.options.filter(function (item) {\n\t return item.disabled === true;\n\t }).length;\n\t if (!this.optionsAllDisabled) {\n\t if (direction === 'next') {\n\t this.hoverIndex++;\n\t if (this.hoverIndex === this.options.length) {\n\t this.hoverIndex = 0;\n\t }\n\t if (this.options[this.hoverIndex].disabled === true || this.options[this.hoverIndex].groupDisabled === true || !this.options[this.hoverIndex].visible) {\n\t this.navigateOptions('next');\n\t }\n\t }\n\t if (direction === 'prev') {\n\t this.hoverIndex--;\n\t if (this.hoverIndex < 0) {\n\t this.hoverIndex = this.options.length - 1;\n\t }\n\t if (this.options[this.hoverIndex].disabled === true || this.options[this.hoverIndex].groupDisabled === true || !this.options[this.hoverIndex].visible) {\n\t this.navigateOptions('prev');\n\t }\n\t }\n\t }\n\t this.$nextTick(function () {\n\t return _this11.scrollToOption(_this11.options[_this11.hoverIndex]);\n\t });\n\t },\n\t selectOption: function selectOption() {\n\t if (this.options[this.hoverIndex]) {\n\t this.handleOptionSelect(this.options[this.hoverIndex]);\n\t }\n\t },\n\t deleteSelected: function deleteSelected(event) {\n\t event.stopPropagation();\n\t this.$emit('input', '');\n\t this.visible = false;\n\t this.$emit('clear');\n\t },\n\t deleteTag: function deleteTag(event, tag) {\n\t var index = this.selected.indexOf(tag);\n\t if (index > -1 && !this.disabled) {\n\t var value = this.value.slice();\n\t value.splice(index, 1);\n\t this.$emit('input', value);\n\t this.$emit('remove-tag', tag);\n\t }\n\t event.stopPropagation();\n\t },\n\t onInputChange: function onInputChange() {\n\t if (this.filterable) {\n\t this.query = this.selectedLabel;\n\t }\n\t },\n\t onOptionDestroy: function onOptionDestroy(option) {\n\t this.optionsCount--;\n\t this.filteredOptionsCount--;\n\t var index = this.options.indexOf(option);\n\t if (index > -1) {\n\t this.options.splice(index, 1);\n\t }\n\t this.broadcast('ElOption', 'resetIndex');\n\t },\n\t resetInputWidth: function resetInputWidth() {\n\t this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width;\n\t },\n\t handleResize: function handleResize() {\n\t this.resetInputWidth();\n\t if (this.multiple) this.resetInputHeight();\n\t },\n\t checkDefaultFirstOption: function checkDefaultFirstOption() {\n\t this.hoverIndex = -1;\n\t for (var i = 0; i !== this.options.length; ++i) {\n\t var option = this.options[i];\n\t if (this.query) {\n\t // pick first options that passes the filter\n\t if (!option.disabled && !option.groupDisabled && option.visible) {\n\t this.hoverIndex = i;\n\t break;\n\t }\n\t } else {\n\t // pick currently selected option\n\t if (option.itemSelected) {\n\t this.hoverIndex = i;\n\t break;\n\t }\n\t }\n\t }\n\t },\n\t getValueKey: function getValueKey(item) {\n\t if (Object.prototype.toString.call(item.value).toLowerCase() !== '[object object]') {\n\t return item.value;\n\t } else {\n\t return (0, _util.getValueByPath)(item.value, this.valueKey);\n\t }\n\t }\n\t },\n\n\t created: function created() {\n\t var _this12 = this;\n\n\t this.cachedPlaceHolder = this.currentPlaceholder = this.placeholder;\n\t if (this.multiple && !Array.isArray(this.value)) {\n\t this.$emit('input', []);\n\t }\n\t if (!this.multiple && Array.isArray(this.value)) {\n\t this.$emit('input', '');\n\t }\n\n\t this.debouncedOnInputChange = (0, _debounce2.default)(this.debounce, function () {\n\t _this12.onInputChange();\n\t });\n\n\t this.$on('handleOptionClick', this.handleOptionSelect);\n\t this.$on('onOptionDestroy', this.onOptionDestroy);\n\t this.$on('setSelected', this.setSelected);\n\t },\n\t mounted: function mounted() {\n\t var _this13 = this;\n\n\t if (this.multiple && Array.isArray(this.value) && this.value.length > 0) {\n\t this.currentPlaceholder = '';\n\t }\n\t (0, _resizeEvent.addResizeListener)(this.$el, this.handleResize);\n\t if (this.remote && this.multiple) {\n\t this.resetInputHeight();\n\t }\n\t this.$nextTick(function () {\n\t if (_this13.$refs.reference && _this13.$refs.reference.$el) {\n\t _this13.inputWidth = _this13.$refs.reference.$el.getBoundingClientRect().width;\n\t }\n\t });\n\t this.setSelected();\n\t },\n\t beforeDestroy: function beforeDestroy() {\n\t if (this.$el && this.handleResize) (0, _resizeEvent.removeResizeListener)(this.$el, this.handleResize);\n\t }\n\t};\n\n/***/ },\n\n/***/ 268:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Component = __webpack_require__(3)(\n\t /* script */\n\t __webpack_require__(269),\n\t /* template */\n\t __webpack_require__(270),\n\t /* styles */\n\t null,\n\t /* scopeId */\n\t null,\n\t /* moduleIdentifier (server only) */\n\t null\n\t)\n\n\tmodule.exports = Component.exports\n\n\n/***/ },\n\n/***/ 269:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _vuePopper = __webpack_require__(13);\n\n\tvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\texports.default = {\n\t name: 'ElSelectDropdown',\n\n\t componentName: 'ElSelectDropdown',\n\n\t mixins: [_vuePopper2.default],\n\n\t props: {\n\t placement: {\n\t default: 'bottom-start'\n\t },\n\n\t boundariesPadding: {\n\t default: 0\n\t },\n\n\t popperOptions: {\n\t default: function _default() {\n\t return {\n\t gpuAcceleration: false\n\t };\n\t }\n\t }\n\t },\n\n\t data: function data() {\n\t return {\n\t minWidth: ''\n\t };\n\t },\n\n\n\t computed: {\n\t popperClass: function popperClass() {\n\t return this.$parent.popperClass;\n\t }\n\t },\n\n\t watch: {\n\t '$parent.inputWidth': function $parentInputWidth() {\n\t this.minWidth = this.$parent.$el.getBoundingClientRect().width + 'px';\n\t }\n\t },\n\n\t mounted: function mounted() {\n\t var _this = this;\n\n\t this.referenceElm = this.$parent.$refs.reference.$el;\n\t this.$parent.popperElm = this.popperElm = this.$el;\n\t this.$on('updatePopper', function () {\n\t if (_this.$parent.visible) _this.updatePopper();\n\t });\n\t this.$on('destroyPopper', this.destroyPopper);\n\t }\n\t}; //\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\t//\n\n/***/ },\n\n/***/ 270:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('div', {\n\t staticClass: \"el-select-dropdown\",\n\t class: [{\n\t 'is-multiple': _vm.$parent.multiple\n\t }, _vm.popperClass],\n\t style: ({\n\t minWidth: _vm.minWidth\n\t })\n\t }, [_vm._t(\"default\")], 2)\n\t},staticRenderFns: []}\n\n/***/ },\n\n/***/ 271:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(411);\n\n/***/ },\n\n/***/ 272:\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('div', {\n\t directives: [{\n\t name: \"clickoutside\",\n\t rawName: \"v-clickoutside\",\n\t value: (_vm.handleClose),\n\t expression: \"handleClose\"\n\t }],\n\t staticClass: \"el-select\"\n\t }, [(_vm.multiple) ? _c('div', {\n\t ref: \"tags\",\n\t staticClass: \"el-select__tags\",\n\t style: ({\n\t 'max-width': _vm.inputWidth - 32 + 'px'\n\t }),\n\t on: {\n\t \"click\": function($event) {\n\t $event.stopPropagation();\n\t _vm.toggleMenu($event)\n\t }\n\t }\n\t }, [_c('transition-group', {\n\t on: {\n\t \"after-leave\": _vm.resetInputHeight\n\t }\n\t }, _vm._l((_vm.selected), function(item) {\n\t return _c('el-tag', {\n\t key: _vm.getValueKey(item),\n\t attrs: {\n\t \"closable\": !_vm.disabled,\n\t \"hit\": item.hitState,\n\t \"type\": \"primary\",\n\t \"close-transition\": \"\"\n\t },\n\t on: {\n\t \"close\": function($event) {\n\t _vm.deleteTag($event, item)\n\t }\n\t }\n\t }, [_c('span', {\n\t staticClass: \"el-select__tags-text\"\n\t }, [_vm._v(_vm._s(item.currentLabel))])])\n\t })), (_vm.filterable) ? _c('input', {\n\t directives: [{\n\t name: \"model\",\n\t rawName: \"v-model\",\n\t value: (_vm.query),\n\t expression: \"query\"\n\t }],\n\t ref: \"input\",\n\t staticClass: \"el-select__input\",\n\t class: (\"is-\" + _vm.size),\n\t style: ({\n\t width: _vm.inputLength + 'px',\n\t 'max-width': _vm.inputWidth - 42 + 'px'\n\t }),\n\t attrs: {\n\t \"type\": \"text\",\n\t \"disabled\": _vm.disabled,\n\t \"debounce\": _vm.remote ? 300 : 0\n\t },\n\t domProps: {\n\t \"value\": (_vm.query)\n\t },\n\t on: {\n\t \"focus\": function($event) {\n\t _vm.visible = true\n\t },\n\t \"keyup\": _vm.managePlaceholder,\n\t \"keydown\": [_vm.resetInputState, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"down\", 40)) { return null; }\n\t $event.preventDefault();\n\t _vm.navigateOptions('next')\n\t }, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"up\", 38)) { return null; }\n\t $event.preventDefault();\n\t _vm.navigateOptions('prev')\n\t }, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"enter\", 13)) { return null; }\n\t $event.preventDefault();\n\t _vm.selectOption($event)\n\t }, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"esc\", 27)) { return null; }\n\t $event.stopPropagation();\n\t $event.preventDefault();\n\t _vm.visible = false\n\t }, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"delete\", [8, 46])) { return null; }\n\t _vm.deletePrevTag($event)\n\t }],\n\t \"input\": function($event) {\n\t if ($event.target.composing) { return; }\n\t _vm.query = $event.target.value\n\t }\n\t }\n\t }) : _vm._e()], 1) : _vm._e(), _c('el-input', {\n\t ref: \"reference\",\n\t attrs: {\n\t \"type\": \"text\",\n\t \"placeholder\": _vm.currentPlaceholder,\n\t \"name\": _vm.name,\n\t \"size\": _vm.size,\n\t \"id\": _vm.id,\n\t \"disabled\": _vm.disabled,\n\t \"readonly\": !_vm.filterable || _vm.multiple,\n\t \"validate-event\": false,\n\t \"icon\": _vm.iconClass\n\t },\n\t on: {\n\t \"focus\": _vm.handleFocus,\n\t \"click\": _vm.handleIconClick\n\t },\n\t nativeOn: {\n\t \"mousedown\": function($event) {\n\t _vm.handleMouseDown($event)\n\t },\n\t \"keyup\": function($event) {\n\t _vm.debouncedOnInputChange($event)\n\t },\n\t \"keydown\": [function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"down\", 40)) { return null; }\n\t $event.preventDefault();\n\t _vm.navigateOptions('next')\n\t }, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"up\", 38)) { return null; }\n\t $event.preventDefault();\n\t _vm.navigateOptions('prev')\n\t }, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"enter\", 13)) { return null; }\n\t $event.preventDefault();\n\t _vm.selectOption($event)\n\t }, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"esc\", 27)) { return null; }\n\t $event.stopPropagation();\n\t $event.preventDefault();\n\t _vm.visible = false\n\t }, function($event) {\n\t if (!('button' in $event) && _vm._k($event.keyCode, \"tab\", 9)) { return null; }\n\t _vm.visible = false\n\t }],\n\t \"paste\": function($event) {\n\t _vm.debouncedOnInputChange($event)\n\t },\n\t \"mouseenter\": function($event) {\n\t _vm.inputHovering = true\n\t },\n\t \"mouseleave\": function($event) {\n\t _vm.inputHovering = false\n\t }\n\t },\n\t model: {\n\t value: (_vm.selectedLabel),\n\t callback: function($$v) {\n\t _vm.selectedLabel = $$v\n\t },\n\t expression: \"selectedLabel\"\n\t }\n\t }), _c('transition', {\n\t attrs: {\n\t \"name\": \"el-zoom-in-top\"\n\t },\n\t on: {\n\t \"before-enter\": _vm.handleMenuEnter,\n\t \"after-leave\": _vm.doDestroy\n\t }\n\t }, [_c('el-select-menu', {\n\t directives: [{\n\t name: \"show\",\n\t rawName: \"v-show\",\n\t value: (_vm.visible && _vm.emptyText !== false),\n\t expression: \"visible && emptyText !== false\"\n\t }],\n\t ref: \"popper\"\n\t }, [_c('el-scrollbar', {\n\t directives: [{\n\t name: \"show\",\n\t rawName: \"v-show\",\n\t value: (_vm.options.length > 0 && !_vm.loading),\n\t expression: \"options.length > 0 && !loading\"\n\t }],\n\t class: {\n\t 'is-empty': !_vm.allowCreate && _vm.filteredOptionsCount === 0\n\t },\n\t attrs: {\n\t \"tag\": \"ul\",\n\t \"wrap-class\": \"el-select-dropdown__wrap\",\n\t \"view-class\": \"el-select-dropdown__list\"\n\t }\n\t }, [(_vm.showNewOption) ? _c('el-option', {\n\t attrs: {\n\t \"value\": _vm.query,\n\t \"created\": \"\"\n\t }\n\t }) : _vm._e(), _vm._t(\"default\")], 2), (_vm.emptyText && (_vm.allowCreate && _vm.options.length === 0 || !_vm.allowCreate)) ? _c('p', {\n\t staticClass: \"el-select-dropdown__empty\"\n\t }, [_vm._v(_vm._s(_vm.emptyText))]) : _vm._e()], 1)], 1)], 1)\n\t},staticRenderFns: []}\n\n/***/ }\n\n/******/ });\n\n/***/ }),\n/* 1321 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(345);\n\n\n/***/ },\n\n/***/ 13:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(270);\n\n/***/ },\n\n/***/ 55:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(34);\n\n/***/ },\n\n/***/ 63:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(186);\n\n/***/ },\n\n/***/ 198:\n/***/ function(module, exports) {\n\n\tmodule.exports = __webpack_require__(415);\n\n/***/ },\n\n/***/ 345:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _main = __webpack_require__(346);\n\n\tvar _main2 = _interopRequireDefault(_main);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* istanbul ignore next */\n\t_main2.default.install = function (Vue) {\n\t Vue.component(_main2.default.name, _main2.default);\n\t};\n\n\texports.default = _main2.default;\n\n/***/ },\n\n/***/ 346:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _vuePopper = __webpack_require__(13);\n\n\tvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\n\tvar _debounce = __webpack_require__(63);\n\n\tvar _debounce2 = _interopRequireDefault(_debounce);\n\n\tvar _vdom = __webpack_require__(198);\n\n\tvar _vue = __webpack_require__(55);\n\n\tvar _vue2 = _interopRequireDefault(_vue);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\texports.default = {\n\t name: 'ElTooltip',\n\n\t mixins: [_vuePopper2.default],\n\n\t props: {\n\t openDelay: {\n\t type: Number,\n\t default: 0\n\t },\n\t disabled: Boolean,\n\t manual: Boolean,\n\t effect: {\n\t type: String,\n\t default: 'dark'\n\t },\n\t popperClass: String,\n\t content: String,\n\t visibleArrow: {\n\t default: true\n\t },\n\t transition: {\n\t type: String,\n\t default: 'el-fade-in-linear'\n\t },\n\t popperOptions: {\n\t default: function _default() {\n\t return {\n\t boundariesPadding: 10,\n\t gpuAcceleration: false\n\t };\n\t }\n\t },\n\t enterable: {\n\t type: Boolean,\n\t default: true\n\t },\n\t hideAfter: {\n\t type: Number,\n\t default: 0\n\t }\n\t },\n\n\t data: function data() {\n\t return {\n\t timeoutPending: null\n\t };\n\t },\n\t beforeCreate: function beforeCreate() {\n\t var _this = this;\n\n\t if (this.$isServer) return;\n\n\t this.popperVM = new _vue2.default({\n\t data: { node: '' },\n\t render: function render(h) {\n\t return this.node;\n\t }\n\t }).$mount();\n\n\t this.debounceClose = (0, _debounce2.default)(200, function () {\n\t return _this.handleClosePopper();\n\t });\n\t },\n\t render: function render(h) {\n\t var _this2 = this;\n\n\t if (this.popperVM) {\n\t this.popperVM.node = h(\n\t 'transition',\n\t {\n\t attrs: {\n\t name: this.transition\n\t },\n\t on: {\n\t 'afterLeave': this.doDestroy\n\t }\n\t },\n\t [h(\n\t 'div',\n\t {\n\t on: {\n\t 'mouseleave': function mouseleave() {\n\t _this2.setExpectedState(false);_this2.debounceClose();\n\t },\n\t 'mouseenter': function mouseenter() {\n\t _this2.setExpectedState(true);\n\t }\n\t },\n\n\t ref: 'popper',\n\t directives: [{\n\t name: 'show',\n\t value: !this.disabled && this.showPopper\n\t }],\n\n\t 'class': ['el-tooltip__popper', 'is-' + this.effect, this.popperClass] },\n\t [this.$slots.content || this.content]\n\t )]\n\t );\n\t }\n\n\t if (!this.$slots.default || !this.$slots.default.length) return this.$slots.default;\n\n\t var vnode = (0, _vdom.getFirstComponentChild)(this.$slots.default);\n\t if (!vnode) return vnode;\n\t var data = vnode.data = vnode.data || {};\n\t var on = vnode.data.on = vnode.data.on || {};\n\t var nativeOn = vnode.data.nativeOn = vnode.data.nativeOn || {};\n\n\t data.staticClass = this.concatClass(data.staticClass, 'el-tooltip');\n\t on.mouseenter = this.addEventHandle(on.mouseenter, this.show);\n\t on.mouseleave = this.addEventHandle(on.mouseleave, this.hide);\n\t nativeOn.mouseenter = this.addEventHandle(nativeOn.mouseenter, this.show);\n\t nativeOn.mouseleave = this.addEventHandle(nativeOn.mouseleave, this.hide);\n\n\t return vnode;\n\t },\n\t mounted: function mounted() {\n\t this.referenceElm = this.$el;\n\t },\n\n\n\t methods: {\n\t show: function show() {\n\t this.setExpectedState(true);\n\t this.handleShowPopper();\n\t },\n\t hide: function hide() {\n\t this.setExpectedState(false);\n\t this.debounceClose();\n\t },\n\t addEventHandle: function addEventHandle(old, fn) {\n\t if (!old) {\n\t return fn;\n\t } else if (Array.isArray(old)) {\n\t return old.indexOf(fn) > -1 ? old : old.concat(fn);\n\t } else {\n\t return old === fn ? old : [old, fn];\n\t }\n\t },\n\t concatClass: function concatClass(a, b) {\n\t if (a && a.indexOf(b) > -1) return a;\n\t return a ? b ? a + ' ' + b : a : b || '';\n\t },\n\t handleShowPopper: function handleShowPopper() {\n\t var _this3 = this;\n\n\t if (!this.expectedState || this.manual) return;\n\t clearTimeout(this.timeout);\n\t this.timeout = setTimeout(function () {\n\t _this3.showPopper = true;\n\t }, this.openDelay);\n\n\t if (this.hideAfter > 0) {\n\t this.timeoutPending = setTimeout(function () {\n\t _this3.showPopper = false;\n\t }, this.hideAfter);\n\t }\n\t },\n\t handleClosePopper: function handleClosePopper() {\n\t if (this.enterable && this.expectedState || this.manual) return;\n\t clearTimeout(this.timeout);\n\n\t if (this.timeoutPending) {\n\t clearTimeout(this.timeoutPending);\n\t }\n\t this.showPopper = false;\n\t },\n\t setExpectedState: function setExpectedState(expectedState) {\n\t if (expectedState === false) {\n\t clearTimeout(this.timeoutPending);\n\t }\n\t this.expectedState = expectedState;\n\t }\n\t }\n\t};\n\n/***/ }\n\n/******/ });\n\n/***/ }),\n/* 1322 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(81);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Transition = function () {\n function Transition() {\n _classCallCheck(this, Transition);\n }\n\n Transition.prototype.beforeEnter = function beforeEnter(el) {\n (0, _dom.addClass)(el, 'collapse-transition');\n if (!el.dataset) el.dataset = {};\n\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n\n el.style.height = '0';\n el.style.paddingTop = 0;\n el.style.paddingBottom = 0;\n };\n\n Transition.prototype.enter = function enter(el) {\n el.dataset.oldOverflow = el.style.overflow;\n if (el.scrollHeight !== 0) {\n el.style.height = el.scrollHeight + 'px';\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n } else {\n el.style.height = '';\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n }\n\n el.style.overflow = 'hidden';\n };\n\n Transition.prototype.afterEnter = function afterEnter(el) {\n // for safari: remove class then reset height is necessary\n (0, _dom.removeClass)(el, 'collapse-transition');\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n };\n\n Transition.prototype.beforeLeave = function beforeLeave(el) {\n if (!el.dataset) el.dataset = {};\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n el.dataset.oldOverflow = el.style.overflow;\n\n el.style.height = el.scrollHeight + 'px';\n el.style.overflow = 'hidden';\n };\n\n Transition.prototype.leave = function leave(el) {\n if (el.scrollHeight !== 0) {\n // for safari: add class after set height, or it will jump to zero height suddenly, weired\n (0, _dom.addClass)(el, 'collapse-transition');\n el.style.height = 0;\n el.style.paddingTop = 0;\n el.style.paddingBottom = 0;\n }\n };\n\n Transition.prototype.afterLeave = function afterLeave(el) {\n (0, _dom.removeClass)(el, 'collapse-transition');\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n };\n\n return Transition;\n}();\n\nexports.default = {\n name: 'ElCollapseTransition',\n functional: true,\n render: function render(h, _ref) {\n var children = _ref.children;\n\n var data = {\n on: new Transition()\n };\n\n return h('transition', data, children);\n }\n};\n\n/***/ }),\n/* 1323 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/* Modified from https://github.com/taylorhakes/fecha\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 Taylor Hakes\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/*eslint-disable*/\n// 把 YYYY-MM-DD 改成了 yyyy-MM-dd\n(function (main) {\n 'use strict';\n\n /**\n * Parse or format dates\n * @class fecha\n */\n\n var fecha = {};\n var token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\n var twoDigits = /\\d\\d?/;\n var threeDigits = /\\d{3}/;\n var fourDigits = /\\d{4}/;\n var word = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\n var noop = function noop() {};\n\n function shorten(arr, sLen) {\n var newArr = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n newArr.push(arr[i].substr(0, sLen));\n }\n return newArr;\n }\n\n function monthUpdate(arrName) {\n return function (d, v, i18n) {\n var index = i18n[arrName].indexOf(v.charAt(0).toUpperCase() + v.substr(1).toLowerCase());\n if (~index) {\n d.month = index;\n }\n };\n }\n\n function pad(val, len) {\n val = String(val);\n len = len || 2;\n while (val.length < len) {\n val = '0' + val;\n }\n return val;\n }\n\n var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n var monthNamesShort = shorten(monthNames, 3);\n var dayNamesShort = shorten(dayNames, 3);\n fecha.i18n = {\n dayNamesShort: dayNamesShort,\n dayNames: dayNames,\n monthNamesShort: monthNamesShort,\n monthNames: monthNames,\n amPm: ['am', 'pm'],\n DoFn: function DoFn(D) {\n return D + ['th', 'st', 'nd', 'rd'][D % 10 > 3 ? 0 : (D - D % 10 !== 10) * D % 10];\n }\n };\n\n var formatFlags = {\n D: function D(dateObj) {\n return dateObj.getDay();\n },\n DD: function DD(dateObj) {\n return pad(dateObj.getDay());\n },\n Do: function Do(dateObj, i18n) {\n return i18n.DoFn(dateObj.getDate());\n },\n d: function d(dateObj) {\n return dateObj.getDate();\n },\n dd: function dd(dateObj) {\n return pad(dateObj.getDate());\n },\n ddd: function ddd(dateObj, i18n) {\n return i18n.dayNamesShort[dateObj.getDay()];\n },\n dddd: function dddd(dateObj, i18n) {\n return i18n.dayNames[dateObj.getDay()];\n },\n M: function M(dateObj) {\n return dateObj.getMonth() + 1;\n },\n MM: function MM(dateObj) {\n return pad(dateObj.getMonth() + 1);\n },\n MMM: function MMM(dateObj, i18n) {\n return i18n.monthNamesShort[dateObj.getMonth()];\n },\n MMMM: function MMMM(dateObj, i18n) {\n return i18n.monthNames[dateObj.getMonth()];\n },\n yy: function yy(dateObj) {\n return String(dateObj.getFullYear()).substr(2);\n },\n yyyy: function yyyy(dateObj) {\n return dateObj.getFullYear();\n },\n h: function h(dateObj) {\n return dateObj.getHours() % 12 || 12;\n },\n hh: function hh(dateObj) {\n return pad(dateObj.getHours() % 12 || 12);\n },\n H: function H(dateObj) {\n return dateObj.getHours();\n },\n HH: function HH(dateObj) {\n return pad(dateObj.getHours());\n },\n m: function m(dateObj) {\n return dateObj.getMinutes();\n },\n mm: function mm(dateObj) {\n return pad(dateObj.getMinutes());\n },\n s: function s(dateObj) {\n return dateObj.getSeconds();\n },\n ss: function ss(dateObj) {\n return pad(dateObj.getSeconds());\n },\n S: function S(dateObj) {\n return Math.round(dateObj.getMilliseconds() / 100);\n },\n SS: function SS(dateObj) {\n return pad(Math.round(dateObj.getMilliseconds() / 10), 2);\n },\n SSS: function SSS(dateObj) {\n return pad(dateObj.getMilliseconds(), 3);\n },\n a: function a(dateObj, i18n) {\n return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1];\n },\n A: function A(dateObj, i18n) {\n return dateObj.getHours() < 12 ? i18n.amPm[0].toUpperCase() : i18n.amPm[1].toUpperCase();\n },\n ZZ: function ZZ(dateObj) {\n var o = dateObj.getTimezoneOffset();\n return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);\n }\n };\n\n var parseFlags = {\n d: [twoDigits, function (d, v) {\n d.day = v;\n }],\n M: [twoDigits, function (d, v) {\n d.month = v - 1;\n }],\n yy: [twoDigits, function (d, v) {\n var da = new Date(),\n cent = +('' + da.getFullYear()).substr(0, 2);\n d.year = '' + (v > 68 ? cent - 1 : cent) + v;\n }],\n h: [twoDigits, function (d, v) {\n d.hour = v;\n }],\n m: [twoDigits, function (d, v) {\n d.minute = v;\n }],\n s: [twoDigits, function (d, v) {\n d.second = v;\n }],\n yyyy: [fourDigits, function (d, v) {\n d.year = v;\n }],\n S: [/\\d/, function (d, v) {\n d.millisecond = v * 100;\n }],\n SS: [/\\d{2}/, function (d, v) {\n d.millisecond = v * 10;\n }],\n SSS: [threeDigits, function (d, v) {\n d.millisecond = v;\n }],\n D: [twoDigits, noop],\n ddd: [word, noop],\n MMM: [word, monthUpdate('monthNamesShort')],\n MMMM: [word, monthUpdate('monthNames')],\n a: [word, function (d, v, i18n) {\n var val = v.toLowerCase();\n if (val === i18n.amPm[0]) {\n d.isPm = false;\n } else if (val === i18n.amPm[1]) {\n d.isPm = true;\n }\n }],\n ZZ: [/[\\+\\-]\\d\\d:?\\d\\d/, function (d, v) {\n var parts = (v + '').match(/([\\+\\-]|\\d\\d)/gi),\n minutes;\n\n if (parts) {\n minutes = +(parts[1] * 60) + parseInt(parts[2], 10);\n d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;\n }\n }]\n };\n parseFlags.DD = parseFlags.D;\n parseFlags.dddd = parseFlags.ddd;\n parseFlags.Do = parseFlags.dd = parseFlags.d;\n parseFlags.mm = parseFlags.m;\n parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;\n parseFlags.MM = parseFlags.M;\n parseFlags.ss = parseFlags.s;\n parseFlags.A = parseFlags.a;\n\n // Some common format strings\n fecha.masks = {\n 'default': 'ddd MMM dd yyyy HH:mm:ss',\n shortDate: 'M/D/yy',\n mediumDate: 'MMM d, yyyy',\n longDate: 'MMMM d, yyyy',\n fullDate: 'dddd, MMMM d, yyyy',\n shortTime: 'HH:mm',\n mediumTime: 'HH:mm:ss',\n longTime: 'HH:mm:ss.SSS'\n };\n\n /***\n * Format a date\n * @method format\n * @param {Date|number} dateObj\n * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'\n */\n fecha.format = function (dateObj, mask, i18nSettings) {\n var i18n = i18nSettings || fecha.i18n;\n\n if (typeof dateObj === 'number') {\n dateObj = new Date(dateObj);\n }\n\n if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {\n throw new Error('Invalid Date in fecha.format');\n }\n\n mask = fecha.masks[mask] || mask || fecha.masks['default'];\n\n return mask.replace(token, function ($0) {\n return $0 in formatFlags ? formatFlags[$0](dateObj, i18n) : $0.slice(1, $0.length - 1);\n });\n };\n\n /**\n * Parse a date string into an object, changes - into /\n * @method parse\n * @param {string} dateStr Date string\n * @param {string} format Date parse format\n * @returns {Date|boolean}\n */\n fecha.parse = function (dateStr, format, i18nSettings) {\n var i18n = i18nSettings || fecha.i18n;\n\n if (typeof format !== 'string') {\n throw new Error('Invalid format in fecha.parse');\n }\n\n format = fecha.masks[format] || format;\n\n // Avoid regular expression denial of service, fail early for really long strings\n // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS\n if (dateStr.length > 1000) {\n return false;\n }\n\n var isValid = true;\n var dateInfo = {};\n format.replace(token, function ($0) {\n if (parseFlags[$0]) {\n var info = parseFlags[$0];\n var index = dateStr.search(info[0]);\n if (!~index) {\n isValid = false;\n } else {\n dateStr.replace(info[0], function (result) {\n info[1](dateInfo, result, i18n);\n dateStr = dateStr.substr(index + result.length);\n return result;\n });\n }\n }\n\n return parseFlags[$0] ? '' : $0.slice(1, $0.length - 1);\n });\n\n if (!isValid) {\n return false;\n }\n\n var today = new Date();\n if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {\n dateInfo.hour = +dateInfo.hour + 12;\n } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {\n dateInfo.hour = 0;\n }\n\n var date;\n if (dateInfo.timezoneOffset != null) {\n dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;\n date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));\n } else {\n date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);\n }\n return date;\n };\n\n /* istanbul ignore next */\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = fecha;\n } else if (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n return fecha;\n }.call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {\n main.fecha = fecha;\n }\n})(undefined);\n\n/***/ }),\n/* 1324 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _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; };\n\n/**\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version {{version}}\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n//\n// Cross module loader\n// Supported: Node, AMD, Browser globals\n//\n;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.Popper = factory();\n }\n})(undefined, function () {\n\n 'use strict';\n\n var root = window;\n\n // default options\n var DEFAULTS = {\n // placement of the popper\n placement: 'bottom',\n\n gpuAcceleration: true,\n\n // shift popper from its origin by the given amount of pixels (can be negative)\n offset: 0,\n\n // the element which will act as boundary of the popper\n boundariesElement: 'viewport',\n\n // amount of pixel used to define a minimum distance between the boundaries and the popper\n boundariesPadding: 5,\n\n // popper will try to prevent overflow following this order,\n // by default, then, it could overflow on the left and on top of the boundariesElement\n preventOverflowOrder: ['left', 'right', 'top', 'bottom'],\n\n // the behavior used by flip to change the placement of the popper\n flipBehavior: 'flip',\n\n arrowElement: '[x-arrow]',\n\n // list of functions used to modify the offsets before they are applied to the popper\n modifiers: ['shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle'],\n\n modifiersIgnored: [],\n\n forceAbsolute: false\n };\n\n /**\n * Create a new Popper.js instance\n * @constructor Popper\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement|Object} popper\n * The HTML element used as popper, or a configuration used to generate the popper.\n * @param {String} [popper.tagName='div'] The tag name of the generated popper.\n * @param {Array} [popper.classNames=['popper']] Array of classes to apply to the generated popper.\n * @param {Array} [popper.attributes] Array of attributes to apply, specify `attr:value` to assign a value to it.\n * @param {HTMLElement|String} [popper.parent=window.document.body] The parent element, given as HTMLElement or as query string.\n * @param {String} [popper.content=''] The content of the popper, it can be text, html, or node; if it is not text, set `contentType` to `html` or `node`.\n * @param {String} [popper.contentType='text'] If `html`, the `content` will be parsed as HTML. If `node`, it will be appended as-is.\n * @param {String} [popper.arrowTagName='div'] Same as `popper.tagName` but for the arrow element.\n * @param {Array} [popper.arrowClassNames='popper__arrow'] Same as `popper.classNames` but for the arrow element.\n * @param {String} [popper.arrowAttributes=['x-arrow']] Same as `popper.attributes` but for the arrow element.\n * @param {Object} options\n * @param {String} [options.placement=bottom]\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -right),\n * left(-start, -end)`\n *\n * @param {HTMLElement|String} [options.arrowElement='[x-arrow]']\n * The DOM Node used as arrow for the popper, or a CSS selector used to get the DOM node. It must be child of\n * its parent Popper. Popper.js will apply to the given element the style required to align the arrow with its\n * reference element.\n * By default, it will look for a child node of the popper with the `x-arrow` attribute.\n *\n * @param {Boolean} [options.gpuAcceleration=true]\n * When this property is set to true, the popper position will be applied using CSS3 translate3d, allowing the\n * browser to use the GPU to accelerate the rendering.\n * If set to false, the popper will be placed using `top` and `left` properties, not using the GPU.\n *\n * @param {Number} [options.offset=0]\n * Amount of pixels the popper will be shifted (can be negative).\n *\n * @param {String|Element} [options.boundariesElement='viewport']\n * The element which will define the boundaries of the popper position, the popper will never be placed outside\n * of the defined boundaries (except if `keepTogether` is enabled)\n *\n * @param {Number} [options.boundariesPadding=5]\n * Additional padding for the boundaries\n *\n * @param {Array} [options.preventOverflowOrder=['left', 'right', 'top', 'bottom']]\n * Order used when Popper.js tries to avoid overflows from the boundaries, they will be checked in order,\n * this means that the last ones will never overflow\n *\n * @param {String|Array} [options.flipBehavior='flip']\n * The behavior used by the `flip` modifier to change the placement of the popper when the latter is trying to\n * overlap its reference element. Defining `flip` as value, the placement will be flipped on\n * its axis (`right - left`, `top - bottom`).\n * You can even pass an array of placements (eg: `['right', 'left', 'top']` ) to manually specify\n * how alter the placement when a flip is needed. (eg. in the above example, it would first flip from right to left,\n * then, if even in its new placement, the popper is overlapping its reference element, it will be moved to top)\n *\n * @param {Array} [options.modifiers=[ 'shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle']]\n * List of functions used to modify the data before they are applied to the popper, add your custom functions\n * to this array to edit the offsets and placement.\n * The function should reflect the @params and @returns of preventOverflow\n *\n * @param {Array} [options.modifiersIgnored=[]]\n * Put here any built-in modifier name you want to exclude from the modifiers list\n * The function should reflect the @params and @returns of preventOverflow\n *\n * @param {Boolean} [options.removeOnDestroy=false]\n * Set to true if you want to automatically remove the popper when you call the `destroy` method.\n */\n function Popper(reference, popper, options) {\n this._reference = reference.jquery ? reference[0] : reference;\n this.state = {};\n\n // if the popper variable is a configuration object, parse it to generate an HTMLElement\n // generate a default popper if is not defined\n var isNotDefined = typeof popper === 'undefined' || popper === null;\n var isConfig = popper && Object.prototype.toString.call(popper) === '[object Object]';\n if (isNotDefined || isConfig) {\n this._popper = this.parse(isConfig ? popper : {});\n }\n // otherwise, use the given HTMLElement as popper\n else {\n this._popper = popper.jquery ? popper[0] : popper;\n }\n\n // with {} we create a new object with the options inside it\n this._options = Object.assign({}, DEFAULTS, options);\n\n // refactoring modifiers' list\n this._options.modifiers = this._options.modifiers.map(function (modifier) {\n // remove ignored modifiers\n if (this._options.modifiersIgnored.indexOf(modifier) !== -1) return;\n\n // set the x-placement attribute before everything else because it could be used to add margins to the popper\n // margins needs to be calculated to get the correct popper offsets\n if (modifier === 'applyStyle') {\n this._popper.setAttribute('x-placement', this._options.placement);\n }\n\n // return predefined modifier identified by string or keep the custom one\n return this.modifiers[modifier] || modifier;\n }.bind(this));\n\n // make sure to apply the popper position before any computation\n this.state.position = this._getPosition(this._popper, this._reference);\n setStyle(this._popper, { position: this.state.position, top: 0 });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n // setup event listeners, they will take care of update the position in specific situations\n this._setupEventListeners();\n return this;\n }\n\n //\n // Methods\n //\n /**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\n Popper.prototype.destroy = function () {\n this._popper.removeAttribute('x-placement');\n this._popper.style.left = '';\n this._popper.style.position = '';\n this._popper.style.top = '';\n this._popper.style[getSupportedPropertyName('transform')] = '';\n this._removeEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n if (this._options.removeOnDestroy) {\n this._popper.remove();\n }\n return this;\n };\n\n /**\n * Updates the position of the popper, computing the new offsets and applying the new style\n * @method\n * @memberof Popper\n */\n Popper.prototype.update = function () {\n var data = { instance: this, styles: {} };\n\n // store placement inside the data object, modifiers will be able to edit `placement` if needed\n // and refer to _originalPlacement to know the original value\n data.placement = this._options.placement;\n data._originalPlacement = this._options.placement;\n\n // compute the popper and reference offsets and put them inside data.offsets\n data.offsets = this._getOffsets(this._popper, this._reference, data.placement);\n\n // get boundaries\n data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);\n\n data = this.runModifiers(data, this._options.modifiers);\n\n if (typeof this.state.updateCallback === 'function') {\n this.state.updateCallback(data);\n }\n };\n\n /**\n * If a function is passed, it will be executed after the initialization of popper with as first argument the Popper instance.\n * @method\n * @memberof Popper\n * @param {Function} callback\n */\n Popper.prototype.onCreate = function (callback) {\n // the createCallbacks return as first argument the popper instance\n callback(this);\n return this;\n };\n\n /**\n * If a function is passed, it will be executed after each update of popper with as first argument the set of coordinates and informations\n * used to style popper and its arrow.\n * NOTE: it doesn't get fired on the first call of the `Popper.update()` method inside the `Popper` constructor!\n * @method\n * @memberof Popper\n * @param {Function} callback\n */\n Popper.prototype.onUpdate = function (callback) {\n this.state.updateCallback = callback;\n return this;\n };\n\n /**\n * Helper used to generate poppers from a configuration file\n * @method\n * @memberof Popper\n * @param config {Object} configuration\n * @returns {HTMLElement} popper\n */\n Popper.prototype.parse = function (config) {\n var defaultConfig = {\n tagName: 'div',\n classNames: ['popper'],\n attributes: [],\n parent: root.document.body,\n content: '',\n contentType: 'text',\n arrowTagName: 'div',\n arrowClassNames: ['popper__arrow'],\n arrowAttributes: ['x-arrow']\n };\n config = Object.assign({}, defaultConfig, config);\n\n var d = root.document;\n\n var popper = d.createElement(config.tagName);\n addClassNames(popper, config.classNames);\n addAttributes(popper, config.attributes);\n if (config.contentType === 'node') {\n popper.appendChild(config.content.jquery ? config.content[0] : config.content);\n } else if (config.contentType === 'html') {\n popper.innerHTML = config.content;\n } else {\n popper.textContent = config.content;\n }\n\n if (config.arrowTagName) {\n var arrow = d.createElement(config.arrowTagName);\n addClassNames(arrow, config.arrowClassNames);\n addAttributes(arrow, config.arrowAttributes);\n popper.appendChild(arrow);\n }\n\n var parent = config.parent.jquery ? config.parent[0] : config.parent;\n\n // if the given parent is a string, use it to match an element\n // if more than one element is matched, the first one will be used as parent\n // if no elements are matched, the script will throw an error\n if (typeof parent === 'string') {\n parent = d.querySelectorAll(config.parent);\n if (parent.length > 1) {\n console.warn('WARNING: the given `parent` query(' + config.parent + ') matched more than one element, the first one will be used');\n }\n if (parent.length === 0) {\n throw 'ERROR: the given `parent` doesn\\'t exists!';\n }\n parent = parent[0];\n }\n // if the given parent is a DOM nodes list or an array of nodes with more than one element,\n // the first one will be used as parent\n if (parent.length > 1 && parent instanceof Element === false) {\n console.warn('WARNING: you have passed as parent a list of elements, the first one will be used');\n parent = parent[0];\n }\n\n // append the generated popper to its parent\n parent.appendChild(popper);\n\n return popper;\n\n /**\n * Adds class names to the given element\n * @function\n * @ignore\n * @param {HTMLElement} target\n * @param {Array} classes\n */\n function addClassNames(element, classNames) {\n classNames.forEach(function (className) {\n element.classList.add(className);\n });\n }\n\n /**\n * Adds attributes to the given element\n * @function\n * @ignore\n * @param {HTMLElement} target\n * @param {Array} attributes\n * @example\n * addAttributes(element, [ 'data-info:foobar' ]);\n */\n function addAttributes(element, attributes) {\n attributes.forEach(function (attribute) {\n element.setAttribute(attribute.split(':')[0], attribute.split(':')[1] || '');\n });\n }\n };\n\n /**\n * Helper used to get the position which will be applied to the popper\n * @method\n * @memberof Popper\n * @param config {HTMLElement} popper element\n * @param reference {HTMLElement} reference element\n * @returns {String} position\n */\n Popper.prototype._getPosition = function (popper, reference) {\n var container = getOffsetParent(reference);\n\n if (this._options.forceAbsolute) {\n return 'absolute';\n }\n\n // Decide if the popper will be fixed\n // If the reference element is inside a fixed context, the popper will be fixed as well to allow them to scroll together\n var isParentFixed = isFixed(reference, container);\n return isParentFixed ? 'fixed' : 'absolute';\n };\n\n /**\n * Get offsets to the popper\n * @method\n * @memberof Popper\n * @access private\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n Popper.prototype._getOffsets = function (popper, reference, placement) {\n placement = placement.split('-')[0];\n var popperOffsets = {};\n\n popperOffsets.position = this.state.position;\n var isParentFixed = popperOffsets.position === 'fixed';\n\n //\n // Get reference element position\n //\n var referenceOffsets = getOffsetRectRelativeToCustomParent(reference, getOffsetParent(popper), isParentFixed);\n\n //\n // Get popper sizes\n //\n var popperRect = getOuterSizes(popper);\n\n //\n // Compute offsets of popper\n //\n\n // depending by the popper placement we have to compute its offsets slightly differently\n if (['right', 'left'].indexOf(placement) !== -1) {\n popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - popperRect.height / 2;\n if (placement === 'left') {\n popperOffsets.left = referenceOffsets.left - popperRect.width;\n } else {\n popperOffsets.left = referenceOffsets.right;\n }\n } else {\n popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - popperRect.width / 2;\n if (placement === 'top') {\n popperOffsets.top = referenceOffsets.top - popperRect.height;\n } else {\n popperOffsets.top = referenceOffsets.bottom;\n }\n }\n\n // Add width and height to our offsets object\n popperOffsets.width = popperRect.width;\n popperOffsets.height = popperRect.height;\n\n return {\n popper: popperOffsets,\n reference: referenceOffsets\n };\n };\n\n /**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper\n * @access private\n */\n Popper.prototype._setupEventListeners = function () {\n // NOTE: 1 DOM access here\n this.state.updateBound = this.update.bind(this);\n root.addEventListener('resize', this.state.updateBound);\n // if the boundariesElement is window we don't need to listen for the scroll event\n if (this._options.boundariesElement !== 'window') {\n var target = getScrollParent(this._reference);\n // here it could be both `body` or `documentElement` thanks to Firefox, we then check both\n if (target === root.document.body || target === root.document.documentElement) {\n target = root;\n }\n target.addEventListener('scroll', this.state.updateBound);\n }\n };\n\n /**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper\n * @access private\n */\n Popper.prototype._removeEventListeners = function () {\n // NOTE: 1 DOM access here\n root.removeEventListener('resize', this.state.updateBound);\n if (this._options.boundariesElement !== 'window') {\n var target = getScrollParent(this._reference);\n // here it could be both `body` or `documentElement` thanks to Firefox, we then check both\n if (target === root.document.body || target === root.document.documentElement) {\n target = root;\n }\n target.removeEventListener('scroll', this.state.updateBound);\n }\n this.state.updateBound = null;\n };\n\n /**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper\n * @access private\n * @param {Object} data - Object containing the property \"offsets\" generated by `_getOffsets`\n * @param {Number} padding - Boundaries padding\n * @param {Element} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\n Popper.prototype._getBoundaries = function (data, padding, boundariesElement) {\n // NOTE: 1 DOM access here\n var boundaries = {};\n var width, height;\n if (boundariesElement === 'window') {\n var body = root.document.body,\n html = root.document.documentElement;\n\n height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n width = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n\n boundaries = {\n top: 0,\n right: width,\n bottom: height,\n left: 0\n };\n } else if (boundariesElement === 'viewport') {\n var offsetParent = getOffsetParent(this._popper);\n var scrollParent = getScrollParent(this._popper);\n var offsetParentRect = getOffsetRect(offsetParent);\n\n // Thanks the fucking native API, `document.body.scrollTop` & `document.documentElement.scrollTop`\n var getScrollTopValue = function getScrollTopValue(element) {\n return element == document.body ? Math.max(document.documentElement.scrollTop, document.body.scrollTop) : element.scrollTop;\n };\n var getScrollLeftValue = function getScrollLeftValue(element) {\n return element == document.body ? Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) : element.scrollLeft;\n };\n\n // if the popper is fixed we don't have to substract scrolling from the boundaries\n var scrollTop = data.offsets.popper.position === 'fixed' ? 0 : getScrollTopValue(scrollParent);\n var scrollLeft = data.offsets.popper.position === 'fixed' ? 0 : getScrollLeftValue(scrollParent);\n\n boundaries = {\n top: 0 - (offsetParentRect.top - scrollTop),\n right: root.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),\n bottom: root.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),\n left: 0 - (offsetParentRect.left - scrollLeft)\n };\n } else {\n if (getOffsetParent(this._popper) === boundariesElement) {\n boundaries = {\n top: 0,\n left: 0,\n right: boundariesElement.clientWidth,\n bottom: boundariesElement.clientHeight\n };\n } else {\n boundaries = getOffsetRect(boundariesElement);\n }\n }\n boundaries.left += padding;\n boundaries.right -= padding;\n boundaries.top = boundaries.top + padding;\n boundaries.bottom = boundaries.bottom - padding;\n return boundaries;\n };\n\n /**\n * Loop trough the list of modifiers and run them in order, each of them will then edit the data object\n * @method\n * @memberof Popper\n * @access public\n * @param {Object} data\n * @param {Array} modifiers\n * @param {Function} ends\n */\n Popper.prototype.runModifiers = function (data, modifiers, ends) {\n var modifiersToRun = modifiers.slice();\n if (ends !== undefined) {\n modifiersToRun = this._options.modifiers.slice(0, getArrayKeyIndex(this._options.modifiers, ends));\n }\n\n modifiersToRun.forEach(function (modifier) {\n if (isFunction(modifier)) {\n data = modifier.call(this, data);\n }\n }.bind(this));\n\n return data;\n };\n\n /**\n * Helper used to know if the given modifier depends from another one.\n * @method\n * @memberof Popper\n * @param {String} requesting - name of requesting modifier\n * @param {String} requested - name of requested modifier\n * @returns {Boolean}\n */\n Popper.prototype.isModifierRequired = function (requesting, requested) {\n var index = getArrayKeyIndex(this._options.modifiers, requesting);\n return !!this._options.modifiers.slice(0, index).filter(function (modifier) {\n return modifier === requested;\n }).length;\n };\n\n //\n // Modifiers\n //\n\n /**\n * Modifiers list\n * @namespace Popper.modifiers\n * @memberof Popper\n * @type {Object}\n */\n Popper.prototype.modifiers = {};\n\n /**\n * Apply the computed styles to the popper element\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @returns {Object} The same data object\n */\n Popper.prototype.modifiers.applyStyle = function (data) {\n // apply the final offsets to the popper\n // NOTE: 1 DOM access here\n var styles = {\n position: data.offsets.popper.position\n };\n\n // round top and left to avoid blurry text\n var left = Math.round(data.offsets.popper.left);\n var top = Math.round(data.offsets.popper.top);\n\n // if gpuAcceleration is set to true and transform is supported, we use `translate3d` to apply the position to the popper\n // we automatically use the supported prefixed version if needed\n var prefixedProperty;\n if (this._options.gpuAcceleration && (prefixedProperty = getSupportedPropertyName('transform'))) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles.top = 0;\n styles.left = 0;\n }\n // othwerise, we use the standard `left` and `top` properties\n else {\n styles.left = left;\n styles.top = top;\n }\n\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n Object.assign(styles, data.styles);\n\n setStyle(this._popper, styles);\n\n // set an attribute which will be useful to style the tooltip (use it to properly position its arrow)\n // NOTE: 1 DOM access here\n this._popper.setAttribute('x-placement', data.placement);\n\n // if the arrow modifier is required and the arrow style has been computed, apply the arrow style\n if (this.isModifierRequired(this.modifiers.applyStyle, this.modifiers.arrow) && data.offsets.arrow) {\n setStyle(data.arrowElement, data.offsets.arrow);\n }\n\n return data;\n };\n\n /**\n * Modifier used to shift the popper on the start or end of its reference element side\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.shift = function (data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftVariation = placement.split('-')[1];\n\n // if shift shiftVariation is specified, run the modifier\n if (shiftVariation) {\n var reference = data.offsets.reference;\n var popper = getPopperClientRect(data.offsets.popper);\n\n var shiftOffsets = {\n y: {\n start: { top: reference.top },\n end: { top: reference.top + reference.height - popper.height }\n },\n x: {\n start: { left: reference.left },\n end: { left: reference.left + reference.width - popper.width }\n }\n };\n\n var axis = ['bottom', 'top'].indexOf(basePlacement) !== -1 ? 'x' : 'y';\n\n data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);\n }\n\n return data;\n };\n\n /**\n * Modifier used to make sure the popper does not overflows from it's boundaries\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.preventOverflow = function (data) {\n var order = this._options.preventOverflowOrder;\n var popper = getPopperClientRect(data.offsets.popper);\n\n var check = {\n left: function left() {\n var left = popper.left;\n if (popper.left < data.boundaries.left) {\n left = Math.max(popper.left, data.boundaries.left);\n }\n return { left: left };\n },\n right: function right() {\n var left = popper.left;\n if (popper.right > data.boundaries.right) {\n left = Math.min(popper.left, data.boundaries.right - popper.width);\n }\n return { left: left };\n },\n top: function top() {\n var top = popper.top;\n if (popper.top < data.boundaries.top) {\n top = Math.max(popper.top, data.boundaries.top);\n }\n return { top: top };\n },\n bottom: function bottom() {\n var top = popper.top;\n if (popper.bottom > data.boundaries.bottom) {\n top = Math.min(popper.top, data.boundaries.bottom - popper.height);\n }\n return { top: top };\n }\n };\n\n order.forEach(function (direction) {\n data.offsets.popper = Object.assign(popper, check[direction]());\n });\n\n return data;\n };\n\n /**\n * Modifier used to make sure the popper is always near its reference\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by _update method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.keepTogether = function (data) {\n var popper = getPopperClientRect(data.offsets.popper);\n var reference = data.offsets.reference;\n var f = Math.floor;\n\n if (popper.right < f(reference.left)) {\n data.offsets.popper.left = f(reference.left) - popper.width;\n }\n if (popper.left > f(reference.right)) {\n data.offsets.popper.left = f(reference.right);\n }\n if (popper.bottom < f(reference.top)) {\n data.offsets.popper.top = f(reference.top) - popper.height;\n }\n if (popper.top > f(reference.bottom)) {\n data.offsets.popper.top = f(reference.bottom);\n }\n\n return data;\n };\n\n /**\n * Modifier used to flip the placement of the popper when the latter is starting overlapping its reference element.\n * Requires the `preventOverflow` modifier before it in order to work.\n * **NOTE:** This modifier will run all its previous modifiers everytime it tries to flip the popper!\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by _update method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.flip = function (data) {\n // check if preventOverflow is in the list of modifiers before the flip modifier.\n // otherwise flip would not work as expected.\n if (!this.isModifierRequired(this.modifiers.flip, this.modifiers.preventOverflow)) {\n console.warn('WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!');\n return data;\n }\n\n if (data.flipped && data.placement === data._originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n if (this._options.flipBehavior === 'flip') {\n flipOrder = [placement, placementOpposite];\n } else {\n flipOrder = this._options.flipBehavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = getPopperClientRect(data.offsets.popper);\n\n // this boolean is used to distinguish right and bottom from top and left\n // they need different computations to get flipped\n var a = ['right', 'bottom'].indexOf(placement) !== -1;\n\n // using Math.floor because the reference offsets may contain decimals we are not going to consider here\n if (a && Math.floor(data.offsets.reference[placement]) > Math.floor(popperOffsets[placementOpposite]) || !a && Math.floor(data.offsets.reference[placement]) < Math.floor(popperOffsets[placementOpposite])) {\n // we'll use this boolean to detect any flip loop\n data.flipped = true;\n data.placement = flipOrder[index + 1];\n if (variation) {\n data.placement += '-' + variation;\n }\n data.offsets.popper = this._getOffsets(this._popper, this._reference, data.placement).popper;\n\n data = this.runModifiers(data, this._options.modifiers, this._flip);\n }\n }.bind(this));\n return data;\n };\n\n /**\n * Modifier used to add an offset to the popper, useful if you more granularity positioning your popper.\n * The offsets will shift the popper on the side of its reference element.\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by _update method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.offset = function (data) {\n var offset = this._options.offset;\n var popper = data.offsets.popper;\n\n if (data.placement.indexOf('left') !== -1) {\n popper.top -= offset;\n } else if (data.placement.indexOf('right') !== -1) {\n popper.top += offset;\n } else if (data.placement.indexOf('top') !== -1) {\n popper.left -= offset;\n } else if (data.placement.indexOf('bottom') !== -1) {\n popper.left += offset;\n }\n return data;\n };\n\n /**\n * Modifier used to move the arrows on the edge of the popper to make sure them are always between the popper and the reference element\n * It will use the CSS outer size of the arrow element to know how many pixels of conjuction are needed\n * @method\n * @memberof Popper.modifiers\n * @argument {Object} data - The data object generated by _update method\n * @returns {Object} The data object, properly modified\n */\n Popper.prototype.modifiers.arrow = function (data) {\n var arrow = this._options.arrowElement;\n\n // if the arrowElement is a string, suppose it's a CSS selector\n if (typeof arrow === 'string') {\n arrow = this._popper.querySelector(arrow);\n }\n\n // if arrow element is not found, don't run the modifier\n if (!arrow) {\n return data;\n }\n\n // the arrow element must be child of its popper\n if (!this._popper.contains(arrow)) {\n console.warn('WARNING: `arrowElement` must be child of its popper element!');\n return data;\n }\n\n // arrow depends on keepTogether in order to work\n if (!this.isModifierRequired(this.modifiers.arrow, this.modifiers.keepTogether)) {\n console.warn('WARNING: keepTogether modifier is required by arrow modifier in order to work, be sure to include it before arrow!');\n return data;\n }\n\n var arrowStyle = {};\n var placement = data.placement.split('-')[0];\n var popper = getPopperClientRect(data.offsets.popper);\n var reference = data.offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var side = isVertical ? 'top' : 'left';\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowSize = getOuterSizes(arrow)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);\n }\n // bottom/right side\n if (reference[side] + arrowSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowSize - popper[opSide];\n }\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowSize / 2;\n\n var sideValue = center - popper[side];\n\n // prevent arrow from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowSize - 3, sideValue), 3);\n arrowStyle[side] = sideValue;\n arrowStyle[altSide] = ''; // make sure to remove any old style from the arrow\n\n data.offsets.arrow = arrowStyle;\n data.arrowElement = arrow;\n\n return data;\n };\n\n //\n // Helpers\n //\n\n /**\n * Get the outer sizes of the given element (offset size + margins)\n * @function\n * @ignore\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n function getOuterSizes(element) {\n // NOTE: 1 DOM access here\n var _display = element.style.display,\n _visibility = element.style.visibility;\n element.style.display = 'block';element.style.visibility = 'hidden';\n var calcWidthToForceRepaint = element.offsetWidth;\n\n // original method\n var styles = root.getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = { width: element.offsetWidth + y, height: element.offsetHeight + x };\n\n // reset element styles\n element.style.display = _display;element.style.visibility = _visibility;\n return result;\n }\n\n /**\n * Get the opposite placement of the given one/\n * @function\n * @ignore\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n function getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n }\n\n /**\n * Given the popper offsets, generate an output similar to getBoundingClientRect\n * @function\n * @ignore\n * @argument {Object} popperOffsets\n * @returns {Object} ClientRect like output\n */\n function getPopperClientRect(popperOffsets) {\n var offsets = Object.assign({}, popperOffsets);\n offsets.right = offsets.left + offsets.width;\n offsets.bottom = offsets.top + offsets.height;\n return offsets;\n }\n\n /**\n * Given an array and the key to find, returns its index\n * @function\n * @ignore\n * @argument {Array} arr\n * @argument keyToFind\n * @returns index or null\n */\n function getArrayKeyIndex(arr, keyToFind) {\n var i = 0,\n key;\n for (key in arr) {\n if (arr[key] === keyToFind) {\n return i;\n }\n i++;\n }\n return null;\n }\n\n /**\n * Get CSS computed property of the given element\n * @function\n * @ignore\n * @argument {Eement} element\n * @argument {String} property\n */\n function getStyleComputedProperty(element, property) {\n // NOTE: 1 DOM access here\n var css = root.getComputedStyle(element, null);\n return css[property];\n }\n\n /**\n * Returns the offset parent of the given element\n * @function\n * @ignore\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n function getOffsetParent(element) {\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n return offsetParent === root.document.body || !offsetParent ? root.document.documentElement : offsetParent;\n }\n\n /**\n * Returns the scrolling parent of the given element\n * @function\n * @ignore\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n function getScrollParent(element) {\n var parent = element.parentNode;\n\n if (!parent) {\n return element;\n }\n\n if (parent === root.document) {\n // Firefox puts the scrollTOp value on `documentElement` instead of `body`, we then check which of them is\n // greater than 0 and return the proper element\n if (root.document.body.scrollTop) {\n return root.document.body;\n } else {\n return root.document.documentElement;\n }\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n if (['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-x')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-y')) !== -1) {\n // If the detected scrollParent is body, we perform an additional check on its parentNode\n // in this way we'll get body if the browser is Chrome-ish, or documentElement otherwise\n // fixes issue #65\n return parent;\n }\n return getScrollParent(element.parentNode);\n }\n\n /**\n * Check if the given element is fixed or is inside a fixed parent\n * @function\n * @ignore\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n function isFixed(element) {\n if (element === root.document.body) {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return element.parentNode ? isFixed(element.parentNode) : element;\n }\n\n /**\n * Set the style to the given popper\n * @function\n * @ignore\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles - Object with a list of properties and values which will be applied to the element\n */\n function setStyle(element, styles) {\n function is_numeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n }\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && is_numeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n }\n\n /**\n * Check if the given variable is a function\n * @function\n * @ignore\n * @argument {*} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n function isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n }\n\n /**\n * Get the position of the given element, relative to its offset parent\n * @function\n * @ignore\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\n function getOffsetRect(element) {\n var elementRect = {\n width: element.offsetWidth,\n height: element.offsetHeight,\n left: element.offsetLeft,\n top: element.offsetTop\n };\n\n elementRect.right = elementRect.left + elementRect.width;\n elementRect.bottom = elementRect.top + elementRect.height;\n\n // position\n return elementRect;\n }\n\n /**\n * Get bounding client rect of given element\n * @function\n * @ignore\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n\n // whether the IE version is lower than 11\n var isIE = navigator.userAgent.indexOf(\"MSIE\") != -1;\n\n // fix ie document bounding top always 0 bug\n var rectTop = isIE && element.tagName === 'HTML' ? -element.scrollTop : rect.top;\n\n return {\n left: rect.left,\n top: rectTop,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.right - rect.left,\n height: rect.bottom - rectTop\n };\n }\n\n /**\n * Given an element and one of its parents, return the offset\n * @function\n * @ignore\n * @param {HTMLElement} element\n * @param {HTMLElement} parent\n * @return {Object} rect\n */\n function getOffsetRectRelativeToCustomParent(element, parent, fixed) {\n var elementRect = getBoundingClientRect(element);\n var parentRect = getBoundingClientRect(parent);\n\n if (fixed) {\n var scrollParent = getScrollParent(parent);\n parentRect.top += scrollParent.scrollTop;\n parentRect.bottom += scrollParent.scrollTop;\n parentRect.left += scrollParent.scrollLeft;\n parentRect.right += scrollParent.scrollLeft;\n }\n\n var rect = {\n top: elementRect.top - parentRect.top,\n left: elementRect.left - parentRect.left,\n bottom: elementRect.top - parentRect.top + elementRect.height,\n right: elementRect.left - parentRect.left + elementRect.width,\n width: elementRect.width,\n height: elementRect.height\n };\n return rect;\n }\n\n /**\n * Get the prefixed supported property name\n * @function\n * @ignore\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase)\n */\n function getSupportedPropertyName(property) {\n var prefixes = ['', 'ms', 'webkit', 'moz', 'o'];\n\n for (var i = 0; i < prefixes.length; i++) {\n var toCheck = prefixes[i] ? prefixes[i] + property.charAt(0).toUpperCase() + property.slice(1) : property;\n if (typeof root.document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n }\n\n /**\n * The Object.assign() method is used to copy the values of all enumerable own properties from one or more source\n * objects to a target object. It will return the target object.\n * This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway\n * Source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @function\n * @ignore\n */\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function value(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n nextSource = Object(nextSource);\n\n var keysArray = Object.keys(nextSource);\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n }\n });\n }\n\n return Popper;\n});\n\n/***/ }),\n/* 1325 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(34);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _dom = __webpack_require__(81);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hasModal = false;\n\nvar getModal = function getModal() {\n if (_vue2.default.prototype.$isServer) return;\n var modalDom = PopupManager.modalDom;\n if (modalDom) {\n hasModal = true;\n } else {\n hasModal = false;\n modalDom = document.createElement('div');\n PopupManager.modalDom = modalDom;\n\n modalDom.addEventListener('touchmove', function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n modalDom.addEventListener('click', function () {\n PopupManager.doOnModalClick && PopupManager.doOnModalClick();\n });\n }\n\n return modalDom;\n};\n\nvar instances = {};\n\nvar PopupManager = {\n zIndex: 2000,\n\n modalFade: true,\n\n getInstance: function getInstance(id) {\n return instances[id];\n },\n\n register: function register(id, instance) {\n if (id && instance) {\n instances[id] = instance;\n }\n },\n\n deregister: function deregister(id) {\n if (id) {\n instances[id] = null;\n delete instances[id];\n }\n },\n\n nextZIndex: function nextZIndex() {\n return PopupManager.zIndex++;\n },\n\n modalStack: [],\n\n doOnModalClick: function doOnModalClick() {\n var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topItem) return;\n\n var instance = PopupManager.getInstance(topItem.id);\n if (instance && instance.closeOnClickModal) {\n instance.close();\n }\n },\n\n openModal: function openModal(id, zIndex, dom, modalClass, modalFade) {\n if (_vue2.default.prototype.$isServer) return;\n if (!id || zIndex === undefined) return;\n this.modalFade = modalFade;\n\n var modalStack = this.modalStack;\n\n for (var i = 0, j = modalStack.length; i < j; i++) {\n var item = modalStack[i];\n if (item.id === id) {\n return;\n }\n }\n\n var modalDom = getModal();\n\n (0, _dom.addClass)(modalDom, 'v-modal');\n if (this.modalFade && !hasModal) {\n (0, _dom.addClass)(modalDom, 'v-modal-enter');\n }\n if (modalClass) {\n var classArr = modalClass.trim().split(/\\s+/);\n classArr.forEach(function (item) {\n return (0, _dom.addClass)(modalDom, item);\n });\n }\n setTimeout(function () {\n (0, _dom.removeClass)(modalDom, 'v-modal-enter');\n }, 200);\n\n if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {\n dom.parentNode.appendChild(modalDom);\n } else {\n document.body.appendChild(modalDom);\n }\n\n if (zIndex) {\n modalDom.style.zIndex = zIndex;\n }\n modalDom.style.display = '';\n\n this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });\n },\n\n closeModal: function closeModal(id) {\n var modalStack = this.modalStack;\n var modalDom = getModal();\n\n if (modalStack.length > 0) {\n var topItem = modalStack[modalStack.length - 1];\n if (topItem.id === id) {\n if (topItem.modalClass) {\n var classArr = topItem.modalClass.trim().split(/\\s+/);\n classArr.forEach(function (item) {\n return (0, _dom.removeClass)(modalDom, item);\n });\n }\n\n modalStack.pop();\n if (modalStack.length > 0) {\n modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;\n }\n } else {\n for (var i = modalStack.length - 1; i >= 0; i--) {\n if (modalStack[i].id === id) {\n modalStack.splice(i, 1);\n break;\n }\n }\n }\n }\n\n if (modalStack.length === 0) {\n if (this.modalFade) {\n (0, _dom.addClass)(modalDom, 'v-modal-leave');\n }\n setTimeout(function () {\n if (modalStack.length === 0) {\n if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);\n modalDom.style.display = 'none';\n PopupManager.modalDom = undefined;\n }\n (0, _dom.removeClass)(modalDom, 'v-modal-leave');\n }, 200);\n }\n }\n};\n\nvar getTopPopup = function getTopPopup() {\n if (_vue2.default.prototype.$isServer) return;\n if (PopupManager.modalStack.length > 0) {\n var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topPopup) return;\n var instance = PopupManager.getInstance(topPopup.id);\n\n return instance;\n }\n};\n\nif (!_vue2.default.prototype.$isServer) {\n // handle `esc` key when the popup is shown\n window.addEventListener('keydown', function (event) {\n if (event.keyCode === 27) {\n var topPopup = getTopPopup();\n\n if (topPopup && topPopup.closeOnPressEscape) {\n topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close();\n }\n }\n });\n}\n\nexports.default = PopupManager;\n\n/***/ }),\n/* 1326 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.isDef = isDef;\nfunction isDef(val) {\n return val !== undefined && val !== null;\n}\n\n/***/ }),\n/* 1327 */\n/***/ (function(module, exports) {\n\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n/***/ }),\n/* 1328 */\n/***/ (function(module, exports) {\n\n/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n/***/ }),\n/* 1329 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n/* 1330 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar json_stringify = __webpack_require__(1332).stringify;\nvar json_parse = __webpack_require__(1331);\n\nmodule.exports = function(options) {\n return {\n parse: json_parse(options),\n stringify: json_stringify\n }\n};\n//create the default method members with no options applied for backwards compatibility\nmodule.exports.parse = json_parse();\nmodule.exports.stringify = json_stringify;\n\n\n/***/ }),\n/* 1331 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar BigNumber = null;\n/*\n json_parse.js\n 2012-06-20\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n This file creates a json_parse function.\n During create you can (optionally) specify some behavioural switches\n\n require('json-bigint')(options)\n\n The optional options parameter holds switches that drive certain\n aspects of the parsing process:\n * options.strict = true will warn about duplicate-key usage in the json.\n The default (strict = false) will silently ignore those and overwrite\n values for keys that are in duplicate use.\n\n The resulting function follows this signature:\n json_parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = json_parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n*/\n\n/*members \"\", \"\\\"\", \"\\/\", \"\\\\\", at, b, call, charAt, f, fromCharCode,\n hasOwnProperty, message, n, name, prototype, push, r, t, text\n*/\n\nvar json_parse = function (options) {\n \"use strict\";\n\n// This is a function that can parse a JSON text, producing a JavaScript\n// data structure. It is a simple, recursive descent parser. It does not use\n// eval or regular expressions, so it can be used as a model for implementing\n// a JSON parser in other languages.\n\n// We are defining the function inside of another function to avoid creating\n// global variables.\n\n\n// Default options one can override by passing options to the parse()\n var _options = {\n \"strict\": false, // not being strict means do not generate syntax errors for \"duplicate key\"\n \"storeAsString\": false // toggles whether the values should be stored as BigNumber (default) or a string\n };\n\n\n// If there are options, then use them to override the default _options\n if (options !== undefined && options !== null) {\n if (options.strict === true) {\n _options.strict = true;\n }\n if (options.storeAsString === true) {\n _options.storeAsString = true;\n }\n }\n\n\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t'\n },\n text,\n\n error = function (m) {\n\n// Call error when something is wrong.\n\n throw {\n name: 'SyntaxError',\n message: m,\n at: at,\n text: text\n };\n },\n\n next = function (c) {\n\n// If a c parameter is provided, verify that it matches the current character.\n\n if (c && c !== ch) {\n error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n }\n\n// Get the next character. When there are no more characters,\n// return the empty string.\n\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n\n number = function () {\n// Parse a number value.\n\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error(\"Bad number\");\n } else {\n if (BigNumber == null)\n BigNumber = __webpack_require__(332);\n //if (number > 9007199254740992 || number < -9007199254740992)\n // Bignumber has stricter check: everything with length > 15 digits disallowed\n if (string.length > 15)\n return (_options.storeAsString === true) ? string : new BigNumber(string);\n return number;\n }\n },\n\n string = function () {\n\n// Parse a string value.\n\n var hex,\n i,\n string = '',\n uffff;\n\n// When parsing for string values, we must look for \" and \\ characters.\n\n if (ch === '\"') {\n while (next()) {\n if (ch === '\"') {\n next();\n return string;\n }\n if (ch === '\\\\') {\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n } else {\n string += ch;\n }\n }\n }\n error(\"Bad string\");\n },\n\n white = function () {\n\n// Skip whitespace.\n\n while (ch && ch <= ' ') {\n next();\n }\n },\n\n word = function () {\n\n// true, false, or null.\n\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error(\"Unexpected '\" + ch + \"'\");\n },\n\n value, // Place holder for the value function.\n\n array = function () {\n\n// Parse an array value.\n\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error(\"Bad array\");\n },\n\n object = function () {\n\n// Parse an object value.\n\n var key,\n object = {};\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (_options.strict === true && Object.hasOwnProperty.call(object, key)) {\n error('Duplicate key \"' + key + '\"');\n }\n object[key] = value();\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error(\"Bad object\");\n };\n\n value = function () {\n\n// Parse a JSON value. It could be an object, an array, a string, a number,\n// or a word.\n\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n// Return the json_parse function. It will have access to all of the above\n// functions and variables.\n\n return function (source, reviver) {\n var result;\n\n text = source + '';\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error(\"Syntax error\");\n }\n\n// If there is a reviver function, we recursively walk the new structure,\n// passing each name/value pair to the reviver function for possible\n// transformation, starting with a temporary root object that holds the result\n// in an empty key. If there is not a reviver function, we simply return the\n// result.\n\n return typeof reviver === 'function'\n ? (function walk(holder, key) {\n var k, v, value = holder[key];\n if (value && typeof value === 'object') {\n Object.keys(value).forEach(function(k) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n });\n }\n return reviver.call(holder, key, value);\n }({'': result}, ''))\n : result;\n };\n}\n\nmodule.exports = json_parse;\n\n\n/***/ }),\n/* 1332 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar BigNumber = __webpack_require__(332);\n\n/*\n json2.js\n 2013-05-26\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n See http://www.JSON.org/js.html\n\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n\n\n This file creates a global JSON object containing two methods: stringify\n and parse.\n\n JSON.stringify(value, replacer, space)\n value any JavaScript value, usually an object or array.\n\n replacer an optional parameter that determines how object\n values are stringified for objects. It can be a\n function or an array of strings.\n\n space an optional parameter that specifies the indentation\n of nested structures. If it is omitted, the text will\n be packed without extra whitespace. If it is a number,\n it will specify the number of spaces to indent at each\n level. If it is a string (such as '\\t' or ' '),\n it contains the characters used to indent at each level.\n\n This method produces a JSON text from a JavaScript value.\n\n When an object value is found, if the object contains a toJSON\n method, its toJSON method will be called and the result will be\n stringified. A toJSON method does not serialize: it returns the\n value represented by the name/value pair that should be serialized,\n or undefined if nothing should be serialized. The toJSON method\n will be passed the key associated with the value, and this will be\n bound to the value\n\n For example, this would serialize Dates as ISO strings.\n\n Date.prototype.toJSON = function (key) {\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n return this.getUTCFullYear() + '-' +\n f(this.getUTCMonth() + 1) + '-' +\n f(this.getUTCDate()) + 'T' +\n f(this.getUTCHours()) + ':' +\n f(this.getUTCMinutes()) + ':' +\n f(this.getUTCSeconds()) + 'Z';\n };\n\n You can provide an optional replacer method. It will be passed the\n key and value of each member, with this bound to the containing\n object. The value that is returned from your method will be\n serialized. If your method returns undefined, then the member will\n be excluded from the serialization.\n\n If the replacer parameter is an array of strings, then it will be\n used to select the members to be serialized. It filters the results\n such that only members with keys listed in the replacer array are\n stringified.\n\n Values that do not have JSON representations, such as undefined or\n functions, will not be serialized. Such values in objects will be\n dropped; in arrays they will be replaced with null. You can use\n a replacer function to replace those with JSON values.\n JSON.stringify(undefined) returns undefined.\n\n The optional space parameter produces a stringification of the\n value that is filled with line breaks and indentation to make it\n easier to read.\n\n If the space parameter is a non-empty string, then that string will\n be used for indentation. If the space parameter is a number, then\n the indentation will be that many spaces.\n\n Example:\n\n text = JSON.stringify(['e', {pluribus: 'unum'}]);\n // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n\n text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\\t');\n // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n text = JSON.stringify([new Date()], function (key, value) {\n return this[key] instanceof Date ?\n 'Date(' + this[key] + ')' : value;\n });\n // text is '[\"Date(---current time---)\"]'\n\n\n JSON.parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = JSON.parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n var d;\n if (typeof value === 'string' &&\n value.slice(0, 5) === 'Date(' &&\n value.slice(-1) === ')') {\n d = new Date(value.slice(5, -1));\n if (d) {\n return d;\n }\n }\n return value;\n });\n\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n*/\n\n/*jslint evil: true, regexp: true */\n\n/*members \"\", \"\\b\", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\\"\", JSON, \"\\\\\", apply,\n call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\n test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nvar JSON = module.exports;\n\n(function () {\n 'use strict';\n\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n gap,\n indent,\n meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"' : '\\\\\"',\n '\\\\': '\\\\\\\\'\n },\n rep;\n\n\n function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === 'string'\n ? c\n : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n\n\n function str(key, holder) {\n\n// Produce a string from holder[key].\n\n var i, // The loop counter.\n k, // The member key.\n v, // The member value.\n length,\n mind = gap,\n partial,\n value = holder[key],\n isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n if (typeof rep === 'function') {\n value = rep.call(holder, key, value);\n }\n\n// What happens next depends on the value's type.\n\n switch (typeof value) {\n case 'string':\n if (isBigNumber) {\n return value;\n } else {\n return quote(value);\n }\n\n case 'number':\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce 'null'. The case is included here in\n// the remote chance that this gets fixed someday.\n\n return String(value);\n\n// If the type is 'object', we might be dealing with an object or an array or\n// null.\n\n case 'object':\n\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\n// so watch out for that case.\n\n if (!value) {\n return 'null';\n }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n gap += indent;\n partial = [];\n\n// Is the value an array?\n\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n v = partial.length === 0\n ? '[]'\n : gap\n ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n if (rep && typeof rep === 'object') {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === 'string') {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n Object.keys(value).forEach(function(k) {\n var v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n });\n }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n v = partial.length === 0\n ? '{}'\n : gap\n ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n if (typeof JSON.stringify !== 'function') {\n JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n var i;\n gap = '';\n indent = '';\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n if (typeof space === 'number') {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n } else if (typeof space === 'string') {\n indent = space;\n }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n rep = replacer;\n if (replacer && typeof replacer !== 'function' &&\n (typeof replacer !== 'object' ||\n typeof replacer.length !== 'number')) {\n throw new Error('JSON.stringify');\n }\n\n// Make a fake root object containing our value under the key of ''.\n// Return the result of stringifying the value.\n\n return str('', {'': value});\n };\n }\n}());\n\n\n/***/ }),\n/* 1333 */,\n/* 1334 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a \ No newline at end of file +Pallas-Console-Web
\ No newline at end of file