@budibase/standard-components
Advanced tools
Comparing version 0.0.16 to 0.0.17
{ | ||
"_lib": "./dist/index.js", | ||
"_generators": { | ||
"_lib": "./dist/generators.js", | ||
"app": { | ||
"name": "App", | ||
"description": "Generate app based on your backend" | ||
}, | ||
"forms": { | ||
"name": "Forms", | ||
"description": "Generate forms, based on your records" | ||
}, | ||
"buttons": { | ||
"name": "Buttons", | ||
"description": "Generate some styled buttons" | ||
}, | ||
"headers": { | ||
"name": "Headers", | ||
"description": "Generate some styled headings" | ||
}, | ||
"nav": { | ||
"name": "Nav bar", | ||
"description": "Generate a nav bar, based n your root records" | ||
}, | ||
"indexTables": { | ||
"name": "Nav bar", | ||
"description": "Generate a table based on an index" | ||
"_templates" : { | ||
"saveRecordButton" : { | ||
"description": "Save record button", | ||
"component": "button" | ||
} | ||
@@ -46,3 +25,24 @@ }, | ||
}, | ||
"tags": ["layout"] | ||
"tags": ["layout"], | ||
"presets": { | ||
"primary": { | ||
"contentText": "Primary Button Preset", | ||
"color": "papayawhip", | ||
"padding": "20px", | ||
"background": "blue" | ||
}, | ||
"secondary": { | ||
"contentText": "Secondary Button Preset", | ||
"color": "rebeccapurple", | ||
"padding": "10px", | ||
"background": "#fff", | ||
"border": "1px solid red" | ||
}, | ||
"error": { | ||
"contentText": "ERROR", | ||
"color": "red", | ||
"padding": "10px", | ||
"border": "1px solid red" | ||
} | ||
} | ||
}, | ||
@@ -78,2 +78,3 @@ "login" : { | ||
}, | ||
"onChange": "event", | ||
"className": "string" | ||
@@ -84,18 +85,18 @@ }, | ||
"select" : { | ||
"name": "Input", | ||
"description": "An HTML input", | ||
"children": false, | ||
"name": "Select", | ||
"description": "An HTML <select> (dropdown)", | ||
"props" : { | ||
"value": "string", | ||
"options": { | ||
"type" : "array", | ||
"elementDefinition" : { | ||
"id":"string", | ||
"value":"string" | ||
} | ||
}, | ||
"className": "string" | ||
}, | ||
"tags": ["form"] | ||
} | ||
}, | ||
"option" : { | ||
"name": "Option", | ||
"description": "An HTML <option>, to be used with <select>", | ||
"children": false, | ||
"props" : { | ||
"value": "string", | ||
"text": "string" | ||
} | ||
}, | ||
"text": { | ||
@@ -106,3 +107,3 @@ "name": "Text", | ||
"props" : { | ||
"value": "string", | ||
"text": "string", | ||
"font": "string", | ||
@@ -123,2 +124,19 @@ "color": "string", | ||
] | ||
}, | ||
"formattingTag": { | ||
"type": "options", | ||
"default":"none", | ||
"options": [ | ||
"none", | ||
"<b> - bold", | ||
"<strong> - important", | ||
"<i> - italic", | ||
"<em> - emphasized", | ||
"<mark> - marked text", | ||
"<small> - small", | ||
"<del> - deleted", | ||
"<ins> - inserted", | ||
"<sub> - subscript", | ||
"<sup> - superscript" | ||
] | ||
} | ||
@@ -128,47 +146,69 @@ }, | ||
}, | ||
"nav": { | ||
"name": "Nav", | ||
"description": "A nav - a side bar of buttons that control the currently active component", | ||
"props" : { | ||
"navBarBackground": {"type" :"string", "default":"silver"}, | ||
"navBarBorder": "string", | ||
"navBarColor": {"type" :"string", "default":"black"}, | ||
"selectedItemBackground": {"type" :"string", "default":"white"}, | ||
"selectedItemColor": {"type" :"string", "default":"black"}, | ||
"selectedItemBorder": "string", | ||
"itemHoverBackground": {"type" :"string", "default":"gainsboro"}, | ||
"itemHoverColor": {"type" :"string", "default":"black"}, | ||
"selectedItem":"string", | ||
"hideNavBar":"bool" | ||
}, | ||
"tags": ["nav", "navigation", "sidebar"] | ||
"link": { | ||
"description": "an HTML anchor <a> tag", | ||
"props": { | ||
"url": "string", | ||
"openInNewTab": "bool", | ||
"text": "string", | ||
"color": "string", | ||
"hoverColor": "string", | ||
"underline": "bool", | ||
"fontSize": "string" | ||
} | ||
}, | ||
"table": { | ||
"name": "Table", | ||
"description": "An HTML table", | ||
"props" : { | ||
"data": "state", | ||
"columns": { | ||
"type": "array", | ||
"elementDefinition" : { | ||
"title": "string", | ||
"value": "string" | ||
} | ||
}, | ||
"onRowClick":"event", | ||
"tableClass": {"type":"string", "default":"table-default"}, | ||
"theadClass": {"type":"string", "default":"thead-default"}, | ||
"tbodyClass": {"type":"string", "default":"tbody-default"}, | ||
"trClass": {"type":"string", "default":"tr-default"}, | ||
"thClass": {"type":"string", "default":"th-default"} | ||
}, | ||
"tags": ["table"] | ||
"image": { | ||
"description": "an HTML <img> tag", | ||
"props": { | ||
"url": "string", | ||
"className": "string", | ||
"description": "string", | ||
"height": "string", | ||
"width": "string" | ||
} | ||
}, | ||
"div": { | ||
"name": "Div", | ||
"description": "An HTML div tag", | ||
"container": { | ||
"name": "Container", | ||
"description": "An element that contains and lays out other elements. e.g. <div>, <header> etc", | ||
"props" : { | ||
"className":"string", | ||
"onLoad": "event" | ||
"onLoad": "event", | ||
"type": { | ||
"type": "options", | ||
"options": [ | ||
"article", | ||
"aside", | ||
"details", | ||
"div", | ||
"firgure", | ||
"figcaption", | ||
"footer", | ||
"header", | ||
"main", | ||
"mark", | ||
"nav", | ||
"paragraph", | ||
"summary" | ||
], | ||
"default": "div" | ||
}, | ||
"backgroundColor": "string", | ||
"color": "string", | ||
"borderWidth": "string", | ||
"borderColor": "string", | ||
"borderStyle": { | ||
"type":"options", | ||
"options": [ | ||
"none", | ||
"solid", | ||
"dotted", | ||
"dashed", | ||
"double", | ||
"groove", | ||
"ridge", | ||
"inset", | ||
"outset" | ||
], | ||
"default": "none" | ||
} | ||
}, | ||
@@ -178,62 +218,29 @@ "container": true, | ||
}, | ||
"h1": { | ||
"importPath": "h1", | ||
"name": "H1", | ||
"description": "An HTML H1 tag", | ||
"heading": { | ||
"name": "Heading", | ||
"description": "An HTML H1 - H6 tag", | ||
"props" : { | ||
"text": "string", | ||
"className":"string" | ||
"className":"string", | ||
"type": { | ||
"type": "options", | ||
"default": "h1", | ||
"options": ["h1","h2","h3","h4","h5","h6"] | ||
} | ||
}, | ||
"tags": [] | ||
}, | ||
"h2": { | ||
"importPath": "h2", | ||
"name": "H2", | ||
"description": "An HTML H2 tag", | ||
"thead": { | ||
"name": "TableHead", | ||
"description": "an HTML <thead> tab", | ||
"props" : { | ||
"text": "string", | ||
"className":"string" | ||
}, | ||
"tags": [] | ||
} | ||
}, | ||
"h3": { | ||
"importPath": "h3", | ||
"name": "H3", | ||
"description": "An HTML H3 tag", | ||
"tbody": { | ||
"name": "TableBody", | ||
"description": "an HTML <tbody> tab", | ||
"props" : { | ||
"text": "string", | ||
"className":"string" | ||
}, | ||
"tags": [] | ||
}, | ||
"h4": { | ||
"importPath": "h4", | ||
"name": "H4", | ||
"description": "An HTML H4 tag", | ||
"props" : { | ||
"text": "string", | ||
"className":"string" | ||
}, | ||
"tags": [] | ||
}, | ||
"h5": { | ||
"importPath": "h5", | ||
"name": "H5", | ||
"description": "An HTML H5 tag", | ||
"props" : { | ||
"text": "string", | ||
"className":"string" | ||
}, | ||
"tags": ["div", "container", "layout"] | ||
}, | ||
"h6": { | ||
"importPath": "h6", | ||
"name": "H6", | ||
"description": "An HTML H6 tag", | ||
"props" : { | ||
"text": "string", | ||
"className":"string" | ||
}, | ||
"tags": [] | ||
} | ||
} | ||
} |
const headers = () => [ | ||
{ | ||
name: "common/H1", | ||
description: "Header 1", | ||
inherits: "@budibase/standard-components/text", | ||
props: { | ||
font: "20pt", | ||
} | ||
{ | ||
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/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/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", | ||
} | ||
} | ||
]; | ||
}, | ||
{ | ||
name: "common/H4", | ||
description: "Header 4", | ||
inherits: "@budibase/standard-components/text", | ||
props: { | ||
font: "10pt bold", | ||
}, | ||
}, | ||
] | ||
const forms = ({records, indexes}) => | ||
[...headers(), | ||
...records.map(root)]; | ||
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) | ||
] | ||
} | ||
}); | ||
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" | ||
} | ||
} | ||
})) | ||
} | ||
}); | ||
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 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 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 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) | ||
}); | ||
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) | ||
}); | ||
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 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" | ||
} | ||
}, | ||
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}) | ||
]; | ||
}, | ||
...indexTables({ records, indexes, helpers }), | ||
] | ||
const navItem = index => ({ | ||
title: index.name, | ||
component: { | ||
_component: `tables/${index.name} Table`, | ||
}, | ||
}) | ||
const navItem = (index) => ({ | ||
title: index.name, | ||
component : { | ||
_component: `tables/${index.name} Table` | ||
} | ||
}); | ||
const app = params => { | ||
return [...nav(params), ...forms(params)] | ||
} | ||
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/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" | ||
} | ||
} | ||
]; | ||
}, | ||
{ | ||
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRvcnMvaGVhZGVyc0dlbmVyYXRvci5qcyIsIi4uL3NyYy9nZW5lcmF0b3JzL2Zvcm1zR2VuZXJhdG9yLmpzIiwiLi4vc3JjL2dlbmVyYXRvcnMvaW5kZXhUYWJsZXNHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9uYXZHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9hcHBHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9idXR0b25zR2VuZXJhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBoZWFkZXJzID0gKCkgPT4gW1xuICAgIHtcbiAgICAgICAgbmFtZTogXCJjb21tb24vSDFcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSGVhZGVyIDFcIixcbiAgICAgICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgZm9udDogXCIyMHB0XCIsXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogXCJjb21tb24vSDJcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSGVhZGVyIDJcIixcbiAgICAgICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgZm9udDogXCIxNXB0XCIsXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogXCJjb21tb24vSDNcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSGVhZGVyIDNcIixcbiAgICAgICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgZm9udDogXCIxMnB0IGJvbGRcIixcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiBcImNvbW1vbi9INFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJIZWFkZXIgNFwiLFxuICAgICAgICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy90ZXh0XCIsXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBmb250OiBcIjEwcHQgYm9sZFwiLFxuICAgICAgICB9XG4gICAgfVxuXSIsImltcG9ydCB7aGVhZGVyc30gZnJvbSBcIi4vaGVhZGVyc0dlbmVyYXRvclwiO1xuXG5leHBvcnQgY29uc3QgZm9ybXMgPSAoe3JlY29yZHMsIGluZGV4ZXN9KSA9PiBcbiAgICBbLi4uaGVhZGVycyh7cmVjb3JkcywgaW5kZXhlc30pLFxuICAgIC4uLnJlY29yZHMubWFwKHJvb3QpXTtcblxuY29uc3Qgcm9vdCA9IHJlY29yZCA9PiAoe1xuICAgIG5hbWU6IGAke3JlY29yZC5uYW1lfSBGb3JtYCxcbiAgICBkZXNjcmlwdGlvbjogYEFsbCBmaWVsZHMgb24gcmVjb3JkICcke3JlY29yZC5ub2RlS2V5KCl9JyBgLFxuICAgIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3N0YWNrcGFuZWxcIixcbiAgICBwcm9wczoge1xuICAgICAgICBkaXJlY3Rpb246IFwidmVydGljYWxcIixcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb250cm9sOiB7XG4gICAgICAgICAgICAgICAgICAgIF9jb21wb25lbnQ6IFwiY29tbW9uL0gxXCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBgRWRpdCAke3JlY29yZC5uYW1lfWAsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZvcm0ocmVjb3JkKSxcbiAgICAgICAgICAgIHNhdmVDYW5jZWxCdXR0b25zKHJlY29yZClcbiAgICAgICAgXVxuICAgIH1cbn0pIFxuXG5jb25zdCBmb3JtID0gcmVjb3JkID0+ICh7XG4gICAgY29udHJvbDoge1xuICAgICAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL2Zvcm1cIixcbiAgICAgICAgZm9ybUNvbnRyb2xzOiBcbiAgICAgICAgICAgIHJlY29yZC5maWVsZHMubWFwKGYgPT4gKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogZi5sYWJlbCxcbiAgICAgICAgICAgICAgICBjb250cm9sOiB7XG4gICAgICAgICAgICAgICAgICAgIF9jb21wb25lbnQ6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dGJveFwiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIjI2Jic3RhdGVcIjpgY3VycmVudCR7cmVjb3JkLm5hbWV9LiR7Zi5uYW1lfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiMjYmJzb3VyY2VcIjpcInN0b3JlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKVxuICAgIH1cbn0pXG5cbmNvbnN0IHNhdmVDYW5jZWxCdXR0b25zID0gKHJlY29yZCkgPT4gKHtcbiAgICBjb250cm9sOiB7XG4gICAgICAgIF9jb21wb25lbnQ6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvc3RhY2twYW5lbFwiLFxuICAgICAgICBkaXJlY3Rpb246IFwiaG9yaXpvbnRhbFwiLFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgcGFkZGVkUGFuZWxGb3JCdXR0b24oe1xuICAgICAgICAgICAgICAgIF9jb21wb25lbnQ6IFwiY29tbW9uL1ByaW1hcnkgQnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgY29udGVudFRleHQ6IGBTYXZlICR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiBbICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIiMjZXZlbnRIYW5kbGVyVHlwZVwiOiBcIlNhdmUgUmVjb3JkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVQYXRoOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgcGFkZGVkUGFuZWxGb3JCdXR0b24oe1xuICAgICAgICAgICAgICAgIF9jb21wb25lbnQ6IFwiY29tbW9uL1NlY29uZGFyeSBCdXR0b25cIixcbiAgICAgICAgICAgICAgICBjb250ZW50VGV4dDogYENhbmNlbGAsXG4gICAgICAgICAgICAgICAgb25DbGljazogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIiMjZXZlbnRIYW5kbGVyVHlwZVwiOiBcIlNhdmUgUmVjb3JkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVQYXRoOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9XG59KVxuXG5jb25zdCBwYWRkZWRQYW5lbEZvckJ1dHRvbiA9IChidXR0b24pID0+ICh7XG4gICAgY29udHJvbDoge1xuICAgICAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3BhbmVsXCIsXG4gICAgICAgIHBhZGRpbmc6IFwiMjBweFwiLFxuICAgICAgICBjb21wb25lbnQ6IGJ1dHRvblxuICAgIH1cbn0pO1xuXG4iLCJleHBvcnQgY29uc3QgaW5kZXhUYWJsZXMgPSAoe2luZGV4ZXMsIGhlbHBlcnN9KSA9PiBcbiAgICBpbmRleGVzLmZpbHRlcihpID0+IGkucGFyZW50KCkudHlwZSA9PT0gXCJyb290XCIpXG4gICAgICAgICAgIC5tYXAoaSA9PiBpbmRleFRhYmxlKGksIGhlbHBlcnMpKTtcblxuZXhwb3J0IGNvbnN0IGluZGV4VGFibGVQcm9wcyA9IChpbmRleCwgaGVscGVycykgPT4gKHtcbiAgICBkYXRhOiB7XG4gICAgICAgIFwiIyNiYnN0YXRlXCI6aW5kZXgubm9kZUtleSgpLFxuICAgICAgICBcIiMjYmJzb3VyY2VcIjpcInN0b3JlXCJcbiAgICB9LFxuICAgIGNvbHVtbnM6IGhlbHBlcnMuaW5kZXhTY2hlbWEoaW5kZXgpLm1hcChjb2x1bW4pXG59KTtcblxuY29uc3QgaW5kZXhUYWJsZSA9IChpbmRleCwgaGVscGVycykgPT4gKHtcbiAgICBuYW1lOiBgdGFibGVzLyR7aW5kZXgubmFtZX0gVGFibGVgLFxuICAgIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RhYmxlXCIsXG4gICAgcHJvcHM6IGluZGV4VGFibGVQcm9wcyhpbmRleCwgaGVscGVycylcbn0pO1xuXG5jb25zdCBjb2x1bW4gPSAoY29sKSA9PiAoe1xuICAgIHRpdGxlOiBjb2wubmFtZSxcbiAgICB2YWx1ZToge1xuICAgICAgICBcIiMjYmJzdGF0ZVwiOiBjb2wubmFtZSxcbiAgICAgICAgXCIjI2Jic291cmNlXCI6XCJjb250ZXh0XCJcbiAgICB9XG59KSIsImltcG9ydCB7aW5kZXhUYWJsZXN9IGZyb20gXCIuL2luZGV4VGFibGVzR2VuZXJhdG9yXCI7XG5cbmV4cG9ydCBjb25zdCBuYXYgPSAoe3JlY29yZHMsIGluZGV4ZXMsIGhlbHBlcnN9KSA9PiBbXG4gICAge1xuICAgICAgICBuYW1lOiBcIkFwcGxpY2F0aW9uIFJvb3RcIixcbiAgICAgICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvbmF2XCIsXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBpdGVtczogaW5kZXhlc1xuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGkgPT4gaS5wYXJlbnQoKS50eXBlID09PSBcInJvb3RcIilcbiAgICAgICAgICAgICAgICAgICAgLm1hcChuYXZJdGVtKSxcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbToge1xuICAgICAgICAgICAgICAgIFwiIyNiYnN0YXRlXCI6IFwic2VsZWN0ZWROYXZcIixcbiAgICAgICAgICAgICAgICBcIiMjYmJzdGF0ZWZhbGxiYWNrXCI6IHJlY29yZHNbMF0uY29sbGVjdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgXCIjI2Jic291cmNlXCI6XCJzdG9yZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSxcbiAgICAuLi5pbmRleFRhYmxlcyh7cmVjb3JkcywgaW5kZXhlcywgaGVscGVyc30pXG5dXG5cblxuZXhwb3J0IGNvbnN0IG5hdkl0ZW0gPSAoaW5kZXgpID0+ICh7XG4gICAgdGl0bGU6IGluZGV4Lm5hbWUsXG4gICAgY29tcG9uZW50IDoge1xuICAgICAgICBfY29tcG9uZW50OiBgdGFibGVzLyR7aW5kZXgubmFtZX0gVGFibGVgXG4gICAgfVxufSlcblxuIiwiaW1wb3J0IHsgZm9ybXMgfSBmcm9tIFwiLi9mb3Jtc0dlbmVyYXRvclwiO1xuaW1wb3J0IHsgbmF2IH0gZnJvbSBcIi4vbmF2R2VuZXJhdG9yXCI7XG5cbmV4cG9ydCBjb25zdCBhcHAgPSAocGFyYW1zKSA9PiB7XG5cbiAgICByZXR1cm4gW1xuICAgICAgICAuLi5uYXYocGFyYW1zKSxcbiAgICAgICAgLi4uZm9ybXMocGFyYW1zKVxuICAgIF07XG59XG5cbiIsImV4cG9ydCBjb25zdCBidXR0b25zID0gKCkgPT4gW1xuICAgIHtcbiAgICAgICAgbmFtZTogXCJjb21tb24vUHJpbWFyeSBCdXR0b25cIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiYSBzdHlsZWQgYnV0dG9uXCIsXG4gICAgICAgIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL2J1dHRvblwiLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgcGFkZGluZzogXCI1cHggN3B4XCIsXG4gICAgICAgICAgICBib3JkZXI6IFwiMXB4IHNvbGlkICNFRUVcIixcbiAgICAgICAgICAgIGNvbG9yOiBcIiM1RjYzNjhcIixcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IFwiIyNmMmYyZjJcIixcbiAgICAgICAgICAgIGhvdmVyQ29sb3I6IFwiYmxhY2tcIixcbiAgICAgICAgICAgIGhvdmVyQmFja2dyb3VuZDogXCIjY2NjY2NjXCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiBcImNvbW1vbi9TZWNvbmRhcnkgQnV0dG9uXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcImEgc3R5bGVkIGJ1dHRvblwiLFxuICAgICAgICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9idXR0b25cIixcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IFwiNXB4IDdweFwiLFxuICAgICAgICAgICAgYm9yZGVyOiBcIjFweCBzb2xpZCAjRUVFXCIsXG4gICAgICAgICAgICBjb2xvcjogXCIjNUY2MzY4XCIsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBcIiMjZjJmMmYyXCIsXG4gICAgICAgICAgICBob3ZlckNvbG9yOiBcImJsYWNrXCIsXG4gICAgICAgICAgICBob3ZlckJhY2tncm91bmQ6IFwiI2NjY2NjY1wiXG4gICAgICAgIH1cbiAgICB9XG5dIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZLE1BQUMsT0FBTyxHQUFHLE1BQU07QUFDN0IsSUFBSTtBQUNKLFFBQVEsSUFB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 | ||
export { app, buttons, forms, headers, indexTables, nav } | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRvcnMvaGVhZGVyc0dlbmVyYXRvci5qcyIsIi4uL3NyYy9nZW5lcmF0b3JzL2Zvcm1zR2VuZXJhdG9yLmpzIiwiLi4vc3JjL2dlbmVyYXRvcnMvaW5kZXhUYWJsZXNHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9uYXZHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9hcHBHZW5lcmF0b3IuanMiLCIuLi9zcmMvZ2VuZXJhdG9ycy9idXR0b25zR2VuZXJhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBoZWFkZXJzID0gKCkgPT4gW1xuICB7XG4gICAgbmFtZTogXCJjb21tb24vSDFcIixcbiAgICBkZXNjcmlwdGlvbjogXCJIZWFkZXIgMVwiLFxuICAgIGluaGVyaXRzOiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRcIixcbiAgICBwcm9wczoge1xuICAgICAgZm9udDogXCIyMHB0XCIsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiY29tbW9uL0gyXCIsXG4gICAgZGVzY3JpcHRpb246IFwiSGVhZGVyIDJcIixcbiAgICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy90ZXh0XCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIGZvbnQ6IFwiMTVwdFwiLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImNvbW1vbi9IM1wiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciAzXCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxuICAgIHByb3BzOiB7XG4gICAgICBmb250OiBcIjEycHQgYm9sZFwiLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImNvbW1vbi9INFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkhlYWRlciA0XCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGV4dFwiLFxuICAgIHByb3BzOiB7XG4gICAgICBmb250OiBcIjEwcHQgYm9sZFwiLFxuICAgIH0sXG4gIH0sXG5dXG4iLCJpbXBvcnQgeyBoZWFkZXJzIH0gZnJvbSBcIi4vaGVhZGVyc0dlbmVyYXRvclwiXG5cbmV4cG9ydCBjb25zdCBmb3JtcyA9ICh7IHJlY29yZHMsIGluZGV4ZXMgfSkgPT4gW1xuICAuLi5oZWFkZXJzKHsgcmVjb3JkcywgaW5kZXhlcyB9KSxcbiAgLi4ucmVjb3Jkcy5tYXAocm9vdCksXG5dXG5cbmNvbnN0IHJvb3QgPSByZWNvcmQgPT4gKHtcbiAgbmFtZTogYCR7cmVjb3JkLm5hbWV9IEZvcm1gLFxuICBkZXNjcmlwdGlvbjogYEFsbCBmaWVsZHMgb24gcmVjb3JkICcke3JlY29yZC5ub2RlS2V5KCl9JyBgLFxuICBpbmhlcml0czogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9zdGFja3BhbmVsXCIsXG4gIHByb3BzOiB7XG4gICAgZGlyZWN0aW9uOiBcInZlcnRpY2FsXCIsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgY29udHJvbDoge1xuICAgICAgICAgIF9jb21wb25lbnQ6IFwiY29tbW9uL0gxXCIsXG4gICAgICAgICAgdmFsdWU6IGBFZGl0ICR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBmb3JtKHJlY29yZCksXG4gICAgICBzYXZlQ2FuY2VsQnV0dG9ucyhyZWNvcmQpLFxuICAgIF0sXG4gIH0sXG59KVxuXG5jb25zdCBmb3JtID0gcmVjb3JkID0+ICh7XG4gIGNvbnRyb2w6IHtcbiAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL2Zvcm1cIixcbiAgICBmb3JtQ29udHJvbHM6IHJlY29yZC5maWVsZHMubWFwKGYgPT4gKHtcbiAgICAgIGxhYmVsOiBmLmxhYmVsLFxuICAgICAgY29udHJvbDoge1xuICAgICAgICBfY29tcG9uZW50OiBcIkBidWRpYmFzZS9zdGFuZGFyZC1jb21wb25lbnRzL3RleHRib3hcIixcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBcIiMjYmJzdGF0ZVwiOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9LiR7Zi5uYW1lfWAsXG4gICAgICAgICAgXCIjI2Jic291cmNlXCI6IFwic3RvcmVcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpLFxuICB9LFxufSlcblxuY29uc3Qgc2F2ZUNhbmNlbEJ1dHRvbnMgPSByZWNvcmQgPT4gKHtcbiAgY29udHJvbDoge1xuICAgIF9jb21wb25lbnQ6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvc3RhY2twYW5lbFwiLFxuICAgIGRpcmVjdGlvbjogXCJob3Jpem9udGFsXCIsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHBhZGRlZFBhbmVsRm9yQnV0dG9uKHtcbiAgICAgICAgX2NvbXBvbmVudDogXCJjb21tb24vUHJpbWFyeSBCdXR0b25cIixcbiAgICAgICAgY29udGVudFRleHQ6IGBTYXZlICR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgb25DbGljazogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiIyNldmVudEhhbmRsZXJUeXBlXCI6IFwiU2F2ZSBSZWNvcmRcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgc3RhdGVQYXRoOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICAgcGFkZGVkUGFuZWxGb3JCdXR0b24oe1xuICAgICAgICBfY29tcG9uZW50OiBcImNvbW1vbi9TZWNvbmRhcnkgQnV0dG9uXCIsXG4gICAgICAgIGNvbnRlbnRUZXh0OiBgQ2FuY2VsYCxcbiAgICAgICAgb25DbGljazogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiIyNldmVudEhhbmRsZXJUeXBlXCI6IFwiU2F2ZSBSZWNvcmRcIixcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgc3RhdGVQYXRoOiBgY3VycmVudCR7cmVjb3JkLm5hbWV9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIF0sXG4gIH0sXG59KVxuXG5jb25zdCBwYWRkZWRQYW5lbEZvckJ1dHRvbiA9IGJ1dHRvbiA9PiAoe1xuICBjb250cm9sOiB7XG4gICAgX2NvbXBvbmVudDogXCJAYnVkaWJhc2Uvc3RhbmRhcmQtY29tcG9uZW50cy9wYW5lbFwiLFxuICAgIHBhZGRpbmc6IFwiMjBweFwiLFxuICAgIGNvbXBvbmVudDogYnV0dG9uLFxuICB9LFxufSlcbiIsImV4cG9ydCBjb25zdCBpbmRleFRhYmxlcyA9ICh7IGluZGV4ZXMsIGhlbHBlcnMgfSkgPT5cbiAgaW5kZXhlc1xuICAgIC5maWx0ZXIoaSA9PiBpLnBhcmVudCgpLnR5cGUgPT09IFwicm9vdFwiKVxuICAgIC5tYXAoaSA9PiBpbmRleFRhYmxlKGksIGhlbHBlcnMpKVxuXG5leHBvcnQgY29uc3QgaW5kZXhUYWJsZVByb3BzID0gKGluZGV4LCBoZWxwZXJzKSA9PiAoe1xuICBkYXRhOiB7XG4gICAgXCIjI2Jic3RhdGVcIjogaW5kZXgubm9kZUtleSgpLFxuICAgIFwiIyNiYnNvdXJjZVwiOiBcInN0b3JlXCIsXG4gIH0sXG4gIGNvbHVtbnM6IGhlbHBlcnMuaW5kZXhTY2hlbWEoaW5kZXgpLm1hcChjb2x1bW4pLFxufSlcblxuY29uc3QgaW5kZXhUYWJsZSA9IChpbmRleCwgaGVscGVycykgPT4gKHtcbiAgbmFtZTogYHRhYmxlcy8ke2luZGV4Lm5hbWV9IFRhYmxlYCxcbiAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvdGFibGVcIixcbiAgcHJvcHM6IGluZGV4VGFibGVQcm9wcyhpbmRleCwgaGVscGVycyksXG59KVxuXG5jb25zdCBjb2x1bW4gPSBjb2wgPT4gKHtcbiAgdGl0bGU6IGNvbC5uYW1lLFxuICB2YWx1ZToge1xuICAgIFwiIyNiYnN0YXRlXCI6IGNvbC5uYW1lLFxuICAgIFwiIyNiYnNvdXJjZVwiOiBcImNvbnRleHRcIixcbiAgfSxcbn0pXG4iLCJpbXBvcnQgeyBpbmRleFRhYmxlcyB9IGZyb20gXCIuL2luZGV4VGFibGVzR2VuZXJhdG9yXCJcblxuZXhwb3J0IGNvbnN0IG5hdiA9ICh7IHJlY29yZHMsIGluZGV4ZXMsIGhlbHBlcnMgfSkgPT4gW1xuICB7XG4gICAgbmFtZTogXCJBcHBsaWNhdGlvbiBSb290XCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvbmF2XCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIGl0ZW1zOiBpbmRleGVzLmZpbHRlcihpID0+IGkucGFyZW50KCkudHlwZSA9PT0gXCJyb290XCIpLm1hcChuYXZJdGVtKSxcbiAgICAgIHNlbGVjdGVkSXRlbToge1xuICAgICAgICBcIiMjYmJzdGF0ZVwiOiBcInNlbGVjdGVkTmF2XCIsXG4gICAgICAgIFwiIyNiYnN0YXRlZmFsbGJhY2tcIjogcmVjb3Jkc1swXS5jb2xsZWN0aW9uTmFtZSxcbiAgICAgICAgXCIjI2Jic291cmNlXCI6IFwic3RvcmVcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgLi4uaW5kZXhUYWJsZXMoeyByZWNvcmRzLCBpbmRleGVzLCBoZWxwZXJzIH0pLFxuXVxuXG5leHBvcnQgY29uc3QgbmF2SXRlbSA9IGluZGV4ID0+ICh7XG4gIHRpdGxlOiBpbmRleC5uYW1lLFxuICBjb21wb25lbnQ6IHtcbiAgICBfY29tcG9uZW50OiBgdGFibGVzLyR7aW5kZXgubmFtZX0gVGFibGVgLFxuICB9LFxufSlcbiIsImltcG9ydCB7IGZvcm1zIH0gZnJvbSBcIi4vZm9ybXNHZW5lcmF0b3JcIlxuaW1wb3J0IHsgbmF2IH0gZnJvbSBcIi4vbmF2R2VuZXJhdG9yXCJcblxuZXhwb3J0IGNvbnN0IGFwcCA9IHBhcmFtcyA9PiB7XG4gIHJldHVybiBbLi4ubmF2KHBhcmFtcyksIC4uLmZvcm1zKHBhcmFtcyldXG59XG4iLCJleHBvcnQgY29uc3QgYnV0dG9ucyA9ICgpID0+IFtcbiAge1xuICAgIG5hbWU6IFwiY29tbW9uL1ByaW1hcnkgQnV0dG9uXCIsXG4gICAgZGVzY3JpcHRpb246IFwiYSBzdHlsZWQgYnV0dG9uXCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvYnV0dG9uXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIHBhZGRpbmc6IFwiNXB4IDdweFwiLFxuICAgICAgYm9yZGVyOiBcIjFweCBzb2xpZCAjRUVFXCIsXG4gICAgICBjb2xvcjogXCIjNUY2MzY4XCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcIiMjZjJmMmYyXCIsXG4gICAgICBob3ZlckNvbG9yOiBcImJsYWNrXCIsXG4gICAgICBob3ZlckJhY2tncm91bmQ6IFwiI2NjY2NjY1wiLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImNvbW1vbi9TZWNvbmRhcnkgQnV0dG9uXCIsXG4gICAgZGVzY3JpcHRpb246IFwiYSBzdHlsZWQgYnV0dG9uXCIsXG4gICAgaW5oZXJpdHM6IFwiQGJ1ZGliYXNlL3N0YW5kYXJkLWNvbXBvbmVudHMvYnV0dG9uXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIHBhZGRpbmc6IFwiNXB4IDdweFwiLFxuICAgICAgYm9yZGVyOiBcIjFweCBzb2xpZCAjRUVFXCIsXG4gICAgICBjb2xvcjogXCIjNUY2MzY4XCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcIiMjZjJmMmYyXCIsXG4gICAgICBob3ZlckNvbG9yOiBcImJsYWNrXCIsXG4gICAgICBob3ZlckJhY2tncm91bmQ6IFwiI2NjY2NjY1wiLFxuICAgIH0sXG4gIH0sXG5dXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVksTUFBQyxPQUFPLEdBQUcsTUFBTTtBQUM3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 |
@@ -7,3 +7,3 @@ { | ||
"scripts": { | ||
"build": "rollup -c && rollup -c rollup.generatorsconfig.js", | ||
"build": "rollup -c", | ||
"prepublishOnly": "npm run build", | ||
@@ -16,4 +16,5 @@ "testbuild": "rollup -w -c rollup.testconfig.js", | ||
"devDependencies": { | ||
"@budibase/client": "^0.0.16", | ||
"@budibase/client": "^0.0.17", | ||
"@nx-js/compiler-util": "^2.0.0", | ||
"bcryptjs": "2.4.3", | ||
"fs-extra": "^8.1.0", | ||
@@ -36,5 +37,5 @@ "lodash": "^4.17.15", | ||
], | ||
"version": "0.0.16", | ||
"version": "0.0.17", | ||
"license": "MIT", | ||
"gitHead": "115189f72a850bfb52b65ec61d932531bf327072" | ||
"gitHead": "f3dd412e7488b5e15a7e2a9112300ad09fd973fb" | ||
} |
@@ -1,1 +0,103 @@ | ||
window['##BUDIBASE_APPDEFINITION##'] = {"hierarchy":{"name":"root","type":"root","children":[{"name":"customer","type":"record","fields":[{"name":"name","type":"string","typeOptions":{"maxLength":1000,"values":null,"allowDeclaredValuesOnly":false},"label":"name","getInitialValue":"default","getUndefinedValue":"default"}],"children":[{"name":"invoiceyooo","type":"record","fields":[{"name":"amount","type":"number","typeOptions":{"minValue":99999999999,"maxValue":99999999999,"decimalPlaces":2},"label":"amount","getInitialValue":"default","getUndefinedValue":"default"}],"children":[],"validationRules":[],"nodeId":2,"indexes":[],"allidsShardFactor":1,"collectionName":"invoices","isSingle":false}],"validationRules":[],"nodeId":1,"indexes":[{"name":"customer_invoices","type":"index","map":"return {...record};","filter":"","indexType":"ancestor","getShardName":"","getSortKey":"record.id","aggregateGroups":[],"allowedRecordNodeIds":[2],"nodeId":5}],"allidsShardFactor":64,"collectionName":"customers","isSingle":false}],"pathMaps":[],"indexes":[{"name":"Yeo index","type":"index","map":"return {...record};","filter":"","indexType":"ancestor","getShardName":"","getSortKey":"record.id","aggregateGroups":[],"allowedRecordNodeIds":[1],"nodeId":4},{"name":"everyones_invoices","type":"index","map":"return {...record};","filter":"","indexType":"ancestor","getShardName":"","getSortKey":"record.id","aggregateGroups":[],"allowedRecordNodeIds":[2],"nodeId":6}],"nodeId":0},"componentLibraries":["budibase-standard-components"],"appRootPath":"/testApp2","props":{}} | ||
window["##BUDIBASE_APPDEFINITION##"] = { | ||
hierarchy: { | ||
name: "root", | ||
type: "root", | ||
children: [ | ||
{ | ||
name: "customer", | ||
type: "record", | ||
fields: [ | ||
{ | ||
name: "name", | ||
type: "string", | ||
typeOptions: { | ||
maxLength: 1000, | ||
values: null, | ||
allowDeclaredValuesOnly: false, | ||
}, | ||
label: "name", | ||
getInitialValue: "default", | ||
getUndefinedValue: "default", | ||
}, | ||
], | ||
children: [ | ||
{ | ||
name: "invoiceyooo", | ||
type: "record", | ||
fields: [ | ||
{ | ||
name: "amount", | ||
type: "number", | ||
typeOptions: { | ||
minValue: 99999999999, | ||
maxValue: 99999999999, | ||
decimalPlaces: 2, | ||
}, | ||
label: "amount", | ||
getInitialValue: "default", | ||
getUndefinedValue: "default", | ||
}, | ||
], | ||
children: [], | ||
validationRules: [], | ||
nodeId: 2, | ||
indexes: [], | ||
allidsShardFactor: 1, | ||
collectionName: "invoices", | ||
isSingle: false, | ||
}, | ||
], | ||
validationRules: [], | ||
nodeId: 1, | ||
indexes: [ | ||
{ | ||
name: "customer_invoices", | ||
type: "index", | ||
map: "return {...record};", | ||
filter: "", | ||
indexType: "ancestor", | ||
getShardName: "", | ||
getSortKey: "record.id", | ||
aggregateGroups: [], | ||
allowedRecordNodeIds: [2], | ||
nodeId: 5, | ||
}, | ||
], | ||
allidsShardFactor: 64, | ||
collectionName: "customers", | ||
isSingle: false, | ||
}, | ||
], | ||
pathMaps: [], | ||
indexes: [ | ||
{ | ||
name: "Yeo index", | ||
type: "index", | ||
map: "return {...record};", | ||
filter: "", | ||
indexType: "ancestor", | ||
getShardName: "", | ||
getSortKey: "record.id", | ||
aggregateGroups: [], | ||
allowedRecordNodeIds: [1], | ||
nodeId: 4, | ||
}, | ||
{ | ||
name: "everyones_invoices", | ||
type: "index", | ||
map: "return {...record};", | ||
filter: "", | ||
indexType: "ancestor", | ||
getShardName: "", | ||
getSortKey: "record.id", | ||
aggregateGroups: [], | ||
allowedRecordNodeIds: [2], | ||
nodeId: 6, | ||
}, | ||
], | ||
nodeId: 0, | ||
}, | ||
componentLibraries: ["budibase-standard-components"], | ||
appRootPath: "/testApp2", | ||
props: {}, | ||
} |
@@ -1,20 +0,20 @@ | ||
import svelte from 'rollup-plugin-svelte'; | ||
import resolve from 'rollup-plugin-node-resolve'; | ||
import svelte from "rollup-plugin-svelte" | ||
import resolve from "rollup-plugin-node-resolve" | ||
export default { | ||
input: 'src/index.js', | ||
output: [ | ||
{ | ||
file: "dist/index.js", | ||
format: 'esm', | ||
name:"budibaseStandardComponents", | ||
sourcemap: "inline" | ||
} | ||
], | ||
plugins: [ | ||
svelte({ | ||
hydratable:true | ||
}), | ||
resolve() | ||
] | ||
}; | ||
input: "src/index.js", | ||
output: [ | ||
{ | ||
file: "dist/index.js", | ||
format: "esm", | ||
name: "budibaseStandardComponents", | ||
sourcemap: "inline", | ||
}, | ||
], | ||
plugins: [ | ||
svelte({ | ||
hydratable: true, | ||
}), | ||
resolve(), | ||
], | ||
} |
@@ -1,89 +0,138 @@ | ||
import svelte from 'rollup-plugin-svelte'; | ||
import resolve from 'rollup-plugin-node-resolve'; | ||
import commonjs from 'rollup-plugin-commonjs'; | ||
import livereload from 'rollup-plugin-livereload'; | ||
import { terser } from 'rollup-plugin-terser'; | ||
import json from 'rollup-plugin-json'; | ||
import svelte from "rollup-plugin-svelte" | ||
import resolve from "rollup-plugin-node-resolve" | ||
import commonjs from "rollup-plugin-commonjs" | ||
import livereload from "rollup-plugin-livereload" | ||
import { terser } from "rollup-plugin-terser" | ||
import json from "rollup-plugin-json" | ||
const production = !process.env.ROLLUP_WATCH; | ||
const production = !process.env.ROLLUP_WATCH | ||
const lodash_fp_exports = [ | ||
"find", "isUndefined", "split", "max", | ||
"last", "union", "reduce", "isObject", | ||
"cloneDeep", "some", "isArray", "map", | ||
"filter", "keys", "isFunction", "isEmpty", | ||
"countBy", "join", "includes", "flatten", | ||
"constant", "first", "intersection", "take", | ||
"has", "mapValues", "isString", "isBoolean", | ||
"isNull", "isNumber", "isObjectLike", "isDate", | ||
"clone", "values", "keyBy", "isNaN", | ||
"isInteger", "toNumber"]; | ||
"find", | ||
"isUndefined", | ||
"split", | ||
"max", | ||
"last", | ||
"union", | ||
"reduce", | ||
"isObject", | ||
"cloneDeep", | ||
"some", | ||
"isArray", | ||
"map", | ||
"filter", | ||
"keys", | ||
"isFunction", | ||
"isEmpty", | ||
"countBy", | ||
"join", | ||
"includes", | ||
"flatten", | ||
"constant", | ||
"first", | ||
"intersection", | ||
"take", | ||
"has", | ||
"mapValues", | ||
"isString", | ||
"isBoolean", | ||
"isNull", | ||
"isNumber", | ||
"isObjectLike", | ||
"isDate", | ||
"clone", | ||
"values", | ||
"keyBy", | ||
"isNaN", | ||
"isInteger", | ||
"toNumber", | ||
] | ||
const lodash_exports = [ | ||
"flow", "head", "find","each", | ||
"tail", "findIndex", "startsWith", | ||
"dropRight", "takeRight", | ||
"trim", "split", "replace", | ||
"merge", "assign"]; | ||
"flow", | ||
"head", | ||
"find", | ||
"each", | ||
"tail", | ||
"findIndex", | ||
"startsWith", | ||
"dropRight", | ||
"takeRight", | ||
"trim", | ||
"split", | ||
"replace", | ||
"merge", | ||
"assign", | ||
] | ||
const coreExternal = [ | ||
"lodash", "lodash/fp", "date-fns", | ||
"lunr", "safe-buffer", "shortid", | ||
"@nx-js/compiler-util" | ||
]; | ||
"lodash", | ||
"lodash/fp", | ||
"date-fns", | ||
"lunr", | ||
"safe-buffer", | ||
"shortid", | ||
"@nx-js/compiler-util", | ||
"bcryptjs", | ||
] | ||
export default { | ||
input: 'src/Test/testMain.js', | ||
output: { | ||
sourcemap: true, | ||
format: 'iife', | ||
name: 'app', | ||
file: 'public/bundle.js' | ||
}, | ||
plugins: [ | ||
svelte({ | ||
// enable run-time checks when not in production | ||
dev: !production, | ||
// we'll extract any component CSS out into | ||
// a separate file — better for performance | ||
css: css => { | ||
css.write('public/bundle.css'); | ||
}, | ||
hydratable:true | ||
}), | ||
input: "src/Test/testMain.js", | ||
output: { | ||
sourcemap: true, | ||
format: "iife", | ||
name: "app", | ||
file: "public/bundle.js", | ||
globals: { | ||
crypto: "crypto", | ||
}, | ||
}, | ||
plugins: [ | ||
svelte({ | ||
// enable run-time checks when not in production | ||
dev: !production, | ||
// we'll extract any component CSS out into | ||
// a separate file — better for performance | ||
css: css => { | ||
css.write("public/bundle.css") | ||
}, | ||
// If you have external dependencies installed from | ||
// npm, you'll most likely need these plugins. In | ||
// some cases you'll need additional configuration — | ||
// consult the documentation for details: | ||
// https://github.com/rollup/rollup-plugin-commonjs | ||
resolve({ | ||
browser: true, | ||
dedupe: importee => { | ||
return importee === 'svelte' | ||
|| importee.startsWith('svelte/') | ||
|| coreExternal.includes(importee); | ||
} | ||
}), | ||
commonjs({ | ||
namedExports: { | ||
"lodash/fp": lodash_fp_exports, | ||
"lodash":lodash_exports, | ||
"shortid": ["generate"] | ||
} | ||
}), | ||
json(), | ||
hydratable: true, | ||
}), | ||
// Watch the `public` directory and refresh the | ||
// browser on changes when not in production | ||
!production && livereload('public'), | ||
// If you have external dependencies installed from | ||
// npm, you'll most likely need these plugins. In | ||
// some cases you'll need additional configuration — | ||
// consult the documentation for details: | ||
// https://github.com/rollup/rollup-plugin-commonjs | ||
resolve({ | ||
browser: true, | ||
dedupe: importee => { | ||
return ( | ||
importee === "svelte" || | ||
importee.startsWith("svelte/") || | ||
coreExternal.includes(importee) | ||
) | ||
}, | ||
}), | ||
commonjs({ | ||
namedExports: { | ||
"lodash/fp": lodash_fp_exports, | ||
lodash: lodash_exports, | ||
shortid: ["generate"], | ||
}, | ||
}), | ||
json(), | ||
// If we're building for production (npm run build | ||
// instead of npm run dev), minify | ||
production && terser() | ||
], | ||
watch: { | ||
clearScreen: false | ||
} | ||
}; | ||
// Watch the `public` directory and refresh the | ||
// browser on changes when not in production | ||
!production && livereload("public"), | ||
// If we're building for production (npm run build | ||
// instead of npm run dev), minify | ||
production && terser(), | ||
], | ||
watch: { | ||
clearScreen: false, | ||
}, | ||
} |
@@ -1,63 +0,88 @@ | ||
const { readdir, stat, copyFile } = require("fs-extra"); | ||
const { constants } = require("fs"); | ||
const { join, basename } = require("path"); | ||
const serverConfig = require("../../server/config")(); | ||
const { readdir, stat, copyFile, ensureDir } = require("fs-extra") | ||
const { constants } = require("fs") | ||
const { join, basename } = require("path") | ||
const serverConfig = require("../../server/config")() | ||
const packagesFolder = ".."; | ||
const packagesFolder = ".." | ||
const jsFile = dir => join(dir, "index.js"); | ||
const generatorsFile = dir => join(dir, "generators.js"); | ||
const jsMapFile = dir => join(dir, "index.js.map"); | ||
const sourceJs = jsFile("dist"); | ||
const sourceJsMap = jsMapFile("dist"); | ||
const componentsFile = "components.json"; | ||
const sourceGenerators = generatorsFile("dist"); | ||
const jsFile = dir => join(dir, "index.js") | ||
const jsMapFile = dir => join(dir, "index.js.map") | ||
const sourceJs = jsFile("dist") | ||
const sourceJsMap = jsMapFile("dist") | ||
const componentsFile = "components.json" | ||
const appPackages = join(packagesFolder, "server", serverConfig.latestPackagesFolder); | ||
const appPackages = join( | ||
packagesFolder, | ||
"server", | ||
serverConfig.latestPackagesFolder | ||
) | ||
const publicMain = appName => join(appPackages, appName, "public", "main", "lib", "node_modules", "@budibase", "standard-components"); | ||
const publicUnauth = appName => join(appPackages, appName, "public", "unauthenticated", "lib", "node_modules", "@budibase", "standard-components"); | ||
const nodeModulesDist = appName => join(appPackages, appName, "node_modules", "@budibase", "standard-components", "dist"); | ||
const nodeModules = appName => join(appPackages, appName, "node_modules", "@budibase", "standard-components"); | ||
const publicMain = appName => | ||
join( | ||
appPackages, | ||
appName, | ||
"public", | ||
"main", | ||
"lib", | ||
"node_modules", | ||
"@budibase", | ||
"standard-components" | ||
) | ||
const publicUnauth = appName => | ||
join( | ||
appPackages, | ||
appName, | ||
"public", | ||
"unauthenticated", | ||
"lib", | ||
"node_modules", | ||
"@budibase", | ||
"standard-components" | ||
) | ||
const nodeModulesDist = appName => | ||
join( | ||
appPackages, | ||
appName, | ||
"node_modules", | ||
"@budibase", | ||
"standard-components", | ||
"dist" | ||
) | ||
(async () => { | ||
const nodeModules = appName => | ||
join(appPackages, appName, "node_modules", "@budibase", "standard-components") | ||
const apps = await readdir(appPackages); | ||
;(async () => { | ||
const apps = await readdir(appPackages) | ||
const copySource = file => async toDir => { | ||
const dest = join(toDir, basename(file)); | ||
try { | ||
await copyFile(file, dest, constants.COPYFILE_FICLONE); | ||
console.log(`COPIED ${file} to ${dest}`); | ||
} catch(e) { | ||
console.log(`COPY FAILED ${file} to ${dest}: ${e}`); | ||
} | ||
const copySource = file => async toDir => { | ||
await ensureDir(toDir) | ||
const dest = join(toDir, basename(file)) | ||
try { | ||
await copyFile(file, dest, constants.COPYFILE_FICLONE) | ||
console.log(`COPIED ${file} to ${dest}`) | ||
} catch (e) { | ||
console.log(`COPY FAILED ${file} to ${dest}: ${e}`) | ||
} | ||
} | ||
const copySourceJs = copySource(sourceJs); | ||
const copySourceJsMap = copySource(sourceJsMap); | ||
const copyGenerators = copySource(sourceGenerators); | ||
const copyComponentsJson = copySource(componentsFile); | ||
const copySourceJs = copySource(sourceJs) | ||
const copySourceJsMap = copySource(sourceJsMap) | ||
const copyComponentsJson = copySource(componentsFile) | ||
for(let app of apps) { | ||
if(app === ".data") continue; | ||
if(!(await stat(join(appPackages, app))).isDirectory()) continue; | ||
for (let app of apps) { | ||
if (app === ".data") continue | ||
if (!(await stat(join(appPackages, app))).isDirectory()) continue | ||
await copySourceJs(nodeModulesDist(app)); | ||
await copySourceJsMap(nodeModulesDist(app)); | ||
await copyGenerators(nodeModulesDist(app)); | ||
await copySourceJs(nodeModulesDist(app)) | ||
await copySourceJsMap(nodeModulesDist(app)) | ||
await copyComponentsJson(nodeModules(app)); | ||
await copyComponentsJson(nodeModules(app)) | ||
await copySourceJs(join(publicMain(app), "dist")); | ||
await copySourceJsMap(join(publicMain(app), "dist")); | ||
await copyGenerators(join(publicMain(app), "dist")); | ||
await copySourceJs(join(publicMain(app), "dist")) | ||
await copySourceJsMap(join(publicMain(app), "dist")) | ||
await copySourceJs(join(publicUnauth(app), "dist")); | ||
await copySourceJsMap(join(publicUnauth(app), "dist")); | ||
await copyGenerators(join(publicUnauth(app), "dist")); | ||
} | ||
})(); | ||
await copySourceJs(join(publicUnauth(app), "dist")) | ||
await copySourceJsMap(join(publicUnauth(app), "dist")) | ||
} | ||
})() |
@@ -1,9 +0,9 @@ | ||
export const buildStyle = (styles) => { | ||
let str = ""; | ||
for(let s in styles) { | ||
if(styles[s]) { | ||
str += `${s}: ${styles[s]}; ` | ||
} | ||
export const buildStyle = styles => { | ||
let str = "" | ||
for (let s in styles) { | ||
if (styles[s]) { | ||
str += `${s}: ${styles[s]}; ` | ||
} | ||
return str; | ||
} | ||
} | ||
return str | ||
} |
// https://github.com/kaisermann/svelte-css-vars | ||
export default (node, props) => { | ||
Object.entries(props).forEach(([key, value]) => { | ||
node.style.setProperty(`--${key}`, value); | ||
}); | ||
return { | ||
update(new_props) { | ||
Object.entries(new_props).forEach(([key, value]) => { | ||
node.style.setProperty(`--${key}`, value); | ||
delete props[key]; | ||
}); | ||
Object.keys(props).forEach(name => | ||
node.style.removeProperty(`--${name}`), | ||
); | ||
props = new_props; | ||
}, | ||
}; | ||
}; | ||
export const cssVars = (node, props) => { | ||
Object.entries(props).forEach(([key, value]) => { | ||
node.style.setProperty(`--${key}`, value) | ||
}) | ||
return { | ||
update(new_props) { | ||
Object.entries(new_props).forEach(([key, value]) => { | ||
node.style.setProperty(`--${key}`, value) | ||
delete props[key] | ||
}) | ||
Object.keys(props).forEach(name => node.style.removeProperty(`--${name}`)) | ||
props = new_props | ||
}, | ||
} | ||
} | ||
export const createClasses = classes => { | ||
let all = "" | ||
for (let cls in classes) { | ||
if (classes[cls]) { | ||
all = all + " " + cls | ||
} | ||
} | ||
return all | ||
} | ||
export default cssVars |
@@ -1,1 +0,1 @@ | ||
export const emptyProps = () => ({_component:""}); | ||
export const emptyProps = () => ({ _component: "" }) |
@@ -1,14 +0,11 @@ | ||
export {default as button} from "./Button.svelte"; | ||
export {default as div} from "./Div.svelte"; | ||
export {default as h1} from "./H1.svelte"; | ||
export {default as h2} from "./H2.svelte"; | ||
export {default as h3} from "./H3.svelte"; | ||
export {default as h4} from "./H4.svelte"; | ||
export {default as h5} from "./H5.svelte"; | ||
export {default as h6} from "./H6.svelte"; | ||
export {default as input} from "./Input.svelte"; | ||
export {default as login} from "./Login.svelte"; | ||
export {default as nav} from "./Nav.svelte"; | ||
export {default as select} from "./Select.svelte"; | ||
export {default as table} from "./Table.svelte"; | ||
export {default as text} from "./Text.svelte"; | ||
export { default as container } from "./Container.svelte" | ||
export { default as text } from "./Text.svelte" | ||
export { default as heading } from "./Heading.svelte" | ||
export { default as input } from "./Input.svelte" | ||
export { default as select } from "./Select.svelte" | ||
export { default as option } from "./Option.svelte" | ||
export { default as button } from "./Button.svelte" | ||
export { default as login } from "./Login.svelte" | ||
export { default as saveRecordButton } from "./Templates/saveRecordButton" | ||
export { default as link } from "./Link.svelte" | ||
export { default as image } from "./Image.svelte" |
@@ -1,42 +0,25 @@ | ||
import { writable } from "svelte/store"; | ||
import Login from "../Login.svelte"; | ||
import Input from "../Input.svelte"; | ||
import Text from "../Text.svelte"; | ||
import Nav from "../Nav.svelte"; | ||
import H1 from "../H1.svelte"; | ||
import Div from "../Div.svelte"; | ||
import Table from "../Table.svelte"; | ||
import Button from "../Button.svelte"; | ||
import { createApp } from "@budibase/client/src/createApp"; | ||
import { createApp } from "@budibase/client/src/createApp" | ||
import components from "./testComponents" | ||
import packageJson from "../../package.json" | ||
import { rootComponent } from "./rootComponent" | ||
export default async () => { | ||
const componentLibraries = { | ||
components : { | ||
login : Login, | ||
input : Input, | ||
text: Text, | ||
nav: Nav, | ||
table: Table, | ||
button: Button, | ||
div: Div, | ||
h1: H1 | ||
} | ||
} | ||
const appDef = {hierarchy:{}, actions:{}}; | ||
const user = {name:"yeo", permissions:[]}; | ||
var app = createApp(componentLibraries, appDef, user); | ||
app.store.update(s => { | ||
s.people = [ | ||
{name:"bob", address: "123 Main Street", status: "Open"}, | ||
{name:"poppy", address: "456 Side Road", status: "Closed"}, | ||
{name:"Oscar", address: "678 Dodgy Alley", status: "Open"}, | ||
]; | ||
return s; | ||
}) | ||
return app; | ||
} | ||
export default async () => { | ||
delete components._lib | ||
const componentLibraries = {} | ||
componentLibraries[packageJson.name] = components | ||
componentLibraries["testcomponents"] = { | ||
rootComponent: rootComponent(window), | ||
} | ||
const appDef = { hierarchy: {}, actions: {} } | ||
const user = { name: "yeo", permissions: [] } | ||
const { initialisePage } = createApp( | ||
window.document, | ||
componentLibraries, | ||
{ appRootPath: "" }, | ||
appDef, | ||
user, | ||
{}, | ||
[] | ||
) | ||
return initialisePage | ||
} |
@@ -1,213 +0,64 @@ | ||
export const props = { | ||
divWithAFewControls : { | ||
_component:"components/div", | ||
_children: [ | ||
{ | ||
_component:"components/h1", | ||
text: "This is an <h1> component" | ||
}, | ||
{ | ||
_component:"components/text", | ||
value: "Label for field" | ||
}, | ||
{ | ||
_component:"components/input", | ||
type:"text" | ||
}, | ||
{ | ||
_component:"components/button", | ||
_children: [ | ||
{ | ||
_component:"components/text", | ||
value:"☢" | ||
}, | ||
{ | ||
_component:"components/text", | ||
value:"Click Me" | ||
}, | ||
] | ||
} | ||
] | ||
export const form = { | ||
_id: "1", | ||
_component: "@budibase/standard-components/container", | ||
type: "main", | ||
_children: [ | ||
{ | ||
_component: "@budibase/standard-components/heading", | ||
type: "h1", | ||
_children: [ | ||
{ | ||
_component: "@budibase/standard-components/text", | ||
text: "This is an H1 Heading", | ||
}, | ||
], | ||
}, | ||
login: { _component:"components/login" }, | ||
form: { | ||
_component: "components/form", | ||
formControls: [ | ||
{ | ||
control: { | ||
_component: "components/textbox" | ||
}, | ||
label:"First Name" | ||
}, | ||
{ | ||
control: { | ||
_component: "components/textbox" | ||
}, | ||
label:"Last Name" | ||
} | ||
] | ||
{ | ||
_component: "@budibase/standard-components/text", | ||
text: "This just some text", | ||
type: "strong", | ||
}, | ||
nav: { | ||
_component: "components/nav", | ||
navBarBackground: "red", | ||
navBarBorder: "1px solid maroon", | ||
navBarColor: "black", | ||
selectedItemBackground: "maroon", | ||
selectedItemColor: "white", | ||
selectedItemBorder: "green", | ||
itemHoverBackground: "yellow", | ||
itemHoverColor: "pink", | ||
items: [ | ||
{ | ||
title: "People", | ||
component: { | ||
_component: "components/panel", | ||
text:"People Panel", | ||
padding: "40px", | ||
border: "2px solid pink", | ||
background: "mistyrose" | ||
} | ||
}, | ||
{ | ||
title: "Animals", | ||
component: { | ||
_component: "components/panel", | ||
text:"Animals Panel", | ||
padding: "40px", | ||
border: "2px solid green", | ||
background: "azure" | ||
} | ||
} | ||
] | ||
{ | ||
_component: "@budibase/standard-components/container", | ||
type: "paragraph", | ||
backgroundColor: "red", | ||
color: "white", | ||
borderStyle: "solid", | ||
borderWidth: "3px", | ||
borderColor: "blue", | ||
_children: [ | ||
{ | ||
_component: "@budibase/standard-components/text", | ||
formattingTag: "<i>", | ||
text: "some iatlics in a paragraph", | ||
}, | ||
], | ||
}, | ||
table: { | ||
_component:"components/table", | ||
columns: [ | ||
{ | ||
title: { | ||
"##bbstate":"NameColumnName", | ||
"##bbsource":"store", | ||
"##bbstatefallback": "Name" | ||
}, | ||
value: { | ||
"##bbstate":"name", | ||
"##bbsource":"context" | ||
} | ||
}, | ||
{ | ||
title: "Address", | ||
value: { | ||
"##bbstate":"address", | ||
"##bbsource":"context" | ||
} | ||
}, | ||
{ | ||
title: "Status", | ||
value: { | ||
"##bbstate":"status", | ||
"##bbsource":"context" | ||
} | ||
} | ||
], | ||
data: { | ||
"##bbstate":"people" | ||
{ | ||
_component: "@budibase/standard-components/heading", | ||
type: "h2", | ||
_children: [ | ||
{ | ||
_component: "@budibase/standard-components/text", | ||
text: "This is an H2 Heading", | ||
}, | ||
onRowClick: [ | ||
{ | ||
"##eventHandlerType": "Set State", | ||
parameters: { | ||
path: "NameColumnName", | ||
value: { | ||
"##bbstate":"name", | ||
"##bbsource":"context", | ||
"##bbstatefallback": "balls to that" | ||
} | ||
} | ||
} | ||
], | ||
tableClass: "table-default", | ||
theadClass: "thead-default", | ||
tbodyClass: "tbody-default", | ||
trClass: "tr-default", | ||
thClass: "th-default" | ||
], | ||
}, | ||
hiddenNav: { | ||
_component: "components/stackpanel", | ||
children: [ | ||
{ | ||
control:{ | ||
_component: "components/button", | ||
contentText: "Peep", | ||
onClick: [ | ||
{ | ||
"##eventHandlerType": "Set State", | ||
parameters: { | ||
path: "selected", | ||
value: "People" | ||
} | ||
} | ||
] | ||
} | ||
}, | ||
{ | ||
control:{ | ||
_component: "components/button", | ||
contentText: "Ani", | ||
onClick: [ | ||
{ | ||
"##eventHandlerType": "Set State", | ||
parameters: { | ||
path: "selected", | ||
value: "Animals" | ||
} | ||
} | ||
] | ||
} | ||
}, | ||
{ | ||
control: { | ||
_component: "components/nav", | ||
hideNavBar: true, | ||
selectedItem: { | ||
"##bbstate":"selected", | ||
"##bbsource":"store", | ||
"##bbstatefallback": "Animals" | ||
}, | ||
items: [ | ||
{ | ||
title: "People", | ||
component: { | ||
_component: "components/panel", | ||
text:"People Panel", | ||
padding: "40px", | ||
border: "2px solid pink", | ||
background: "mistyrose" | ||
} | ||
}, | ||
{ | ||
title: "Animals", | ||
component: { | ||
_component: "components/panel", | ||
text:"Animals Panel", | ||
padding: "40px", | ||
border: "2px solid green", | ||
background: "azure" | ||
} | ||
} | ||
] | ||
} | ||
} | ||
] | ||
} | ||
} | ||
{ | ||
_component: "@budibase/standard-components/select", | ||
value: "two", | ||
_children: [ | ||
{ | ||
_component: "@budibase/standard-components/option", | ||
text: "number 1", | ||
value: "one", | ||
}, | ||
{ | ||
_component: "@budibase/standard-components/option", | ||
text: "number 2", | ||
value: "two", | ||
}, | ||
], | ||
}, | ||
], | ||
} |
@@ -1,7 +0,7 @@ | ||
import App from './TestApp.svelte'; | ||
import App from "./TestApp.svelte" | ||
const app = new App({ | ||
target: document.body, | ||
}); | ||
target: document.body, | ||
}) | ||
export default app; | ||
export default app |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
2899788
29862
0
16
43