cob-cli 2.12.0 → 2.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/customizations/backend.js +1 -0
- package/customizations/backend.vuepress.js +35 -0
- package/customizations/frontend.js +1 -0
- package/lib/task_lists/test_otherFilesContiousReload.js +1 -1
- package/package.json +5 -1
- package/templates/backend/vuepress/integrationm/actions/getVuePressDoc.groovy +74 -0
- package/templates/backend/vuepress/integrationm/actions/getVuePressSidebarConfig.groovy +42 -0
- package/templates/backend/vuepress/integrationm/actions/getVuePressSidebarRootElements.groovy +17 -0
- package/templates/backend/vuepress/others/vuepress/definition_contents_v234.json +619 -0
- package/templates/backend/vuepress/others/vuepress/nginx/README.md +28 -0
- package/templates/backend/vuepress/others/vuepress/package-lock.json +29656 -0
- package/templates/backend/vuepress/others/vuepress/package.json +24 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/DescriptVideo.vue +22 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/Graph.vue +124 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/ReadingTime.vue +26 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/References.vue +228 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/RestrictedContent.vue +77 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/config.js +101 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/config.json +31 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/enhanceApp.js +14 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/nav/getNavTranslated.js +52 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/plugins/References.js +96 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/public/Logo-Cult-of-Bits-400x400-1.png +0 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/public/favicon-cob.png +0 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/public/logo.png +0 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/styles/index.styl +39 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/styles/palette.styl +17 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/LICENSE +21 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/README.md +11 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/AlgoliaSearchBox.vue +172 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/DropdownLink.vue +252 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/DropdownTransition.vue +33 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Home.vue +134 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/NavLink.vue +98 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/NavLinks.vue +165 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Navbar.vue +140 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Page.vue +31 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/PageEdit.vue +119 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/PageNav.vue +163 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Sidebar.vue +64 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarButton.vue +40 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarGroup.vue +144 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarLink.vue +140 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarLinks.vue +114 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/global-components/Badge.vue +44 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/global-components/CodeBlock.vue +41 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/global-components/CodeGroup.vue +120 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/index.js +59 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/layouts/404.vue +30 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/layouts/Layout.vue +151 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/noopModule.js +1 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/package.json +44 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/arrow.styl +22 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/code.styl +137 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/config.styl +1 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/custom-blocks.styl +44 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/index.styl +202 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/mobile.styl +37 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/toc.styl +3 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/wrapper.styl +10 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/util/index.js +244 -0
- package/templates/dashboards/dash/definition_dashboard_v59.json +1 -0
- package/templates/dashboards/dash/dist/dashboard.html +8 -3
- package/templates/dashboards/dash/dist/js/{app.a65a4c2c.js → app.8423eff3.js} +2 -2
- package/templates/dashboards/dash/dist/js/app.8423eff3.js.map +1 -0
- package/templates/dashboards/dash/dist/js/app.f9c19b80.js +188 -0
- package/templates/dashboards/dash/dist/js/app.f9c19b80.js.map +1 -0
- package/templates/dashboards/dash/src/App.vue +32 -212
- package/templates/dashboards/dash/src/Dashboard.vue +31 -11
- package/templates/dashboards/dash/src/collector.js +35 -3694
- package/templates/dashboards/dash/src/components/Menu.vue +15 -4
- package/templates/dashboards/dash/src/components/Title.vue +10 -2
- package/templates/dashboards/dash/src/components/Totals.vue +19 -9
- package/templates/dashboards/dash/src/components/{TotalsBadge.vue → TotalsValue.vue} +12 -12
- package/templates/dashboards/dash/src/dashboard.html +6 -1
- package/templates/dashboards/dash/src/test_collector.js +3732 -0
- package/templates/dashboards/dash/dist/js/app.a65a4c2c.js.map +0 -1
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
<script>
|
|
14
14
|
import axios from 'axios';
|
|
15
15
|
import { umLoggedin } from '@cob/rest-api-wrapper';
|
|
16
|
-
import { instancesList
|
|
16
|
+
import { instancesList } from '@cob/dashboard-info';
|
|
17
17
|
import Dashboard from './Dashboard.vue'
|
|
18
|
+
import {parseDashboard} from './collector.js'
|
|
18
19
|
|
|
19
20
|
export default {
|
|
20
21
|
name: 'App',
|
|
@@ -27,231 +28,50 @@ export default {
|
|
|
27
28
|
error:"",
|
|
28
29
|
currentDashboardInstance: null,
|
|
29
30
|
dashboard: null,
|
|
31
|
+
page_title: null
|
|
30
32
|
}),
|
|
31
33
|
created() {
|
|
32
34
|
umLoggedin().then( userInfo => this.userInfo = userInfo )
|
|
33
35
|
//At the initial load we get the dashboard instance from the url
|
|
34
|
-
|
|
35
|
-
this.currentDashboardInstance = instancesList("Dashboard", "page_title.raw:\"" + page_title+"\"", 1
|
|
36
|
+
this.page_title = document.getElementById("dash").getAttribute('data-name')
|
|
37
|
+
this.currentDashboardInstance = instancesList("Dashboard", "page_title.raw:\"" + this.page_title + "\"", 1)
|
|
36
38
|
|
|
37
39
|
$('section.custom-resource').on('resume', (e, params) => {
|
|
38
|
-
//register this callback to every anchor navigation. In these cases we get the dashboard instance from the first param
|
|
39
|
-
this.
|
|
40
|
+
//register this callback to every anchor navigation. In these cases we get the dashboard instance from the first param to the callback
|
|
41
|
+
this.page_title = params[0]
|
|
42
|
+
this.currentDashboardInstance.changeArgs({query:"page_title.raw:\"" + this.page_title + "\""})
|
|
40
43
|
});
|
|
41
44
|
},
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if(
|
|
45
|
+
watch: {
|
|
46
|
+
'currentDashboardInstance.state'(state) {
|
|
47
|
+
if(state == "loading" || state == "updating") {
|
|
45
48
|
this.state = "Loading"
|
|
46
|
-
|
|
47
|
-
|
|
49
|
+
} else if(state == "error") {
|
|
50
|
+
this.error = "Error: error getting dashboard"
|
|
51
|
+
this.state = "Error"
|
|
52
|
+
} else if( this.currentDashboardInstance.value.length > 0) {
|
|
53
|
+
this.state = "Loading"
|
|
54
|
+
let instanceId = this.currentDashboardInstance.value[0].id
|
|
55
|
+
axios.get("/recordm/recordm/instances/" + instanceId)
|
|
48
56
|
.then(resp => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
57
|
+
try {
|
|
58
|
+
this.dashboard = parseDashboard(resp.data)
|
|
59
|
+
this.state = "Ready"
|
|
60
|
+
}
|
|
61
|
+
catch(e) {
|
|
62
|
+
this.error = "Error: error processing dashboard " + instanceId
|
|
63
|
+
this.state = "Error"
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
.catch( (e) => {
|
|
67
|
+
this.error = "Error: error getting dashboard " + instanceId
|
|
68
|
+
this.state = "Error"
|
|
53
69
|
})
|
|
54
|
-
.catch( (e) => this.error = "Error: error getting dashboard", this.state = "Error" )
|
|
55
70
|
} else {
|
|
56
|
-
this.error = "Error:
|
|
71
|
+
this.error = "Error: dashboard '" + this.page_title + "' not found"
|
|
57
72
|
this.state = "Error"
|
|
58
73
|
}
|
|
59
|
-
},
|
|
60
|
-
createDashboardFromThunk(dashboard) {
|
|
61
|
-
dashboard.boards.forEach(b => b.components.forEach(c => {
|
|
62
|
-
if (c.component_type == "Totals")
|
|
63
|
-
c.lines.forEach(l => {
|
|
64
|
-
l.values = l.values.map(v => {
|
|
65
|
-
if(v.args[2] && v.args[2].startsWith("{")) {
|
|
66
|
-
v.args[2] = JSON.parse(v.args[2])
|
|
67
|
-
}
|
|
68
|
-
return ({
|
|
69
|
-
dash_info: this[v.type].apply(this, v.args), // Return DashInfo, which is used by the component
|
|
70
|
-
style: v.style
|
|
71
|
-
})
|
|
72
|
-
})
|
|
73
|
-
})
|
|
74
|
-
}))
|
|
75
|
-
return dashboard
|
|
76
|
-
},
|
|
77
|
-
parseDashboard(raw_dashboard_origin) {
|
|
78
|
-
// Parse raw dashboard
|
|
79
|
-
|
|
80
|
-
let raw_dashboard = JSON.parse(JSON.stringify(raw_dashboard_origin)) // TODO: Is this deep copy slow?
|
|
81
|
-
let dashboard = {
|
|
82
|
-
page_title: undefined,
|
|
83
|
-
grid_cols: undefined,
|
|
84
|
-
max_width: undefined,
|
|
85
|
-
boards: [],
|
|
86
|
-
permission: undefined
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
let _ignore = raw_dashboard.fields.shift() // Dashboard Info Label
|
|
90
|
-
|
|
91
|
-
const raw_page = raw_dashboard.fields.shift()
|
|
92
|
-
console.assert(raw_page.fieldDefinition.name == "Page Title")
|
|
93
|
-
dashboard.page_title = raw_page.value
|
|
94
|
-
|
|
95
|
-
const raw_grid_cols = raw_dashboard.fields.shift()
|
|
96
|
-
console.assert(raw_grid_cols.fieldDefinition.name == "Grid Columns")
|
|
97
|
-
dashboard.grid_cols = raw_grid_cols.value
|
|
98
|
-
|
|
99
|
-
const raw_max_width = raw_dashboard.fields.shift()
|
|
100
|
-
console.assert(raw_max_width.fieldDefinition.name == "Max Width")
|
|
101
|
-
dashboard.max_width = raw_max_width.value
|
|
102
|
-
|
|
103
|
-
const raw_permission = raw_dashboard.fields.shift() // remove last value from raw_page fields (permission) leaving raw_page fields as a list of boards
|
|
104
|
-
console.assert(raw_permission.fieldDefinition.name == "Permission")
|
|
105
|
-
dashboard.permission = raw_permission.value
|
|
106
|
-
|
|
107
|
-
_ignore = raw_dashboard.fields.shift() // Boards Label
|
|
108
|
-
|
|
109
|
-
const raw_boards = raw_dashboard.fields // raw page fields without the last field which was /permission/
|
|
110
|
-
|
|
111
|
-
for (let raw_board of raw_boards) {
|
|
112
|
-
console.assert(raw_board.fieldDefinition.name == "Board Title")
|
|
113
|
-
let board = {
|
|
114
|
-
board_title: raw_board.value,
|
|
115
|
-
row_span: undefined,
|
|
116
|
-
col_span: undefined,
|
|
117
|
-
components: [ ]
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const raw_col_span = raw_board.fields.shift()
|
|
121
|
-
console.assert(raw_col_span.fieldDefinition.name == "Col Span")
|
|
122
|
-
board.col_span = raw_col_span.value
|
|
123
|
-
|
|
124
|
-
const raw_row_span = raw_board.fields.shift()
|
|
125
|
-
console.assert(raw_row_span.fieldDefinition.name == "Row Span")
|
|
126
|
-
board.row_span = raw_row_span.value
|
|
127
|
-
|
|
128
|
-
const raw_components = raw_board.fields
|
|
129
|
-
|
|
130
|
-
for (let raw_component of raw_components) {
|
|
131
|
-
console.assert(raw_component.fieldDefinition.name == "Component")
|
|
132
|
-
|
|
133
|
-
const componentsTypes = {
|
|
134
|
-
'Totals': {
|
|
135
|
-
headers: [],
|
|
136
|
-
headers_style: null,
|
|
137
|
-
lines: []
|
|
138
|
-
},
|
|
139
|
-
'Menu': {
|
|
140
|
-
items: []
|
|
141
|
-
},
|
|
142
|
-
'Title': {
|
|
143
|
-
title_text: null
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
let component = {
|
|
148
|
-
component_type: raw_component.value,
|
|
149
|
-
...JSON.parse(JSON.stringify(componentsTypes[raw_component.value] ? componentsTypes[raw_component.value] : {}))
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
const raw_parts = raw_component.fields
|
|
153
|
-
if (component.component_type == 'Totals') { /// {{{
|
|
154
|
-
|
|
155
|
-
let raw_headers = raw_parts.shift().fields // "Pop" first element (Headers)
|
|
156
|
-
const raw_header_style = raw_headers.pop() // and its last field (Headers Style)
|
|
157
|
-
console.assert(raw_header_style.fieldDefinition.name == "Style Header")
|
|
158
|
-
component.headers_style = raw_header_style.value
|
|
159
|
-
component.headers = raw_headers.map(x => x["value"])
|
|
160
|
-
|
|
161
|
-
const raw_lines = raw_parts.filter(x => x.fieldDefinition.name == "Line")
|
|
162
|
-
|
|
163
|
-
for (let raw_line of raw_lines) {
|
|
164
|
-
|
|
165
|
-
let line = {
|
|
166
|
-
text: raw_line.value,
|
|
167
|
-
text_style: undefined,
|
|
168
|
-
values: [
|
|
169
|
-
/*
|
|
170
|
-
{
|
|
171
|
-
type: undefined,
|
|
172
|
-
args: []
|
|
173
|
-
style: undefined
|
|
174
|
-
}
|
|
175
|
-
*/
|
|
176
|
-
]
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
const raw_text_style = raw_line.fields.pop() // Style Line (Last field)
|
|
180
|
-
console.assert(raw_text_style.fieldDefinition.name == "Style Line")
|
|
181
|
-
line.text_style = raw_text_style.value
|
|
182
|
-
|
|
183
|
-
line.values = raw_line.fields.map(v => { // Remaining list of Values
|
|
184
|
-
console.assert(v.fieldDefinition.name == "Value")
|
|
185
|
-
const value_type = v.value
|
|
186
|
-
|
|
187
|
-
const raw_style = v.fields.shift()
|
|
188
|
-
console.assert(raw_style.fieldDefinition.name == "Style Value")
|
|
189
|
-
|
|
190
|
-
const args = v.fields.map(v => v.value)
|
|
191
|
-
|
|
192
|
-
return {
|
|
193
|
-
type: value_type,
|
|
194
|
-
style: raw_style.value,
|
|
195
|
-
args: args
|
|
196
|
-
}
|
|
197
|
-
})
|
|
198
|
-
|
|
199
|
-
component.lines.push(line)
|
|
200
|
-
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
} /// }}}
|
|
204
|
-
else if (component.component_type == 'Menu') { /// {{{
|
|
205
|
-
|
|
206
|
-
const raw_items = raw_parts.filter(x => x.fieldDefinition.name == "Text") // We removed the 2 first fields and only have the lines left
|
|
207
|
-
|
|
208
|
-
for (let raw_item of raw_items) {
|
|
209
|
-
|
|
210
|
-
let item = {
|
|
211
|
-
text: raw_item.value,
|
|
212
|
-
text_style: undefined,
|
|
213
|
-
link: undefined
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
const raw_link = raw_item.fields.shift() // Link
|
|
217
|
-
console.assert(raw_link.fieldDefinition.name == "Link")
|
|
218
|
-
item.link = raw_link.value
|
|
219
|
-
|
|
220
|
-
const raw_text_style = raw_item.fields.shift() // Style Text
|
|
221
|
-
console.assert(raw_text_style.fieldDefinition.name == "Style Text")
|
|
222
|
-
item.text_style = raw_text_style.value
|
|
223
|
-
|
|
224
|
-
component.items.push(item)
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
} /// }}}
|
|
228
|
-
else if (component.component_type == 'Title') { /// {{{
|
|
229
|
-
const raw_items = raw_parts.filter(x => x.fieldDefinition.name == "Title") // We removed the 2 first fields and only have the lines left
|
|
230
|
-
console.assert(raw_items.length == 1)
|
|
231
|
-
component.title_text = raw_items[0].value
|
|
232
|
-
} /// }}}
|
|
233
|
-
else if (component.component_type == null) {
|
|
234
|
-
// Empty component
|
|
235
|
-
}
|
|
236
|
-
else console.error("Undefined component type!", component.component_type)
|
|
237
|
-
|
|
238
|
-
board.components.push(component)
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
dashboard.boards.push(board)
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
console.log("finished parsing!", dashboard)
|
|
245
|
-
return dashboard
|
|
246
|
-
},
|
|
247
|
-
|
|
248
|
-
// Register functions for dynamic use in createDashboardFromThunk
|
|
249
|
-
definitionCount: definitionCount,
|
|
250
|
-
domainCount: domainCount,
|
|
251
|
-
fieldSum: fieldSum,
|
|
252
|
-
link(url, icon) {
|
|
253
|
-
return { value: icon, href: url, state: undefined, isLink: true }
|
|
254
74
|
}
|
|
255
75
|
}
|
|
256
76
|
};
|
|
257
|
-
</script>
|
|
77
|
+
</script>
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div :class="'flex ' + maxWidthClass">
|
|
3
|
-
|
|
4
|
-
<BoardsPage class="w-full h-full" :grid-cols="dashboard.grid_cols">
|
|
3
|
+
<BoardsPage class="w-full h-full" :grid-cols="gridColumns">
|
|
5
4
|
<Board
|
|
6
|
-
v-for="board in
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
v-for="(board,i) in boards"
|
|
6
|
+
:key="'board-' + i"
|
|
7
|
+
:title="board.title"
|
|
8
|
+
:row-span="board.rowSpan"
|
|
9
|
+
:col-span="board.colSpan"
|
|
10
|
+
>
|
|
9
11
|
<template v-for="(component, i) in board.components">
|
|
10
|
-
<Totals v-if="component.
|
|
11
|
-
<Menu
|
|
12
|
-
<Title
|
|
12
|
+
<Totals v-if="component.type == 'Totals'" :component-data="component.data" :key="'component-' + i" />
|
|
13
|
+
<Menu v-if="component.type == 'Menu'" :component-data="component.data" :key="'component-' + i" />
|
|
14
|
+
<Title v-if="component.type == 'Title'" :component-data="component.data" :key="'component-' + i" />
|
|
13
15
|
</template>
|
|
14
16
|
</Board>
|
|
15
17
|
</BoardsPage>
|
|
@@ -17,7 +19,6 @@
|
|
|
17
19
|
</template>
|
|
18
20
|
|
|
19
21
|
<script>
|
|
20
|
-
import BoardsNav from './components/BoardsNav.vue'
|
|
21
22
|
import BoardsPage from './components/BoardsPage.vue'
|
|
22
23
|
import Board from './components/Board.vue'
|
|
23
24
|
import Totals from './components/Totals.vue'
|
|
@@ -25,9 +26,28 @@ import Menu from './components/Menu.vue'
|
|
|
25
26
|
import Title from './components/Title.vue'
|
|
26
27
|
|
|
27
28
|
export default {
|
|
28
|
-
components: {
|
|
29
|
+
components: { BoardsPage, Board, Totals, Menu, Title },
|
|
29
30
|
props: { dashboard: Object },
|
|
30
31
|
computed: {
|
|
32
|
+
gridColumns() {
|
|
33
|
+
return this.dashboard['Grid Columns']
|
|
34
|
+
},
|
|
35
|
+
maxWidth() {
|
|
36
|
+
return this.dashboard['Max Width']
|
|
37
|
+
},
|
|
38
|
+
boards() {
|
|
39
|
+
return this.dashboard['Board Title'].map( b => ({
|
|
40
|
+
title: b['Board Title'],
|
|
41
|
+
rowSpan: b['Row Span'],
|
|
42
|
+
colSpan: b['Col Span'],
|
|
43
|
+
components: b['Component'].map( c => ({
|
|
44
|
+
type: c['Component'],
|
|
45
|
+
data: c
|
|
46
|
+
|
|
47
|
+
}))
|
|
48
|
+
}))
|
|
49
|
+
},
|
|
50
|
+
|
|
31
51
|
maxWidthClass() {
|
|
32
52
|
// The full class name lookup is important for tailwind to build all classes
|
|
33
53
|
const lookup = {
|
|
@@ -39,7 +59,7 @@ export default {
|
|
|
39
59
|
"6xl": "max-w-6xl",
|
|
40
60
|
"full": "max-w-full"
|
|
41
61
|
}
|
|
42
|
-
return "mx-auto " + lookup[this.
|
|
62
|
+
return "mx-auto " + lookup[this.maxWidth]
|
|
43
63
|
}
|
|
44
64
|
}
|
|
45
65
|
}
|