update cypress

This commit is contained in:
andy 2020-04-12 13:16:27 +01:00
parent 6cb35796a8
commit cdeb4db1d2
44 changed files with 1141 additions and 2027 deletions

View file

@ -1,16 +1,29 @@
# vue-poc # vue-poc
A test of using `vue.js` as UI A test of using https://vuetifyjs.com/en/ as UI
Includes: Includes:
* material design (using `vuetify`) * material design (using `vuetify`)
* ace editor * ace editor
* localforage for persistence * localforage for persistence
Edit via android ## Icons
## Bugs * https://vuetifyjs.com/en/customization/icons/
* requests not stopped after unload ## Tests
### Cypress
https://github.com/cypress-io/cypress
```
cd ~\git\vue-poc\tests>
npx cypress open
or...
npx cypress run
```
## Settings ## Settings
Global `settings` provides `getItem(name)` and `setItem(name.value)` Global `settings` provides `getItem(name)` and `setItem(name.value)`
Example usage Example usage
``` ```

View file

@ -161,7 +161,7 @@
children: [ children: [
{href: '/database', text: 'Databases',icon: 'developer_mode' }, {href: '/database', text: 'Databases',icon: 'developer_mode' },
{href: '/files', text: 'File system',icon: 'folder' }, {href: '/files', text: 'File system',icon: 'folder' },
{href: '/documentation', text: 'Documentation',icon: 'library_books' },
{href: '/tasks',text: 'Tasks',icon: 'update'}, {href: '/tasks',text: 'Tasks',icon: 'update'},
{href: '/logdate',text: 'XML logs',icon: 'dns'}, {href: '/logdate',text: 'XML logs',icon: 'dns'},
{href: '/history/files',text: 'history',icon: 'history'} {href: '/history/files',text: 'history',icon: 'history'}
@ -171,9 +171,9 @@
text: 'Models' , text: 'Models' ,
model: false, model: false,
children: [ children: [
{href: '/namespace', text: 'Namespaces',icon: 'label' },
{href: '/entity', text: 'Entities',icon: 'redeem' }, {href: '/entity', text: 'Entities',icon: 'redeem' },
{href: '/documentation', text: 'Documentation',icon: 'library_books' },
{href: '/namespace', text: 'Namespaces',icon: 'label' },
]}, ]},
{ {
@ -232,7 +232,7 @@
{href: '/labs/markdown',text: 'Markdown',icon: 'receipt'}, {href: '/labs/markdown',text: 'Markdown',icon: 'receipt'},
]}, ]},
{href: '/settings',text: 'Settings',icon: 'settings' }, {href: '/settings',text: 'Settings',icon: 'settings' },
{href: '/about',text: 'About (v0.3.2)' , icon: 'help' }, {href: '/about',text: 'About' , icon: 'help' },
] ]
}}, }},

View file

@ -67,16 +67,10 @@
}, },
matchItems(typed){ matchItems(typed){
var hits=this.$router.options.routes; var hits=this.titles;
console.log(hits.length,hits); var typed=typed.toLowerCase();
hits=hits.filter(item=>{ hits=hits.filter(item=>item.title.indexOf(typed) !== -1)
if (!item.meta) return false; return hits.map(r=>{return {text:r.title,
var i=item.meta.title.toString().toLowerCase();
console.log(i);
return i.indexOf(typed) !== -1});
console.log("pages",typed," r:",hits);
return hits.map(r=>{return {text:r.meta.title,
value:r.path} value:r.path}
}); });
}, },
@ -90,5 +84,21 @@
console.log("si: ",val); console.log("si: ",val);
this.querySelections(); this.querySelections();
} }
},
created:function(){
var hits=this.$router.options.routes;
var res=[];
const extract = function(item,path) {if(item.hasOwnProperty("meta"))
return {title: item.meta.title.toLowerCase(),
path: path + item.path}
else if(item.hasOwnProperty("children"))
return item.children.map(item=>extract(item, path +"/"))
else
return []
};
res=hits.map(item=>extract(item,item.path))
res=res.flat(Infinity);
//console.log("extract",res)
this.titles=res;
} }
}</script> }</script>

View file

@ -23,7 +23,7 @@ for vis-time-line http://visjs.org/docs/graph2d/
}, },
watch:{ watch:{
items(newItems){ items(newItems){
console.log("timeline new:" + newItems.length) console.log("vis-time-line: new items:" + newItems.length)
this.rebuild(newItems) this.rebuild(newItems)
}, },
options(newOpts){ options(newOpts){

View file

@ -1,4 +1,4 @@
<package xmlns="http://cxan.org/ns/package" id="dotml"> <package xmlns="http://cxan.org/ns/package" id="vue-poc">
<abstract>vue-poc test of vue.js. </abstract> <abstract>vue-poc test of vue.js. </abstract>
<author id="abunce">Andy Bunce</author> <author id="abunce">Andy Bunce</author>
<maintainer id="abunce">Andy Bunce</maintainer> <maintainer id="abunce">Andy Bunce</maintainer>

View file

@ -1,4 +1,4 @@
<entity name="basexlogfile" xmlns="https://github.com/Quodatum/app-doc/entity"> <entity name="quodatum.logfile" xmlns="https://github.com/Quodatum/app-doc/entity">
<description>list of saved BaseX log files with entries in the vue-poc database</description> <description>list of saved BaseX log files with entries in the vue-poc database</description>
<fields> <fields>

View file

@ -1,5 +1,5 @@
<entity name="task" xmlns="https://github.com/Quodatum/app-doc/entity"> <entity name="quodatum.task" xmlns="https://github.com/Quodatum/app-doc/entity">
<description>predefined queries with parameters </description> <description>A predefined query with parameters, listed in taskdef.xml </description>
<fields> <fields>
<field name="to" type="xs:string"> <field name="to" type="xs:string">
<description>name for task</description> <description>name for task</description>

View file

@ -1,89 +0,0 @@
<!DOCTYPE html>
<template id="about">
<v-container fill-height>
<v-card hover raised>
<v-card-title class="pa-5 indigo">
<div class="display-1 white--text text-xs-center">VUE-POC</div>
<v-spacer></v-spacer>
<v-speed-dial v-model="fab" hover right direction="bottom" transition="slide-y-reverse-transition">
<template v-slot:activator="{ on }">
<v-btn v-on="on" class="blue darken-2" dark fab hover v-model="fab">
<v-icon>account_circle</v-icon>
<v-icon>close</v-icon>
</v-btn>
</template>
<v-btn fab dark small class="green" >
<v-icon>edit</v-icon>
</v-btn>
<v-btn fab dark small class="indigo" >
<v-icon>add</v-icon>
</v-btn>
<v-btn fab dark small class="red" >
<v-icon>delete</v-icon>
</v-btn>
</v-speed-dial>
</v-card-title>
<v-card-text>
<v-layout align-center>
<v-flex color="grey lighten-2">
<span class="subheading">A development environment for managing XML sources and processes.</span>
<v-divider class="my-3"></v-divider>
<div class="title mb-3">Links</div>
<v-layout row wrap>
<v-flex xs6>
<ul>
<li><a href="https://vuejs.org/" target="new">vue.js</a></li>
<li><a href="https://vuetifyjs.com/vuetify/quick-start"
target="new">vuetifyjs</a></li>
<li><a href="https://github.com/axios/axios" target="new">axios</a></li>
<li><a href="https://github.com/beautify-web/js-beautify"
target="new">js-beautify</a></li>
<li><a href="https://developers.google.com/web/tools/workbox/"
target="new">workbox</a></li>
<li><a href="https://material.io/tools/icons/?style=baseline"
target="new">icons (material)</a></li>
</ul>
</v-flex>
<v-flex xs6>
<ul>
<li><a href="/doc/#/data/app/vue-poc" target="new">doc</a></li>
<li><a href="/dba" target="new">DBA app</a></li>
<li> <router-link to="database?url=%2Fvue-poc%2F">DB</router-link></li>
</ul>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
</v-card-text>
</v-card>
</v-container>
</template>
<script>{
data: function(){
return {
fab: false
}
},
methods:{
refresh(){
HTTP.get("package.json")
.then(r=>{
console.log("status",r)
//this.$forceUpdate()
})
},
}
}</script>

View file

@ -0,0 +1,136 @@
<!DOCTYPE html>
<template id="about">
<v-container >
<v-card hover raised>
<v-toolbar>
<v-card-title >VUE-POC </v-card-title>
<span v-if="pack"> {{ pack.version }}</span>
<v-spacer></v-spacer>
</v-toolbar>
<v-card-text>
<v-layout align-center>
<v-flex color="grey lighten-2">
<span class="subheading">A development environment for managing XML sources and processes.</span>
<v-divider class="my-3"></v-divider>
<div class="title mb-3">Links</div>
<v-list dense nav>
<v-list-item v-for="(item, i) in links"
:key="i" :to="item.to" link >
<v-list-item-icon>
<v-icon v-text="item.icon"></v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title v-text="item.text" >fill</v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list>
<v-layout row wrap>
<v-flex xs6>
<v-list dense >
<v-list-item> <a href="https://vuejs.org/" target="new">vue.js</a></v-list-item>
<v-list-item><a href="https://vuetifyjs.com/vuetify/quick-start"
target="new">vuetifyjs</a></v-list-item>
<v-list-item><a href="https://github.com/axios/axios" target="new">axios</a></v-list-item>
<v-list-item><a href="https://github.com/beautify-web/js-beautify"
target="new">js-beautify</a></v-list-item>
<v-list-item><a href="https://developers.google.com/web/tools/workbox/"
target="new">workbox</a></v-list-item>
<v-list-item><a href="https://material.io/tools/icons/?style=baseline"
target="new">icons (material)</a></v-list-item>
</v-list>
</v-flex>
<v-flex xs6>
<ul>
<li><a href="/doc/#/data/app/vue-poc" target="new">doc</a></li>
<li><a href="/dba" target="new">DBA app</a></li>
<li> <router-link to="database?url=%2Fvue-poc%2F">DB</router-link></li>
</ul>
</v-flex>
</v-layout>
</v-flex>
<v-speed-dial :bottom="true" :right="true">
<template v-slot:activator>
<v-btn
v-model="fab"
color="blue darken-2"
dark
fab
>
<v-icon v-if="fab">mdi-close</v-icon>
<v-icon v-else>mdi-account-circle</v-icon>
</v-btn>
</template>
<v-btn
fab
dark
small
color="green"
>
<v-icon>mdi-pencil</v-icon>
</v-btn>
<v-btn
fab
dark
small
color="indigo"
>
<v-icon>mdi-plus</v-icon>
</v-btn>
<v-btn
fab
dark
small
color="red"
>
<v-icon>mdi-delete</v-icon>
</v-btn>
</v-speed-dial>
</v-layout>
</v-card-text>
</v-card>
</v-container>
</template>
<script>{
data: function(){
return {
pack: null,
fab: false,
links:[
{text:"3rd party components",icon:"mdi-clock",to:"about/package"},
{text:"components",icon:"mdi-flag",to:"about/vue-cmps"},
{text:"routes",icon:"mdi-plus",to:"about/routes"}
]
}
},
methods:{
refresh(){
HTTP.get("package.json")
.then(r=>{
console.log("status",r)
this.pack=r.data
//this.$forceUpdate()
})
},
},
created(){
this.refresh()
}
}</script>

View file

@ -0,0 +1,17 @@
module namespace _ = 'quodatum.test.about';
import module namespace entity = 'quodatum.models.generated' at "../../models.gen.xqm";
import module namespace dice = 'quodatum.web.dice/v4' at "../../lib/dice.xqm";
import module namespace web = 'quodatum.web.utils4' at "../../lib/webutils.xqm";
(:~
: package.json
:)
declare
%rest:GET %rest:path("/vue-poc/api/package.json")
%output:method("text")
%output:media-type("application/json")
function _:package()
as xs:string
{
unparsed-text("../../package.json")
};

View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<template id="package">
<v-container >
<v-card hover raised>
<v-toolbar>
<v-card-title>
<qd-breadcrumbs @todo="showmenu= ! showmenu"
:crumbs="[{to: '/about', text:'about'}, {text: '3rd party components', disabled: false, menu: 'todo'}]"
>crumbs</qd-breadcrumbs>
</v-card-title>
<v-spacer></v-spacer>
</v-toolbar>
<v-data-table
:headers="headers"
:items="desserts"
:items-per-page="5"
class="elevation-1"
></v-data-table>
<v-card-text> <pre>{{ pack | pretty }}</pre> </v-card-text>
</v-card>
</v-container>
</template>
<script>{
data: function(){
return {
pack: null,
fab: false,
showmenu: false
}
},
methods:{
refresh(){
HTTP.get("package.json")
.then(r=>{
console.log("status",r)
this.pack=r.data.dependencies
})
},
},
created(){
this.refresh()
}
}</script>

View file

@ -0,0 +1,53 @@
<!DOCTYPE html>
<template id="routes">
<v-container>
<v-card hover raised>
<v-toolbar>
<v-card-title>
<qd-breadcrumbs @todo="showmenu= ! showmenu"
:crumbs="[{to: '/about', text:'about'}, {text: 'routes', disabled: false, menu: 'todo'}]"
>crumbs</qd-breadcrumbs>
</v-card-title>
<v-spacer></v-spacer>
</v-toolbar>
<v-card-text>
<v-data-table
:headers="headers"
:items="routes"
:items-per-page="20"
class="elevation-1"
></v-data-table>
<pre>{{ pack | pretty }}</pre> </v-card-text>
</v-card>
</v-container>
</template>
<script>{
data: function(){
return {
pack: null,
fab: false,
showmenu: false,
routes:null,
headers:[
{ text: '#', value: 'index' },
{ text: 'Path', value: 'path' },
{ text: 'Title', value: 'title' }
],
}
},
methods:{
refresh(){
var hits=this.$router.options.routes;
this.routes=hits.map(function(v,i){
return {"index":i,
"path": v.path,
"name":"ww",
"title": v.meta && v.meta.title
}});
console.log("routes: ",hits)
},
},
created(){
this.refresh()
}
}</script>

View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<template id="vueComps">
<v-container >
<v-card hover raised>
<v-toolbar>
<v-card-title>
<qd-breadcrumbs @todo="showmenu= ! showmenu"
:crumbs="[{to: '/about', text:'about'}, {text: 'vue-comps', disabled: false, menu: 'todo'}]"
>crumbs</qd-breadcrumbs>
</v-card-title>
<v-spacer></v-spacer>
</v-toolbar>
<v-card-text> <pre>{{ pack | pretty }}</pre> </v-card-text>
</v-card>
</v-container>
</template>
<script>{
data: function(){
return {
pack: null,
fab: false,
showmenu: false
}
},
methods:{
refresh(){
HTTP.get("package.json")
.then(r=>{
console.log("status",r)
this.pack=r.data
})
},
},
created(){
this.refresh()
}
}</script>

View file

@ -98,7 +98,7 @@
load(){ load(){
this.loading= true this.loading= true
HTTP.get("data/basexlogfile",{params:{q:this.q}}) HTTP.get("data/quodatum.logfile",{params:{q:this.q}})
.then(r=>{ .then(r=>{
this.items= r.data.items this.items= r.data.items
this.loading= false this.loading= false

View file

@ -20,8 +20,6 @@
:return-value.sync="query.from" :return-value.sync="query.from"
transition="scale-transition" transition="scale-transition"
offset-y offset-y
max-width="290px"
min-width="100px"
> >
<template v-slot:activator="{ on }"> <template v-slot:activator="{ on }">
<v-text-field <v-text-field
@ -33,11 +31,13 @@
class="mt-3" class="mt-3"
></v-text-field> ></v-text-field>
</template> </template>
<v-time-picker <v-time-picker
v-if="showFrom" v-if="showFrom"
v-model="query.from" v-model="query.from"
use-seconds use-seconds
@click:second="$refs.menu.save(query.from)" @click:second="$refs.menu.save(query.from)"
format="24hr"
></v-time-picker> ></v-time-picker>
</v-menu> </v-menu>
<v-toolbar-items> <v-toolbar-items>
@ -48,10 +48,21 @@
<v-avatar> <v-icon>skip_next</v-icon> </v-avatar> <v-avatar> <v-icon>skip_next</v-icon> </v-avatar>
</v-btn> </v-btn>
</v-toolbar-items> </v-toolbar-items>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-btn-toggle v-model="seek">
<v-btn small>
Seek
</v-btn>
</v-btn-toggle>
<v-btn-toggle v-model="fit">
<v-btn small>
Fit
</v-btn>
</v-btn-toggle>
<qd-range :query="query"></qd-range> <qd-range :query="query"></qd-range>
<v-toolbar-items> <v-toolbar-items>
<v-btn @click="fit">fit</v-btn>
<v-btn @click="getItems"> <v-btn @click="getItems">
<v-avatar><v-icon>refresh</v-icon></v-avatar> <v-avatar><v-icon>refresh</v-icon></v-avatar>
</v-btn> </v-btn>
@ -97,6 +108,8 @@
data:[], data:[],
query:{date: this.date, start: 1, limit:30, from:"00:00:00", window:600}, query:{date: this.date, start: 1, limit:30, from:"00:00:00", window:600},
showmenu: false, showmenu: false,
seek: false,
fit: false,
Events: new Vue({}), Events: new Vue({}),
msg:"Select an entry", msg:"Select an entry",
showFrom: false showFrom: false
@ -134,6 +147,7 @@ methods:{
this.loading=true this.loading=true
HTTP.get("logxml", {params:this.query}) HTTP.get("logxml", {params:this.query})
.then(r=>{ .then(r=>{
//var items=r.data.items.filter(item=>{return item.text!="[GET] http://localhost:8984/vue-poc/api/log"}) //var items=r.data.items.filter(item=>{return item.text!="[GET] http://localhost:8984/vue-poc/api/log"})
var items=r.data.items var items=r.data.items
//console.log("logxml",items) //console.log("logxml",items)
@ -145,20 +159,27 @@ methods:{
style: x.text.startsWith("[POST] ")?"background-color: red;": "background-color: yellow;", style: x.text.startsWith("[POST] ")?"background-color: red;": "background-color: yellow;",
group: x.user} group: x.user}
)) ))
this.loading=false
return;
//https://stackoverflow.com/a/39637877/3210344 round(date, moment.duration(15, "minutes"), "ceil")
//https://stackoverflow.com/a/39637877/3210344 roundDate(date, moment.duration(15, "minutes"), "ceil")
var roundDate= function (date, duration, method) { var roundDate= function (date, duration, method) {
return moment(Math[method]((+date) / (+duration)) * (+duration)); return moment(Math[method]((+date) / (+duration)) * (+duration));
} }
var start=moment(this.date + "T" + this.query.from) var start=moment(this.date + "T" + this.query.from)
var first=this.data[0] var first=moment(this.data[0].start);
var w=Number(this.query.window);
first1=roundDate(first,moment.duration(w, "seconds"), "floor");
console.log("Ab",first,this.query,first1,this.data);
return;
if(first){ if(first){
first=moment(first.time) first=moment(first.start)
start=roundDate(first,moment.duration(this.query.window, "seconds"), "floor") start=roundDate(first,moment.duration(this.query.window, "seconds"), "floor")
//console.log(r.format(moment.HTML5_FMT.TIME_SECONDS)) console.log("rounded ",start)
this.query.from=start.format(moment.HTML5_FMT.TIME_SECONDS) //this.query.from=start.format(moment.HTML5_FMT.TIME_SECONDS)
} }
this.loading=false
this.options.start=start.toDate() this.options.start=start.toDate()
this.options.end=start.add(this.query.window,"s").toDate() this.options.end=start.add(this.query.window,"s").toDate()
//console.log("data",this.data) //console.log("data",this.data)

View file

@ -6,7 +6,8 @@
module namespace j = 'quodatum.test.components'; module namespace j = 'quodatum.test.components';
(:~ (:~
: @return sequence of json arary items for each item : id:, label:,children:
: @return sequence of json array items for each item
:) :)
declare function j:tax($items) declare function j:tax($items)
as element(_)* as element(_)*
@ -44,10 +45,11 @@ return
}; };
(:~ (:~
: sample markdown : serve sample markdown from "md-sample.md"
:) :)
declare declare
%rest:GET %rest:path("/vue-poc/api/components/markdown") %rest:GET %rest:path("/vue-poc/api/components/markdown")
%output:method("text")
function j:markdown() function j:markdown()
as xs:string as xs:string
{ {

View file

@ -7,39 +7,56 @@ https://github.com/miaolz123/vue-markdown
<v-card> <v-card>
<v-toolbar class="lime darken-1"> <v-toolbar class="lime darken-1">
<v-card-title >Markdown</v-card-title> <v-card-title >Markdown</v-card-title>
<v-checkbox v-model="show" label="show" ></v-checkbox> <v-btn-toggle v-model="toc">
<v-checkbox v-model="html" label="html" ></v-checkbox> <v-btn>
<v-checkbox v-model="breaks" label="breaks" ></v-checkbox> TOC
<v-checkbox v-model="linkify" label="linkify" ></v-checkbox> </v-btn>
<v-checkbox v-model="emoji" label="emoji" ></v-checkbox> </v-btn-toggle>
<v-checkbox v-model="typographer" label="typographer" ></v-checkbox>
<v-checkbox v-model="toc" label="toc" ></v-checkbox> <v-checkbox v-model="toc" label="toc" ></v-checkbox>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<qd-link href="https://github.com/miaolz123/vue-markdown">vue-markdown@2.2.4</qd-link> <qd-link href="https://github.com/miaolz123/vue-markdown">vue-markdown@2.2.4</qd-link>
<v-menu :close-on-content-click="false" offset-y left>
<template v-slot:activator="{ on }">
<v-btn icon v-on="on"><v-icon>settings</v-icon></v-btn>
</template>
<v-card >
<v-toolbar class="lime darken-1">
<v-card-title >Markdown Settings</v-card-title>
</v-toolbar> </v-toolbar>
<v-card-text> <v-card-text>
<div id="toc"></div> <ul>
<li><v-checkbox v-model="html" label="html" ></v-checkbox></li>
<li><v-checkbox v-model="breaks" label="breaks" ></v-checkbox></li>
<li><v-checkbox v-model="linkify" label="linkify" ></v-checkbox></li>
<li><v-checkbox v-model="emoji" label="emoji" ></v-checkbox></li>
<li> <v-checkbox v-model="typographer" label="typographer" ></v-checkbox></li>
</ul>
</v-card-text>
</v-card>
</v-menu>
</v-toolbar>
<v-card-text>
<v-row no-gutters style="flex-wrap: nowrap;">
<v-col v-if="toc" cols="3" class="flex-grow-0 flex-shrink-0" >
<v-card
class="pa-2"
outlined
tile
>
<div v-html="tochtml"></div>
</v-card>
</v-col>
<v-col cols="1" style="min-width: 100px; max-width: 100%;"
class="flex-grow-1 flex-shrink-0" color="orange lighten-2">
<vue-markdown :watches="['show','html','breaks','linkify','emoji','typographer','toc']" <vue-markdown :watches="['show','html','breaks','linkify','emoji','typographer','toc']"
:source="source" :show="show" :html="html" :breaks="breaks" :linkify="linkify" :source="source" :show="show" :html="html" :breaks="breaks" :linkify="linkify"
:emoji="emoji" :typographer="typographer" :toc="toc" v-on:rendered="allRight" :emoji="emoji" :typographer="typographer" :toc="toc" v-on:rendered="allRight"
v-on:toc-rendered="tocAllRight" toc-id="toc">># h1 Heading 8-) v-on:toc-rendered="tocAllRight" toc-id="toc">
## level 2
### h3 Heading
## Horizontal Rules
___
---
***
## Typographic replacements
Enable typographer option to see result.
(c) (C) (r) (R) (tm) (TM) (p) (P) +-
</vue-markdown> </vue-markdown>
</v-col>
</v-row>
</v-card-text> </v-card-text>
</v-card> </v-card>
@ -56,7 +73,8 @@ Enable typographer option to see result.
linkify: false, linkify: false,
emoji: true, emoji: true,
typographer: true, typographer: true,
toc: false toc: false,
tochtml: null
} }
}, },
methods: { methods: {
@ -64,14 +82,15 @@ Enable typographer option to see result.
console.log("markdown is parsed !"); console.log("markdown is parsed !");
}, },
tocAllRight: function (tocHtmlStr) { tocAllRight: function (tocHtmlStr) {
console.log("toc is parsed :", tocHtmlStr); this.tochtml=tocHtmlStr
console.log("toc is parsed :");
} }
}, },
created:function(){ created:function(){
HTTP.get("components/markdown") HTTP.get("components/markdown")
.then(r=>{ .then(r=>{
console.log("data::::",r.data); //console.log("data::::",r.data);
this.source=r.data; this.source=r.data;
}) })
.catch(err=> { .catch(err=> {

View file

@ -18,7 +18,7 @@
clearable></v-text-field> clearable></v-text-field>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<vp-entitylink entity="task"></vp-entitylink> <vp-entitylink entity="quodatum.task"></vp-entitylink>
</v-toolbar> </v-toolbar>
<v-card-text> <v-card-text>

View file

@ -56,15 +56,12 @@
</v-avatar> {{ item.name }} </v-avatar> {{ item.name }}
</v-toolbar-title> </v-toolbar-title>
</v-card-title> </v-card-title>
</v-toolbar> <v-spacer></v-spacer>
<v-card-text >{{ item.description }}</<v-card-text>
<v-card-actions green>
<v-badge > <v-badge >
<span slot="badge">{{ item.nfields }}</span> <span slot="badge">{{ item.nfields }}</span>
Fields
</v-badge> </v-badge>
</v-card-actions> </v-toolbar>
<v-card-text >{{ item.description }}</<v-card-text>
</v-card> </v-card>
</v-flex> </v-flex>
</v-layout> </v-layout>

View file

@ -17,12 +17,10 @@
<v-card-text> <v-card-text>
<v-expansion-panels> <v-expansion-panels>
<v-expansion-panel v-model="openIndex"> <v-expansion-panel v-for="key in keys" :key="key">
<v-expansion-panel-content popout <v-expansion-panel-header>{{key}}</v-expansion-panel-header>
v-for="key in keys" <v-expansion-panel-content popout >
:key="key"
>
<div slot="header">{{key}}</div>
<v-card> <v-card>
<v-card-text>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor <v-card-text>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation

View file

@ -1,16 +1,21 @@
(:~ (:~
: log enrich : Enrich log files in collection /logs database vue-poc
: by adding @start and @end attributes where calculatable
: @author andy bunce : @author andy bunce
: @todo
:) :)
declare %updating function local:enrich($doc as document-node()){
declare %updating function local:enrich($doc as document-node())
{
let $date:=fn:analyze-string(db:path($doc),"(\d{4}-\d{2}-\d{2})")/fn:match/fn:group/string() let $date:=fn:analyze-string(db:path($doc),"(\d{4}-\d{2}-\d{2})")/fn:match/fn:group/string()
return return
for $entry in $doc/entries/entry for $entry in $doc/entries/entry
return local:update-entry($entry,$date) return local:update-entry($entry,$date)
}; };
declare %updating function local:update-entry($entry,$date as xs:string){ declare %updating function local:update-entry($entry as element(entry),
$date as xs:string)
{
let $start :=xs:dateTime(concat($date,"T",$entry/@time)) let $start :=xs:dateTime(concat($date,"T",$entry/@time))
return ( return (
local:set-start($entry,$start), local:set-start($entry,$start),
@ -22,6 +27,8 @@ declare %updating function local:update-entry($entry,$date as xs:string){
) )
}; };
(:~ set @start attribute to $start
:)
declare %updating function local:set-start($entry,$start as xs:dateTime) declare %updating function local:set-start($entry,$start as xs:dateTime)
{ {
if($entry/@start) then if($entry/@start) then

View file

@ -16,7 +16,8 @@
<task name="log.enrich" url="task/log.enrich.xq"> <task name="log.enrich" url="task/log.enrich.xq">
<title>log enrich</title> <title>log enrich</title>
<description>logs</description> <description>Enrich log files in collection /logs database vue-poc
by adding @start and @end attributes where calculatable</description>
</task> </task>
<task name="vuecompile"> <task name="vuecompile">
<title>vue compile</title> <title>vue compile</title>

View file

@ -20,7 +20,7 @@
clearable></v-text-field> clearable></v-text-field>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<vp-entitylink entity="task"></vp-entitylink> <vp-entitylink entity="quodatum.task"></vp-entitylink>
</v-toolbar> </v-toolbar>
<v-card-text> <v-card-text>

View file

@ -1,5 +1,5 @@
(: entity access maps (: entity access maps
: auto generated from xml files in entities folder at: 2020-01-29T22:51:17.628Z : auto generated from xml files in entities folder at: 2020-03-12T23:25:24.314Z
:) :)
module namespace entity = 'quodatum.models.generated'; module namespace entity = 'quodatum.models.generated';
@ -242,65 +242,6 @@ hof:top-k-by(admin:logs(), string#1, 2)
"views": map{ "views": map{
}
},
"basexlogfile": map{
"name": "basexlogfile",
"description": "list of saved BaseX log files with entries in the vue-poc database",
"access": map{
"date": function($_ as element()) as xs:string {$_/@date },
"entries": function($_ as element()) as xs:integer {$_/@entries },
"max": function($_ as element()) as xs:integer {$_/@max },
"name": function($_ as element()) as xs:string {$_/@file },
"perhr": function($_ as element()) as xs:string {$_/@perhr } },
"filter": function($item,$q) as xs:boolean{
some $e in ( ) satisfies
fn:contains($e,$q, 'http://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensitive')
},
"json": map{
"date": function($_ as element()) as element(date)? {
(: xs:string :)
fn:data($_/@date)!element date { .}
},
"entries": function($_ as element()) as element(entries)? {
(: xs:integer :)
fn:data($_/@entries)!element entries { attribute type {'number'}, .}
},
"max": function($_ as element()) as element(max)? {
(: xs:integer :)
fn:data($_/@max)!element max { attribute type {'number'}, .}
},
"name": function($_ as element()) as element(name)? {
(: xs:string :)
fn:data($_/@file)!element name { .}
},
"perhr": function($_ as element()) as element(perhr)? {
(: xs:string :)
fn:data($_/@perhr)!element perhr { .}
} },
"data": function() as element(day)*
{
let $hrs:=(0 to 23)!format-number(., "00")
for $item in db:dir("vue-poc","logs")
let $es:=db:open("vue-poc","logs/" || $item)/entries/entry
let $max:=round(max($es/@ms) div 1000)
let $times:=(for $e in $es
group by $hr:=substring($e/@time,1,2)
return map:entry($hr, max($e/@ms)))=>map:merge()
let $c:=for $h in $hrs return if(map:contains($times,$h)) then map:get($times,$h) else 0
return <day file="{ $item }"
date="{ fn:replace($item,".*(\d{4}-\d{2}-\d{2}).*","$1")}"
entries="{ count($es) }"
max="{ $max }"
perhr="{ string-join($c,' ') }"
/>
},
"views": map{
} }
}, },
"entity.field": map{ "entity.field": map{
@ -657,6 +598,103 @@ hof:top-k-by(admin:logs(), string#1, 2)
"views": map{ "views": map{
'filter': 'name description' 'filter': 'name description'
}
},
"quodatum.logfile": map{
"name": "quodatum.logfile",
"description": "list of saved BaseX log files with entries in the vue-poc database",
"access": map{
"date": function($_ as element()) as xs:string {$_/@date },
"entries": function($_ as element()) as xs:integer {$_/@entries },
"max": function($_ as element()) as xs:integer {$_/@max },
"name": function($_ as element()) as xs:string {$_/@file },
"perhr": function($_ as element()) as xs:string {$_/@perhr } },
"filter": function($item,$q) as xs:boolean{
some $e in ( ) satisfies
fn:contains($e,$q, 'http://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensitive')
},
"json": map{
"date": function($_ as element()) as element(date)? {
(: xs:string :)
fn:data($_/@date)!element date { .}
},
"entries": function($_ as element()) as element(entries)? {
(: xs:integer :)
fn:data($_/@entries)!element entries { attribute type {'number'}, .}
},
"max": function($_ as element()) as element(max)? {
(: xs:integer :)
fn:data($_/@max)!element max { attribute type {'number'}, .}
},
"name": function($_ as element()) as element(name)? {
(: xs:string :)
fn:data($_/@file)!element name { .}
},
"perhr": function($_ as element()) as element(perhr)? {
(: xs:string :)
fn:data($_/@perhr)!element perhr { .}
} },
"data": function() as element(day)*
{
let $hrs:=(0 to 23)!format-number(., "00")
for $item in db:dir("vue-poc","logs")
let $es:=db:open("vue-poc","logs/" || $item)/entries/entry
let $max:=round(max($es/@ms) div 1000)
let $times:=(for $e in $es
group by $hr:=substring($e/@time,1,2)
return map:entry($hr, max($e/@ms)))=>map:merge()
let $c:=for $h in $hrs return if(map:contains($times,$h)) then map:get($times,$h) else 0
return <day file="{ $item }"
date="{ fn:replace($item,".*(\d{4}-\d{2}-\d{2}).*","$1")}"
entries="{ count($es) }"
max="{ $max }"
perhr="{ string-join($c,' ') }"
/>
},
"views": map{
}
},
"quodatum.task": map{
"name": "quodatum.task",
"description": "A predefined query with parameters, listed in taskdef.xml ",
"access": map{
"description": function($_ as element()) as xs:string {$_/fn:serialize(description/node()) },
"title": function($_ as element()) as xs:string {$_/title },
"to": function($_ as element()) as xs:string {$_/@name },
"url": function($_ as element()) as xs:string {$_/@url } },
"filter": function($item,$q) as xs:boolean{
some $e in ( ) satisfies
fn:contains($e,$q, 'http://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensitive')
},
"json": map{
"description": function($_ as element()) as element(description)? {
(: xs:string :)
fn:data($_/fn:serialize(description/node()))!element description { .}
},
"title": function($_ as element()) as element(title)? {
(: xs:string :)
fn:data($_/title)!element title { .}
},
"to": function($_ as element()) as element(to)? {
(: xs:string :)
fn:data($_/@name)!element to { .}
},
"url": function($_ as element()) as element(url)? {
(: xs:string :)
fn:data($_/@url)!element url { .}
} },
"data": function() as element(task)*
{ doc("tasks/taskdef.xml")/tasks/task },
"views": map{
} }
}, },
"search-result": map{ "search-result": map{
@ -695,44 +733,6 @@ hof:top-k-by(admin:logs(), string#1, 2)
"views": map{ "views": map{
}
},
"task": map{
"name": "task",
"description": "predefined queries with parameters ",
"access": map{
"description": function($_ as element()) as xs:string {$_/fn:serialize(description/node()) },
"title": function($_ as element()) as xs:string {$_/title },
"to": function($_ as element()) as xs:string {$_/@name },
"url": function($_ as element()) as xs:string {$_/@url } },
"filter": function($item,$q) as xs:boolean{
some $e in ( ) satisfies
fn:contains($e,$q, 'http://www.w3.org/2005/xpath-functions/collation/html-ascii-case-insensitive')
},
"json": map{
"description": function($_ as element()) as element(description)? {
(: xs:string :)
fn:data($_/fn:serialize(description/node()))!element description { .}
},
"title": function($_ as element()) as element(title)? {
(: xs:string :)
fn:data($_/title)!element title { .}
},
"to": function($_ as element()) as element(to)? {
(: xs:string :)
fn:data($_/@name)!element to { .}
},
"url": function($_ as element()) as element(url)? {
(: xs:string :)
fn:data($_/@url)!element url { .}
} },
"data": function() as element(task)*
{ doc("tasks/taskdef.xml")/tasks/task },
"views": map{
} }
}, },
"taskhistory": map{ "taskhistory": map{

View file

@ -1,23 +1,23 @@
{ {
"name": "vue-poc", "name": "vue-poc",
"version": "0.2.0", "version": "0.5.2",
"description": "A vue test", "description": "Frontend vuetify, backend: basex",
"dependencies": { "dependencies": {
"ace": "1.4.6", "ace": "1.4.8",
"vuetify": "2.1.9", "vuetify": "2.2.19",
"vue": "2.6.10", "vue": "2.6.11",
"vuex": "3.0.1", "vuex": "3.1.0",
"vue-router": "3.0.3", "vue-router": "3.1.6",
"vue-treeselect": "0.0.25", "vue-treeselect": "0.0.29",
"google-material": "0.0.0", "google-material": "0.0.0",
"js-beautify": "1.9.0", "js-beautify": "1.9.0",
"axios": "0.18.1", "axios": "0.19.2",
"qs": "6.4.0", "qs": "6.4.0",
"localforage": "1.7.1", "localforage": "1.7.1",
"momentjs": "2.24.0", "momentjs": "2.24.0",
"vuetify-jsonschema-form": "0.27.1", "vuetify-jsonschema-form": "0.35.0",
"prism": "1.15.0", "prism": "1.15.0",
"vue-prism-component": "1.1.1", "vue-prism-component": "1.1.1",
"vis-timeline-graph2d": "4.21.0" "vis-timeline-graph2d": "4.20.1"
} }
} }

View file

@ -135,10 +135,14 @@ const router = new VueRouter({
{ path: '/map', component: Leaflet,meta:{title:"map"} }, { path: '/map', component: Leaflet,meta:{title:"map"} },
{ path: '/about', component: { template: '<router-view/>' }
,children:[
{path: '', component: About, meta:{title:"About Vue-poc"} },
{path: 'package', component: Package, meta:{title:"Javascript components"} },
{path: 'routes', component: Routes, meta:{title:"Routes"} },
{path: 'vue-cmps', component: VueComps, meta:{title:"Vue components"} },
]},
{ path: '/about', component: About, meta:{title:"About Vue-poc"} },
{ path: '*', component: Notfound, meta:{title:"Page not found"} } { path: '*', component: Notfound, meta:{title:"Page not found"} }
], ],
}); });

View file

@ -1,4 +1,4 @@
// generated 2020-02-02T23:23:08.774Z // generated 2020-04-06T22:33:30.222+01:00
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/qd-autoheight.vue // src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/qd-autoheight.vue
Vue.component('qd-autoheight',{template:` Vue.component('qd-autoheight',{template:`
@ -392,16 +392,10 @@ Vue.component('qd-search',{template:`
}, },
matchItems(typed){ matchItems(typed){
var hits=this.$router.options.routes; var hits=this.titles;
console.log(hits.length,hits); var typed=typed.toLowerCase();
hits=hits.filter(item=>{ hits=hits.filter(item=>item.title.indexOf(typed) !== -1)
if (!item.meta) return false; return hits.map(r=>{return {text:r.title,
var i=item.meta.title.toString().toLowerCase();
console.log(i);
return i.indexOf(typed) !== -1});
console.log("pages",typed," r:",hits);
return hits.map(r=>{return {text:r.meta.title,
value:r.path} value:r.path}
}); });
}, },
@ -415,6 +409,22 @@ Vue.component('qd-search',{template:`
console.log("si: ",val); console.log("si: ",val);
this.querySelections(); this.querySelections();
} }
},
created:function(){
var hits=this.$router.options.routes;
var res=[];
const extract = function(item,path) {if(item.hasOwnProperty("meta"))
return {title: item.meta.title.toLowerCase(),
path: path + item.path}
else if(item.hasOwnProperty("children"))
return item.children.map(item=>extract(item, path +"/"))
else
return []
};
res=hits.map(item=>extract(item,item.path))
res=res.flat(Infinity);
//console.log("extract",res)
this.titles=res;
} }
} }
); );
@ -576,7 +586,7 @@ Vue.component('vis-time-line',{template:`
}, },
watch:{ watch:{
items(newItems){ items(newItems){
console.log("timeline new:" + newItems.length) console.log("vis-time-line: new items:" + newItems.length)
this.rebuild(newItems) this.rebuild(newItems)
}, },
options(newOpts){ options(newOpts){
@ -1570,34 +1580,17 @@ const Notfound=Vue.extend({template:`
); );
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/about.vue // src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/about/about.vue
const About=Vue.extend({template:` const About=Vue.extend({template:`
<v-container fill-height> <v-container>
<v-card hover raised> <v-card hover raised>
<v-card-title class="pa-5 indigo"> <v-toolbar>
<div class="display-1 white--text text-xs-center">VUE-POC</div> <v-card-title>VUE-POC </v-card-title>
<span v-if="pack"> {{ pack.version }}</span>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-speed-dial v-model="fab" hover right direction="bottom" transition="slide-y-reverse-transition">
<template v-slot:activator="{ on }"> </v-toolbar>
<v-btn v-on="on" class="blue darken-2" dark fab hover v-model="fab">
<v-icon>account_circle</v-icon>
<v-icon>close</v-icon>
</v-btn>
</template>
<v-btn fab dark small class="green">
<v-icon>edit</v-icon>
</v-btn>
<v-btn fab dark small class="indigo">
<v-icon>add</v-icon>
</v-btn>
<v-btn fab dark small class="red">
<v-icon>delete</v-icon>
</v-btn>
</v-speed-dial>
</v-card-title>
<v-card-text> <v-card-text>
<v-layout align-center> <v-layout align-center>
@ -1607,21 +1600,37 @@ const About=Vue.extend({template:`
<v-divider class="my-3"></v-divider> <v-divider class="my-3"></v-divider>
<div class="title mb-3">Links</div> <div class="title mb-3">Links</div>
<v-list dense nav>
<v-list-item v-for="(item, i) in links" :key="i" :to="item.to" link>
<v-list-item-icon>
<v-icon v-text="item.icon"></v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title v-text="item.text">fill</v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list>
<v-layout row wrap> <v-layout row wrap>
<v-flex xs6> <v-flex xs6>
<ul> <v-list dense>
<li><a href="https://vuejs.org/" target="new">vue.js</a></li>
<li><a href="https://vuetifyjs.com/vuetify/quick-start" target="new">vuetifyjs</a></li> <v-list-item> <a href="https://vuejs.org/" target="new">vue.js</a></v-list-item>
<li><a href="https://github.com/axios/axios" target="new">axios</a></li> <v-list-item><a href="https://vuetifyjs.com/vuetify/quick-start" target="new">vuetifyjs</a></v-list-item>
<li><a href="https://github.com/beautify-web/js-beautify" target="new">js-beautify</a></li> <v-list-item><a href="https://github.com/axios/axios" target="new">axios</a></v-list-item>
<li><a href="https://developers.google.com/web/tools/workbox/" target="new">workbox</a></li> <v-list-item><a href="https://github.com/beautify-web/js-beautify" target="new">js-beautify</a></v-list-item>
<li><a href="https://material.io/tools/icons/?style=baseline" target="new">icons (material)</a></li> <v-list-item><a href="https://developers.google.com/web/tools/workbox/" target="new">workbox</a></v-list-item>
</ul>
<v-list-item><a href="https://material.io/tools/icons/?style=baseline" target="new">icons (material)</a></v-list-item>
</v-list>
</v-flex> </v-flex>
<v-flex xs6> <v-flex xs6>
<ul> <ul>
@ -1632,6 +1641,24 @@ const About=Vue.extend({template:`
</v-flex> </v-flex>
</v-layout> </v-layout>
</v-flex> </v-flex>
<v-speed-dial :bottom="true" :right="true">
<template v-slot:activator>
<v-btn v-model="fab" color="blue darken-2" dark fab>
<v-icon v-if="fab">mdi-close</v-icon>
<v-icon v-else>mdi-account-circle</v-icon>
</v-btn>
</template>
<v-btn fab dark small color="green">
<v-icon>mdi-pencil</v-icon>
</v-btn>
<v-btn fab dark small color="indigo">
<v-icon>mdi-plus</v-icon>
</v-btn>
<v-btn fab dark small color="red">
<v-icon>mdi-delete</v-icon>
</v-btn>
</v-speed-dial>
</v-layout> </v-layout>
</v-card-text> </v-card-text>
</v-card> </v-card>
@ -1641,7 +1668,13 @@ const About=Vue.extend({template:`
data: function(){ data: function(){
return { return {
fab: false pack: null,
fab: false,
links:[
{text:"3rd party components",icon:"mdi-clock",to:"about/package"},
{text:"components",icon:"mdi-flag",to:"about/vue-cmps"},
{text:"routes",icon:"mdi-plus",to:"about/routes"}
]
} }
}, },
methods:{ methods:{
@ -1649,10 +1682,136 @@ const About=Vue.extend({template:`
HTTP.get("package.json") HTTP.get("package.json")
.then(r=>{ .then(r=>{
console.log("status",r) console.log("status",r)
this.pack=r.data
//this.$forceUpdate() //this.$forceUpdate()
}) })
}, },
},
created(){
this.refresh()
}
}
);
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/about/package.vue
const Package=Vue.extend({template:`
<v-container>
<v-card hover raised>
<v-toolbar>
<v-card-title>
<qd-breadcrumbs @todo="showmenu= ! showmenu" :crumbs="[{to: '/about', text:'about'}, {text: '3rd party components', disabled: false, menu: 'todo'}]">crumbs</qd-breadcrumbs>
</v-card-title>
<v-spacer></v-spacer>
</v-toolbar>
<v-data-table :headers="headers" :items="desserts" :items-per-page="5" class="elevation-1"></v-data-table>
<v-card-text> <pre>{{ pack | pretty }}</pre> </v-card-text>
</v-card>
</v-container>
`,
data: function(){
return {
pack: null,
fab: false,
showmenu: false
}
},
methods:{
refresh(){
HTTP.get("package.json")
.then(r=>{
console.log("status",r)
this.pack=r.data.dependencies
})
},
},
created(){
this.refresh()
}
}
);
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/about/routes.vue
const Routes=Vue.extend({template:`
<v-container>
<v-card hover raised>
<v-toolbar>
<v-card-title>
<qd-breadcrumbs @todo="showmenu= ! showmenu" :crumbs="[{to: '/about', text:'about'}, {text: 'routes', disabled: false, menu: 'todo'}]">crumbs</qd-breadcrumbs>
</v-card-title>
<v-spacer></v-spacer>
</v-toolbar>
<v-card-text>
<v-data-table :headers="headers" :items="routes" :items-per-page="20" class="elevation-1"></v-data-table>
<pre>{{ pack | pretty }}</pre> </v-card-text>
</v-card>
</v-container>
`,
data: function(){
return {
pack: null,
fab: false,
showmenu: false,
routes:null,
headers:[
{ text: '#', value: 'index' },
{ text: 'Path', value: 'path' },
{ text: 'Title', value: 'title' }
],
}
},
methods:{
refresh(){
var hits=this.$router.options.routes;
this.routes=hits.map(function(v,i){
return {"index":i,
"path": v.path,
"name":"ww",
"title": v.meta && v.meta.title
}});
console.log("routes: ",hits)
},
},
created(){
this.refresh()
}
}
);
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/about/vue-cmps.vue
const VueComps=Vue.extend({template:`
<v-container>
<v-card hover raised>
<v-toolbar>
<v-card-title>
<qd-breadcrumbs @todo="showmenu= ! showmenu" :crumbs="[{to: '/about', text:'about'}, {text: 'vue-comps', disabled: false, menu: 'todo'}]">crumbs</qd-breadcrumbs>
</v-card-title>
<v-spacer></v-spacer>
</v-toolbar>
<v-card-text> <pre>{{ pack | pretty }}</pre> </v-card-text>
</v-card>
</v-container>
`,
data: function(){
return {
pack: null,
fab: false,
showmenu: false
}
},
methods:{
refresh(){
HTTP.get("package.json")
.then(r=>{
console.log("status",r)
this.pack=r.data
})
},
},
created(){
this.refresh()
} }
} }
); );
@ -1738,7 +1897,7 @@ const Basexlogdate=Vue.extend({template:`
load(){ load(){
this.loading= true this.loading= true
HTTP.get("data/basexlogfile",{params:{q:this.q}}) HTTP.get("data/quodatum.logfile",{params:{q:this.q}})
.then(r=>{ .then(r=>{
this.items= r.data.items this.items= r.data.items
this.loading= false this.loading= false
@ -1780,11 +1939,12 @@ const Basexlogdate1=Vue.extend({template:`
<qd-breadcrumbs @todo="showmenu= ! showmenu" :crumbs="[{to: '/logdate', text:'log files'}, {text: date, disabled: false, menu: 'todo'}]">crumbs</qd-breadcrumbs> <qd-breadcrumbs @todo="showmenu= ! showmenu" :crumbs="[{to: '/logdate', text:'log files'}, {text: date, disabled: false, menu: 'todo'}]">crumbs</qd-breadcrumbs>
</v-card-title> </v-card-title>
<v-menu ref="menu" v-model="showFrom" :close-on-content-click="false" :nudge-right="40" :return-value.sync="query.from" transition="scale-transition" offset-y max-width="290px" min-width="100px"> <v-menu ref="menu" v-model="showFrom" :close-on-content-click="false" :nudge-right="40" :return-value.sync="query.from" transition="scale-transition" offset-y>
<template v-slot:activator="{ on }"> <template v-slot:activator="{ on }">
<v-text-field v-model="query.from" label="Start time" prepend-icon="access_time" readonly v-on="on" class="mt-3"></v-text-field> <v-text-field v-model="query.from" label="Start time" prepend-icon="access_time" readonly v-on="on" class="mt-3"></v-text-field>
</template> </template>
<v-time-picker v-if="showFrom" v-model="query.from" use-seconds @click:second="$refs.menu.save(query.from)"></v-time-picker>
<v-time-picker v-if="showFrom" v-model="query.from" use-seconds @click:second="$refs.menu.save(query.from)" format="24hr"></v-time-picker>
</v-menu> </v-menu>
<v-toolbar-items> <v-toolbar-items>
<v-btn @click="pageBack()" icon> <v-btn @click="pageBack()" icon>
@ -1794,10 +1954,21 @@ const Basexlogdate1=Vue.extend({template:`
<v-avatar> <v-icon>skip_next</v-icon> </v-avatar> <v-avatar> <v-icon>skip_next</v-icon> </v-avatar>
</v-btn> </v-btn>
</v-toolbar-items> </v-toolbar-items>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-btn-toggle v-model="seek">
<v-btn small>
Seek
</v-btn>
</v-btn-toggle>
<v-btn-toggle v-model="fit">
<v-btn small>
Fit
</v-btn>
</v-btn-toggle>
<qd-range :query="query"></qd-range> <qd-range :query="query"></qd-range>
<v-toolbar-items> <v-toolbar-items>
<v-btn @click="fit">fit</v-btn>
<v-btn @click="getItems"> <v-btn @click="getItems">
<v-avatar><v-icon>refresh</v-icon></v-avatar> <v-avatar><v-icon>refresh</v-icon></v-avatar>
</v-btn> </v-btn>
@ -1841,6 +2012,8 @@ const Basexlogdate1=Vue.extend({template:`
data:[], data:[],
query:{date: this.date, start: 1, limit:30, from:"00:00:00", window:600}, query:{date: this.date, start: 1, limit:30, from:"00:00:00", window:600},
showmenu: false, showmenu: false,
seek: false,
fit: false,
Events: new Vue({}), Events: new Vue({}),
msg:"Select an entry", msg:"Select an entry",
showFrom: false showFrom: false
@ -1878,6 +2051,7 @@ methods:{
this.loading=true this.loading=true
HTTP.get("logxml", {params:this.query}) HTTP.get("logxml", {params:this.query})
.then(r=>{ .then(r=>{
//var items=r.data.items.filter(item=>{return item.text!="[GET] http://localhost:8984/vue-poc/api/log"}) //var items=r.data.items.filter(item=>{return item.text!="[GET] http://localhost:8984/vue-poc/api/log"})
var items=r.data.items var items=r.data.items
//console.log("logxml",items) //console.log("logxml",items)
@ -1889,20 +2063,27 @@ methods:{
style: x.text.startsWith("[POST] ")?"background-color: red;": "background-color: yellow;", style: x.text.startsWith("[POST] ")?"background-color: red;": "background-color: yellow;",
group: x.user} group: x.user}
)) ))
this.loading=false
return;
//https://stackoverflow.com/a/39637877/3210344 round(date, moment.duration(15, "minutes"), "ceil")
//https://stackoverflow.com/a/39637877/3210344 roundDate(date, moment.duration(15, "minutes"), "ceil")
var roundDate= function (date, duration, method) { var roundDate= function (date, duration, method) {
return moment(Math[method]((+date) / (+duration)) * (+duration)); return moment(Math[method]((+date) / (+duration)) * (+duration));
} }
var start=moment(this.date + "T" + this.query.from) var start=moment(this.date + "T" + this.query.from)
var first=this.data[0] var first=moment(this.data[0].start);
var w=Number(this.query.window);
first1=roundDate(first,moment.duration(w, "seconds"), "floor");
console.log("Ab",first,this.query,first1,this.data);
return;
if(first){ if(first){
first=moment(first.time) first=moment(first.start)
start=roundDate(first,moment.duration(this.query.window, "seconds"), "floor") start=roundDate(first,moment.duration(this.query.window, "seconds"), "floor")
//console.log(r.format(moment.HTML5_FMT.TIME_SECONDS)) console.log("rounded ",start)
this.query.from=start.format(moment.HTML5_FMT.TIME_SECONDS) //this.query.from=start.format(moment.HTML5_FMT.TIME_SECONDS)
} }
this.loading=false
this.options.start=start.toDate() this.options.start=start.toDate()
this.options.end=start.add(this.query.window,"s").toDate() this.options.end=start.add(this.query.window,"s").toDate()
//console.log("data",this.data) //console.log("data",this.data)
@ -2482,36 +2663,48 @@ const Markdown=Vue.extend({template:`
<v-card> <v-card>
<v-toolbar class="lime darken-1"> <v-toolbar class="lime darken-1">
<v-card-title>Markdown</v-card-title> <v-card-title>Markdown</v-card-title>
<v-checkbox v-model="show" label="show"></v-checkbox> <v-btn-toggle v-model="toc">
<v-checkbox v-model="html" label="html"></v-checkbox> <v-btn>
<v-checkbox v-model="breaks" label="breaks"></v-checkbox> TOC
<v-checkbox v-model="linkify" label="linkify"></v-checkbox> </v-btn>
<v-checkbox v-model="emoji" label="emoji"></v-checkbox> </v-btn-toggle>
<v-checkbox v-model="typographer" label="typographer"></v-checkbox>
<v-checkbox v-model="toc" label="toc"></v-checkbox> <v-checkbox v-model="toc" label="toc"></v-checkbox>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<qd-link href="https://github.com/miaolz123/vue-markdown">vue-markdown@2.2.4</qd-link> <qd-link href="https://github.com/miaolz123/vue-markdown">vue-markdown@2.2.4</qd-link>
<v-menu :close-on-content-click="false" offset-y left>
<template v-slot:activator="{ on }">
<v-btn icon v-on="on"><v-icon>settings</v-icon></v-btn>
</template>
<v-card>
<v-toolbar class="lime darken-1">
<v-card-title>Markdown Settings</v-card-title>
</v-toolbar> </v-toolbar>
<v-card-text> <v-card-text>
<div id="toc"></div> <ul>
<vue-markdown :watches="['show','html','breaks','linkify','emoji','typographer','toc']" :source="source" :show="show" :html="html" :breaks="breaks" :linkify="linkify" :emoji="emoji" :typographer="typographer" :toc="toc" v-on:rendered="allRight" v-on:toc-rendered="tocAllRight" toc-id="toc">&gt;# h1 Heading 8-) <li><v-checkbox v-model="html" label="html"></v-checkbox></li>
## level 2 <li><v-checkbox v-model="breaks" label="breaks"></v-checkbox></li>
### h3 Heading <li><v-checkbox v-model="linkify" label="linkify"></v-checkbox></li>
<li><v-checkbox v-model="emoji" label="emoji"></v-checkbox></li>
## Horizontal Rules <li> <v-checkbox v-model="typographer" label="typographer"></v-checkbox></li>
</ul>
___ </v-card-text>
</v-card>
--- </v-menu>
</v-toolbar>
*** <v-card-text>
<v-row no-gutters style="flex-wrap: nowrap;">
## Typographic replacements <v-col v-if="toc" cols="3" class="flex-grow-0 flex-shrink-0">
<v-card class="pa-2" outlined tile>
Enable typographer option to see result. <div v-html="tochtml"></div>
</v-card>
(c) (C) (r) (R) (tm) (TM) (p) (P) +- </v-col>
<v-col cols="1" style="min-width: 100px; max-width: 100%;" class="flex-grow-1 flex-shrink-0" color="orange lighten-2">
<vue-markdown :watches="['show','html','breaks','linkify','emoji','typographer','toc']" :source="source" :show="show" :html="html" :breaks="breaks" :linkify="linkify" :emoji="emoji" :typographer="typographer" :toc="toc" v-on:rendered="allRight" v-on:toc-rendered="tocAllRight" toc-id="toc">
</vue-markdown> </vue-markdown>
</v-col>
</v-row>
</v-card-text> </v-card-text>
</v-card> </v-card>
@ -2527,7 +2720,8 @@ Enable typographer option to see result.
linkify: false, linkify: false,
emoji: true, emoji: true,
typographer: true, typographer: true,
toc: false toc: false,
tochtml: null
} }
}, },
methods: { methods: {
@ -2535,14 +2729,15 @@ Enable typographer option to see result.
console.log("markdown is parsed !"); console.log("markdown is parsed !");
}, },
tocAllRight: function (tocHtmlStr) { tocAllRight: function (tocHtmlStr) {
console.log("toc is parsed :", tocHtmlStr); this.tochtml=tocHtmlStr
console.log("toc is parsed :");
} }
}, },
created:function(){ created:function(){
HTTP.get("components/markdown") HTTP.get("components/markdown")
.then(r=>{ .then(r=>{
console.log("data::::",r.data); //console.log("data::::",r.data);
this.source=r.data; this.source=r.data;
}) })
.catch(err=> { .catch(err=> {
@ -3946,7 +4141,7 @@ const Taskhistory=Vue.extend({template:`
<v-text-field prepend-icon="filter_list" label="Filter..." v-model="q" type="search" hide-details single-line @keyup.enter="setfilter" clearable></v-text-field> <v-text-field prepend-icon="filter_list" label="Filter..." v-model="q" type="search" hide-details single-line @keyup.enter="setfilter" clearable></v-text-field>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<vp-entitylink entity="task"></vp-entitylink> <vp-entitylink entity="quodatum.task"></vp-entitylink>
</v-toolbar> </v-toolbar>
<v-card-text> <v-card-text>
@ -5190,15 +5385,12 @@ const Entity=Vue.extend({template:`
</v-avatar> {{ item.name }} </v-avatar> {{ item.name }}
</router-link></v-toolbar-title> </router-link></v-toolbar-title>
</v-toolbar> <v-spacer></v-spacer>
<v-card-text>{{ item.description }}<!--<v-card-text-->
<v-card-actions green>
<v-badge> <v-badge>
<span slot="badge">{{ item.nfields }}</span> <span slot="badge">{{ item.nfields }}</span>
Fields
</v-badge> </v-badge>
</v-card-actions> </v-toolbar>
<v-card-text>{{ item.description }}<!--<v-card-text-->
</v-card-text></v-card> </v-card-text></v-card>
</v-flex> </v-flex>
</v-layout> </v-layout>
@ -6699,9 +6891,10 @@ const Keys=Vue.extend({template:`
<v-card-text> <v-card-text>
<v-expansion-panels> <v-expansion-panels>
<v-expansion-panel v-model="openIndex"> <v-expansion-panel v-for="key in keys" :key="key">
<v-expansion-panel-content popout v-for="key in keys" :key="key"> <v-expansion-panel-header>{{key}}</v-expansion-panel-header>
<div slot="header">{{key}}</div> <v-expansion-panel-content popout>
<v-card> <v-card>
<v-card-text>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor <v-card-text>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
@ -7012,7 +7205,7 @@ const Tasks=Vue.extend({template:`
<v-text-field prepend-icon="filter_list" label="Filter..." v-model="q" type="search" hide-details single-line @keyup.enter="setfilter" clearable></v-text-field> <v-text-field prepend-icon="filter_list" label="Filter..." v-model="q" type="search" hide-details single-line @keyup.enter="setfilter" clearable></v-text-field>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<vp-entitylink entity="task"></vp-entitylink> <vp-entitylink entity="quodatum.task"></vp-entitylink>
</v-toolbar> </v-toolbar>
<v-card-text> <v-card-text>
@ -7765,10 +7958,14 @@ const router = new VueRouter({
{ path: '/map', component: Leaflet,meta:{title:"map"} }, { path: '/map', component: Leaflet,meta:{title:"map"} },
{ path: '/about', component: { template: '<router-view/>' }
,children:[
{path: '', component: About, meta:{title:"About Vue-poc"} },
{path: 'package', component: Package, meta:{title:"Javascript components"} },
{path: 'routes', component: Routes, meta:{title:"Routes"} },
{path: 'vue-cmps', component: VueComps, meta:{title:"Vue components"} },
]},
{ path: '/about', component: About, meta:{title:"About Vue-poc"} },
{ path: '*', component: Notfound, meta:{title:"Page not found"} } { path: '*', component: Notfound, meta:{title:"Page not found"} }
], ],
}); });
@ -7945,7 +8142,7 @@ const Vuepoc=Vue.extend({template:`
children: [ children: [
{href: '/database', text: 'Databases',icon: 'developer_mode' }, {href: '/database', text: 'Databases',icon: 'developer_mode' },
{href: '/files', text: 'File system',icon: 'folder' }, {href: '/files', text: 'File system',icon: 'folder' },
{href: '/documentation', text: 'Documentation',icon: 'library_books' },
{href: '/tasks',text: 'Tasks',icon: 'update'}, {href: '/tasks',text: 'Tasks',icon: 'update'},
{href: '/logdate',text: 'XML logs',icon: 'dns'}, {href: '/logdate',text: 'XML logs',icon: 'dns'},
{href: '/history/files',text: 'history',icon: 'history'} {href: '/history/files',text: 'history',icon: 'history'}
@ -7955,9 +8152,9 @@ const Vuepoc=Vue.extend({template:`
text: 'Models' , text: 'Models' ,
model: false, model: false,
children: [ children: [
{href: '/namespace', text: 'Namespaces',icon: 'label' },
{href: '/entity', text: 'Entities',icon: 'redeem' }, {href: '/entity', text: 'Entities',icon: 'redeem' },
{href: '/documentation', text: 'Documentation',icon: 'library_books' },
{href: '/namespace', text: 'Namespaces',icon: 'label' },
]}, ]},
{ {
@ -8016,7 +8213,7 @@ const Vuepoc=Vue.extend({template:`
{href: '/labs/markdown',text: 'Markdown',icon: 'receipt'}, {href: '/labs/markdown',text: 'Markdown',icon: 'receipt'},
]}, ]},
{href: '/settings',text: 'Settings',icon: 'settings' }, {href: '/settings',text: 'Settings',icon: 'settings' },
{href: '/about',text: 'About (v0.3.2)' , icon: 'help' }, {href: '/about',text: 'About Vue-poc' , icon: 'help' },
] ]
}}, }},

View file

@ -11,7 +11,7 @@
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"/> <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"/>
<link rel="stylesheet" href="//fonts.googleapis.com/icon?family=Material+Icons"/> <link rel="stylesheet" href="//fonts.googleapis.com/icon?family=Material+Icons"/>
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/@mdi/font@4.x/css/materialdesignicons.min.css" > <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/@mdi/font@4.x/css/materialdesignicons.min.css" >
<link rel="stylesheet" href="//unpkg.com/vuetify@2.2.8/dist/vuetify.min.css" type="text/css"/> <link rel="stylesheet" href="//unpkg.com/vuetify@2.2.19/dist/vuetify.min.css" type="text/css"/>
<link rel="stylesheet" href="//unpkg.com/@riophae/vue-treeselect@0.0.29/dist/vue-treeselect.min.css"/> <link rel="stylesheet" href="//unpkg.com/@riophae/vue-treeselect@0.0.29/dist/vue-treeselect.min.css"/>
<link rel="stylesheet" href="/vue-poc/ui/prism/prism.css" type="text/css"/> <link rel="stylesheet" href="/vue-poc/ui/prism/prism.css" type="text/css"/>
<link rel="stylesheet" href="//unpkg.com/leaflet@1.0.3/dist/leaflet.css"/> <link rel="stylesheet" href="//unpkg.com/leaflet@1.0.3/dist/leaflet.css"/>
@ -35,15 +35,15 @@
</div> </div>
</div> </div>
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.js" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.6.11/vue.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.3/vue-router.js" crossorigin="anonymous"></script> <script src="//unpkg.com/vue-router@3.1.6/dist/vue-router.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.js" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.js" crossorigin="anonymous"></script>
<script src="//unpkg.com/vuex@3.1.0/dist/vuex.js" crossorigin="anonymous"></script> <script src="//unpkg.com/vuex@3.1.0/dist/vuex.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/qs/6.4.0/qs.js" crossorigin="anonymous" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/qs/6.4.0/qs.js" crossorigin="anonymous" ></script>
<script src="//unpkg.com/vuetify@2.2.8/dist/vuetify.min.js" crossorigin="anonymous"></script> <script src="//unpkg.com/vuetify@2.2.19/dist/vuetify.min.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.7/ace.js" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.8/ace.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.7/ext-language_tools.js" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.8/ext-language_tools.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.7/ext-linking.js" crossorigin="anonymous" charset="utf-8"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.8/ext-linking.js" crossorigin="anonymous" charset="utf-8"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.js" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/js-beautify/1.9.0/beautify.js" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/js-beautify/1.9.0/beautify.js" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/js-beautify/1.9.0/beautify-css.js" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/js-beautify/1.9.0/beautify-css.js" crossorigin="anonymous"></script>

View file

@ -0,0 +1,222 @@
[
{"name":"flare.analytics.cluster.AgglomerativeCluster","size":3938,"imports":["flare.animate.Transitioner","flare.vis.data.DataList","flare.util.math.IMatrix","flare.analytics.cluster.MergeEdge","flare.analytics.cluster.HierarchicalCluster","flare.vis.data.Data"]},
{"name":"flare.analytics.cluster.CommunityStructure","size":3812,"imports":["flare.analytics.cluster.HierarchicalCluster","flare.animate.Transitioner","flare.vis.data.DataList","flare.analytics.cluster.MergeEdge","flare.util.math.IMatrix"]},
{"name":"flare.analytics.cluster.HierarchicalCluster","size":6714,"imports":["flare.vis.data.EdgeSprite","flare.vis.data.NodeSprite","flare.vis.data.DataList","flare.vis.data.Tree","flare.util.Arrays","flare.analytics.cluster.MergeEdge","flare.util.Sort","flare.vis.operator.Operator","flare.util.Property","flare.vis.data.Data"]},
{"name":"flare.analytics.cluster.MergeEdge","size":743,"imports":[]},
{"name":"flare.analytics.graph.BetweennessCentrality","size":3534,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.vis.data.DataList","flare.util.Arrays","flare.vis.data.Data","flare.util.Property","flare.vis.operator.Operator"]},
{"name":"flare.analytics.graph.LinkDistance","size":5731,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.vis.data.EdgeSprite","flare.analytics.graph.ShortestPaths","flare.vis.data.Data","flare.util.Property","flare.vis.operator.Operator"]},
{"name":"flare.analytics.graph.MaxFlowMinCut","size":7840,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.vis.data.EdgeSprite","flare.vis.data.Data","flare.util.Property","flare.vis.operator.Operator"]},
{"name":"flare.analytics.graph.ShortestPaths","size":5914,"imports":["flare.vis.data.EdgeSprite","flare.vis.data.NodeSprite","flare.animate.Transitioner","flare.vis.operator.Operator","flare.util.heap.HeapNode","flare.util.heap.FibonacciHeap","flare.util.Property","flare.vis.data.Data"]},
{"name":"flare.analytics.graph.SpanningTree","size":3416,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.vis.operator.IOperator","flare.vis.Visualization","flare.vis.data.TreeBuilder","flare.vis.operator.Operator"]},
{"name":"flare.analytics.optimization.AspectRatioBanker","size":7074,"imports":["flare.animate.Transitioner","flare.util.Arrays","flare.vis.data.DataSprite","flare.scale.Scale","flare.vis.axis.CartesianAxes","flare.vis.Visualization","flare.util.Property","flare.vis.operator.Operator"]},
{"name":"flare.animate.Easing","size":17010,"imports":["flare.animate.Transition"]},
{"name":"flare.animate.FunctionSequence","size":5842,"imports":["flare.util.Maths","flare.animate.Transition","flare.util.Arrays","flare.animate.Sequence","flare.animate.Transitioner"]},
{"name":"flare.animate.interpolate.ArrayInterpolator","size":1983,"imports":["flare.util.Arrays","flare.animate.interpolate.Interpolator"]},
{"name":"flare.animate.interpolate.ColorInterpolator","size":2047,"imports":["flare.animate.interpolate.Interpolator"]},
{"name":"flare.animate.interpolate.DateInterpolator","size":1375,"imports":["flare.animate.interpolate.Interpolator"]},
{"name":"flare.animate.interpolate.Interpolator","size":8746,"imports":["flare.animate.interpolate.NumberInterpolator","flare.animate.interpolate.ColorInterpolator","flare.animate.interpolate.PointInterpolator","flare.animate.interpolate.ObjectInterpolator","flare.animate.interpolate.MatrixInterpolator","flare.animate.interpolate.RectangleInterpolator","flare.animate.interpolate.DateInterpolator","flare.util.Property","flare.animate.interpolate.ArrayInterpolator"]},
{"name":"flare.animate.interpolate.MatrixInterpolator","size":2202,"imports":["flare.animate.interpolate.Interpolator"]},
{"name":"flare.animate.interpolate.NumberInterpolator","size":1382,"imports":["flare.animate.interpolate.Interpolator"]},
{"name":"flare.animate.interpolate.ObjectInterpolator","size":1629,"imports":["flare.animate.interpolate.Interpolator"]},
{"name":"flare.animate.interpolate.PointInterpolator","size":1675,"imports":["flare.animate.interpolate.Interpolator"]},
{"name":"flare.animate.interpolate.RectangleInterpolator","size":2042,"imports":["flare.animate.interpolate.Interpolator"]},
{"name":"flare.animate.ISchedulable","size":1041,"imports":["flare.animate.Scheduler"]},
{"name":"flare.animate.Parallel","size":5176,"imports":["flare.animate.Easing","flare.animate.Transition","flare.util.Arrays"]},
{"name":"flare.animate.Pause","size":449,"imports":["flare.animate.Transition"]},
{"name":"flare.animate.Scheduler","size":5593,"imports":["flare.animate.ISchedulable","flare.animate.Pause","flare.animate.Transition"]},
{"name":"flare.animate.Sequence","size":5534,"imports":["flare.animate.Easing","flare.util.Maths","flare.animate.Transition","flare.util.Arrays"]},
{"name":"flare.animate.Transition","size":9201,"imports":["flare.animate.Transitioner","flare.animate.TransitionEvent","flare.animate.Scheduler","flare.animate.Pause","flare.animate.Parallel","flare.animate.Easing","flare.animate.Sequence","flare.animate.ISchedulable","flare.util.Maths","flare.animate.Tween"]},
{"name":"flare.animate.Transitioner","size":19975,"imports":["flare.util.IValueProxy","flare.animate.Parallel","flare.animate.Easing","flare.animate.Sequence","flare.animate.Transition","flare.animate.Tween","flare.util.Property"]},
{"name":"flare.animate.TransitionEvent","size":1116,"imports":["flare.animate.Transition"]},
{"name":"flare.animate.Tween","size":6006,"imports":["flare.animate.Transitioner","flare.animate.Transition","flare.animate.interpolate.Interpolator","flare.util.Property"]},
{"name":"flare.data.converters.Converters","size":721,"imports":["flare.data.converters.IDataConverter","flare.data.converters.GraphMLConverter","flare.data.converters.JSONConverter","flare.data.converters.DelimitedTextConverter"]},
{"name":"flare.data.converters.DelimitedTextConverter","size":4294,"imports":["flare.data.DataSet","flare.data.DataUtil","flare.data.DataTable","flare.data.converters.IDataConverter","flare.data.DataSchema","flare.data.DataField"]},
{"name":"flare.data.converters.GraphMLConverter","size":9800,"imports":["flare.data.DataSet","flare.data.DataUtil","flare.data.DataTable","flare.data.converters.IDataConverter","flare.data.DataSchema","flare.data.DataField"]},
{"name":"flare.data.converters.IDataConverter","size":1314,"imports":["flare.data.DataSet","flare.data.DataSchema"]},
{"name":"flare.data.converters.JSONConverter","size":2220,"imports":["flare.data.DataSet","flare.data.DataUtil","flare.data.DataTable","flare.data.converters.IDataConverter","flare.data.DataSchema","flare.data.DataField","flare.util.Property"]},
{"name":"flare.data.DataField","size":1759,"imports":["flare.data.DataUtil"]},
{"name":"flare.data.DataSchema","size":2165,"imports":["flare.data.DataField","flare.util.Arrays"]},
{"name":"flare.data.DataSet","size":586,"imports":["flare.data.DataTable"]},
{"name":"flare.data.DataSource","size":3331,"imports":["flare.data.converters.IDataConverter","flare.data.converters.Converters","flare.data.DataSchema"]},
{"name":"flare.data.DataTable","size":772,"imports":["flare.data.DataSchema"]},
{"name":"flare.data.DataUtil","size":3322,"imports":["flare.data.DataField","flare.data.DataSchema"]},
{"name":"flare.display.DirtySprite","size":8833,"imports":[]},
{"name":"flare.display.LineSprite","size":1732,"imports":["flare.display.DirtySprite"]},
{"name":"flare.display.RectSprite","size":3623,"imports":["flare.util.Colors","flare.display.DirtySprite"]},
{"name":"flare.display.TextSprite","size":10066,"imports":["flare.display.DirtySprite"]},
{"name":"flare.flex.FlareVis","size":4116,"imports":["flare.display.DirtySprite","flare.data.DataSet","flare.vis.Visualization","flare.vis.axis.CartesianAxes","flare.vis.axis.Axes","flare.vis.data.Data"]},
{"name":"flare.physics.DragForce","size":1082,"imports":["flare.physics.Simulation","flare.physics.Particle","flare.physics.IForce"]},
{"name":"flare.physics.GravityForce","size":1336,"imports":["flare.physics.Simulation","flare.physics.Particle","flare.physics.IForce"]},
{"name":"flare.physics.IForce","size":319,"imports":["flare.physics.Simulation"]},
{"name":"flare.physics.NBodyForce","size":10498,"imports":["flare.physics.Simulation","flare.physics.Particle","flare.physics.IForce"]},
{"name":"flare.physics.Particle","size":2822,"imports":[]},
{"name":"flare.physics.Simulation","size":9983,"imports":["flare.physics.Particle","flare.physics.NBodyForce","flare.physics.DragForce","flare.physics.GravityForce","flare.physics.Spring","flare.physics.SpringForce","flare.physics.IForce"]},
{"name":"flare.physics.Spring","size":2213,"imports":["flare.physics.Particle"]},
{"name":"flare.physics.SpringForce","size":1681,"imports":["flare.physics.Simulation","flare.physics.Particle","flare.physics.Spring","flare.physics.IForce"]},
{"name":"flare.query.AggregateExpression","size":1616,"imports":["flare.query.Expression"]},
{"name":"flare.query.And","size":1027,"imports":["flare.query.CompositeExpression","flare.query.Expression"]},
{"name":"flare.query.Arithmetic","size":3891,"imports":["flare.query.BinaryExpression","flare.query.Expression"]},
{"name":"flare.query.Average","size":891,"imports":["flare.query.Expression","flare.query.AggregateExpression"]},
{"name":"flare.query.BinaryExpression","size":2893,"imports":["flare.query.Expression"]},
{"name":"flare.query.Comparison","size":5103,"imports":["flare.query.Not","flare.query.BinaryExpression","flare.query.Expression","flare.query.Or"]},
{"name":"flare.query.CompositeExpression","size":3677,"imports":["flare.query.Expression","flare.query.If"]},
{"name":"flare.query.Count","size":781,"imports":["flare.query.Expression","flare.query.AggregateExpression"]},
{"name":"flare.query.DateUtil","size":4141,"imports":["flare.query.Fn"]},
{"name":"flare.query.Distinct","size":933,"imports":["flare.query.Expression","flare.query.AggregateExpression"]},
{"name":"flare.query.Expression","size":5130,"imports":["flare.query.Variable","flare.query.IsA","flare.query.ExpressionIterator","flare.util.IPredicate","flare.query.Literal","flare.util.IEvaluable","flare.query.If"]},
{"name":"flare.query.ExpressionIterator","size":3617,"imports":["flare.query.Expression"]},
{"name":"flare.query.Fn","size":3240,"imports":["flare.query.DateUtil","flare.query.CompositeExpression","flare.query.Expression","flare.query.StringUtil"]},
{"name":"flare.query.If","size":2732,"imports":["flare.query.Expression"]},
{"name":"flare.query.IsA","size":2039,"imports":["flare.query.Expression","flare.query.If"]},
{"name":"flare.query.Literal","size":1214,"imports":["flare.query.Expression"]},
{"name":"flare.query.Match","size":3748,"imports":["flare.query.BinaryExpression","flare.query.Expression","flare.query.StringUtil"]},
{"name":"flare.query.Maximum","size":843,"imports":["flare.query.Expression","flare.query.AggregateExpression"]},
{"name":"flare.query.methods.add","size":593,"imports":["flare.query.methods.or","flare.query.Arithmetic"]},
{"name":"flare.query.methods.and","size":330,"imports":["flare.query.And","flare.query.methods.or"]},
{"name":"flare.query.methods.average","size":287,"imports":["flare.query.Average","flare.query.methods.or"]},
{"name":"flare.query.methods.count","size":277,"imports":["flare.query.Count","flare.query.methods.or"]},
{"name":"flare.query.methods.distinct","size":292,"imports":["flare.query.Distinct","flare.query.methods.or"]},
{"name":"flare.query.methods.div","size":595,"imports":["flare.query.methods.or","flare.query.Arithmetic"]},
{"name":"flare.query.methods.eq","size":594,"imports":["flare.query.Comparison","flare.query.methods.or"]},
{"name":"flare.query.methods.fn","size":460,"imports":["flare.query.methods.or","flare.query.Fn"]},
{"name":"flare.query.methods.gt","size":603,"imports":["flare.query.Comparison","flare.query.methods.or"]},
{"name":"flare.query.methods.gte","size":625,"imports":["flare.query.Comparison","flare.query.methods.gt","flare.query.methods.eq","flare.query.methods.or"]},
{"name":"flare.query.methods.iff","size":748,"imports":["flare.query.methods.or","flare.query.If"]},
{"name":"flare.query.methods.isa","size":461,"imports":["flare.query.IsA","flare.query.methods.or"]},
{"name":"flare.query.methods.lt","size":597,"imports":["flare.query.Comparison","flare.query.methods.or"]},
{"name":"flare.query.methods.lte","size":619,"imports":["flare.query.Comparison","flare.query.methods.lt","flare.query.methods.eq","flare.query.methods.or"]},
{"name":"flare.query.methods.max","size":283,"imports":["flare.query.Maximum","flare.query.methods.or"]},
{"name":"flare.query.methods.min","size":283,"imports":["flare.query.Minimum","flare.query.methods.or"]},
{"name":"flare.query.methods.mod","size":591,"imports":["flare.query.methods.or","flare.query.Arithmetic"]},
{"name":"flare.query.methods.mul","size":603,"imports":["flare.query.methods.lt","flare.query.methods.or","flare.query.Arithmetic"]},
{"name":"flare.query.methods.neq","size":599,"imports":["flare.query.Comparison","flare.query.methods.eq","flare.query.methods.or"]},
{"name":"flare.query.methods.not","size":386,"imports":["flare.query.Not","flare.query.methods.or"]},
{"name":"flare.query.methods.or","size":323,"imports":["flare.query.Or"]},
{"name":"flare.query.methods.orderby","size":307,"imports":["flare.query.Query","flare.query.methods.or"]},
{"name":"flare.query.methods.range","size":772,"imports":["flare.query.methods.max","flare.query.Range","flare.query.methods.or","flare.query.methods.min"]},
{"name":"flare.query.methods.select","size":296,"imports":["flare.query.Query"]},
{"name":"flare.query.methods.stddev","size":363,"imports":["flare.query.methods.and","flare.query.Variance","flare.query.methods.or"]},
{"name":"flare.query.methods.sub","size":600,"imports":["flare.query.methods.or","flare.query.Arithmetic"]},
{"name":"flare.query.methods.sum","size":280,"imports":["flare.query.Sum","flare.query.methods.or"]},
{"name":"flare.query.methods.update","size":307,"imports":["flare.query.Query"]},
{"name":"flare.query.methods.variance","size":335,"imports":["flare.query.Variance","flare.query.methods.or"]},
{"name":"flare.query.methods.where","size":299,"imports":["flare.query.Query","flare.query.methods.lt","flare.query.methods.lte"]},
{"name":"flare.query.methods.xor","size":354,"imports":["flare.query.Xor","flare.query.methods.or"]},
{"name":"flare.query.methods._","size":264,"imports":["flare.query.Literal","flare.query.methods.or"]},
{"name":"flare.query.Minimum","size":843,"imports":["flare.query.Expression","flare.query.AggregateExpression"]},
{"name":"flare.query.Not","size":1554,"imports":["flare.query.Expression"]},
{"name":"flare.query.Or","size":970,"imports":["flare.query.CompositeExpression","flare.query.Expression"]},
{"name":"flare.query.Query","size":13896,"imports":["flare.query.Variable","flare.query.Sum","flare.query.Expression","flare.util.Sort","flare.query.Not","flare.query.AggregateExpression","flare.query.Literal","flare.util.Filter","flare.util.Property","flare.query.If"]},
{"name":"flare.query.Range","size":1594,"imports":["flare.query.And","flare.query.Comparison","flare.query.Expression"]},
{"name":"flare.query.StringUtil","size":4130,"imports":["flare.query.Fn"]},
{"name":"flare.query.Sum","size":791,"imports":["flare.query.Expression","flare.query.AggregateExpression"]},
{"name":"flare.query.Variable","size":1124,"imports":["flare.query.Expression","flare.util.Property"]},
{"name":"flare.query.Variance","size":1876,"imports":["flare.query.Expression","flare.query.AggregateExpression"]},
{"name":"flare.query.Xor","size":1101,"imports":["flare.query.CompositeExpression","flare.query.Expression"]},
{"name":"flare.scale.IScaleMap","size":2105,"imports":["flare.scale.Scale"]},
{"name":"flare.scale.LinearScale","size":1316,"imports":["flare.util.Maths","flare.util.Strings","flare.scale.Scale","flare.scale.QuantitativeScale","flare.scale.ScaleType"]},
{"name":"flare.scale.LogScale","size":3151,"imports":["flare.util.Maths","flare.util.Strings","flare.scale.Scale","flare.scale.QuantitativeScale","flare.scale.ScaleType"]},
{"name":"flare.scale.OrdinalScale","size":3770,"imports":["flare.scale.ScaleType","flare.util.Arrays","flare.scale.Scale"]},
{"name":"flare.scale.QuantileScale","size":2435,"imports":["flare.util.Maths","flare.util.Strings","flare.scale.Scale","flare.scale.ScaleType"]},
{"name":"flare.scale.QuantitativeScale","size":4839,"imports":["flare.util.Maths","flare.util.Strings","flare.scale.Scale"]},
{"name":"flare.scale.RootScale","size":1756,"imports":["flare.util.Maths","flare.util.Strings","flare.scale.Scale","flare.scale.QuantitativeScale","flare.scale.ScaleType"]},
{"name":"flare.scale.Scale","size":4268,"imports":["flare.scale.ScaleType","flare.util.Strings"]},
{"name":"flare.scale.ScaleType","size":1821,"imports":["flare.scale.Scale"]},
{"name":"flare.scale.TimeScale","size":5833,"imports":["flare.util.Maths","flare.util.Dates","flare.scale.Scale","flare.scale.ScaleType"]},
{"name":"flare.util.Arrays","size":8258,"imports":["flare.util.IValueProxy","flare.util.Property","flare.util.IEvaluable"]},
{"name":"flare.util.Colors","size":10001,"imports":["flare.util.Filter"]},
{"name":"flare.util.Dates","size":8217,"imports":["flare.util.Maths"]},
{"name":"flare.util.Displays","size":12555,"imports":["flare.util.IValueProxy","flare.util.Filter","flare.util.Property","flare.util.IEvaluable","flare.util.Sort"]},
{"name":"flare.util.Filter","size":2324,"imports":["flare.util.IPredicate","flare.util.Property"]},
{"name":"flare.util.Geometry","size":10993,"imports":[]},
{"name":"flare.util.heap.FibonacciHeap","size":9354,"imports":["flare.util.heap.HeapNode"]},
{"name":"flare.util.heap.HeapNode","size":1233,"imports":["flare.util.heap.FibonacciHeap"]},
{"name":"flare.util.IEvaluable","size":335,"imports":[]},
{"name":"flare.util.IPredicate","size":383,"imports":[]},
{"name":"flare.util.IValueProxy","size":874,"imports":[]},
{"name":"flare.util.math.DenseMatrix","size":3165,"imports":["flare.util.math.IMatrix"]},
{"name":"flare.util.math.IMatrix","size":2815,"imports":[]},
{"name":"flare.util.math.SparseMatrix","size":3366,"imports":["flare.util.math.IMatrix"]},
{"name":"flare.util.Maths","size":17705,"imports":["flare.util.Arrays"]},
{"name":"flare.util.Orientation","size":1486,"imports":[]},
{"name":"flare.util.palette.ColorPalette","size":6367,"imports":["flare.util.palette.Palette","flare.util.Colors"]},
{"name":"flare.util.palette.Palette","size":1229,"imports":[]},
{"name":"flare.util.palette.ShapePalette","size":2059,"imports":["flare.util.palette.Palette","flare.util.Shapes"]},
{"name":"flare.util.palette.SizePalette","size":2291,"imports":["flare.util.palette.Palette"]},
{"name":"flare.util.Property","size":5559,"imports":["flare.util.IPredicate","flare.util.IValueProxy","flare.util.IEvaluable"]},
{"name":"flare.util.Shapes","size":19118,"imports":["flare.util.Arrays"]},
{"name":"flare.util.Sort","size":6887,"imports":["flare.util.Arrays","flare.util.Property"]},
{"name":"flare.util.Stats","size":6557,"imports":["flare.util.Arrays","flare.util.Property"]},
{"name":"flare.util.Strings","size":22026,"imports":["flare.util.Dates","flare.util.Property"]},
{"name":"flare.vis.axis.Axes","size":1302,"imports":["flare.animate.Transitioner","flare.vis.Visualization"]},
{"name":"flare.vis.axis.Axis","size":24593,"imports":["flare.animate.Transitioner","flare.scale.LinearScale","flare.util.Arrays","flare.scale.ScaleType","flare.util.Strings","flare.display.TextSprite","flare.scale.Scale","flare.util.Stats","flare.scale.IScaleMap","flare.vis.axis.AxisLabel","flare.vis.axis.AxisGridLine"]},
{"name":"flare.vis.axis.AxisGridLine","size":652,"imports":["flare.vis.axis.Axis","flare.display.LineSprite"]},
{"name":"flare.vis.axis.AxisLabel","size":636,"imports":["flare.vis.axis.Axis","flare.display.TextSprite"]},
{"name":"flare.vis.axis.CartesianAxes","size":6703,"imports":["flare.animate.Transitioner","flare.display.RectSprite","flare.vis.axis.Axis","flare.display.TextSprite","flare.vis.axis.Axes","flare.vis.Visualization","flare.vis.axis.AxisGridLine"]},
{"name":"flare.vis.controls.AnchorControl","size":2138,"imports":["flare.vis.controls.Control","flare.vis.Visualization","flare.vis.operator.layout.Layout"]},
{"name":"flare.vis.controls.ClickControl","size":3824,"imports":["flare.vis.events.SelectionEvent","flare.vis.controls.Control"]},
{"name":"flare.vis.controls.Control","size":1353,"imports":["flare.vis.controls.IControl","flare.util.Filter"]},
{"name":"flare.vis.controls.ControlList","size":4665,"imports":["flare.vis.controls.IControl","flare.util.Arrays","flare.vis.Visualization","flare.vis.controls.Control"]},
{"name":"flare.vis.controls.DragControl","size":2649,"imports":["flare.vis.controls.Control","flare.vis.data.DataSprite"]},
{"name":"flare.vis.controls.ExpandControl","size":2832,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.vis.controls.Control","flare.vis.Visualization"]},
{"name":"flare.vis.controls.HoverControl","size":4896,"imports":["flare.vis.events.SelectionEvent","flare.vis.controls.Control"]},
{"name":"flare.vis.controls.IControl","size":763,"imports":["flare.vis.controls.Control"]},
{"name":"flare.vis.controls.PanZoomControl","size":5222,"imports":["flare.util.Displays","flare.vis.controls.Control"]},
{"name":"flare.vis.controls.SelectionControl","size":7862,"imports":["flare.vis.events.SelectionEvent","flare.vis.controls.Control"]},
{"name":"flare.vis.controls.TooltipControl","size":8435,"imports":["flare.animate.Tween","flare.display.TextSprite","flare.vis.controls.Control","flare.vis.events.TooltipEvent"]},
{"name":"flare.vis.data.Data","size":20544,"imports":["flare.vis.data.EdgeSprite","flare.vis.data.NodeSprite","flare.util.Arrays","flare.vis.data.DataSprite","flare.vis.data.Tree","flare.vis.events.DataEvent","flare.data.DataSet","flare.vis.data.TreeBuilder","flare.vis.data.DataList","flare.data.DataSchema","flare.util.Sort","flare.data.DataField","flare.util.Property"]},
{"name":"flare.vis.data.DataList","size":19788,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.util.Arrays","flare.util.math.DenseMatrix","flare.vis.data.DataSprite","flare.vis.data.EdgeSprite","flare.vis.events.DataEvent","flare.util.Stats","flare.util.math.IMatrix","flare.util.Sort","flare.util.Filter","flare.util.Property","flare.util.IEvaluable","flare.vis.data.Data"]},
{"name":"flare.vis.data.DataSprite","size":10349,"imports":["flare.util.Colors","flare.vis.data.Data","flare.display.DirtySprite","flare.vis.data.render.IRenderer","flare.vis.data.render.ShapeRenderer"]},
{"name":"flare.vis.data.EdgeSprite","size":3301,"imports":["flare.vis.data.render.EdgeRenderer","flare.vis.data.DataSprite","flare.vis.data.NodeSprite","flare.vis.data.render.ArrowType","flare.vis.data.Data"]},
{"name":"flare.vis.data.NodeSprite","size":19382,"imports":["flare.animate.Transitioner","flare.util.Arrays","flare.vis.data.DataSprite","flare.vis.data.EdgeSprite","flare.vis.data.Tree","flare.util.Sort","flare.util.Filter","flare.util.IEvaluable","flare.vis.data.Data"]},
{"name":"flare.vis.data.render.ArrowType","size":698,"imports":[]},
{"name":"flare.vis.data.render.EdgeRenderer","size":5569,"imports":["flare.vis.data.EdgeSprite","flare.vis.data.NodeSprite","flare.vis.data.DataSprite","flare.vis.data.render.IRenderer","flare.util.Shapes","flare.util.Geometry","flare.vis.data.render.ArrowType"]},
{"name":"flare.vis.data.render.IRenderer","size":353,"imports":["flare.vis.data.DataSprite"]},
{"name":"flare.vis.data.render.ShapeRenderer","size":2247,"imports":["flare.util.Shapes","flare.vis.data.render.IRenderer","flare.vis.data.DataSprite"]},
{"name":"flare.vis.data.ScaleBinding","size":11275,"imports":["flare.scale.TimeScale","flare.scale.ScaleType","flare.scale.LinearScale","flare.scale.LogScale","flare.scale.OrdinalScale","flare.scale.RootScale","flare.scale.Scale","flare.scale.QuantileScale","flare.util.Stats","flare.scale.QuantitativeScale","flare.vis.events.DataEvent","flare.vis.data.Data"]},
{"name":"flare.vis.data.Tree","size":7147,"imports":["flare.vis.data.EdgeSprite","flare.vis.events.DataEvent","flare.vis.data.NodeSprite","flare.vis.data.Data"]},
{"name":"flare.vis.data.TreeBuilder","size":9930,"imports":["flare.vis.data.EdgeSprite","flare.vis.data.NodeSprite","flare.vis.data.Tree","flare.util.heap.HeapNode","flare.util.heap.FibonacciHeap","flare.util.Property","flare.util.IEvaluable","flare.vis.data.Data"]},
{"name":"flare.vis.events.DataEvent","size":2313,"imports":["flare.vis.data.EdgeSprite","flare.vis.data.NodeSprite","flare.vis.data.DataList","flare.vis.data.DataSprite"]},
{"name":"flare.vis.events.SelectionEvent","size":1880,"imports":["flare.vis.events.DataEvent"]},
{"name":"flare.vis.events.TooltipEvent","size":1701,"imports":["flare.vis.data.EdgeSprite","flare.vis.data.NodeSprite"]},
{"name":"flare.vis.events.VisualizationEvent","size":1117,"imports":["flare.animate.Transitioner"]},
{"name":"flare.vis.legend.Legend","size":20859,"imports":["flare.animate.Transitioner","flare.vis.data.ScaleBinding","flare.util.palette.SizePalette","flare.scale.ScaleType","flare.vis.legend.LegendItem","flare.display.RectSprite","flare.display.TextSprite","flare.scale.Scale","flare.vis.legend.LegendRange","flare.util.Displays","flare.util.Orientation","flare.util.palette.ShapePalette","flare.util.palette.Palette","flare.util.palette.ColorPalette"]},
{"name":"flare.vis.legend.LegendItem","size":4614,"imports":["flare.util.Shapes","flare.display.TextSprite","flare.vis.legend.Legend","flare.display.RectSprite"]},
{"name":"flare.vis.legend.LegendRange","size":10530,"imports":["flare.util.Colors","flare.vis.legend.Legend","flare.display.RectSprite","flare.display.TextSprite","flare.scale.Scale","flare.util.Stats","flare.scale.IScaleMap","flare.util.Orientation","flare.util.palette.ColorPalette"]},
{"name":"flare.vis.operator.distortion.BifocalDistortion","size":4461,"imports":["flare.vis.operator.distortion.Distortion"]},
{"name":"flare.vis.operator.distortion.Distortion","size":6314,"imports":["flare.animate.Transitioner","flare.vis.data.DataSprite","flare.vis.events.VisualizationEvent","flare.vis.axis.Axis","flare.vis.axis.CartesianAxes","flare.vis.operator.layout.Layout","flare.vis.data.Data"]},
{"name":"flare.vis.operator.distortion.FisheyeDistortion","size":3444,"imports":["flare.vis.operator.distortion.Distortion"]},
{"name":"flare.vis.operator.encoder.ColorEncoder","size":3179,"imports":["flare.animate.Transitioner","flare.scale.ScaleType","flare.vis.operator.encoder.Encoder","flare.util.palette.Palette","flare.util.palette.ColorPalette","flare.vis.data.Data"]},
{"name":"flare.vis.operator.encoder.Encoder","size":4060,"imports":["flare.animate.Transitioner","flare.vis.data.DataSprite","flare.vis.operator.Operator","flare.vis.data.ScaleBinding","flare.util.palette.Palette","flare.util.Filter","flare.util.Property","flare.vis.data.Data"]},
{"name":"flare.vis.operator.encoder.PropertyEncoder","size":4138,"imports":["flare.animate.Transitioner","flare.vis.data.DataList","flare.vis.data.Data","flare.vis.operator.encoder.Encoder","flare.util.Filter","flare.vis.operator.Operator"]},
{"name":"flare.vis.operator.encoder.ShapeEncoder","size":1690,"imports":["flare.util.palette.Palette","flare.scale.ScaleType","flare.util.palette.ShapePalette","flare.vis.operator.encoder.Encoder","flare.vis.data.Data"]},
{"name":"flare.vis.operator.encoder.SizeEncoder","size":1830,"imports":["flare.util.palette.Palette","flare.scale.ScaleType","flare.vis.operator.encoder.Encoder","flare.util.palette.SizePalette","flare.vis.data.Data"]},
{"name":"flare.vis.operator.filter.FisheyeTreeFilter","size":5219,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.vis.data.DataSprite","flare.vis.data.EdgeSprite","flare.vis.data.Tree","flare.vis.operator.Operator","flare.vis.data.Data"]},
{"name":"flare.vis.operator.filter.GraphDistanceFilter","size":3165,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.vis.operator.Operator","flare.vis.data.DataSprite","flare.vis.data.EdgeSprite"]},
{"name":"flare.vis.operator.filter.VisibilityFilter","size":3509,"imports":["flare.vis.operator.Operator","flare.animate.Transitioner","flare.util.Filter","flare.vis.data.DataSprite","flare.vis.data.Data"]},
{"name":"flare.vis.operator.IOperator","size":1286,"imports":["flare.animate.Transitioner","flare.vis.Visualization","flare.vis.operator.Operator"]},
{"name":"flare.vis.operator.label.Labeler","size":9956,"imports":["flare.animate.Transitioner","flare.vis.data.DataSprite","flare.display.TextSprite","flare.vis.operator.Operator","flare.util.Shapes","flare.util.Filter","flare.util.Property","flare.util.IEvaluable","flare.vis.data.Data"]},
{"name":"flare.vis.operator.label.RadialLabeler","size":3899,"imports":["flare.vis.operator.label.Labeler","flare.util.Shapes","flare.display.TextSprite","flare.vis.data.DataSprite","flare.vis.data.Data"]},
{"name":"flare.vis.operator.label.StackedAreaLabeler","size":3202,"imports":["flare.vis.operator.label.Labeler","flare.display.TextSprite","flare.vis.data.DataSprite","flare.vis.data.Data"]},
{"name":"flare.vis.operator.layout.AxisLayout","size":6725,"imports":["flare.scale.ScaleType","flare.vis.data.DataSprite","flare.vis.axis.CartesianAxes","flare.vis.data.ScaleBinding","flare.util.Property","flare.vis.operator.layout.Layout","flare.vis.data.Data"]},
{"name":"flare.vis.operator.layout.BundledEdgeRouter","size":3727,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.util.Arrays","flare.vis.data.DataSprite","flare.vis.data.EdgeSprite","flare.util.Shapes","flare.vis.operator.layout.Layout","flare.vis.operator.Operator"]},
{"name":"flare.vis.operator.layout.CircleLayout","size":9317,"imports":["flare.vis.data.NodeSprite","flare.vis.data.DataList","flare.vis.data.ScaleBinding","flare.util.Property","flare.vis.operator.layout.Layout","flare.vis.data.Data"]},
{"name":"flare.vis.operator.layout.CirclePackingLayout","size":12003,"imports":["flare.vis.data.NodeSprite","flare.vis.data.render.ShapeRenderer","flare.util.Shapes","flare.util.Sort","flare.vis.operator.layout.Layout","flare.vis.data.Data"]},
{"name":"flare.vis.operator.layout.DendrogramLayout","size":4853,"imports":["flare.util.Property","flare.vis.data.NodeSprite","flare.util.Orientation","flare.vis.operator.layout.Layout","flare.vis.data.EdgeSprite"]},
{"name":"flare.vis.operator.layout.ForceDirectedLayout","size":8411,"imports":["flare.physics.Simulation","flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.vis.data.DataSprite","flare.physics.Particle","flare.physics.Spring","flare.vis.operator.layout.Layout","flare.vis.data.EdgeSprite","flare.vis.data.Data"]},
{"name":"flare.vis.operator.layout.IcicleTreeLayout","size":4864,"imports":["flare.vis.data.NodeSprite","flare.util.Orientation","flare.vis.operator.layout.Layout"]},
{"name":"flare.vis.operator.layout.IndentedTreeLayout","size":3174,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.util.Arrays","flare.vis.operator.layout.Layout","flare.vis.data.EdgeSprite"]},
{"name":"flare.vis.operator.layout.Layout","size":7881,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.vis.data.DataList","flare.vis.data.DataSprite","flare.vis.data.EdgeSprite","flare.vis.Visualization","flare.vis.axis.CartesianAxes","flare.vis.axis.Axes","flare.animate.TransitionEvent","flare.vis.operator.Operator"]},
{"name":"flare.vis.operator.layout.NodeLinkTreeLayout","size":12870,"imports":["flare.vis.data.NodeSprite","flare.util.Arrays","flare.util.Orientation","flare.vis.operator.layout.Layout"]},
{"name":"flare.vis.operator.layout.PieLayout","size":2728,"imports":["flare.vis.data.DataList","flare.vis.data.DataSprite","flare.util.Shapes","flare.util.Property","flare.vis.operator.layout.Layout","flare.vis.data.Data"]},
{"name":"flare.vis.operator.layout.RadialTreeLayout","size":12348,"imports":["flare.vis.data.NodeSprite","flare.util.Arrays","flare.vis.operator.layout.Layout"]},
{"name":"flare.vis.operator.layout.RandomLayout","size":870,"imports":["flare.vis.operator.layout.Layout","flare.vis.data.DataSprite","flare.vis.data.Data"]},
{"name":"flare.vis.operator.layout.StackedAreaLayout","size":9121,"imports":["flare.scale.TimeScale","flare.scale.LinearScale","flare.util.Arrays","flare.scale.OrdinalScale","flare.vis.data.NodeSprite","flare.scale.Scale","flare.vis.axis.CartesianAxes","flare.util.Stats","flare.util.Orientation","flare.scale.QuantitativeScale","flare.util.Maths","flare.vis.operator.layout.Layout"]},
{"name":"flare.vis.operator.layout.TreeMapLayout","size":9191,"imports":["flare.animate.Transitioner","flare.vis.data.NodeSprite","flare.util.Property","flare.vis.operator.layout.Layout"]},
{"name":"flare.vis.operator.Operator","size":2490,"imports":["flare.animate.Transitioner","flare.vis.operator.IOperator","flare.util.Property","flare.util.IEvaluable","flare.vis.Visualization"]},
{"name":"flare.vis.operator.OperatorList","size":5248,"imports":["flare.animate.Transitioner","flare.util.Arrays","flare.vis.operator.IOperator","flare.vis.Visualization","flare.vis.operator.Operator"]},
{"name":"flare.vis.operator.OperatorSequence","size":4190,"imports":["flare.animate.Transitioner","flare.util.Arrays","flare.vis.operator.IOperator","flare.vis.operator.OperatorList","flare.animate.FunctionSequence","flare.vis.operator.Operator"]},
{"name":"flare.vis.operator.OperatorSwitch","size":2581,"imports":["flare.animate.Transitioner","flare.vis.operator.OperatorList","flare.vis.operator.IOperator","flare.vis.operator.Operator"]},
{"name":"flare.vis.operator.SortOperator","size":2023,"imports":["flare.vis.operator.Operator","flare.animate.Transitioner","flare.util.Arrays","flare.vis.data.Data"]},
{"name":"flare.vis.Visualization","size":16540,"imports":["flare.animate.Transitioner","flare.vis.operator.IOperator","flare.animate.Scheduler","flare.vis.events.VisualizationEvent","flare.vis.data.Tree","flare.vis.events.DataEvent","flare.vis.axis.Axes","flare.vis.axis.CartesianAxes","flare.util.Displays","flare.vis.operator.OperatorList","flare.vis.controls.ControlList","flare.animate.ISchedulable","flare.vis.data.Data"]}
]

5
tests/cypress.json Normal file
View file

@ -0,0 +1,5 @@
{
"baseUrl": "http://localhost:8984/vue-poc",
"viewportWidth": 1600,
"viewportHeight": 800
}

View file

@ -1 +1,2 @@
/node_modules/ /screenshots/
/videos/

View file

@ -1,6 +0,0 @@
{
"baseUrl": "http://localhost:8984/vue-poc",
"viewportWidth": 1600,
"viewportHeight": 800,
"projectId": "269dic"
}

View file

@ -1 +0,0 @@
/screenshots/

View file

@ -0,0 +1,24 @@
/**
* @author andy bunce
* @description visit sequence of pages
*/
describe('visit-all', function () {
//Here you actually writes your test (it() is similar to @Test annotaion of TestNG)
const urls=["/ui",
"/ui/eval",
"/ui/tabs",
"/ui/transform",
"/ui/database",
"/ui/file",
];
it('visit', function () {
urls.forEach(u=>{
cy.visit(u)
cy.wait(1000)
cy.screenshot(u)
})
})
})

View file

@ -5,7 +5,7 @@
//This is where your test suite starts //This is where your test suite starts
describe('My First Test', function () { describe('Smoke', function () {
//This function will execute before each test (i.e it()) //This function will execute before each test (i.e it())

View file

@ -7,11 +7,6 @@
describe('validate tests', function () { describe('validate tests', function () {
//This function will execute before each test (i.e it())
beforeEach(function () {
cy.log('I run before every test in every spec file!!!!!!')
})
//Here you actually writes your test (it() is similar to @Test annotaion of TestNG) //Here you actually writes your test (it() is similar to @Test annotaion of TestNG)

File diff suppressed because it is too large Load diff

View file

@ -1,14 +0,0 @@
{
"name": "vue-poc",
"version": "1.0.0",
"description": "vue-poc e2e tests",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"cypress": "^3.4.1"
}
}