diff --git a/.travis.yml b/.travis.yml index da05d8970..c370e9318 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,16 +33,7 @@ install: env: - SMPFLAGS=-j4 OS=eslint DIST=eslint - - SMPFLAGS=-j4 OS=el DIST=7 DOCKER_REPO=knnniggett/packpack - - SMPFLAGS=-j4 OS=el DIST=8 DOCKER_REPO=knnniggett/packpack - - SMPFLAGS=-j4 OS=fedora DIST=31 DOCKER_REPO=knnniggett/packpack - - SMPFLAGS=-j4 OS=fedora DIST=32 DOCKER_REPO=knnniggett/packpack - - SMPFLAGS=-j4 OS=fedora DIST=33 DOCKER_REPO=knnniggett/packpack - - SMPFLAGS=-j4 OS=ubuntu DIST=xenial DOCKER_REPO=iconzm/packpack - SMPFLAGS=-j4 OS=ubuntu DIST=bionic DOCKER_REPO=iconzm/packpack - - SMPFLAGS=-j4 OS=ubuntu DIST=focal DOCKER_REPO=iconzm/packpack - - SMPFLAGS=-j4 OS=debian DIST=stretch DOCKER_REPO=iconzm/packpack - - SMPFLAGS=-j4 OS=debian DIST=buster DOCKER_REPO=iconzm/packpack compiler: - gcc diff --git a/web/ajax/log.php b/web/ajax/log.php index 60f0c1dc4..7dfb11d6a 100644 --- a/web/ajax/log.php +++ b/web/ajax/log.php @@ -165,9 +165,6 @@ function queryRequest() { $rows = array(); $results = dbFetchAll($query['sql'], NULL, $query['values']); - if ( !$results ) { - return $data; - } foreach ( $results as $row ) { $row['DateTime'] = strftime('%Y-%m-%d %H:%M:%S', intval($row['TimeKey'])); diff --git a/web/css/bootstrap-table-page-jump-to.min.css b/web/css/bootstrap-table-page-jump-to.min.css index 0c8e7d527..62c8ad8d3 100644 --- a/web/css/bootstrap-table-page-jump-to.min.css +++ b/web/css/bootstrap-table-page-jump-to.min.css @@ -1,7 +1,7 @@ /** * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation) * - * @version v1.17.1 + * @version v1.18.1 * @homepage https://bootstrap-table.com * @author wenzhixin (http://wenzhixin.net.cn/) * @license MIT diff --git a/web/css/bootstrap-table.min.css b/web/css/bootstrap-table.min.css index b44a03acb..e8f36ff7e 100644 --- a/web/css/bootstrap-table.min.css +++ b/web/css/bootstrap-table.min.css @@ -1,10 +1,10 @@ /** * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation) * - * @version v1.17.1 + * @version v1.18.1 * @homepage https://bootstrap-table.com * @author wenzhixin (http://wenzhixin.net.cn/) * @license MIT */ -.bootstrap-table .fixed-table-toolbar::after{content:"";display:block;clear:both}.bootstrap-table .fixed-table-toolbar .bs-bars,.bootstrap-table .fixed-table-toolbar .columns,.bootstrap-table .fixed-table-toolbar .search{position:relative;margin-top:10px;margin-bottom:10px}.bootstrap-table .fixed-table-toolbar .columns .btn-group>.btn-group{display:inline-block;margin-left:-1px!important}.bootstrap-table .fixed-table-toolbar .columns .btn-group>.btn-group>.btn{border-radius:0}.bootstrap-table .fixed-table-toolbar .columns .btn-group>.btn-group:first-child>.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.bootstrap-table .fixed-table-toolbar .columns .btn-group>.btn-group:last-child>.btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu{text-align:left;max-height:300px;overflow:auto;-ms-overflow-style:scrollbar;z-index:1001}.bootstrap-table .fixed-table-toolbar .columns label{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429}.bootstrap-table .fixed-table-toolbar .columns-left{margin-right:5px}.bootstrap-table .fixed-table-toolbar .columns-right{margin-left:5px}.bootstrap-table .fixed-table-toolbar .pull-right .dropdown-menu{right:0;left:auto}.bootstrap-table .fixed-table-container{position:relative;clear:both}.bootstrap-table .fixed-table-container .table{width:100%;margin-bottom:0!important}.bootstrap-table .fixed-table-container .table td,.bootstrap-table .fixed-table-container .table th{vertical-align:middle;box-sizing:border-box}.bootstrap-table .fixed-table-container .table thead th{vertical-align:bottom;padding:0;margin:0}.bootstrap-table .fixed-table-container .table thead th:focus{outline:0 solid transparent}.bootstrap-table .fixed-table-container .table thead th.detail{width:30px}.bootstrap-table .fixed-table-container .table thead th .th-inner{padding:.75rem;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bootstrap-table .fixed-table-container .table thead th .sortable{cursor:pointer;background-position:right;background-repeat:no-repeat;padding-right:30px!important}.bootstrap-table .fixed-table-container .table thead th .both{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC")}.bootstrap-table .fixed-table-container .table thead th .asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg==)}.bootstrap-table .fixed-table-container .table thead th .desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII=)}.bootstrap-table .fixed-table-container .table tbody tr.selected td{background-color:rgba(0,0,0,.075)}.bootstrap-table .fixed-table-container .table tbody tr.no-records-found td{text-align:center}.bootstrap-table .fixed-table-container .table tbody tr .card-view{display:flex}.bootstrap-table .fixed-table-container .table tbody tr .card-view .card-view-title{font-weight:700;display:inline-block;min-width:30%;text-align:left!important}.bootstrap-table .fixed-table-container .table .bs-checkbox{text-align:center}.bootstrap-table .fixed-table-container .table .bs-checkbox label{margin-bottom:0}.bootstrap-table .fixed-table-container .table .bs-checkbox label input[type=checkbox],.bootstrap-table .fixed-table-container .table .bs-checkbox label input[type=radio]{margin:0 auto!important}.bootstrap-table .fixed-table-container .table.table-sm .th-inner{padding:.3rem}.bootstrap-table .fixed-table-container.fixed-height:not(.has-footer){border-bottom:1px solid #dee2e6}.bootstrap-table .fixed-table-container.fixed-height.has-card-view{border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.bootstrap-table .fixed-table-container.fixed-height .fixed-table-border{border-left:1px solid #dee2e6;border-right:1px solid #dee2e6}.bootstrap-table .fixed-table-container.fixed-height .table thead th{border-bottom:1px solid #dee2e6}.bootstrap-table .fixed-table-container.fixed-height .table-dark thead th{border-bottom:1px solid #32383e}.bootstrap-table .fixed-table-container .fixed-table-header{overflow:hidden}.bootstrap-table .fixed-table-container .fixed-table-body{overflow-x:auto;overflow-y:auto;height:100%}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading{align-items:center;background:#fff;display:flex;justify-content:center;position:absolute;bottom:0;width:100%;z-index:1000;transition:visibility 0s,opacity .15s ease-in-out;opacity:0;visibility:hidden}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.open{visibility:visible;opacity:1}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap{align-items:baseline;display:flex;justify-content:center}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .loading-text{margin-right:6px}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap{align-items:center;display:flex;justify-content:center}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot,.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::after,.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::before{content:"";animation-duration:1.5s;animation-iteration-count:infinite;animation-name:LOADING;background:#212529;border-radius:50%;display:block;height:5px;margin:0 4px;opacity:0;width:5px}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot{animation-delay:.3s}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::after{animation-delay:.6s}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark{background:#212529}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-dot,.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap::after,.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap::before{background:#fff}.bootstrap-table .fixed-table-container .fixed-table-footer{overflow:hidden}.bootstrap-table .fixed-table-pagination::after{content:"";display:block;clear:both}.bootstrap-table .fixed-table-pagination>.pagination,.bootstrap-table .fixed-table-pagination>.pagination-detail{margin-top:10px;margin-bottom:10px}.bootstrap-table .fixed-table-pagination>.pagination-detail .pagination-info{line-height:34px;margin-right:5px}.bootstrap-table .fixed-table-pagination>.pagination-detail .page-list{display:inline-block}.bootstrap-table .fixed-table-pagination>.pagination-detail .page-list .btn-group{position:relative;display:inline-block;vertical-align:middle}.bootstrap-table .fixed-table-pagination>.pagination-detail .page-list .btn-group .dropdown-menu{margin-bottom:0}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination{margin:0}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination a{padding:6px 12px;line-height:1.428571429}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination li.page-intermediate a{color:#c8c8c8}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination li.page-intermediate a::before{content:'\2B05'}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination li.page-intermediate a::after{content:'\27A1'}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination li.disabled a{pointer-events:none;cursor:default}.bootstrap-table.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%!important;background:#fff;height:calc(100vh);overflow-y:scroll}div.fixed-table-scroll-inner{width:100%;height:200px}div.fixed-table-scroll-outer{top:0;left:0;visibility:hidden;width:200px;height:150px;overflow:hidden}@keyframes LOADING{0%{opacity:0}50%{opacity:1}to{opacity:0}} \ No newline at end of file +.bootstrap-table .fixed-table-toolbar::after{content:"";display:block;clear:both}.bootstrap-table .fixed-table-toolbar .bs-bars,.bootstrap-table .fixed-table-toolbar .columns,.bootstrap-table .fixed-table-toolbar .search{position:relative;margin-top:10px;margin-bottom:10px}.bootstrap-table .fixed-table-toolbar .columns .btn-group>.btn-group{display:inline-block;margin-left:-1px!important}.bootstrap-table .fixed-table-toolbar .columns .btn-group>.btn-group>.btn{border-radius:0}.bootstrap-table .fixed-table-toolbar .columns .btn-group>.btn-group:first-child>.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.bootstrap-table .fixed-table-toolbar .columns .btn-group>.btn-group:last-child>.btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu{text-align:left;max-height:300px;overflow:auto;-ms-overflow-style:scrollbar;z-index:1001}.bootstrap-table .fixed-table-toolbar .columns label{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429}.bootstrap-table .fixed-table-toolbar .columns-left{margin-right:5px}.bootstrap-table .fixed-table-toolbar .columns-right{margin-left:5px}.bootstrap-table .fixed-table-toolbar .pull-right .dropdown-menu{right:0;left:auto}.bootstrap-table .fixed-table-container{position:relative;clear:both}.bootstrap-table .fixed-table-container .table{width:100%;margin-bottom:0!important}.bootstrap-table .fixed-table-container .table td,.bootstrap-table .fixed-table-container .table th{vertical-align:middle;box-sizing:border-box}.bootstrap-table .fixed-table-container .table thead th{vertical-align:bottom;padding:0;margin:0}.bootstrap-table .fixed-table-container .table thead th:focus{outline:0 solid transparent}.bootstrap-table .fixed-table-container .table thead th.detail{width:30px}.bootstrap-table .fixed-table-container .table thead th .th-inner{padding:.75rem;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bootstrap-table .fixed-table-container .table thead th .sortable{cursor:pointer;background-position:right;background-repeat:no-repeat;padding-right:30px!important}.bootstrap-table .fixed-table-container .table thead th .both{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC")}.bootstrap-table .fixed-table-container .table thead th .asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg==)}.bootstrap-table .fixed-table-container .table thead th .desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII=)}.bootstrap-table .fixed-table-container .table tbody tr.selected td{background-color:rgba(0,0,0,.075)}.bootstrap-table .fixed-table-container .table tbody tr.no-records-found td{text-align:center}.bootstrap-table .fixed-table-container .table tbody tr .card-view{display:flex}.bootstrap-table .fixed-table-container .table tbody tr .card-view .card-view-title{font-weight:700;display:inline-block;min-width:30%;text-align:left!important}.bootstrap-table .fixed-table-container .table tbody tr .card-view .card-view-value{width:100%}.bootstrap-table .fixed-table-container .table .bs-checkbox{text-align:center}.bootstrap-table .fixed-table-container .table .bs-checkbox label{margin-bottom:0}.bootstrap-table .fixed-table-container .table .bs-checkbox label input[type=checkbox],.bootstrap-table .fixed-table-container .table .bs-checkbox label input[type=radio]{margin:0 auto!important}.bootstrap-table .fixed-table-container .table.table-sm .th-inner{padding:.3rem}.bootstrap-table .fixed-table-container.fixed-height:not(.has-footer){border-bottom:1px solid #dee2e6}.bootstrap-table .fixed-table-container.fixed-height.has-card-view{border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.bootstrap-table .fixed-table-container.fixed-height .fixed-table-border{border-left:1px solid #dee2e6;border-right:1px solid #dee2e6}.bootstrap-table .fixed-table-container.fixed-height .table thead th{border-bottom:1px solid #dee2e6}.bootstrap-table .fixed-table-container.fixed-height .table-dark thead th{border-bottom:1px solid #32383e}.bootstrap-table .fixed-table-container .fixed-table-header{overflow:hidden}.bootstrap-table .fixed-table-container .fixed-table-body{overflow-x:auto;overflow-y:auto;height:100%}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading{align-items:center;background:#fff;display:flex;justify-content:center;position:absolute;bottom:0;width:100%;z-index:1000;transition:visibility 0s,opacity .15s ease-in-out;opacity:0;visibility:hidden}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.open{visibility:visible;opacity:1}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap{align-items:baseline;display:flex;justify-content:center}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .loading-text{margin-right:6px}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap{align-items:center;display:flex;justify-content:center}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot,.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::after,.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::before{content:"";animation-duration:1.5s;animation-iteration-count:infinite;animation-name:LOADING;background:#212529;border-radius:50%;display:block;height:5px;margin:0 4px;opacity:0;width:5px}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot{animation-delay:.3s}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::after{animation-delay:.6s}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark{background:#212529}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-dot,.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap::after,.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap::before{background:#fff}.bootstrap-table .fixed-table-container .fixed-table-footer{overflow:hidden}.bootstrap-table .fixed-table-pagination::after{content:"";display:block;clear:both}.bootstrap-table .fixed-table-pagination>.pagination,.bootstrap-table .fixed-table-pagination>.pagination-detail{margin-top:10px;margin-bottom:10px}.bootstrap-table .fixed-table-pagination>.pagination-detail .pagination-info{line-height:34px;margin-right:5px}.bootstrap-table .fixed-table-pagination>.pagination-detail .page-list{display:inline-block}.bootstrap-table .fixed-table-pagination>.pagination-detail .page-list .btn-group{position:relative;display:inline-block;vertical-align:middle}.bootstrap-table .fixed-table-pagination>.pagination-detail .page-list .btn-group .dropdown-menu{margin-bottom:0}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination{margin:0}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination li.page-intermediate a{color:#c8c8c8}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination li.page-intermediate a::before{content:'\2B05'}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination li.page-intermediate a::after{content:'\27A1'}.bootstrap-table .fixed-table-pagination>.pagination ul.pagination li.disabled a{pointer-events:none;cursor:default}.bootstrap-table.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%!important;background:#fff;height:calc(100vh);overflow-y:scroll}.bootstrap-table.bootstrap4 .pagination-lg .page-link,.bootstrap-table.bootstrap5 .pagination-lg .page-link{padding:.5rem 1rem}div.fixed-table-scroll-inner{width:100%;height:200px}div.fixed-table-scroll-outer{top:0;left:0;visibility:hidden;width:200px;height:150px;overflow:hidden}@keyframes LOADING{0%{opacity:0}50%{opacity:1}to{opacity:0}} \ No newline at end of file diff --git a/web/css/overlay.css b/web/css/overlay.css deleted file mode 100644 index 28714ebf5..000000000 --- a/web/css/overlay.css +++ /dev/null @@ -1,49 +0,0 @@ -.overlayMask { - position: absolute; - opacity: 0.6; - filter: alpha(opacity=60); - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60); - z-index: 999; - background: #aaaaaa; -} - -.overlay { - display: none; - position: absolute; - background-color: #f0f0f0; - border: 2px solid #555555; - -moz-border-radius: 4px; - z-index: 1000; - overflow: hidden; -} - -.overlayHeader { - float: left; - background-color: #853131; - width: 100%; - border-bottom: 1px solid #666666; - color: black; -} - -.overlayTitle { - float: left; - padding: 10px 6px; - font-weight: bold; - width: auto; -} - -.overlayToolbar { - float: right; - font-weight: bold; - padding: 6px 4px; - width: auto; -} - -.overlayBody { - float: left; - width: 100%; -} - -.overlayContent { - padding: 4px 4px 6px; -} diff --git a/web/includes/actions/monitors.php b/web/includes/actions/monitors.php index 8f56b0e3d..55c2d282e 100644 --- a/web/includes/actions/monitors.php +++ b/web/includes/actions/monitors.php @@ -44,8 +44,7 @@ if ( $action == 'save' ) { } } } // end foreach mid - $refreshParent = true; - $view = 'none'; + $view = 'console'; } else { ZM\Warning("Unknown action $action in Monitor"); } // end if action == Delete diff --git a/web/js/MonitorStream.js b/web/js/MonitorStream.js index e0c3e24de..c108c35f5 100644 --- a/web/js/MonitorStream.js +++ b/web/js/MonitorStream.js @@ -8,13 +8,16 @@ function MonitorStream(monitorData) { this.status = null; this.alarmState = STATE_IDLE; this.lastAlarmState = STATE_IDLE; - this.streamCmdParms = 'view=request&request=stream&connkey='+this.connKey; + this.streamCmdParms = { + view: 'request', + request: 'stream', + connkey: this.connKey + }; if ( auth_hash ) { - this.streamCmdParms += '&auth='+auth_hash; + this.streamCmdParms.auth = auth_hash; } else if ( auth_relay ) { - this.streamCmdParms += '&'+auth_relay; + this.streamCmdParms.auth_relay = ''; } - this.streamCmdTimer = null; this.type = monitorData.type; this.refresh = monitorData.refresh; this.start = function(delay) { @@ -33,15 +36,7 @@ function MonitorStream(monitorData) { stream.src = ''; stream.src = src; } - - if ( this.streamCmdQuery ) { - this.streamCmdTimer = this.streamCmdQuery.delay(delay, this); - } else { - console.log("No streamCmdQuery"); - } - - console.log("queueing for " + this.id + " " + this.connKey + " timeout is: " + AJAX_TIMEOUT); - requestQueue.addRequest("cmdReq"+this.id, this.streamCmdReq); + this.streamCmdQuery.delay(delay, this); }; this.stop = function() { if ( 0 ) { @@ -57,13 +52,16 @@ function MonitorStream(monitorData) { stream.src = src; } } - this.streamCmdReq.send(this.streamCmdParms+"&command="+CMD_STOP); + this.streamCmdParms.command = CMD_STOP; + this.streamCmdReq(this.streamCmdParms); }; this.pause = function() { - this.streamCmdReq.send(this.streamCmdParms+"&command="+CMD_PAUSE); + this.streamCmdParms.command = CMD_PAUSE; + this.streamCmdReq(this.streamCmdParms); }; this.play = function() { - this.streamCmdReq.send(this.streamCmdParms+"&command="+CMD_PLAY); + this.streamCmdParms.command = CMD_PLAY; + this.streamCmdReq(this.streamCmdParms); }; this.eventHandler = function(event) { @@ -86,55 +84,27 @@ function MonitorStream(monitorData) { document.getElementById('imageFeed'+this.id).removeEventListener('click', this.onclick ); }; - this.setStateClass = function(element, stateClass) { - if ( !element ) { + this.setStateClass = function(jobj, stateClass) { + if ( !jobj ) { return; } - if ( !element.hasClass( stateClass ) ) { - if ( stateClass != 'alarm' ) { - element.removeClass('alarm'); - } - if ( stateClass != 'alert' ) { - element.removeClass('alert'); - } - if ( stateClass != 'idle' ) { - element.removeClass('idle'); - } - element.addClass(stateClass); + if ( !jobj.hasClass( stateClass ) ) { + if ( stateClass != 'alarm' ) jobj.removeClass('alarm'); + if ( stateClass != 'alert' ) jobj.removeClass('alert'); + if ( stateClass != 'idle' ) jobj.removeClass('idle'); + + jobj.addClass(stateClass); } }; - this.onError = function(text, error) { - console.log('onerror: ' + text + ' error:'+error); - // Requeue, but want to wait a while. - var streamCmdTimeout = 10*statusRefreshTimeout; - this.streamCmdTimer = this.streamCmdQuery.delay(streamCmdTimeout, this); - }; - this.onFailure = function(xhr) { - console.log('onFailure: ' + this.connKey); - console.log(xhr); - if ( ! requestQueue.hasNext('cmdReq'+this.id) ) { - console.log('Not requeuing because there is one already'); - requestQueue.addRequest('cmdReq'+this.id, this.streamCmdReq); - } - if ( 0 ) { - // Requeue, but want to wait a while. - if ( this.streamCmdTimer ) { - this.streamCmdTimer = clearTimeout( this.streamCmdTimer ); - } - var streamCmdTimeout = 1000*statusRefreshTimeout; - this.streamCmdTimer = this.streamCmdQuery.delay(streamCmdTimeout, this, true); - requestQueue.resume(); - } - console.log('done failure'); + this.onFailure = function(jqxhr, textStatus, error) { + this.streamCmdQuery.delay(1000*statusRefreshTimeout, this); + logAjaxFail(jqxhr, textStatus, error); }; this.getStreamCmdResponse = function(respObj, respText) { - if ( this.streamCmdTimer ) { - this.streamCmdTimer = clearTimeout(this.streamCmdTimer); - } - var stream = $j('#liveStream'+this.id)[0]; + if ( ! stream ) { console.log('No live stream'); return; @@ -159,22 +129,16 @@ function MonitorStream(monitorData) { !COMPACT_MONTAGE) && (this.type != 'WebSite') ) { - fpsValue = $('fpsValue'+this.id); - if ( fpsValue ) { - fpsValue.set('text', this.status.fps); - } - stateValue = $('stateValue'+this.id); - if ( stateValue ) { - stateValue.set('text', stateStrings[this.alarmState]); - } + var fpsValue = $j('#fpsValue'+this.id); + var stateValue = $j('#stateValue'+this.id); + var monitorState = $j('#monitorState'+this.id); - monitorState = $('monitorState'+this.id); - if ( monitorState ) { - this.setStateClass(monitorState, stateClass); - } + if ( fpsValue.length ) fpsValue.text(this.status.fps); + if ( stateValue.length ) stateValue.text(stateStrings[this.alarmState]); + if ( monitorState.length ) this.setStateClass(monitorState, stateClass); } - this.setStateClass($('monitor'+this.id), stateClass); + this.setStateClass($j('#monitor'+this.id), stateClass); /*Stream could be an applet so can't use moo tools*/ //stream.parentNode().className = stateClass; @@ -188,7 +152,7 @@ function MonitorStream(monitorData) { if ( newAlarm ) { if ( false && SOUND_ON_ALARM ) { // Enable the alarm sound - $('alarmSound').removeClass('hidden'); + $j('#alarmSound').removeClass('hidden'); } if ( (typeof POPUP_ON_ALARM !== 'undefined') && POPUP_ON_ALARM ) { windowToFront(); @@ -197,7 +161,7 @@ function MonitorStream(monitorData) { if ( false && SOUND_ON_ALARM ) { if ( oldAlarm ) { // Disable alarm sound - $('alarmSound').addClass('hidden'); + $j('#alarmSound').addClass('hidden'); } } if ( this.status.auth ) { @@ -230,38 +194,24 @@ function MonitorStream(monitorData) { } } // end if Ok or not - var streamCmdTimeout = statusRefreshTimeout; - // The idea here is if we are alarmed, do updates faster. - // However, there is a timeout in the php side which isn't getting modified, - // so this may cause a problem. Also the server may only be able to update so fast. - //if ( this.alarmState == STATE_ALARM || this.alarmState == STATE_ALERT ) { - //streamCmdTimeout = streamCmdTimeout/5; - //} - this.streamCmdTimer = this.streamCmdQuery.delay(streamCmdTimeout, this); this.lastAlarmState = this.alarmState; + this.streamCmdQuery.delay(statusRefreshTimeout, this); }; this.streamCmdQuery = function(resent) { - if ( resent ) { - console.log(this.connKey+': timeout: Resending'); - this.streamCmdReq.cancel(); - } //console.log("Starting CmdQuery for " + this.connKey ); if ( this.type != 'WebSite' ) { - this.streamCmdReq.send(this.streamCmdParms+'&command='+CMD_QUERY); + this.streamCmdParms.command = CMD_QUERY; + this.streamCmdReq(this.streamCmdParms); } }; if ( this.type != 'WebSite' ) { - this.streamCmdReq = new Request.JSON( { - url: this.url, - method: 'get', - timeout: AJAX_TIMEOUT, - onSuccess: this.getStreamCmdResponse.bind(this), - onTimeout: this.streamCmdQuery.bind(this, true), - onError: this.onError.bind(this), - onFailure: this.onFailure.bind(this), - link: 'cancel' - } ); + this.streamCmdReq = function(streamCmdParms) { + $j.ajaxSetup({timeout: AJAX_TIMEOUT}); + $j.getJSON(this.url, streamCmdParms) + .done(this.getStreamCmdResponse.bind(this)) + .fail(this.onFailure.bind(this)); + }; } } // end function MonitorStream diff --git a/web/js/overlay.js b/web/js/overlay.js deleted file mode 100644 index 84547c53f..000000000 --- a/web/js/overlay.js +++ /dev/null @@ -1,118 +0,0 @@ -var Overlay = new Class({ - Implements: [Options, Events], - initialize: function( id, options ) { - this.setOptions( options ); - - this.mask = new Mask( document.body, {'maskMargins': false, 'class': 'overlayMask'} ); - - this.id = id?id:'overlay'; - if ( typeOf(this.id) == 'string' ) { - if ( $(this.id) ) { - this.element = $(this.id); - } - } else { - this.element = this.id; - this.id = this.element.get('id'); - } - if ( !this.element ) { - this.element = new Element( 'div', {'id': this.id, 'class': 'overlay', 'styles': {'display': 'none'}} ); - if ( this.options.title || this.options.buttons ) { - var overlayHeader = new Element( 'div', {'class': 'overlayHeader'} ); - if ( this.options.title ) { - var overlayTitle = new Element( 'div', {'class': 'overlayTitle', 'text': this.options.title} ); - overlayHeader.grab( overlayTitle ); - } - if ( this.options.buttons ) { - var overlayToolbar = new Element( 'div', {'class': 'overlayToolbar'} ); - this.options.buttons.each( - function( button ) { - var overlayButton = new Element( 'button', {'text': button.text} ); - if ( button.id ) { - overlayButton.setProperty( 'id', button.id ); - } - if ( button.events ) { - overlayButton.set( 'events', events ); - } - overlayToolbar.grab( overlayButton ); - } - ); - overlayHeader.grab( overlayTitle ); - } - this.element.grab( overlayHeader ); - var overlayBody = new Element( 'div', {'class': 'overlayBody'} ); - var overlayContent = new Element( 'div', {'class': 'overlayContent'} ); - overlayContent.grab( this.options.content ); - overlayBody.grab( overlayContent ); - this.element.grab( overlayBody ); - } - this.target = document.id(this.options.target) || document.id(document.body); - this.element.inject( this.target ); - } - }, - show: function() { - this.mask.show(); - window.addEventListener( 'resize', this.update.bind(this), {passive: true} ); - window.addEventListener( 'scroll', this.update.bind(this), {passive: true} ); - this.element.tween( 'opacity', [0, 1.0] ); - this.element.show(); - this.element.position(); - this.mask.position(); - }, - hideComplete: function() { - this.element.hide(); - this.mask.hide(); - }, - hide: function() { - new Fx.Tween( this.element, {duration: 400, transition: Fx.Transitions.Sine, onComplete: this.hideComplete.bind(this)} ).start( 'opacity', 1.0, 0 ); - }, - update: function() { - this.element.position(); - this.mask.position(); - }, - showAnimation: function() { - showOverlay(); - - //console.log( "Showing overlay loading" ); - if ( !this.loading ) { - this.loading = new Element( 'div', {'id': 'loading'+this.key, 'styles': {'display': 'none'}} ); - this.loading.grab( this.loadingImage ); - document.body.grab( this.loading ); - } - updateOverlayLoading(); - this.loading.setStyle( 'display', 'block' ); - window.addEventListener( 'resize', this.update.bind(this), {passive: true} ); - window.addEventListener( 'scroll', this.update.bind(this), {passive: true} ); - }, - hideAnimation: function() { - if ( this.loading ) { - this.loading.setStyle( 'display', 'none' ); - } - } -}); - -function setupOverlays() { - try { - $$('.overlay').each( - function( overlay ) { - overlay.element = new Overlay( overlay.get('id') ); - overlay.getElements('.overlayCloser').each( - function( closer ) { - closer.addEvent( 'click', function() { - overlay.element.hide(); - } ); - } - ); - overlay.overlayShow = function() { - overlay.element.show(); - }; - overlay.overlayHide = function() { - overlay.element.hide(); - }; - } - ); - } catch ( e ) { - alert( e ); - } -} - -window.addEventListener( 'DOMContentLoaded', setupOverlays ); diff --git a/web/skins/classic/includes/functions.php b/web/skins/classic/includes/functions.php index 015c98b3d..f62aa5420 100644 --- a/web/skins/classic/includes/functions.php +++ b/web/skins/classic/includes/functions.php @@ -109,7 +109,6 @@ if ( file_exists("skins/$skin/css/$css/graphics/favicon.ico") ) { } echo output_cache_busted_stylesheet_links(array( 'css/reset.css', - 'css/overlay.css', 'css/font-awesome.min.css', 'css/bootstrap.min.css', 'css/bootstrap-table.min.css', @@ -856,7 +855,6 @@ function xhtmlFooter() { global $skin; global $basename; $skinJsPhpFile = getSkinFile('js/skin.js.php'); - $cssJsFile = getSkinFile('js/'.$css.'.js'); $viewJsFile = getSkinFile('views/js/'.$basename.'.js'); $viewJsPhpFile = getSkinFile('views/js/'.$basename.'.js.php'); ?> @@ -871,7 +869,6 @@ function xhtmlFooter() { - - - - @@ -925,13 +913,8 @@ function xhtmlFooter() { ?> - - diff --git a/web/skins/classic/js/base.js b/web/skins/classic/js/base.js deleted file mode 100644 index a3a99f773..000000000 --- a/web/skins/classic/js/base.js +++ /dev/null @@ -1,76 +0,0 @@ -// -// ZoneMinder base static javascript file, $Date$, $Revision$ -// Copyright (C) 2001-2008 Philip Coombes -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -// - -// -// This file should only contain static JavaScript and no php. -// Use skin.js.php for JavaScript that need pre-processing -// - -// Javascript window sizes -/* eslint-disable key-spacing */ -var popupSizes = { - 'bandwidth': {'width': 300, 'height': 200}, - 'console': {'width': 750, 'height': 312}, - 'control': {'width': 480, 'height': 480}, - 'controlcaps': {'width': 780, 'height': 320}, - 'controlcap': {'width': 600, 'height': 500}, - 'cycle': {'addWidth': 32, 'minWidth': 384, 'addHeight': 62}, - 'device': {'width': 260, 'height': 150}, - 'devices': {'width': 400, 'height': 240}, - 'donate': {'width': 500, 'height': 480}, - 'download': {'width': 350, 'height': 315}, - 'event': {'addWidth': 108, 'minWidth': 496, 'addHeight': 230, 'minHeight': 540}, - 'eventdetail': {'width': 600, 'height': 420}, - 'events': {'width': 1220, 'height': 780}, - 'export': {'width': 500, 'height': 640}, - 'filter': {'width': 900, 'height': 700}, - 'frame': {'addWidth': 32, 'minWidth': 384, 'addHeight': 200}, - 'frames': {'addWidth': 800, 'addHeight': 600}, - 'function': {'width': 350, 'height': 260}, - 'group': {'width': 760, 'height': 600}, - 'groups': {'width': 540, 'height': 420}, - 'image': {'addWidth': 48, 'addHeight': 80}, - 'log': {'width': 1180, 'height': 720}, - 'login': {'width': 720, 'height': 480}, - 'logout': {'width': 260, 'height': 150}, - 'monitor': {'width': 800, 'height': 780}, - 'monitorpreset':{'width': 440, 'height': 210}, - 'monitorprobe': {'width': 500, 'height': 275}, - 'monitorselect':{'width': 160, 'height': 200}, - 'montage': {'width': -1, 'height': -1}, - 'onvifprobe': {'width': 700, 'height': 550}, - 'optionhelp': {'width': 400, 'height': 400}, - 'options': {'width': 1000, 'height': 660}, - 'preset': {'width': 300, 'height': 220}, - 'server': {'width': 600, 'height': 405}, - 'settings': {'width': 250, 'height': 335}, - 'shutdown': {'width': 400, 'height': 400}, - 'state': {'width': 400, 'height': 170}, - 'stats': {'width': 840, 'height': 200}, - 'storage': {'width': 600, 'height': 425}, - 'timeline': {'width': 760, 'height': 540}, - 'user': {'width': 460, 'height': 720}, - 'version': {'width': 360, 'height': 210}, - 'video': {'width': 420, 'height': 360}, - 'videoview': {'addWidth': 48, 'addHeight': 80}, - 'watch': {'addWidth': 96, 'minWidth': 420, 'addHeight': 384}, - 'zone': {'addWidth': 520, 'addHeight': 260, 'minHeight': 600}, - 'zones': {'addWidth': 72, 'addHeight': 232} -}; -/* eslint-enable key-spacing */ diff --git a/web/skins/classic/js/bootstrap-table-auto-refresh.min.js b/web/skins/classic/js/bootstrap-table-auto-refresh.min.js index 096bc0ed9..62d74ac7a 100644 --- a/web/skins/classic/js/bootstrap-table-auto-refresh.min.js +++ b/web/skins/classic/js/bootstrap-table-auto-refresh.min.js @@ -1,10 +1,10 @@ /** * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation) * - * @version v1.17.1 + * @version v1.18.1 * @homepage https://bootstrap-table.com * @author wenzhixin (http://wenzhixin.net.cn/) * @license MIT */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).jQuery)}(this,(function(t){"use strict";function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var n=e(t),r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(t,e){return t(e={exports:{}},e.exports),e.exports}var i=function(t){return t&&t.Math==Math&&t},u=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof r&&r)||Function("return this")(),c=function(t){try{return!!t()}catch(t){return!0}},f=!c((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),a={}.propertyIsEnumerable,s=Object.getOwnPropertyDescriptor,l={f:s&&!a.call({1:2},1)?function(t){var e=s(this,t);return!!e&&e.enumerable}:a},p=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},h={}.toString,y=function(t){return h.call(t).slice(8,-1)},d="".split,b=c((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==y(t)?d.call(t,""):Object(t)}:Object,v=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},g=function(t){return b(v(t))},m=function(t){return"object"==typeof t?null!==t:"function"==typeof t},w=function(t,e){if(!m(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!m(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!m(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!m(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")},O={}.hasOwnProperty,S=function(t,e){return O.call(t,e)},j=u.document,R=m(j)&&m(j.createElement),T=function(t){return R?j.createElement(t):{}},A=!f&&!c((function(){return 7!=Object.defineProperty(T("div"),"a",{get:function(){return 7}}).a})),P=Object.getOwnPropertyDescriptor,E={f:f?P:function(t,e){if(t=g(t),e=w(e,!0),A)try{return P(t,e)}catch(t){}if(S(t,e))return p(!l.f.call(t,e),t[e])}},x=function(t){if(!m(t))throw TypeError(String(t)+" is not an object");return t},_=Object.defineProperty,I={f:f?_:function(t,e,n){if(x(t),e=w(e,!0),x(n),A)try{return _(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},k=f?function(t,e,n){return I.f(t,e,p(1,n))}:function(t,e,n){return t[e]=n,t},C=function(t,e){try{k(u,t,e)}catch(n){u[t]=e}return e},F="__core-js_shared__",M=u[F]||C(F,{}),D=Function.toString;"function"!=typeof M.inspectSource&&(M.inspectSource=function(t){return D.call(t)});var B,L,N,q=M.inspectSource,z=u.WeakMap,W="function"==typeof z&&/native code/.test(q(z)),$=o((function(t){(t.exports=function(t,e){return M[t]||(M[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),G=0,K=Math.random(),Q=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++G+K).toString(36)},V=$("keys"),X=function(t){return V[t]||(V[t]=Q(t))},Y={},H=u.WeakMap;if(W){var J=new H,U=J.get,Z=J.has,tt=J.set;B=function(t,e){return tt.call(J,t,e),e},L=function(t){return U.call(J,t)||{}},N=function(t){return Z.call(J,t)}}else{var et=X("state");Y[et]=!0,B=function(t,e){return k(t,et,e),e},L=function(t){return S(t,et)?t[et]:{}},N=function(t){return S(t,et)}}var nt,rt,ot={set:B,get:L,has:N,enforce:function(t){return N(t)?L(t):B(t,{})},getterFor:function(t){return function(e){var n;if(!m(e)||(n=L(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}},it=o((function(t){var e=ot.get,n=ot.enforce,r=String(String).split("String");(t.exports=function(t,e,o,i){var c=!!i&&!!i.unsafe,f=!!i&&!!i.enumerable,a=!!i&&!!i.noTargetGet;"function"==typeof o&&("string"!=typeof e||S(o,"name")||k(o,"name",e),n(o).source=r.join("string"==typeof e?e:"")),t!==u?(c?!a&&t[e]&&(f=!0):delete t[e],f?t[e]=o:k(t,e,o)):f?t[e]=o:C(e,o)})(Function.prototype,"toString",(function(){return"function"==typeof this&&e(this).source||q(this)}))})),ut=u,ct=function(t){return"function"==typeof t?t:void 0},ft=function(t,e){return arguments.length<2?ct(ut[t])||ct(u[t]):ut[t]&&ut[t][e]||u[t]&&u[t][e]},at=Math.ceil,st=Math.floor,lt=function(t){return isNaN(t=+t)?0:(t>0?st:at)(t)},pt=Math.min,ht=function(t){return t>0?pt(lt(t),9007199254740991):0},yt=Math.max,dt=Math.min,bt=function(t){return function(e,n,r){var o,i=g(e),u=ht(i.length),c=function(t,e){var n=lt(t);return n<0?yt(n+e,0):dt(n,e)}(r,u);if(t&&n!=n){for(;u>c;)if((o=i[c++])!=o)return!0}else for(;u>c;c++)if((t||c in i)&&i[c]===n)return t||c||0;return!t&&-1}},vt={includes:bt(!0),indexOf:bt(!1)}.indexOf,gt=function(t,e){var n,r=g(t),o=0,i=[];for(n in r)!S(Y,n)&&S(r,n)&&i.push(n);for(;e.length>o;)S(r,n=e[o++])&&(~vt(i,n)||i.push(n));return i},mt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],wt=mt.concat("length","prototype"),Ot={f:Object.getOwnPropertyNames||function(t){return gt(t,wt)}},St={f:Object.getOwnPropertySymbols},jt=ft("Reflect","ownKeys")||function(t){var e=Ot.f(x(t)),n=St.f;return n?e.concat(n(t)):e},Rt=function(t,e){for(var n=jt(e),r=I.f,o=E.f,i=0;i=74)&&(nt=Kt.match(/Chrome\/(\d+)/))&&(rt=nt[1]);var Yt,Ht=rt&&+rt,Jt=Wt("species"),Ut=Wt("isConcatSpreadable"),Zt=9007199254740991,te="Maximum allowed index exceeded",ee=Ht>=51||!c((function(){var t=[];return t[Ut]=!1,t.concat()[0]!==t})),ne=(Yt="concat",Ht>=51||!c((function(){var t=[];return(t.constructor={})[Jt]=function(){return{foo:1}},1!==t[Yt](Boolean).foo}))),re=function(t){if(!m(t))return!1;var e=t[Ut];return void 0!==e?!!e:Ft(t)};Ct({target:"Array",proto:!0,forced:!ee||!ne},{concat:function(t){var e,n,r,o,i,u=Mt(this),c=Gt(u,0),f=0;for(e=-1,r=arguments.length;eZt)throw TypeError(te);for(n=0;n=Zt)throw TypeError(te);Dt(c,f++,i)}return c.length=f,c}});var oe,ie=function(t,e,n){if(function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function")}(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}},ue=[].push,ce=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,u=5==t||i;return function(c,f,a,s){for(var l,p,h=Mt(c),y=b(h),d=ie(f,a,3),v=ht(y.length),g=0,m=s||Gt,w=e?m(c,v):n?m(c,0):void 0;v>g;g++)if((u||g in y)&&(p=d(l=y[g],g,h),t))if(e)w[g]=p;else if(p)switch(t){case 3:return!0;case 5:return l;case 6:return g;case 2:ue.call(w,l)}else if(o)return!1;return i?-1:r||o?o:w}},fe={forEach:ce(0),map:ce(1),filter:ce(2),some:ce(3),every:ce(4),find:ce(5),findIndex:ce(6)},ae=Object.keys||function(t){return gt(t,mt)},se=f?Object.defineProperties:function(t,e){x(t);for(var n,r=ae(e),o=r.length,i=0;o>i;)I.f(t,n=r[i++],e[n]);return t},le=ft("document","documentElement"),pe=X("IE_PROTO"),he=function(){},ye=function(t){return"