Zalozky, statistika
This commit is contained in:
123
app/Http/Controllers/StatisticsController.php
Normal file
123
app/Http/Controllers/StatisticsController.php
Normal file
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class StatisticsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function get(Request $request)
|
||||
{
|
||||
$types = ['temperature','humidity','pressure'];
|
||||
|
||||
$type = $request->input('type', $types[0]);
|
||||
$startdate = $request->input('startdate',NULL);
|
||||
$enddate = $request->input('enddate',NULL);
|
||||
$range = $request->input('range',NULL);
|
||||
if (!in_array($type,$types)) $type = $types[0];
|
||||
if ($startdate == NULL || $startdate == '') $startdate = "now()-1d";
|
||||
else $startdate = sprintf("'%s'",Carbon::parse($startdate)->toDateTimeString());
|
||||
|
||||
if ($enddate == NULL || $enddate == '') $enddate = "now()";
|
||||
else $enddate = sprintf("'%s'",Carbon::parse($enddate)->toDateTimeString());
|
||||
|
||||
if ($range == NULL || $range == '') $range = '356d';
|
||||
else {
|
||||
if (!preg_match('/^(\d+)[dhm]$/',$range)) {
|
||||
$range='356d';
|
||||
}
|
||||
}
|
||||
|
||||
$q = sprintf("select time,min(value),max(value),mean(value),last(value) from bme280_value where host='balkon' and type='%s' and time >= %s and time <= %s group by time(%s);",$type,$startdate,$enddate,$range);
|
||||
\Debugbar::info($q);
|
||||
$result = \InfluxDB::query($q);
|
||||
$points = $result->getPoints();
|
||||
$a = [];
|
||||
foreach ($points as $p) {
|
||||
$a[] = [ 'time' => $p["time"], 'min'=> $p["min"], 'max' => $p['max'], 'mean' => $p['mean'], 'last' => $p['last']];
|
||||
}
|
||||
|
||||
return response()->json($a);
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -24,12 +24,15 @@
|
||||
"vue-template-compiler": "^2.6.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"@crow1796/vue-bulma-tabs": "^1.0.8",
|
||||
"@fortawesome/fontawesome-free": "^5.15.1",
|
||||
"bootstrap-vue": "^2.21.2",
|
||||
"font-awesome": "^4.7.0",
|
||||
"luxon": "^1.25.0",
|
||||
"moment": "^2.29.1",
|
||||
"vue-datetime": "^1.0.0-beta.14",
|
||||
"vue-dygraphs": "^0.1.2",
|
||||
"vue-slim-tabs": "^0.4.0",
|
||||
"vue-table-dynamic": "^0.4.1",
|
||||
"vuejs-thermometer": "^0.1.3",
|
||||
"weekstart": "^1.0.1"
|
||||
|
||||
14448
public/css/app.css
vendored
14448
public/css/app.css
vendored
File diff suppressed because one or more lines are too long
84941
public/js/app.js
vendored
84941
public/js/app.js
vendored
File diff suppressed because one or more lines are too long
98
public/js/app.js.LICENSE.txt
Normal file
98
public/js/app.js.LICENSE.txt
Normal file
@@ -0,0 +1,98 @@
|
||||
/*!
|
||||
* Bootstrap v4.5.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Sizzle CSS Selector Engine v2.3.5
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://js.foundation/
|
||||
*
|
||||
* Date: 2020-03-14
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Vue.js v2.6.12
|
||||
* (c) 2014-2020 Evan You
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.5.1
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2020-05-04T22:49Z
|
||||
*/
|
||||
|
||||
/*!
|
||||
* vue-datetime v1.0.0-beta.14
|
||||
* (c) 2020 Mario Juárez
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2011 Dan Vanderkam (danvdk@gmail.com)
|
||||
* MIT-licensed (http://opensource.org/licenses/MIT)
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2012 Dan Vanderkam (danvdk@gmail.com)
|
||||
* MIT-licensed (http://opensource.org/licenses/MIT)
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2013 David Eberlein (david.eberlein@ch.sauter-bc.com)
|
||||
* MIT-licensed (http://opensource.org/licenses/MIT)
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license
|
||||
* Lodash <https://lodash.com/>
|
||||
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
||||
* Released under MIT license <https://lodash.com/license>
|
||||
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
||||
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
||||
*/
|
||||
|
||||
/**!
|
||||
* @fileOverview Kickass library to create and place poppers near their reference elements.
|
||||
* @version 1.16.1
|
||||
* @license
|
||||
* Copyright (c) 2016 Federico Zivolo and contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
//! moment.js
|
||||
|
||||
//! moment.js locale configuration
|
||||
17
resources/js/app.js
vendored
17
resources/js/app.js
vendored
@@ -42,6 +42,12 @@ Vue.use(Datetime);
|
||||
|
||||
Vue.component('stats-table', require('./components/StatisticsComponent.vue').default);
|
||||
|
||||
import { TabsPlugin } from 'bootstrap-vue'
|
||||
Vue.use(TabsPlugin);
|
||||
|
||||
import { CardPlugin } from 'bootstrap-vue'
|
||||
Vue.use(CardPlugin);
|
||||
|
||||
//(function () {
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
@@ -53,6 +59,8 @@ Vue.component('stats-table', require('./components/StatisticsComponent.vue').def
|
||||
startdate: null,
|
||||
enddate: null,
|
||||
componentKey: 0,
|
||||
ti: 0, //Tab Index
|
||||
graphShow: [],
|
||||
params: {
|
||||
data: [],
|
||||
border: true,
|
||||
@@ -103,6 +111,15 @@ Vue.component('stats-table', require('./components/StatisticsComponent.vue').def
|
||||
displayResults: function () {
|
||||
this.getData();
|
||||
},
|
||||
resizeGraph: function (i) {
|
||||
console.log("RESIZE");
|
||||
let index = "dg[" + i + "]";
|
||||
console.log('Change tab:',i);
|
||||
this.$nextTick(() => {
|
||||
app.$refs[index]._data._graph.resize();
|
||||
});
|
||||
|
||||
},
|
||||
getData: function () {
|
||||
|
||||
axios.get('/data', {
|
||||
|
||||
@@ -1,48 +1,69 @@
|
||||
<template>
|
||||
<div>
|
||||
<vue-table-dynamic :params="params"></vue-table-dynamic>
|
||||
<vue-table-dynamic :params="params" :key="redraw"></vue-table-dynamic>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ['data'],
|
||||
props: ['fromdate','todate','type','range'],
|
||||
name: 'Stats',
|
||||
data() {
|
||||
return {
|
||||
params: {
|
||||
data: [
|
||||
['', 'Min', 'Max', 'Avg', 'Current'],
|
||||
['', 'Min', 'Max', 'Avg', 'Posledná'],
|
||||
],
|
||||
header: 'row',
|
||||
border: true,
|
||||
stripe: true
|
||||
}
|
||||
stripe: true,
|
||||
height: 0,
|
||||
},
|
||||
redraw: 0,
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
console.log("Mounted");
|
||||
console.log(this.data);
|
||||
let min = null;
|
||||
let max = null;
|
||||
let avg = 0;
|
||||
let current = null;
|
||||
for (var index = 0; index < this.data.length; ++index) {
|
||||
let row = this.data[index];
|
||||
let val = row[1];
|
||||
|
||||
if (min == null) min = val;
|
||||
else if (min > val) min = val;
|
||||
console.log("type=",this.type);
|
||||
var that = this;
|
||||
moment.locale('sk_SK');
|
||||
|
||||
if (max == null) max = val;
|
||||
else if (max < val) max = val;
|
||||
axios.get('/stats/get', {
|
||||
params: {
|
||||
type: this.type,
|
||||
startdate: this.fromdate,
|
||||
enddate: this.todate,
|
||||
range: this.range
|
||||
}
|
||||
})
|
||||
.then(function (response) {
|
||||
console.log("STATS DATA");
|
||||
console.log(that.type);
|
||||
that.params.data[0][0] = 'Čas';
|
||||
if (that.range) {
|
||||
for (var i = 0; i < response.data.length; i++) {
|
||||
var row = response.data[i];
|
||||
let time = moment(row.time).format('LLL');
|
||||
let mean = null;
|
||||
if (row.mean != null) {
|
||||
mean = row.mean.toFixed(2);
|
||||
that.params.data.push([time,row.min,row.max,mean,row.last]);
|
||||
}
|
||||
that.params.height = 400;
|
||||
}
|
||||
} else {
|
||||
that.params.data.push(['Hodnota',response.data[0].min,response.data[0].max,response.data[0].mean.toFixed(2),response.data[0].last]);
|
||||
};
|
||||
console.log(that.params.data);
|
||||
that.redraw += 1;
|
||||
|
||||
avg = avg + val;
|
||||
current = val;
|
||||
}
|
||||
avg = avg / this.data.length;
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
|
||||
this.params.data.push(['Hodnota',min,max,avg.toFixed(2),current]);
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
1
resources/sass/app.scss
vendored
1
resources/sass/app.scss
vendored
@@ -14,3 +14,4 @@
|
||||
|
||||
@import '~font-awesome/scss/font-awesome';
|
||||
|
||||
|
||||
|
||||
@@ -120,14 +120,53 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<dygraphs ref="dgt" :graph-data="series['temperature']" :graph-options="options['temperature']"></dygraphs>
|
||||
<stats-table :data="series['temperature']" :key="componentKey"></stats-table>
|
||||
<dygraphs ref="dgh" :graph-data="series['humidity']" :graph-options="options['humidity']"></dygraphs>
|
||||
<stats-table :data="series['humidity']" :key="componentKey"></stats-table>
|
||||
<dygraphs ref="dgp" :graph-data="series['pressure']" :graph-options="options['pressure']"></dygraphs>
|
||||
<stats-table :data="series['pressure']" :key="componentKey"></stats-table>
|
||||
|
||||
<b-card no-body>
|
||||
<b-tabs v-model="ti" small card lazy>
|
||||
<b-tab title="Teplota" @click="resizeGraph(0)">
|
||||
<dygraphs ref="dg[0]" :graph-data="series['temperature']" :graph-options="options['temperature']"></dygraphs>
|
||||
<!-- Tabs with card integration -->
|
||||
<b-card no-body>
|
||||
<b-tabs small card>
|
||||
<b-tab title="Celá doba">
|
||||
<div>Štatistika za celú dobu v grafe</div>
|
||||
<stats-table :fromdate="startdate" :todate="enddate" :type="'temperature'" :key="componentKey"></stats-table>
|
||||
</b-tab>
|
||||
<b-tab title="Hodina">
|
||||
<stats-table :fromdate="startdate" :todate="enddate" :type="'temperature'" :range="'1h'" :key="componentKey"></stats-table>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</b-card>
|
||||
</b-tab>
|
||||
<b-tab title="Vlhkosť" @click="resizeGraph(1)">
|
||||
<dygraphs ref="dg[1]" :graph-data="series['humidity']" :graph-options="options['humidity']"></dygraphs>
|
||||
<b-card no-body>
|
||||
<b-tabs small card>
|
||||
<b-tab title="Celá doba">
|
||||
<div>Štatistika za celú dobu v grafe</div>
|
||||
<stats-table :fromdate="startdate" :todate="enddate" :type="'humidity'" :key="componentKey"></stats-table>
|
||||
</b-tab>
|
||||
<b-tab title="Hodina">
|
||||
<stats-table :fromdate="startdate" :todate="enddate" :type="'humidity'" :range="'1h'" :key="componentKey"></stats-table>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</b-card>
|
||||
</b-tab>
|
||||
<b-tab title="Tlak" @click="resizeGraph(2)">
|
||||
<dygraphs ref="dg[2]" :graph-data="series['pressure']" :graph-options="options['pressure']"></dygraphs>
|
||||
<b-card no-body>
|
||||
<b-tabs small card>
|
||||
<b-tab title="Celá doba">
|
||||
<div>Štatistika za celú dobu v grafe</div>
|
||||
<stats-table :fromdate="startdate" :todate="enddate" :type="'pressure'" :key="componentKey"></stats-table>
|
||||
</b-tab>
|
||||
<b-tab title="Hodina">
|
||||
<stats-table :fromdate="startdate" :todate="enddate" :type="'pressure'" :range="'1h'" :key="componentKey"></stats-table>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</b-card>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</b-card>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -17,4 +17,5 @@ Route::get('/', function () {
|
||||
|
||||
Route::get('/data',"MeasurementController@index");
|
||||
Route::get('/data/get',"MeasurementController@get");
|
||||
Route::get('/stats/get',"StatisticsController@get");
|
||||
|
||||
|
||||
70
yarn.lock
70
yarn.lock
@@ -823,6 +823,13 @@
|
||||
lodash "^4.17.19"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@crow1796/vue-bulma-tabs@^1.0.8":
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/@crow1796/vue-bulma-tabs/-/vue-bulma-tabs-1.0.8.tgz#ffce376bed1421242806c645f5faa81f24bd0009"
|
||||
integrity sha512-ANjwR/Jns3Sosuq9xqOf5jornEKZ6v6QQCNGxp0sVl8vmuMlqkJHWlz/F46lzgfuNiETXVjFYuNccweU6u3Ypg==
|
||||
dependencies:
|
||||
vue "^2.6.6"
|
||||
|
||||
"@fortawesome/fontawesome-free@^5.15.1":
|
||||
version "5.15.1"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.1.tgz#ccfef6ddbe59f8fe8f694783e1d3eb88902dc5eb"
|
||||
@@ -841,6 +848,15 @@
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
|
||||
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
|
||||
|
||||
"@nuxt/opencollective@^0.3.2":
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.2.tgz#83cb70cdb2bac5fad6f8c93529e7b11187d49c02"
|
||||
integrity sha512-XG7rUdXG9fcafu9KTDIYjJSkRO38EwjlKYIb5TQ/0WDbiTUTtUtgncMscKOYzfsY86kGs05pAuMOR+3Fi0aN3A==
|
||||
dependencies:
|
||||
chalk "^4.1.0"
|
||||
consola "^2.15.0"
|
||||
node-fetch "^2.6.1"
|
||||
|
||||
"@types/glob@^7.1.1":
|
||||
version "7.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
|
||||
@@ -1141,7 +1157,7 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
|
||||
dependencies:
|
||||
color-convert "^1.9.0"
|
||||
|
||||
ansi-styles@^4.0.0:
|
||||
ansi-styles@^4.0.0, ansi-styles@^4.1.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
|
||||
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
|
||||
@@ -1426,7 +1442,18 @@ boolbase@^1.0.0, boolbase@~1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
||||
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
|
||||
|
||||
bootstrap@^4.0.0:
|
||||
bootstrap-vue@^2.21.2:
|
||||
version "2.21.2"
|
||||
resolved "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-2.21.2.tgz#ec38f66c3a2205becccddb6158a991d96509ed0b"
|
||||
integrity sha512-0Exe+4MZysqhZNXIKf4TzkvXaupxh9EHsoCRez0o5Dc0J7rlafayOEwql63qXv74CgZO8E4U8ugRNJko1vMvNw==
|
||||
dependencies:
|
||||
"@nuxt/opencollective" "^0.3.2"
|
||||
bootstrap ">=4.5.3 <5.0.0"
|
||||
popper.js "^1.16.1"
|
||||
portal-vue "^2.1.7"
|
||||
vue-functional-data-merge "^3.1.0"
|
||||
|
||||
"bootstrap@>=4.5.3 <5.0.0", bootstrap@^4.0.0:
|
||||
version "4.5.3"
|
||||
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.3.tgz#c6a72b355aaf323920be800246a6e4ef30997fe6"
|
||||
integrity sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==
|
||||
@@ -1728,6 +1755,14 @@ chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.3.0"
|
||||
|
||||
chalk@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
|
||||
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
|
||||
dependencies:
|
||||
ansi-styles "^4.1.0"
|
||||
supports-color "^7.1.0"
|
||||
|
||||
charenc@0.0.2:
|
||||
version "0.0.2"
|
||||
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
|
||||
@@ -1975,6 +2010,11 @@ connect-history-api-fallback@^1.6.0:
|
||||
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
|
||||
integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
|
||||
|
||||
consola@^2.15.0:
|
||||
version "2.15.0"
|
||||
resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.0.tgz#40fc4eefa4d2f8ef2e2806147f056ea207fcc0e9"
|
||||
integrity sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ==
|
||||
|
||||
console-browserify@^1.1.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
|
||||
@@ -4611,6 +4651,11 @@ no-case@^2.2.0:
|
||||
dependencies:
|
||||
lower-case "^1.1.1"
|
||||
|
||||
node-fetch@^2.6.1:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
|
||||
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
|
||||
|
||||
node-forge@^0.10.0:
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
|
||||
@@ -5060,11 +5105,16 @@ pkg-dir@^4.1.0:
|
||||
dependencies:
|
||||
find-up "^4.0.0"
|
||||
|
||||
popper.js@^1.12:
|
||||
popper.js@^1.12, popper.js@^1.16.1:
|
||||
version "1.16.1"
|
||||
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
|
||||
integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==
|
||||
|
||||
portal-vue@^2.1.7:
|
||||
version "2.1.7"
|
||||
resolved "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.7.tgz#ea08069b25b640ca08a5b86f67c612f15f4e4ad4"
|
||||
integrity sha512-+yCno2oB3xA7irTt0EU5Ezw22L2J51uKAacE/6hMPMoO/mx3h4rXFkkBkT4GFsMDv/vEe8TNKC3ujJJ0PTwb6g==
|
||||
|
||||
portfinder@^1.0.26:
|
||||
version "1.0.28"
|
||||
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
|
||||
@@ -6389,7 +6439,7 @@ supports-color@^6.1.0:
|
||||
dependencies:
|
||||
has-flag "^3.0.0"
|
||||
|
||||
supports-color@^7.0.0:
|
||||
supports-color@^7.0.0, supports-color@^7.1.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
|
||||
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
|
||||
@@ -6775,6 +6825,11 @@ vue-dygraphs@^0.1.2:
|
||||
dependencies:
|
||||
dygraphs "^2.1.0"
|
||||
|
||||
vue-functional-data-merge@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz#08a7797583b7f35680587f8a1d51d729aa1dc657"
|
||||
integrity sha512-leT4kdJVQyeZNY1kmnS1xiUlQ9z1B/kdBFCILIjYYQDqZgLqCLa0UhjSSeRX6c3mUe6U5qYeM8LrEqkHJ1B4LA==
|
||||
|
||||
vue-hot-reload-api@^2.3.0:
|
||||
version "2.3.4"
|
||||
resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
|
||||
@@ -6798,6 +6853,11 @@ vue-scrollbar-simple@0.0.9:
|
||||
dependencies:
|
||||
lodash.throttle "^4.1.1"
|
||||
|
||||
vue-slim-tabs@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/vue-slim-tabs/-/vue-slim-tabs-0.4.0.tgz#b07face4ad54aaa227f5706b60c17767783d66be"
|
||||
integrity sha512-19bwuKs2HICja0E039QmE7N7PMQcjdZXcpigmXlJTtTYGZy40C112tZF6q7bS18XNZGFcd/sP3jOJRGC80gVVw==
|
||||
|
||||
vue-style-loader@^4.1.0:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8"
|
||||
@@ -6828,7 +6888,7 @@ vue-template-es2015-compiler@^1.9.0:
|
||||
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
|
||||
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
|
||||
|
||||
vue@^2.5.17:
|
||||
vue@^2.5.17, vue@^2.6.6:
|
||||
version "2.6.12"
|
||||
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123"
|
||||
integrity sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==
|
||||
|
||||
Reference in New Issue
Block a user