1
0
Fork 0
mirror of synced 2024-07-14 18:55:45 +12:00
budibase/packages/standard-components/dist/generators.js

202 lines
17 KiB
JavaScript
Raw Normal View History

2019-10-10 18:18:02 +13:00
const headers = () => [
{
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 18:18:02 +13:00
},
},
{
name: "common/H3",
description: "Header 3",
inherits: "@budibase/standard-components/text",
props: {
font: "12pt bold",
2019-10-10 18:18:02 +13:00
},
},
{
name: "common/H4",
description: "Header 4",
inherits: "@budibase/standard-components/text",
props: {
font: "10pt bold",
2019-10-10 18:18:02 +13:00
},
},
];
2019-10-10 18:18:02 +13:00
const forms = ({ records, indexes }) => [
...headers(),
...records.map(root),
];
2019-10-07 18:03:41 +13:00
const root = record => ({
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),
],
},
});
2019-10-07 18:03:41 +13:00
const form = record => ({
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",
},
},
})),
},
});
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}`,
},
},
],
}),
],
},
});
const paddedPanelForButton = button => ({
control: {
_component: "@budibase/standard-components/panel",
padding: "20px",
component: button,
},
});
const indexTables = ({ indexes, helpers }) =>
indexes
.filter(i => i.parent().type === "root")
.map(i => indexTable(i, helpers));
2019-10-07 18:03:41 +13:00
const indexTableProps = (index, helpers) => ({
data: {
"##bbstate": index.nodeKey(),
"##bbsource": "store",
},
columns: helpers.indexSchema(index).map(column),
});
2019-10-07 18:03:41 +13:00
const indexTable = (index, helpers) => ({
name: `tables/${index.name} Table`,
inherits: "@budibase/standard-components/table",
props: indexTableProps(index, helpers),
});
const column = col => ({
title: col.name,
value: {
"##bbstate": col.name,
"##bbsource": "context",
},
});
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 18:03:41 +13:00
},
},
...indexTables({ records, indexes, helpers }),
];
2019-10-07 18:03:41 +13:00
const navItem = index => ({
title: index.name,
component: {
_component: `tables/${index.name} Table`,
},
});
2019-10-07 18:03:41 +13:00
const app = params => {
return [...nav(params), ...forms(params)]
};
2019-10-07 18:03:41 +13:00
const buttons = () => [
{
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 18:03:41 +13:00
},
},
];
2019-10-07 18:03:41 +13:00
export { app, buttons, forms, headers, indexTables, nav };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRvcnMvaGVhZGVyc0dlbmVyYXRvci5qcyIsIi4uL3NyYy9nZW5lcmF0b3JzL2Zvcm1zR2VuZXJhdG9yLmpzIiwiLi4vc3JjL2dlbmVyYXRvcnMvaW5kZXhUYWJsZXNHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9uYXZHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9hcHBHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9idXR0b25zR2VuZXJhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBoZWFkZXJzID0gKCkgPT4gW1xyXG4gIHtcclxuICAgIG5hbWU6IFwiY29tbW9uL0gxXCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJIZWFkZXIgMVwiLFxyXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxyXG4gICAgcHJvcHM6IHtcclxuICAgICAgZm9udDogXCIyMHB0XCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJjb21tb24vSDJcIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciAyXCIsXHJcbiAgICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy90ZXh0XCIsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICBmb250OiBcIjE1cHRcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcImNvbW1vbi9IM1wiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiSGVhZGVyIDNcIixcclxuICAgIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRcIixcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIGZvbnQ6IFwiMTJwdCBib2xkXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJjb21tb24vSDRcIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciA0XCIsXHJcbiAgICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy90ZXh0XCIsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICBmb250OiBcIjEwcHQgYm9sZFwiLFxyXG4gICAgfSxcclxuICB9LFxyXG5dXHJcbiIsImltcG9ydCB7IGhlYWRlcnMgfSBmcm9tIFwiLi9oZWFkZXJzR2VuZXJhdG9yXCJcclxuXHJcbmV4cG9ydCBjb25zdCBmb3JtcyA9ICh7IHJlY29yZHMsIGluZGV4ZXMgfSkgPT4gW1xyXG4gIC4uLmhlYWRlcnMoeyByZWNvcmRzLCBpbmRleGVzIH0pLFxyXG4gIC4uLnJlY29yZHMubWFwKHJvb3QpLFxyXG5dXHJcblxyXG5jb25zdCByb290ID0gcmVjb3JkID0+ICh7XHJcbiAgbmFtZTogYCR7cmVjb3JkLm5hbWV9IEZvcm1gLFxyXG4gIGRlc2NyaXB0aW9uOiBgQWxsIGZpZWxkcyBvbiByZWNvcmQgJyR7cmVjb3JkLm5vZGVLZXkoKX0nIGAsXHJcbiAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvc3RhY2twYW5lbFwiLFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaXJlY3Rpb246IFwidmVydGljYWxcIixcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBjb250cm9sOiB7XHJcbiAgICAgICAgICBfY29tcG9uZW50OiBcImNvbW1vbi9IMVwiLFxyXG4gICAgICAgICAgdmFsdWU6IGBFZGl0ICR7cmVjb3JkLm5hbWV9YCxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBmb3JtKHJlY29yZCksXHJcbiAgICAgIHNhdmVDYW5jZWxCdXR0b25zKHJlY29yZCksXHJcbiAgICBdLFxyXG4gIH0sXHJcbn0pXHJcblxyXG5jb25zdCBmb3JtID0gcmVjb3JkID0+ICh7XHJcbiAgY29udHJvbDoge1xyXG4gICAgX2NvbXBvbmVudDogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9mb3JtXCIsXHJcbiAgICBmb3JtQ29udHJvbHM6IHJlY29yZC5maWVsZHMubWFwKGYgPT4gKHtcclxuICAgICAgbGFiZWw6IGYubGFiZWwsXHJcbiAgICAgIGNvbnRyb2w6IHtcclxuICAgICAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRib3hcIixcclxuICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgXCIjI2Jic3RhdGVcIjogYGN1cnJlbnQke3JlY29yZC5uYW1lfS4ke2YubmFtZX1gLFxyXG4gICAgICAgICAgXCIjI2Jic291cmNlXCI6IFwic3RvcmVcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSkpLFxyXG4gIH0sXHJcbn0pXHJcblxyXG5jb25zdCBzYXZlQ2FuY2VsQnV0dG9ucyA9IHJlY29yZCA9PiAoe1xyXG4gIGNvbnRyb2w6IHtcclxuICAgIF9jb21wb25lbnQ6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvc3RhY2twYW5lbFwiLFxyXG4gICAgZGlyZWN0aW9uOiBcImhvcml6b250YWxcIixcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHBhZGRlZFBhbmVsRm9yQnV0dG9uKHtcclxuICAgICAgICBfY29tcG9uZW50OiBcImNvbW1vbi9QcmltYXJ5IEJ1dHRvblwiLFxyXG4gICAgICAgIGNvbnRlbnRUZXh0OiBgU2F2ZSAke3JlY29yZC5uYW1lfWAsXHJcbiAgICAgICAgb25DbGljazogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcIiMjZXZlbnRIYW5kbGVyVHlwZVwiOiBcIlNhdmUgUmVjb3JkXCIsXHJcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcclxuICAgICAgICAgICAgICBzdGF0ZVBhdGg6IGBjdXJyZW50JHtyZWNvcmQubmFtZX1gLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9KSxcclxuICAgICAgcGFkZGVkUGFuZWxGb3JCdXR0b24oe1xyXG4gICAgICAgIF9jb21wb25lbnQ6IFwiY29tbW9uL1NlY29uZGFyeSBCdXR0b25cIixcclxuICAgICAgICBjb250ZW50VGV4dDogYENhbmNlbGAsXHJcbiAgICAgICAgb25DbGljazogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcIiMjZXZlbnRIYW5kbGVyVHlwZVwiOiBcIlNhdmUgUmVjb3JkXCIsXHJcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcclxuICAgICAgICAgICAgICBzdGF0ZVBhdGg6IGBjdXJyZW50JHtyZWNvcmQubmF