Skip to content

Commit 9bde8c6

Browse files
committed
docs: add api
1 parent 8756ee7 commit 9bde8c6

File tree

16 files changed

+377
-2
lines changed

16 files changed

+377
-2
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<template>
2+
<md-table :headers="headers" :items="items"></md-table>
3+
</template>
4+
5+
<script>
6+
7+
export default {
8+
props:{
9+
appendItems: {
10+
type: Array,
11+
default: () => []
12+
}
13+
},
14+
data: function(){
15+
return {
16+
headers: [
17+
{name:'Name', value: 'name'},
18+
{name:'Description', value: 'desc'},
19+
],
20+
items: [
21+
{name: 'input', desc: `emitted when the cron expression changed`},
22+
{name: 'error', desc: `emitted when the cron expression is invalid`},
23+
...this.appendItems
24+
]
25+
}
26+
}
27+
}
28+
</script>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<template>
2+
<md-table :headers="headers" :items="items" ref="table">
3+
4+
<template v-for="(_, name) in $slots" v-slot:[name]>
5+
<slot :name="name"/>
6+
</template>
7+
8+
</md-table>
9+
</template>
10+
11+
<script>
12+
13+
export default {
14+
props:{
15+
appendItems: {
16+
type: Array,
17+
default: () => []
18+
}
19+
},
20+
data: function(){
21+
22+
return {
23+
headers: [
24+
{name:'Name', value: 'name'},
25+
{name:'Type', value: 'type'},
26+
{name:'Default', value: 'default'},
27+
{name:'Description', value: 'desc'},
28+
],
29+
items: [
30+
{name: 'value', type:"`string`", default: 'required', desc: 'the current cron expression'},
31+
{name: 'fields', type:"`Field[]`", default: '...', desc: 'each field defines on position of the cron expression'},
32+
{name: 'periods', type:"`Period[]`", default: '...', desc: 'the `value` porperty of a period determines which fields are visible'},
33+
{name: 'locale', type:"`string`", default: '`"en"`', desc: ''},
34+
{name: 'custom-locale', type:"`Locale`", default: '...', desc: ''},
35+
...this.appendItems
36+
]
37+
}
38+
}
39+
}
40+
</script>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<template>
2+
<md-table :headers="headers" :items="items" ref="table">
3+
4+
<template v-for="(_, name) in $slots" v-slot:[name]>
5+
<slot :name="name"/>
6+
</template>
7+
8+
</md-table>
9+
</template>
10+
11+
<script>
12+
13+
export default {
14+
props:{
15+
appendItems: {
16+
type: Array,
17+
default: () => []
18+
}
19+
},
20+
data: function(){
21+
22+
return {
23+
headers: [
24+
{name:'Name', value: 'name'},
25+
{name:'Description', value: 'desc'},
26+
{name:'Slot Props', value: 'props'}
27+
],
28+
items: [
29+
{name: 'default', desc:"used to render the cron editor", props: '`CronState`'},
30+
...this.appendItems
31+
]
32+
}
33+
}
34+
}
35+
</script>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<template>
2+
<v-app>
3+
4+
<CronVuetify v-model="value" :periods="periods" @error="error=$event"></CronVuetify>
5+
6+
</v-app>
7+
</template>
8+
9+
<script>
10+
export default {
11+
data() {
12+
return {
13+
value: '* * * * *',
14+
error: '',
15+
periods: [
16+
{ id: 'month', text: 'Month', value: ['day', /*'dayOfWeek',*/ 'hour', 'minute'] },
17+
{ id: 'day', text: 'Day', value: ['hour', 'minute'] },
18+
]
19+
}
20+
},
21+
}
22+
</script>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<template>
2+
<table>
3+
<tr>
4+
<th v-for="header in headers" :key="header.value">{{header.name}}</th>
5+
</tr>
6+
<tr v-for="item, i in items" :key="i">
7+
<template v-for="header, j in headers">
8+
<td :key="j">
9+
<slot :name="'r'+i+'c'+j">
10+
<span v-html="renderMd(item[header.value])" />
11+
</slot>
12+
</td>
13+
</template>
14+
15+
</tr>
16+
</table>
17+
</template>
18+
19+
<script>
20+
import markdownIt from 'markdown-it/dist/markdown-it';
21+
22+
export default {
23+
props:{
24+
headers: {
25+
type: Array,
26+
required: true
27+
},
28+
items: {
29+
type: Array,
30+
required: true
31+
}
32+
},
33+
methods:{
34+
renderMd(mdStr){
35+
let md = new markdownIt({
36+
html: true,
37+
})
38+
return md.render(mdStr)
39+
}
40+
}
41+
}
42+
</script>

docs/src/.vuepress/config.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ module.exports = {
4040
nav: [
4141
{
4242
text: 'Guide',
43-
link: '/guide/',
43+
link: '/guide/getting-started',
44+
},
45+
{
46+
text: 'API',
47+
link: '/api/core',
4448
},
4549
{
4650
text: 'Github',
@@ -54,9 +58,26 @@ module.exports = {
5458
collapsable: false,
5559
children: [
5660
'getting-started',
61+
'custom-periods'
5762
]
5863
}
5964
],
65+
'/api/': [
66+
{
67+
title: 'Core',
68+
collapsable: false,
69+
children: [
70+
'core',
71+
]
72+
},
73+
{
74+
title: 'Vuetify',
75+
collapsable: false,
76+
children: [
77+
'vuetify',
78+
]
79+
}
80+
]
6081
}
6182
},
6283

docs/src/api/core.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# CronCore - Component
2+
3+
## Props
4+
5+
<api-core-props>
6+
<template v-slot:r1c2>
7+
8+
<<< @/src/api/default/fields.js
9+
10+
</template>
11+
<template v-slot:r2c2>
12+
13+
<<< @/src/api/default/periods.js
14+
15+
</template>
16+
<template v-slot:r4c2>
17+
18+
[en.js](https://github.com/abichinger/vue-js-cron/blob/main/core/src/locale/en.js)
19+
20+
</template>
21+
</api-core-props>
22+
23+
### Types
24+
25+
<<< @/src/api/types/field.ts
26+
27+
<<< @/src/api/types/period.ts
28+
29+
<<< @/src/api/types/locale.ts
30+
31+
## Events
32+
33+
<api-core-events />
34+
35+
## Slots
36+
37+
<api-core-slots />
38+
39+
### Types
40+
41+
<<< @/src/api/types/cronState.ts

docs/src/api/default/fields.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[
2+
{id: 'minute', items: defaultItems(this.locale).minuteItems},
3+
{id: 'hour', items: defaultItems(this.locale).hourItems},
4+
{id: 'day', items: defaultItems(this.locale).dayItems},
5+
{id: 'month', items: defaultItems(this.locale).monthItems},
6+
{id: 'dayOfWeek', items: defaultItems(this.locale).dayOfWeekItems},
7+
]

docs/src/api/default/periods.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[
2+
{ id: 'minute', text: 'Minute', value: [] },
3+
{ id: 'hour', text: 'Hour', value: ['minute'] },
4+
{ id: 'day', text: 'Day', value: ['hour', 'minute'] },
5+
{ id: 'week', text: 'Week', value: ['dayOfWeek', 'hour', 'minute'] },
6+
{ id: 'month', text: 'Month', value: ['day', 'dayOfWeek', 'hour', 'minute'] },
7+
{ id: 'year', text: 'Year', value: ['month', 'day', 'dayOfWeek', 'hour', 'minute'] },
8+
]

docs/src/api/types/cronState.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
type CronState = {
2+
fields: Array<{
3+
attrs: {
4+
value: Array<number> //array item values
5+
},
6+
events: {
7+
input: (arg1: Array<number>) => void
8+
},
9+
id: string,
10+
items: Array<Object> //see type Field
11+
cron: string,
12+
selectedStr: string,
13+
prefix: string,
14+
suffix: string
15+
}>,
16+
period: {
17+
attrs: {
18+
value: Array<string> //array of period ids
19+
},
20+
events: {
21+
input: (arg1: Period) => void
22+
},
23+
items: Array<Period>,
24+
prefix: string,
25+
suffix: string
26+
},
27+
error: string
28+
}

docs/src/api/types/field.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
type Field = {
2+
id: string,
3+
items: Array<{
4+
text: string
5+
alt: string
6+
value: string
7+
}>
8+
}

docs/src/api/types/locale.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
type Locale = {
2+
periodPrefix: string,
3+
periodSuffix: string
4+
eachPeriod: {
5+
eachField: {
6+
empty: string,
7+
value: string,
8+
range: string,
9+
everyX: string,
10+
prefix: string,
11+
suffix: string,
12+
},
13+
'{{fieldId}}Field': {
14+
empty: string,
15+
value: string,
16+
range: string,
17+
everyX: string,
18+
prefix: string,
19+
suffix: string,
20+
}
21+
}
22+
'{{periodId}}Period': {
23+
eachField: {
24+
empty: string,
25+
value: string,
26+
range: string,
27+
everyX: string,
28+
prefix: string,
29+
suffix: string,
30+
},
31+
'{{fieldId}}Field': {
32+
empty: string,
33+
value: string,
34+
range: string,
35+
everyX: string,
36+
prefix: string,
37+
suffix: string,
38+
}
39+
}
40+
}

docs/src/api/types/period.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
type Period = {
2+
id: string,
3+
text: string,
4+
value: string[]
5+
}

docs/src/api/vuetify.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# CronVuetify - Component
2+
3+
## Props
4+
5+
<api-core-props>
6+
<template v-slot:r1c2>
7+
8+
<<< @/src/api/default/fields.js
9+
10+
</template>
11+
<template v-slot:r2c2>
12+
13+
<<< @/src/api/default/periods.js
14+
15+
</template>
16+
<template v-slot:r4c2>
17+
18+
[en.js](https://github.com/abichinger/vue-js-cron/blob/main/core/src/locale/en.js)
19+
20+
</template>
21+
</api-core-props>
22+
23+
### Types
24+
25+
<<< @/src/api/types/field.ts
26+
27+
<<< @/src/api/types/period.ts
28+
29+
<<< @/src/api/types/locale.ts
30+
31+
## Events
32+
33+
<api-core-events />

0 commit comments

Comments
 (0)