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", }, }, { name: "common/H3", description: "Header 3", inherits: "@budibase/standard-components/text", props: { font: "12pt bold", }, }, { name: "common/H4", description: "Header 4", inherits: "@budibase/standard-components/text", props: { font: "10pt bold", }, }, ]; const forms = ({ records, indexes }) => [ ...headers(), ...records.map(root), ]; 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), ], }, }); 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)); const indexTableProps = (index, helpers) => ({ data: { "##bbstate": index.nodeKey(), "##bbsource": "store", }, columns: helpers.indexSchema(index).map(column), }); 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", }, }, }, ...indexTables({ records, indexes, helpers }), ]; const navItem = index => ({ title: index.name, component: { _component: `tables/${index.name} Table`, }, }); const app = params => { return [...nav(params), ...forms(params)] }; 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", }, }, ]; export { app, buttons, forms, headers, indexTables, nav }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRvcnMvaGVhZGVyc0dlbmVyYXRvci5qcyIsIi4uL3NyYy9nZW5lcmF0b3JzL2Zvcm1zR2VuZXJhdG9yLmpzIiwiLi4vc3JjL2dlbmVyYXRvcnMvaW5kZXhUYWJsZXNHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9uYXZHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9hcHBHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9idXR0b25zR2VuZXJhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBoZWFkZXJzID0gKCkgPT4gW1xyXG4gIHtcclxuICAgIG5hbWU6IFwiY29tbW9uL0gxXCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJIZWFkZXIgMVwiLFxyXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxyXG4gICAgcHJvcHM6IHtcclxuICAgICAgZm9udDogXCIyMHB0XCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJjb21tb24vSDJcIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciAyXCIsXHJcbiAgICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy90ZXh0XCIsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICBmb250OiBcIjE1cHRcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcImNvbW1vbi9IM1wiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiSGVhZGVyIDNcIixcclxuICAgIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRcIixcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIGZvbnQ6IFwiMTJwdCBib2xkXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJjb21tb24vSDRcIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciA0XCIsXHJcbiAgICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy90ZXh0XCIsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICBmb250OiBcIjEwcHQgYm9sZFwiLFxyXG4gICAgfSxcclxuICB9LFxyXG5dXHJcbiIsImltcG9ydCB7IGhlYWRlcnMgfSBmcm9tIFwiLi9oZWFkZXJzR2VuZXJhdG9yXCJcclxuXHJcbmV4cG9ydCBjb25zdCBmb3JtcyA9ICh7IHJlY29yZHMsIGluZGV4ZXMgfSkgPT4gW1xyXG4gIC4uLmhlYWRlcnMoeyByZWNvcmRzLCBpbmRleGVzIH0pLFxyXG4gIC4uLnJlY29yZHMubWFwKHJvb3QpLFxyXG5dXHJcblxyXG5jb25zdCByb290ID0gcmVjb3JkID0+ICh7XHJcbiAgbmFtZTogYCR7cmVjb3JkLm5hbWV9IEZvcm1gLFxyXG4gIGRlc2NyaXB0aW9uOiBgQWxsIGZpZWxkcyBvbiByZWNvcmQgJyR7cmVjb3JkLm5vZGVLZXkoKX0nIGAsXHJcbiAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvc3RhY2twYW5lbFwiLFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaXJlY3Rpb246IFwidmVydGljYWxcIixcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBjb250cm9sOiB7XHJcbiAgICAgICAgICBfY29tcG9uZW50OiBcImNvbW1vbi9IMVwiLFxyXG4gICAgICAgICAgdmFsdWU6IGBFZGl0ICR7cmVjb3JkLm5hbWV9YCxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBmb3JtKHJlY29yZCksXHJcbiAgICAgIHNhdmVDYW5jZWxCdXR0b25zKHJlY29yZCksXHJcbiAgICBdLFxyXG4gIH0sXHJcbn0pXHJcblxyXG5jb25zdCBmb3JtID0gcmVjb3JkID0+ICh7XHJcbiAgY29udHJvbDoge1xyXG4gICAgX2NvbXBvbmVudDogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9mb3JtXCIsXHJcbiAgICBmb3JtQ29udHJvbHM6IHJlY29yZC5maWVsZHMubWFwKGYgPT4gKHtcclxuICAgICAgbGFiZWw6IGYubGFiZWwsXHJcbiAgICAgIGNvbnRyb2w6IHtcclxuICAgICAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRib3hcIixcclxuICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgXCIjI2Jic3RhdGVcIjogYGN1cnJlbnQke3JlY29yZC5uYW1lfS4ke2YubmFtZX1gLFxyXG4gICAgICAgICAgXCIjI2Jic291cmNlXCI6IFwic3RvcmVcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSkpLFxyXG4gIH0sXHJcbn0pXHJcblxyXG5jb25zdCBzYXZlQ2FuY2VsQnV0dG9ucyA9IHJlY29yZCA9PiAoe1xyXG4gIGNvbnRyb2w6IHtcclxuICAgIF9jb21wb25lbnQ6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvc3RhY2twYW5lbFwiLFxyXG4gICAgZGlyZWN0aW9uOiBcImhvcml6b250YWxcIixcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHBhZGRlZFBhbmVsRm9yQnV0dG9uKHtcclxuICAgICAgICBfY29tcG9uZW50OiBcImNvbW1vbi9QcmltYXJ5IEJ1dHRvblwiLFxyXG4gICAgICAgIGNvbnRlbnRUZXh0OiBgU2F2ZSAke3JlY29yZC5uYW1lfWAsXHJcbiAgICAgICAgb25DbGljazogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcIiMjZXZlbnRIYW5kbGVyVHlwZVwiOiBcIlNhdmUgUmVjb3JkXCIsXHJcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcclxuICAgICAgICAgICAgICBzdGF0ZVBhdGg6IGBjdXJyZW50JHtyZWNvcmQubmFtZX1gLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9KSxcclxuICAgICAgcGFkZGVkUGFuZWxGb3JCdXR0b24oe1xyXG4gICAgICAgIF9jb21wb25lbnQ6IFwiY29tbW9uL1NlY29uZGFyeSBCdXR0b25cIixcclxuICAgICAgICBjb250ZW50VGV4dDogYENhbmNlbGAsXHJcbiAgICAgICAgb25DbGljazogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcIiMjZXZlbnRIYW5kbGVyVHlwZVwiOiBcIlNhdmUgUmVjb3JkXCIsXHJcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcclxuICAgICAgICAgICAgICBzdGF0ZVBhdGg6IGBjdXJyZW50JHtyZWNvcmQubmFtZX1gLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9KSxcclxuICAgIF0sXHJcbiAgfSxcclxufSlcclxuXHJcbmNvbnN0IHBhZGRlZFBhbmVsRm9yQnV0dG9uID0gYnV0dG9uID0+ICh7XHJcbiAgY29udHJvbDoge1xyXG4gICAgX2NvbXBvbmVudDogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9wYW5lbFwiLFxyXG4gICAgcGFkZGluZzogXCIyMHB4XCIsXHJcbiAgICBjb21wb25lbnQ6IGJ1dHRvbixcclxuICB9LFxyXG59KVxyXG4iLCJleHBvcnQgY29uc3QgaW5kZXhUYWJsZXMgPSAoeyBpbmRleGVzLCBoZWxwZXJzIH0pID0+XHJcbiAgaW5kZXhlc1xyXG4gICAgLmZpbHRlcihpID0+IGkucGFyZW50KCkudHlwZSA9PT0gXCJyb290XCIpXHJcbiAgICAubWFwKGkgPT4gaW5kZXhUYWJsZShpLCBoZWxwZXJzKSlcclxuXHJcbmV4cG9ydCBjb25zdCBpbmRleFRhYmxlUHJvcHMgPSAoaW5kZXgsIGhlbHBlcnMpID0+ICh7XHJcbiAgZGF0YToge1xyXG4gICAgXCIjI2Jic3RhdGVcIjogaW5kZXgubm9kZUtleSgpLFxyXG4gICAgXCIjI2Jic291cmNlXCI6IFwic3RvcmVcIixcclxuICB9LFxyXG4gIGNvbHVtbnM6IGhlbHBlcnMuaW5kZXhTY2hlbWEoaW5kZXgpLm1hcChjb2x1bW4pLFxyXG59KVxyXG5cclxuY29uc3QgaW5kZXhUYWJsZSA9IChpbmRleCwgaGVscGVycykgPT4gKHtcclxuICBuYW1lOiBgdGFibGVzLyR7aW5kZXgubmFtZX0gVGFibGVgLFxyXG4gIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RhYmxlXCIsXHJcbiAgcHJvcHM6IGluZGV4VGFibGVQcm9wcyhpbmRleCwgaGVscGVycyksXHJcbn0pXHJcblxyXG5jb25zdCBjb2x1bW4gPSBjb2wgPT4gKHtcclxuICB0aXRsZTogY29sLm5hbWUsXHJcbiAgdmFsdWU6IHtcclxuICAgIFwiIyNiYnN0YXRlXCI6IGNvbC5uYW1lLFxyXG4gICAgXCIjI2Jic291cmNlXCI6IFwiY29udGV4dFwiLFxyXG4gIH0sXHJcbn0pXHJcbiIsImltcG9ydCB7IGluZGV4VGFibGVzIH0gZnJvbSBcIi4vaW5kZXhUYWJsZXNHZW5lcmF0b3JcIlxyXG5cclxuZXhwb3J0IGNvbnN0IG5hdiA9ICh7IHJlY29yZHMsIGluZGV4ZXMsIGhlbHBlcnMgfSkgPT4gW1xyXG4gIHtcclxuICAgIG5hbWU6IFwiQXBwbGljYXRpb24gUm9vdFwiLFxyXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvbmF2XCIsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICBpdGVtczogaW5kZXhlcy5maWx0ZXIoaSA9PiBpLnBhcmVudCgpLnR5cGUgPT09IFwicm9vdFwiKS5tYXAobmF2SXRlbSksXHJcbiAgICAgIHNlbGVjdGVkSXRlbToge1xyXG4gICAgICAgIFwiIyNiYnN0YXRlXCI6IFwic2VsZWN0ZWROYXZcIixcclxuICAgICAgICBcIiMjYmJzdGF0ZWZhbGxiYWNrXCI6IHJlY29yZHNbMF0uY29sbGVjdGlvbk5hbWUsXHJcbiAgICAgICAgXCIjI2Jic291cmNlXCI6IFwic3RvcmVcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICAuLi5pbmRleFRhYmxlcyh7IHJlY29yZHMsIGluZGV4ZXMsIGhlbHBlcnMgfSksXHJcbl1cclxuXHJcbmV4cG9ydCBjb25zdCBuYXZJdGVtID0gaW5kZXggPT4gKHtcclxuICB0aXRsZTogaW5kZXgubmFtZSxcclxuICBjb21wb25lbnQ6IHtcclxuICAgIF9jb21wb25lbnQ6IGB0YWJsZXMvJHtpbmRleC5uYW1lfSBUYWJsZWAsXHJcbiAgfSxcclxufSlcclxuIiwiaW1wb3J0IHsgZm9ybXMgfSBmcm9tIFwiLi9mb3Jtc0dlbmVyYXRvclwiXHJcbmltcG9ydCB7IG5hdiB9IGZyb20gXCIuL25hdkdlbmVyYXRvclwiXHJcblxyXG5leHBvcnQgY29uc3QgYXBwID0gcGFyYW1zID0+IHtcclxuICByZXR1cm4gWy4uLm5hdihwYXJhbXMpLCAuLi5mb3JtcyhwYXJhbXMpXVxyXG59XHJcbiIsImV4cG9ydCBjb25zdCBidXR0b25zID0gKCkgPT4gW1xyXG4gIHtcclxuICAgIG5hbWU6IFwiY29tbW9uL1ByaW1hcnkgQnV0dG9uXCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJhIHN0eWxlZCBidXR0b25cIixcclxuICAgIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL2J1dHRvblwiLFxyXG4gICAgcHJvcHM6IHtcclxuICAgICAgcGFkZGluZzogXCI1cHggN3B4XCIsXHJcbiAgICAgIGJvcmRlcjogXCIxcHggc29saWQgI0VFRVwiLFxyXG4gICAgICBjb2xvcjogXCIjNUY2MzY4XCIsXHJcbiAgICAgIGJhY2tncm91bmQ6IFwiIyNmMmYyZjJcIixcclxuICAgICAgaG92ZXJDb2xvcjogXCJibGFja1wiLFxyXG4gICAgICBob3ZlckJhY2tncm91bmQ6IFwiI2NjY2NjY1wiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6IFwiY29tbW9uL1NlY29uZGFyeSBCdXR0b25cIixcclxuICAgIGRlc2NyaXB0aW9uOiBcImEgc3R5bGVkIGJ1dHRvblwiLFxyXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvYnV0dG9uXCIsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICBwYWRkaW5nOiBcIjVweCA3cHhcIixcclxuICAgICAgYm9yZGVyOiBcIjFweCBzb2xpZCAjRUVFXCIsXHJcbiAgICAgIGNvbG9yOiBcIiM1RjYzNjhcIixcclxuICAgICAgYmFja2dyb3VuZDogXCIjI2YyZjJmMlwiLFxyXG4gICAgICBob3ZlckNvbG9yOiBcImJsYWNrXCIsXHJcbiAgICAgIGhvdmVyQmFja2dyb3VuZDogXCIjY2NjY2NjXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbl1cclxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZLE1BQUMsT0FBTyxHQUFHLE1BQU07RUFDM0I7SUFDRSxJQUFJLEVBQUUsV0FBVztJQUNqQixXQUFXLEVBQUUsVUFBVTtJQUN2QixRQUFRLEVBQUUsb0NBQW9DO0lBQzlDLEtBQUssRUFBRTtNQUNMLElBQUksRUFBRSxNQUFNO0tBQ2I7R0FDRjtFQUNEO0lBQ0UsSUFBSSxFQUFFLFdBQVc7SUFDakIsV0FBVyxFQUFFLFVBQVU7SUFDdkIsUUFBUSxFQUFFLG9DQUFvQztJQUM5QyxLQUFLLEVBQUU7TUFDTCxJQUFJLEVBQUUsTUFBTTtLQUNiO0dBQ0Y7RUFDRDtJQUNFLElBQUksRUFBRSxXQUFXO0lBQ2pCLFdBQVcsRUFBRSxVQUFVO0lBQ3ZCLFFBQVEsRUFBRSxvQ0FBb0M7SUFDOUMsS0FBSyxFQUFFO01BQ0wsSUFBSSxFQUFFLFdBQVc7S0FDbEI7R0FDRjtFQUNEO0lBQ0UsSUFBSSxFQUFFLFdBQVc7SUFDakIsV0FBVyxFQUFFLFVBQVU7SUFDdkIsUUFBUSxFQUFFLG9DQUFvQztJQUM5QyxLQUFLLEVBQUU7TUFDTCxJQUFJLEVBQUUsV0FBVztLQUNsQjtHQUNGO0NBQ0Y7O0FDL0JXLE1BQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxPQUFP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