2019-10-10 07:18:02 +02:00
|
|
|
const headers = () => [
|
2020-02-03 10:24:25 +01:00
|
|
|
{
|
|
|
|
name: "common/H1",
|
|
|
|
description: "Header 1",
|
|
|
|
inherits: "@budibase/standard-components/text",
|
|
|
|
props: {
|
|
|
|
font: "20pt",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "common/H2",
|
|
|
|
description: "Header 2",
|
|
|
|
inherits: "@budibase/standard-components/text",
|
|
|
|
props: {
|
|
|
|
font: "15pt",
|
2019-10-10 07:18:02 +02:00
|
|
|
},
|
2020-02-03 10:24:25 +01:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "common/H3",
|
|
|
|
description: "Header 3",
|
|
|
|
inherits: "@budibase/standard-components/text",
|
|
|
|
props: {
|
|
|
|
font: "12pt bold",
|
2019-10-10 07:18:02 +02:00
|
|
|
},
|
2020-02-03 10:24:25 +01:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "common/H4",
|
|
|
|
description: "Header 4",
|
|
|
|
inherits: "@budibase/standard-components/text",
|
|
|
|
props: {
|
|
|
|
font: "10pt bold",
|
2019-10-10 07:18:02 +02:00
|
|
|
},
|
2020-02-03 10:24:25 +01:00
|
|
|
},
|
2020-02-25 16:21:23 +01:00
|
|
|
]
|
2019-10-10 07:18:02 +02:00
|
|
|
|
2020-02-25 16:21:23 +01:00
|
|
|
const forms = ({ records, indexes }) => [...headers(), ...records.map(root)]
|
2019-10-07 07:03:41 +02:00
|
|
|
|
|
|
|
const root = record => ({
|
2020-02-03 10:24:25 +01:00
|
|
|
name: `${record.name} Form`,
|
|
|
|
description: `All fields on record '${record.nodeKey()}' `,
|
|
|
|
inherits: "@budibase/standard-components/stackpanel",
|
|
|
|
props: {
|
|
|
|
direction: "vertical",
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
control: {
|
|
|
|
_component: "common/H1",
|
|
|
|
value: `Edit ${record.name}`,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
form(record),
|
|
|
|
saveCancelButtons(record),
|
|
|
|
],
|
|
|
|
},
|
2020-02-25 16:21:23 +01:00
|
|
|
})
|
2019-10-07 07:03:41 +02:00
|
|
|
|
|
|
|
const form = record => ({
|
2020-02-03 10:24:25 +01:00
|
|
|
control: {
|
|
|
|
_component: "@budibase/standard-components/form",
|
|
|
|
formControls: record.fields.map(f => ({
|
|
|
|
label: f.label,
|
|
|
|
control: {
|
|
|
|
_component: "@budibase/standard-components/textbox",
|
|
|
|
value: {
|
|
|
|
"##bbstate": `current${record.name}.${f.name}`,
|
|
|
|
"##bbsource": "store",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
})),
|
|
|
|
},
|
2020-02-25 16:21:23 +01:00
|
|
|
})
|
2020-02-03 10:24:25 +01:00
|
|
|
|
|
|
|
const saveCancelButtons = record => ({
|
|
|
|
control: {
|
|
|
|
_component: "@budibase/standard-components/stackpanel",
|
|
|
|
direction: "horizontal",
|
|
|
|
children: [
|
|
|
|
paddedPanelForButton({
|
|
|
|
_component: "common/Primary Button",
|
|
|
|
contentText: `Save ${record.name}`,
|
|
|
|
onClick: [
|
|
|
|
{
|
|
|
|
"##eventHandlerType": "Save Record",
|
|
|
|
parameters: {
|
|
|
|
statePath: `current${record.name}`,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
paddedPanelForButton({
|
|
|
|
_component: "common/Secondary Button",
|
|
|
|
contentText: `Cancel`,
|
|
|
|
onClick: [
|
|
|
|
{
|
|
|
|
"##eventHandlerType": "Save Record",
|
|
|
|
parameters: {
|
|
|
|
statePath: `current${record.name}`,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
},
|
2020-02-25 16:21:23 +01:00
|
|
|
})
|
2020-02-03 10:24:25 +01:00
|
|
|
|
|
|
|
const paddedPanelForButton = button => ({
|
|
|
|
control: {
|
|
|
|
_component: "@budibase/standard-components/panel",
|
|
|
|
padding: "20px",
|
|
|
|
component: button,
|
|
|
|
},
|
2020-02-25 16:21:23 +01:00
|
|
|
})
|
2020-02-03 10:24:25 +01:00
|
|
|
|
|
|
|
const indexTables = ({ indexes, helpers }) =>
|
|
|
|
indexes
|
|
|
|
.filter(i => i.parent().type === "root")
|
2020-02-25 16:21:23 +01:00
|
|
|
.map(i => indexTable(i, helpers))
|
2019-10-07 07:03:41 +02:00
|
|
|
|
|
|
|
const indexTableProps = (index, helpers) => ({
|
2020-02-03 10:24:25 +01:00
|
|
|
data: {
|
|
|
|
"##bbstate": index.nodeKey(),
|
|
|
|
"##bbsource": "store",
|
|
|
|
},
|
|
|
|
columns: helpers.indexSchema(index).map(column),
|
2020-02-25 16:21:23 +01:00
|
|
|
})
|
2019-10-07 07:03:41 +02:00
|
|
|
|
|
|
|
const indexTable = (index, helpers) => ({
|
2020-02-03 10:24:25 +01:00
|
|
|
name: `tables/${index.name} Table`,
|
|
|
|
inherits: "@budibase/standard-components/table",
|
|
|
|
props: indexTableProps(index, helpers),
|
2020-02-25 16:21:23 +01:00
|
|
|
})
|
2020-02-03 10:24:25 +01:00
|
|
|
|
|
|
|
const column = col => ({
|
|
|
|
title: col.name,
|
|
|
|
value: {
|
|
|
|
"##bbstate": col.name,
|
|
|
|
"##bbsource": "context",
|
|
|
|
},
|
2020-02-25 16:21:23 +01:00
|
|
|
})
|
2020-02-03 10:24:25 +01:00
|
|
|
|
|
|
|
const nav = ({ records, indexes, helpers }) => [
|
|
|
|
{
|
|
|
|
name: "Application Root",
|
|
|
|
inherits: "@budibase/standard-components/nav",
|
|
|
|
props: {
|
|
|
|
items: indexes.filter(i => i.parent().type === "root").map(navItem),
|
|
|
|
selectedItem: {
|
|
|
|
"##bbstate": "selectedNav",
|
|
|
|
"##bbstatefallback": records[0].collectionName,
|
|
|
|
"##bbsource": "store",
|
|
|
|
},
|
2019-10-07 07:03:41 +02:00
|
|
|
},
|
2020-02-03 10:24:25 +01:00
|
|
|
},
|
|
|
|
...indexTables({ records, indexes, helpers }),
|
2020-02-25 16:21:23 +01:00
|
|
|
]
|
2019-10-07 07:03:41 +02:00
|
|
|
|
2020-02-03 10:24:25 +01:00
|
|
|
const navItem = index => ({
|
|
|
|
title: index.name,
|
|
|
|
component: {
|
|
|
|
_component: `tables/${index.name} Table`,
|
|
|
|
},
|
2020-02-25 16:21:23 +01:00
|
|
|
})
|
2019-10-07 07:03:41 +02:00
|
|
|
|
2020-02-03 10:24:25 +01:00
|
|
|
const app = params => {
|
|
|
|
return [...nav(params), ...forms(params)]
|
2020-02-25 16:21:23 +01:00
|
|
|
}
|
2019-10-07 07:03:41 +02:00
|
|
|
|
|
|
|
const buttons = () => [
|
2020-02-03 10:24:25 +01:00
|
|
|
{
|
|
|
|
name: "common/Primary Button",
|
|
|
|
description: "a styled button",
|
|
|
|
inherits: "@budibase/standard-components/button",
|
|
|
|
props: {
|
|
|
|
padding: "5px 7px",
|
|
|
|
border: "1px solid #EEE",
|
|
|
|
color: "#5F6368",
|
|
|
|
background: "##f2f2f2",
|
|
|
|
hoverColor: "black",
|
|
|
|
hoverBackground: "#cccccc",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "common/Secondary Button",
|
|
|
|
description: "a styled button",
|
|
|
|
inherits: "@budibase/standard-components/button",
|
|
|
|
props: {
|
|
|
|
padding: "5px 7px",
|
|
|
|
border: "1px solid #EEE",
|
|
|
|
color: "#5F6368",
|
|
|
|
background: "##f2f2f2",
|
|
|
|
hoverColor: "black",
|
|
|
|
hoverBackground: "#cccccc",
|
2019-10-07 07:03:41 +02:00
|
|
|
},
|
2020-02-03 10:24:25 +01:00
|
|
|
},
|
2020-02-25 16:21:23 +01:00
|
|
|
]
|
2019-10-07 07:03:41 +02:00
|
|
|
|
2020-02-25 16:21:23 +01:00
|
|
|
export { app, buttons, forms, headers, indexTables, nav }
|
2020-02-18 11:32:00 +01:00
|
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRvcnMvaGVhZGVyc0dlbmVyYXRvci5qcyIsIi4uL3NyYy9nZW5lcmF0b3JzL2Zvcm1zR2VuZXJhdG9yLmpzIiwiLi4vc3JjL2dlbmVyYXRvcnMvaW5kZXhUYWJsZXNHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9uYXZHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9hcHBHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9idXR0b25zR2VuZXJhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBoZWFkZXJzID0gKCkgPT4gW1xuICB7XG4gICAgbmFtZTogXCJjb21tb24vSDFcIixcbiAgICBkZXNjcmlwdGlvbjogXCJIZWFkZXIgMVwiLFxuICAgIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRcIixcbiAgICBwcm9wczoge1xuICAgICAgZm9udDogXCIyMHB0XCIsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiY29tbW9uL0gyXCIsXG4gICAgZGVzY3JpcHRpb246IFwiSGVhZGVyIDJcIixcbiAgICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy90ZXh0XCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIGZvbnQ6IFwiMTVwdFwiLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImNvbW1vbi9IM1wiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciAzXCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxuICAgIHByb3BzOiB7XG4gICAgICBmb250OiBcIjEycHQgYm9sZFwiLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImNvbW1vbi9INFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciA0XCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxuICAgIHByb3BzOiB7XG4gICAgICBmb250OiBcIjEwcHQgYm9sZFwiLFxuICAgIH0sXG4gIH0sXG5dXG4iLCJpbXBvcnQgeyBoZWFkZXJzIH0gZnJvbSBcIi4vaGVhZGVyc0dlbmVyYXRvclwiXG5cbmV4cG9ydCBjb25zdCBmb3JtcyA9ICh7IHJlY29yZHMsIGluZGV4ZXMgfSkgPT4gW1xuICAuLi5oZWFkZXJzKHsgcmVjb3JkcywgaW5kZXhlcyB9KSxcbiAgLi4ucmVjb3Jkcy5tYXAocm9vdCksXG5dXG5cbmNvbnN0IHJvb3QgPSByZWNvcmQgPT4gKHtcbiAgbmFtZTogYCR7cmVjb3JkLm5hbWV9IEZvcm1gLFxuICBkZXNjcmlwdGlvbjogYEFsbCBmaWVsZHMgb24gcmVjb3JkICcke3JlY29yZC5ub2RlS2V5KCl9JyBgLFxuICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9zdGFja3BhbmVsXCIsXG4gIHByb3BzOiB7XG4gICAgZGlyZWN0aW9uOiBcInZlcnRpY2FsXCIsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgY29udHJvbDoge1xuICAgICAgICAgIF9jb21wb25lbnQ6IFwiY29tbW9uL0gxXCIsXG4gICAgICAgICAgdmFsdWU6IGBFZGl0ICR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBmb3JtKHJlY29yZCksXG4gICAgICBzYXZlQ2FuY2VsQnV0dG9ucyhyZWNvcmQpLFxuICAgIF0sXG4gIH0sXG59KVxuXG5jb25zdCBmb3JtID0gcmVjb3JkID0+ICh7XG4gIGNvbnRyb2w6IHtcbiAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL2Zvcm1cIixcbiAgICBmb3JtQ29udHJvbHM6IHJlY29yZC5maWVsZHMubWFwKGYgPT4gKHtcbiAgICAgIGxhYmVsOiBmLmxhYmVsLFxuICAgICAgY29udHJvbDoge1xuICAgICAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRib3hcIixcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBcIiMjYmJzdGF0ZVwiOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9LiR7Zi5uYW1lfWAsXG4gICAgICAgICAgXCIjI2Jic291cmNlXCI6IFwic3RvcmVcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpLFxuICB9LFxufSlcblxuY29uc3Qgc2F2ZUNhbmNlbEJ1dHRvbnMgPSByZWNvcmQgPT4gKHtcbiAgY29udHJvbDoge1xuICAgIF9jb21wb25lbnQ6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvc3RhY2twYW5lbFwiLFxuICAgIGRpcmVjdGlvbjogXCJob3Jpem9udGFsXCIsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHBhZGRlZFBhbmVsRm9yQnV0dG9uKHtcbiAgICAgICAgX2NvbXBvbmVudDogXCJjb21tb24vUHJpbWFyeSBCdXR0b25cIixcbiAgICAgICAgY29udGVudFRleHQ6IGBTYXZlICR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgb25DbGljazogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiIyNldmVudEhhbmRsZXJUeXBlXCI6IFwiU2F2ZSBSZWNvcmRcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgc3RhdGVQYXRoOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICAgcGFkZGVkUGFuZWxGb3JCdXR0b24oe1xuICAgICAgICBfY29tcG9uZW50OiBcImNvbW1vbi9TZWNvbmRhcnkgQnV0dG9uXCIsXG4gICAgICAgIGNvbnRlbnRUZXh0OiBgQ2FuY2VsYCxcbiAgICAgICAgb25DbGljazogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiIyNldmVudEhhbmRsZXJUeXBlXCI6IFwiU2F2ZSBSZWNvcmRcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgc3RhdGVQYXRoOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIF0sXG4gIH0sXG59KVxuXG5jb25zdCBwYWRkZWRQYW5lbEZvckJ1dHRvbiA9IGJ1dHRvbiA9PiAoe1xuICBjb250cm9sOiB7XG4gICAgX2NvbXBvbmVudDogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9wYW5lbFwiLFxuICAgIHB
|