Budibase is alive! sort of

This commit is contained in:
Michael Shanks 2019-09-12 06:10:50 +01:00
parent 614e9dbfdd
commit dda4517cb0
36 changed files with 193 additions and 205 deletions

View File

@ -499,6 +499,7 @@ const savePage = store => async page => {
}
s.pages[s.currentPageName] = page;
s.currentFrontEndItem = page;
savePackage(store, s);
return s;
});

View File

@ -5,22 +5,29 @@ import Dropdown from "../common/Dropdown.svelte";
import Button from "../common/Button.svelte";
import { store } from "../builderStore";
import { isRootComponent } from "./pagesParsing/searchComponents";
import { pipe } from "../common/core";
import {
filter,
find
filter, find, concat
} from "lodash/fp";
let entryComponent;
let title = "";
let components = [];
const notSeletedComponent = {name:"(none selected)"};
store.subscribe(s => {
title = s.currentFrontEndItem.index.title;
components = filter(s => !isRootComponent(s))(s.allComponents);
components = pipe(s.allComponents, [
filter(s => !isRootComponent(s)),
concat([notSeletedComponent])
]);
entryComponent = find(c => c.name === s.currentFrontEndItem.appBody)(components);
if(!entryComponent) entryComponent = notSeletedComponent;
});
const save = () => {
if(!title || !entryComponent || entryComponent === notSeletedComponent) return;
const page = {
index: {
title
@ -37,7 +44,7 @@ const save = () => {
<h3>{$store.currentPageName}</h3>
<form class="uk-form-horizontal">
<Textbox bind:text={title} label="Title" />
<Textbox bind:text={title} label="Title" hasError={!title}/>
<div class="help-text">The title of your page, displayed in the bowser tab</div>
<Dropdown label="App Entry Component"
options={components}

View File

@ -2,4 +2,4 @@ import { initialise } from "./initialise";
const appDefinition = window["##BUDIBASE_APPDEFINITION##"];
initialise(appDefinition);
initialise(window.document, appDefinition);

View File

@ -6,16 +6,17 @@ export const initialise = async (document, appDefinition) => {
const componentLibraries = {};
for(let lib of appDefinition.componentLibraries) {
componentLibraries[lib] = await import(
componentLibraryUrl(lib, appDefinition.appRootPath));
componentLibraries[lib.libName] = await import(
componentLibraryUrl(lib.importPath));
}
const store = writable({});
initialiseComponent(allComponents, componentLibraries, store)(
initialiseComponent(componentLibraries, store)(
appDefinition.props,
document.body);
}
const componentLibraryUrl = (lib, appRootPath) =>
`/${appRootPath}/${lib}`;
const componentLibraryUrl = (lib) => "./" + trimSlash(lib)
const trimSlash = (str) => str.replace(/^\/+|\/+$/g, '');

View File

@ -7,19 +7,14 @@ import {
import { $ } from "./core/common";
export const initialiseComponent = (allComponents, componentLibraries, store) => (props, htmlElement) => {
const component = getComponent(
props._component,
allComponents);
export const initialiseComponent = (componentLibraries, store) => (props, htmlElement) => {
const _app = {
initialiseComponent: initialiseComponent(allComponents, componentLibraries, store),
initialiseComponent: initialiseComponent(componentLibraries, store),
store
};
const {componentName, libName} = splitName(
component.name);
const {componentName, libName} = splitName(props._component);
new (componentLibraries[libName][componentName])({
target: htmlElement,
@ -28,12 +23,6 @@ export const initialiseComponent = (allComponents, componentLibraries, store) =>
}
const getComponent = (componentName, allComponents) =>
find(c => c.name === componentName)(allComponents);
const isRootComponent = c => isUndefined(c.inherits);
const splitName = fullname => {
const componentName = $(fullname, [
split("/"),

View File

@ -505,35 +505,36 @@
}
],
"actions": {
"initialise_instance":
{
"initialise_instance": {
"name": "initialise_instance",
"behaviourSource": "main",
"behaviourName": "initialiseInstance",
"initialOptions": {}
}
,
"create_user":
{
},
"create_user": {
"name": "create_user",
"behaviourSource": "main",
"behaviourName": "createNewUser",
"initialOptions": {}
}
,
"set_default_version":
{
},
"set_default_version": {
"name": "set_default_version",
"behaviourSource": "main",
"behaviourName": "setDefaultVersion",
"initialOptions": {}
}
},
"props": {
"main": {},
"main": {
"_component": "@budibase/standard-components/login",
"logo": "/assets/budibase-logo.png",
"loginRedirect": "",
"usernameLabel": "Username",
"passwordLabel": "Password",
"loginButtonLabel": "Login"
},
"unauthenticated": {
"_component": "budibase-standard-components/login",
"_component": "@budibase/standard-components/login",
"logo": "/assets/budibase-logo.png",
"loginRedirect": "",
"usernameLabel": "Username",

View File

@ -1,7 +1,7 @@
{
"name": "login_screen",
"name": "Login Screen",
"description": "",
"inherits": "budibase-standard-components/login",
"inherits": "@budibase/standard-components/login",
"props": {
"logo": "/assets/budibase-logo.png"
},

View File

@ -1,13 +1,15 @@
{
"main": {
"index": {},
"appBody": ""
"index": {
"title": "Budibase"
},
"appBody": "Login Screen"
},
"unauthenticated": {
"index": {
"title": "Test App Two"
"title": "Budibase - Login"
},
"appBody": "login_screen"
"appBody": "Login Screen"
},
"componentLibraries": [
"@budibase/standard-components"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,20 @@
<!doctype html>
<html>
<head>
<meta charset='utf8'>
<meta name='viewport' content='width=device-width'>
<title>Budibase</title>
<link rel='icon' type='image/png' href='/_master//assets/favicon.png'>
<script src='/_master/clientAppDefinition.js'></script>
<script src='/_master/budibase-client.js'></script>
</head>
<body id="app">
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,20 @@
<!doctype html>
<html>
<head>
<meta charset='utf8'>
<meta name='viewport' content='width=device-width'>
<title>Budibase - Login</title>
<link rel='icon' type='image/png' href='/_master//assets/favicon.png'>
<script src='/_master/clientAppDefinition.js'></script>
<script src='/_master/budibase-client.js'></script>
</head>
<body id="app">
</body>
</html>

View File

@ -36,9 +36,9 @@ lunr@^2.3.5:
integrity sha512-swStvEyDqQ85MGpABCMBclZcLI/pBIlu8FFDtmX197+oEgKloJ67QnB+Tidh0340HmLMs39c4GrkPY3cmkXp6Q==
nanoid@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.0.tgz#3de3dbd68cfb2f3bd52550e2bfd439cf75040eb2"
integrity sha512-g5WwS+p6Cm+zQhO2YOpRbQThZVnNb7DDq74h8YDCLfAGynrEOrbx2E16dc8ciENiP1va5sqaAruqn2sN+xpkWg==
version "2.1.1"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.1.tgz#524fd4acd45c126e0c87cd43ab5ee8346e695df9"
integrity sha512-0YbJdaL4JFoejIOoawgLcYValFGJ2iyUuVDIWL3g8Es87SSOWFbWdRUMV3VMSiyPs3SQ3QxCIxFX00q5DLkMCw==
shortid@^2.2.8:
version "2.2.15"

File diff suppressed because one or more lines are too long

View File

@ -1,19 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset='utf8'>
<meta name='viewport' content='width=device-width'>
<title>Budibase App</title>
<link rel='icon' type='image/png' href='/master//assets/favicon.png'>
<script src='/master/budibase-client.js'></script>
</head>
<body id="app">
<script src='/master/clientAppDefinition.js'></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -1,19 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset='utf8'>
<meta name='viewport' content='width=device-width'>
<title>Test App Two</title>
<link rel='icon' type='image/png' href='/master//assets/favicon.png'>
<script src='/master/budibase-client.js'></script>
</head>
<body id="app">
<script src='/master/clientAppDefinition.js'></script>
</body>
</html>

View File

@ -1,11 +0,0 @@
{
"name": "Primary Button",
"description": "",
"inherits": "budibase-standard-components/button",
"props": {
"className": "btn btn-pimary"
},
"tags": [
"button"
]
}

View File

@ -1,14 +0,0 @@
{
"name": "login",
"description": "",
"inherits": "budibase-standard-components/login",
"props": {
"logo": "/assets/budibase-logo.png"
},
"tags": [
"login",
"credentials",
"password",
"logon"
]
}

View File

@ -1,9 +0,0 @@
{
"name": "subfolder/path/buttony",
"description": "",
"inherits": "budibase-standard-components/button",
"props": {},
"tags": [
"button"
]
}

View File

@ -1,42 +1,42 @@
main.svelte-j8mzr7{height:100%;width:100%;font-family:"Lato", Helvetica, Arial, sans-serif}
.root.svelte-e4n7zy{position:fixed;margin:0 auto;text-align:center;top:20%;width:100%}.inner.svelte-e4n7zy{display:inline-block;margin:auto}.logo.svelte-e4n7zy{width:300px;margin-bottom:40px}.root.svelte-e4n7zy .option{width:250px}.app-link.svelte-e4n7zy{margin-top:10px;display:block}
.root.svelte-fkeby9{height:100%;width:100%;display:flex;flex-direction:column}.top-nav.svelte-fkeby9{flex:0 0 auto;height:25px;background:white;border-style:solid;border-width:0px 0px 1px 0px;border-color:var(--lightslate);padding:5px;width:100%}.content.svelte-fkeby9{flex:1 1 auto;width:100%;height:100px}.content.svelte-fkeby9>div.svelte-fkeby9{height:100%;width:100%}.topnavitem.svelte-fkeby9{cursor:pointer;color:var(--slate);padding:0px 15px}.topnavitem.svelte-fkeby9:hover{color:var(--secondary75)}.active.svelte-fkeby9{color:var(--secondary100)}
.root.svelte-e4n7zy{position:fixed;margin:0 auto;text-align:center;top:20%;width:100%}.inner.svelte-e4n7zy{display:inline-block;margin:auto}.logo.svelte-e4n7zy{width:300px;margin-bottom:40px}.root.svelte-e4n7zy .option{width:250px}.app-link.svelte-e4n7zy{margin-top:10px;display:block}
.root.svelte-q8uz1n{height:100%;display:flex}.content.svelte-q8uz1n{flex:1 1 auto;height:100%;background-color:var(--white);margin:0}.nav.svelte-q8uz1n{flex:0 1 auto;width:300px;height:100%}
.border-normal.svelte-1lilfu7{border-radius:var(--borderradiusall)}.border-left.svelte-1lilfu7{border-radius:var(--borderradius) 0 0 var(--borderradius)}.border-right.svelte-1lilfu7{border-radius:0 var(--borderradius) var(--borderradius) 0}.border-middle.svelte-1lilfu7{border-radius:0}button.svelte-1lilfu7{border-style:solid;padding:7px 15px;cursor:pointer}.primary.svelte-1lilfu7{background-color:var(--primary100);border-color:var(--primary100);color:var(--white)}.primary.svelte-1lilfu7:hover{background-color:var(--primary75);border-color:var(--primary75)}.primary.svelte-1lilfu7:active{background-color:var(--primarydark);border-color:var(--primarydark)}.primary-outline.svelte-1lilfu7{background-color:var(--white);border-color:var(--primary100);color:var(--primary100)}.primary-outline.svelte-1lilfu7:hover{background-color:var(--primary10)}.primary-outline.svelte-1lilfu7:pressed{background-color:var(--primary25)}.secondary.svelte-1lilfu7{background-color:var(--secondary100);border-color:var(--secondary100);color:var(--white)}.secondary.svelte-1lilfu7:hover{background-color:var(--secondary75);border-color:var(--secondary75)}.secondary.svelte-1lilfu7:pressed{background-color:var(--secondarydark);border-color:var(--secondarydark)}.secondary-outline.svelte-1lilfu7{background-color:var(--white);border-color:var(--secondary100);color:var(--secondary100)}.secondary-outline.svelte-1lilfu7:hover{background-color:var(--secondary10)}.secondary-outline.svelte-1lilfu7:pressed{background-color:var(--secondary25)}.success.svelte-1lilfu7{background-color:var(--success100);border-color:var(--success100);color:var(--white)}.success.svelte-1lilfu7:hover{background-color:var(--success75);border-color:var(--success75)}.success.svelte-1lilfu7:pressed{background-color:var(--successdark);border-color:var(--successdark)}.success-outline.svelte-1lilfu7{background-color:var(--white);border-color:var(--success100);color:var(--success100)}.success-outline.svelte-1lilfu7:hover{background-color:var(--success10)}.success-outline.svelte-1lilfu7:pressed{background-color:var(--success25)}.deletion.svelte-1lilfu7{background-color:var(--deletion100);border-color:var(--deletion100);color:var(--white)}.deletion.svelte-1lilfu7:hover{background-color:var(--deletion75);border-color:var(--deletion75)}.deletion.svelte-1lilfu7:pressed{background-color:var(--deletiondark);border-color:var(--deletiondark)}.deletion-outline.svelte-1lilfu7{background-color:var(--white);border-color:var(--deletion100);color:var(--deletion100)}.deletion-outline.svelte-1lilfu7:hover{background-color:var(--deletion10)}.deletion-outline.svelte-1lilfu7:pressed{background-color:var(--deletion25)}
button.svelte-bxuckr{border-style:none;background-color:rgba(0,0,0,0);cursor:pointer;outline:none}button.svelte-bxuckr:hover{color:var(--hovercolor)}button.svelte-bxuckr:active{outline:none}
.root.svelte-1dih19s{display:grid;grid-template-columns:[uiNav] 250px [preview] auto [properties] 300px;height:100%;width:100%}.ui-nav.svelte-1dih19s{grid-column-start:uiNav;background-color:var(--primary10);height:100%}.properties-pane.svelte-1dih19s{grid-column-start:properties;background-color:var(--primary10);height:100%}.pages-list-container.svelte-1dih19s{padding-top:20px}.nav-group-header.svelte-1dih19s{font-size:10pt;padding-left:10px}.nav-items-container.svelte-1dih19s{padding-top:10px}.nav-group-header.svelte-1dih19s{display:grid;grid-template-columns:[icon] auto [title] 1fr [button] auto;padding:10px 2px 0px 7px}.nav-group-header.svelte-1dih19s>div.svelte-1dih19s:nth-child(1){padding:0px 7px 0px 0px;vertical-align:bottom;grid-column-start:icon;margin-right:5px}.nav-group-header.svelte-1dih19s>span.svelte-1dih19s:nth-child(2){margin-left:5px;vertical-align:bottom;grid-column-start:title;margin-top:auto}.nav-group-header.svelte-1dih19s>div.svelte-1dih19s:nth-child(3){vertical-align:bottom;grid-column-start:button;cursor:pointer;color:var(--slate)}.nav-group-header.svelte-1dih19s>div.svelte-1dih19s:nth-child(3):hover{color:var(--primary75)}
button.svelte-bxuckr{border-style:none;background-color:rgba(0,0,0,0);cursor:pointer;outline:none}button.svelte-bxuckr:hover{color:var(--hovercolor)}button.svelte-bxuckr:active{outline:none}
h4.svelte-sqtlby{margin-top:20px}
.root.svelte-zy9ybu{height:100%;background-color:var(--primary10)}.items-root.svelte-zy9ybu{display:flex;flex-direction:column;max-height:100%;height:10px}.hierarchy.svelte-zy9ybu{flex:1 1 auto}.hierarchy-title-row.svelte-zy9ybu{padding:15px 7px;font-size:12pt;display:flex;font-weight:bold}.hierarchy-title.svelte-zy9ybu{flex:auto 1 1}.space-filler.svelte-zy9ybu{flex:1 1 auto}
.root.svelte-apja7r{height:100%;position:relative}.actions-header.svelte-apja7r{flex:0 1 auto}.node-view.svelte-apja7r{overflow-y:auto;flex:1 1 auto}
.root.svelte-zzs4qg{padding:10px}
.root.svelte-1qmjs65{padding:10px}.edit-button.svelte-1qmjs65{cursor:pointer;color:var(--white)}tr.svelte-1qmjs65:hover .edit-button.svelte-1qmjs65{color:var(--secondary75)}
.root.svelte-apja7r{height:100%;position:relative}.actions-header.svelte-apja7r{flex:0 1 auto}.node-view.svelte-apja7r{overflow-y:auto;flex:1 1 auto}
.root.svelte-ffb307{padding-bottom:10px;padding-left:10px;font-size:16px;color:var(--secondary50)}.hierarchy-item.svelte-ffb307{cursor:pointer;padding:5px 0px}.hierarchy-item.svelte-ffb307:hover{color:var(--secondary75)}.component.svelte-ffb307{margin-left:5px}.selected.svelte-ffb307{color:var(--primary100)}.title.svelte-ffb307{margin-left:10px}
.root.svelte-183dehm{height:100%;border-style:solid;border-color:var(--lightslate);border-width:0px 0px 0px 1px}.padding.svelte-183dehm{padding:0px 5px 0px 10px}.title.svelte-183dehm{background-color:white;padding:3px;display:grid;grid-template-columns:[name] 1fr [actions] auto}.title.svelte-183dehm>div.svelte-183dehm:nth-child(1){grid-column-start:name;color:var(--secondary100)}.title.svelte-183dehm>div.svelte-183dehm:nth-child(2){grid-column-start:actions}.section-header.svelte-183dehm{font-style:italic;color:var(--slate);border-style:solid;border-color:var(--lightslate);border-width:0px 0px 1px 0px}.section-header.svelte-183dehm{vertical-align:middle;margin-top:20px}
.root.svelte-1qmjs65{padding:10px}.edit-button.svelte-1qmjs65{cursor:pointer;color:var(--white)}tr.svelte-1qmjs65:hover .edit-button.svelte-1qmjs65{color:var(--secondary75)}
.root.svelte-1cnqtw{color:var(--secondary50)}.hierarchy-item.svelte-1cnqtw{cursor:pointer;padding:5px 0px}.hierarchy-item.svelte-1cnqtw:hover{color:var(--secondary75)}.component.svelte-1cnqtw{margin-left:5px}.currentfolder.svelte-1cnqtw{color:var(--secondary100)}.selected.svelte-1cnqtw{color:var(--primary100)}.title.svelte-1cnqtw{margin-left:10px}
.section-container.svelte-yk1mmr{padding:15px;border-style:dotted;border-width:1px;border-color:var(--lightslate);border-radius:2px}.section-container.svelte-yk1mmr:nth-child(1){margin-bottom:15px}.row-text.svelte-yk1mmr{margin-right:15px;color:var(--primary100)}input.svelte-yk1mmr{margin-right:15px}p.svelte-yk1mmr>span.svelte-yk1mmr{margin-left:30px}.header.svelte-yk1mmr{display:grid;grid-template-columns:[title] 1fr [icon] auto}.header.svelte-yk1mmr>div.svelte-yk1mmr:nth-child(1){grid-column-start:title}.header.svelte-yk1mmr>div.svelte-yk1mmr:nth-child(2){grid-column-start:icon}
.root.svelte-183dehm{height:100%;border-style:solid;border-color:var(--lightslate);border-width:0px 0px 0px 1px}.padding.svelte-183dehm{padding:0px 5px 0px 10px}.title.svelte-183dehm{background-color:white;padding:3px;display:grid;grid-template-columns:[name] 1fr [actions] auto}.title.svelte-183dehm>div.svelte-183dehm:nth-child(1){grid-column-start:name;color:var(--secondary100)}.title.svelte-183dehm>div.svelte-183dehm:nth-child(2){grid-column-start:actions}.section-header.svelte-183dehm{font-style:italic;color:var(--slate);border-style:solid;border-color:var(--lightslate);border-width:0px 0px 1px 0px}.section-header.svelte-183dehm{vertical-align:middle;margin-top:20px}
h1.svelte-16jkjx9{font-size:1.2em}
.root.svelte-1ersoxu{padding:15px}.help-text.svelte-1ersoxu{color:var(--slate);font-size:10pt}
.component-preview.svelte-1jir83x{display:grid;grid-template-rows:[top] 1fr [middle] auto [bottom] 1fr;grid-template-columns:[left] 1fr [middle] auto [right] 1fr;grid-column-start:preview;height:100%}.component-container.svelte-1jir83x{grid-row-start:middle;grid-column-start:middle}
.section-container.svelte-yk1mmr{padding:15px;border-style:dotted;border-width:1px;border-color:var(--lightslate);border-radius:2px}.section-container.svelte-yk1mmr:nth-child(1){margin-bottom:15px}.row-text.svelte-yk1mmr{margin-right:15px;color:var(--primary100)}input.svelte-yk1mmr{margin-right:15px}p.svelte-yk1mmr>span.svelte-yk1mmr{margin-left:30px}.header.svelte-yk1mmr{display:grid;grid-template-columns:[title] 1fr [icon] auto}.header.svelte-yk1mmr>div.svelte-yk1mmr:nth-child(1){grid-column-start:title}.header.svelte-yk1mmr>div.svelte-yk1mmr:nth-child(2){grid-column-start:icon}
.root.svelte-1ersoxu{padding:15px}.help-text.svelte-1ersoxu{color:var(--slate);font-size:10pt}
.root.svelte-x3bf9z{display:flex}.root.svelte-x3bf9z:last-child{border-radius:0 var(--borderradius) var(--borderradius) 0}.root.svelte-x3bf9z:first-child{border-radius:var(--borderradius) 0 0 var(--borderradius)}.root.svelte-x3bf9z:not(:first-child):not(:last-child){border-radius:0}
.nav-item.svelte-1y614ns{padding:7px;font-size:12pt;font-weight:bold;cursor:pointer;flex:0 0 auto}.nav-item.svelte-1y614ns:hover{background-color:var(--primary10)}.active.svelte-1y614ns{background-color:var(--primary10)}
.dropdown-background.svelte-iyjmwx{position:fixed;top:0;left:0;width:100vw;height:100vh}.root.svelte-iyjmwx{cursor:pointer;z-index:1}.dropdown-content.svelte-iyjmwx{position:absolute;background-color:var(--white);min-width:160px;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);z-index:1;font-weight:normal;border-style:solid;border-width:1px;border-color:var(--secondary10)}.dropdown-content.svelte-iyjmwx:not(:focus){display:none}.action-row.svelte-iyjmwx{padding:7px 10px;cursor:pointer}.action-row.svelte-iyjmwx:hover{background-color:var(--primary100);color:var(--white)}
.root.svelte-1bn4xbe{display:block;font-size:12pt;width:100%;cursor:pointer}.title.svelte-1bn4xbe{padding-top:5px;padding-right:5px;padding-bottom:5px;color:var(--secondary100)}.title.svelte-1bn4xbe:hover{background-color:var(--secondary10)}.active.svelte-1bn4xbe{background-color:var(--primary10)}
.root.svelte-1q40nqm{display:block;font-size:13pt;width:100%;cursor:pointer}.title.svelte-1q40nqm{font:var(--bodytext);padding-top:10px;padding-right:5px;padding-bottom:10px;color:var(--secondary100)}.title.svelte-1q40nqm:hover{background-color:var(--secondary10)}
.nav-item.svelte-1y614ns{padding:7px;font-size:12pt;font-weight:bold;cursor:pointer;flex:0 0 auto}.nav-item.svelte-1y614ns:hover{background-color:var(--primary10)}.active.svelte-1y614ns{background-color:var(--primary10)}
.root.svelte-kswv5p{height:100%;padding:15px}.fields-table.svelte-kswv5p{margin:10px;border-collapse:collapse}.add-field-button.svelte-kswv5p{margin-left:15px;cursor:pointer}.edit-button.svelte-kswv5p{cursor:pointer;color:var(--white)}.edit-button.svelte-kswv5p:hover{color:var(--secondary75)}th.svelte-kswv5p{text-align:left}td.svelte-kswv5p{padding:5px 30px 5px 0px;margin:0}thead.svelte-kswv5p>tr.svelte-kswv5p{border-width:0px 0px 1px 0px;border-style:solid;border-color:var(--secondary75);margin-bottom:20px}tbody.svelte-kswv5p>tr.svelte-kswv5p{border-width:0px 0px 1px 0px;border-style:solid;border-color:var(--primary10)}tbody.svelte-kswv5p>tr.svelte-kswv5p:hover{background-color:var(--primary10)}tbody.svelte-kswv5p>tr:hover .edit-button.svelte-kswv5p{color:var(--secondary75)}.index-container.svelte-kswv5p{border-style:solid;border-width:0 0 1px 0;border-color:var(--secondary25);padding:10px;margin-bottom:5px}.index-label.svelte-kswv5p{color:var(--slate)}.index-name.svelte-kswv5p{font-weight:bold;color:var(--primary100)}.index-container.svelte-kswv5p code.svelte-kswv5p{margin:0;display:inline;background-color:var(--primary10);color:var(--secondary100);padding:3px}.index-field-row.svelte-kswv5p{margin-top:7px}
.root.svelte-1tilbnf{padding:5px;top:0;width:100%}
.root.svelte-pq2tmv{height:100%;padding:15px}.allowed-records.svelte-pq2tmv{margin:20px 0px}.allowed-records.svelte-pq2tmv>span.svelte-pq2tmv{margin-right:30px}
.root.svelte-x3bf9z{display:flex}.root.svelte-x3bf9z:last-child{border-radius:0 var(--borderradius) var(--borderradius) 0}.root.svelte-x3bf9z:first-child{border-radius:var(--borderradius) 0 0 var(--borderradius)}.root.svelte-x3bf9z:not(:first-child):not(:last-child){border-radius:0}
.edit-button.svelte-neetem{cursor:pointer;color:var(--white)}tr.svelte-neetem:hover .edit-button.svelte-neetem{color:var(--secondary75)}
.edit-button.svelte-9z4fqi{cursor:pointer;color:var(--white)}tr.svelte-9z4fqi:hover .edit-button.svelte-9z4fqi{color:var(--secondary75)}
.root.svelte-1sxai5n{font-size:10pt}.padding.svelte-1sxai5n{padding:0 10px}.inherited-title.svelte-1sxai5n{margin-top:40px;display:grid;grid-template-columns:[name] 1fr [actions] auto;border-style:solid;border-width:0px 0px 1px 0px;border-color:var(--lightslate);font-style:italic}.inherited-title.svelte-1sxai5n>div.svelte-1sxai5n:nth-child(1){grid-column-start:name;color:var(--slate)}.inherited-title.svelte-1sxai5n>div.svelte-1sxai5n:nth-child(2){grid-column-start:actions;color:var(--secondary100)}
.edit-button.svelte-neetem{cursor:pointer;color:var(--white)}tr.svelte-neetem:hover .edit-button.svelte-neetem{color:var(--secondary75)}
.root.svelte-pq2tmv{height:100%;padding:15px}.allowed-records.svelte-pq2tmv{margin:20px 0px}.allowed-records.svelte-pq2tmv>span.svelte-pq2tmv{margin-right:30px}
.root.svelte-1tilbnf{padding:5px;top:0;width:100%}
.root.svelte-1q40nqm{display:block;font-size:13pt;width:100%;cursor:pointer}.title.svelte-1q40nqm{font:var(--bodytext);padding-top:10px;padding-right:5px;padding-bottom:10px;color:var(--secondary100)}.title.svelte-1q40nqm:hover{background-color:var(--secondary10)}
.root.svelte-kswv5p{height:100%;padding:15px}.fields-table.svelte-kswv5p{margin:10px;border-collapse:collapse}.add-field-button.svelte-kswv5p{margin-left:15px;cursor:pointer}.edit-button.svelte-kswv5p{cursor:pointer;color:var(--white)}.edit-button.svelte-kswv5p:hover{color:var(--secondary75)}th.svelte-kswv5p{text-align:left}td.svelte-kswv5p{padding:5px 30px 5px 0px;margin:0}thead.svelte-kswv5p>tr.svelte-kswv5p{border-width:0px 0px 1px 0px;border-style:solid;border-color:var(--secondary75);margin-bottom:20px}tbody.svelte-kswv5p>tr.svelte-kswv5p{border-width:0px 0px 1px 0px;border-style:solid;border-color:var(--primary10)}tbody.svelte-kswv5p>tr.svelte-kswv5p:hover{background-color:var(--primary10)}tbody.svelte-kswv5p>tr:hover .edit-button.svelte-kswv5p{color:var(--secondary75)}.index-container.svelte-kswv5p{border-style:solid;border-width:0 0 1px 0;border-color:var(--secondary25);padding:10px;margin-bottom:5px}.index-label.svelte-kswv5p{color:var(--slate)}.index-name.svelte-kswv5p{font-weight:bold;color:var(--primary100)}.index-container.svelte-kswv5p code.svelte-kswv5p{margin:0;display:inline;background-color:var(--primary10);color:var(--secondary100);padding:3px}.index-field-row.svelte-kswv5p{margin-top:7px}
.title.svelte-dhe1ge{padding:3px;background-color:white;color:var(--secondary100);border-style:solid;border-width:1px 0 0 0;border-color:var(--lightslate)}.title.svelte-dhe1ge>span.svelte-dhe1ge{margin-left:10px}
.root.svelte-1sxai5n{font-size:10pt}.padding.svelte-1sxai5n{padding:0 10px}.inherited-title.svelte-1sxai5n{margin-top:40px;display:grid;grid-template-columns:[name] 1fr [actions] auto;border-style:solid;border-width:0px 0px 1px 0px;border-color:var(--lightslate);font-style:italic}.inherited-title.svelte-1sxai5n>div.svelte-1sxai5n:nth-child(1){grid-column-start:name;color:var(--slate)}.inherited-title.svelte-1sxai5n>div.svelte-1sxai5n:nth-child(2){grid-column-start:actions;color:var(--secondary100)}
.info-text.svelte-y0b7l0{font-size:0.8em;color:var(--slate)}
.component.svelte-qxar5p{padding:5px;border-style:solid;border-width:0 0 1px 0;border-color:var(--lightslate);cursor:pointer}.component.svelte-qxar5p:hover{background-color:var(--primary10)}.component.svelte-qxar5p>.title.svelte-qxar5p{font-size:13pt;color:var(--secondary100)}.component.svelte-qxar5p>.description.svelte-qxar5p{font-size:10pt;color:var(--primary75);font-style:italic}
.error-container.svelte-ole1mk{padding:10px;border-style:solid;border-color:var(--deletion100);border-radius:var(--borderradiusall);background:var(--deletion75)}.error-row.svelte-ole1mk{padding:5px 0px}
textarea.svelte-1qg56sa{padding:3px;background:var(--darkslate);color:var(--white);font-family:'Courier New', Courier, monospace;width:95%;height:100px}
.root.svelte-bv289q{padding:10px}.option-container.svelte-bv289q{border-style:dotted;border-width:1px;border-color:var(--primary75);padding:3px;margin-right:5px}
.error-container.svelte-ole1mk{padding:10px;border-style:solid;border-color:var(--deletion100);border-radius:var(--borderradiusall);background:var(--deletion75)}.error-row.svelte-ole1mk{padding:5px 0px}
input.svelte-9fre0g{margin-right:7px}
.root.svelte-ogh8o0{display:grid;grid-template-columns:[name] 1fr [actions] auto}.root.svelte-ogh8o0>div.svelte-ogh8o0:nth-child(1){grid-column-start:name;color:var(--secondary50)}.root.svelte-ogh8o0>div.svelte-ogh8o0:nth-child(2){grid-column-start:actions}.selectedname.svelte-ogh8o0{font-weight:bold;color:var(--secondary)}
.root.svelte-13ckvg1{padding:3px 5px 7px 10px;border-style:dotted;border-width:0 0 1px 0;border-color:var(--primary25)}
.root.svelte-ogh8o0{display:grid;grid-template-columns:[name] 1fr [actions] auto}.root.svelte-ogh8o0>div.svelte-ogh8o0:nth-child(1){grid-column-start:name;color:var(--secondary50)}.root.svelte-ogh8o0>div.svelte-ogh8o0:nth-child(2){grid-column-start:actions}.selectedname.svelte-ogh8o0{font-weight:bold;color:var(--secondary)}
textarea.svelte-1kv2xk7{width:300px;height:200px}
.addelement-container.svelte-199q8jr{cursor:pointer;padding:3px 0px;text-align:center}.addelement-container.svelte-199q8jr:hover{background-color:var(--primary25)}.item-container.svelte-199q8jr{padding-left:3px;background:var(--secondary10)}

File diff suppressed because one or more lines are too long

View File

@ -28933,6 +28933,7 @@
}
s.pages[s.currentPageName] = page;
s.currentFrontEndItem = page;
savePackage(store, s);
return s;
});
@ -31646,7 +31647,7 @@
/******/ });
});
//# sourceMappingURL=feather.js.map
});
var feather$1 = unwrapExports(feather);
@ -50767,7 +50768,7 @@
const file$l = "src\\userInterface\\PageView.svelte";
// (49:8) <Button on:click={save}>
// (56:8) <Button on:click={save}>
function create_default_slot$3(ctx) {
var t;
@ -50786,7 +50787,7 @@
}
}
};
dispatch_dev("SvelteRegisterBlock", { block, id: create_default_slot$3.name, type: "slot", source: "(49:8) <Button on:click={save}>", ctx });
dispatch_dev("SvelteRegisterBlock", { block, id: create_default_slot$3.name, type: "slot", source: "(56:8) <Button on:click={save}>", ctx });
return block;
}
@ -50799,7 +50800,7 @@
add_flush_callback(() => updating_text = false);
}
let textbox_props = { label: "Title" };
let textbox_props = { label: "Title", hasError: !ctx.title };
if (ctx.title !== void 0) {
textbox_props.text = ctx.title;
}
@ -50854,17 +50855,17 @@
div2 = element("div");
t8 = space();
button.$$.fragment.c();
add_location(h3, file$l, 36, 4, 794);
add_location(h3, file$l, 43, 4, 1099);
attr_dev(div0, "class", "help-text svelte-1ersoxu");
add_location(div0, file$l, 40, 8, 927);
add_location(div0, file$l, 47, 8, 1249);
attr_dev(div1, "class", "help-text svelte-1ersoxu");
add_location(div1, file$l, 46, 8, 1193);
add_location(div1, file$l, 53, 8, 1515);
set_style(div2, "margin-top", "20px");
add_location(div2, file$l, 47, 8, 1290);
add_location(div2, file$l, 54, 8, 1612);
attr_dev(form, "class", "uk-form-horizontal");
add_location(form, file$l, 38, 4, 833);
add_location(form, file$l, 45, 4, 1138);
attr_dev(div3, "class", "root svelte-1ersoxu");
add_location(div3, file$l, 34, 0, 770);
add_location(div3, file$l, 41, 0, 1075);
},
l: function claim(nodes) {
@ -50897,6 +50898,7 @@
}
var textbox_changes = {};
if (changed.title) textbox_changes.hasError = !ctx.title;
if (!updating_text && changed.title) {
textbox_changes.text = ctx.title;
}
@ -50962,13 +50964,20 @@
let title = "";
let components = [];
const notSeletedComponent = {name:"(none selected)"};
store.subscribe(s => {
$$invalidate('title', title = s.currentFrontEndItem.index.title);
$$invalidate('components', components = fp_8(s => !isRootComponent(s))(s.allComponents));
$$invalidate('components', components = pipe$1(s.allComponents, [
fp_8(s => !isRootComponent(s)),
fp_32([notSeletedComponent])
]));
$$invalidate('entryComponent', entryComponent = fp_13(c => c.name === s.currentFrontEndItem.appBody)(components));
if(!entryComponent) $$invalidate('entryComponent', entryComponent = notSeletedComponent);
});
const save = () => {
if(!title || !entryComponent || entryComponent === notSeletedComponent) return;
const page = {
index: {
title

File diff suppressed because one or more lines are too long

View File

@ -47,6 +47,7 @@ const copyClientLib = async (appPath, pageName) => {
var destPath = join(publicPath(appPath, pageName), "budibase-client.js");
await copyFile(sourcepath, destPath, constants.COPYFILE_FICLONE);
await copyFile(sourcepath + ".map", destPath + ".map", constants.COPYFILE_FICLONE);
}
@ -101,7 +102,11 @@ const buildClientAppDefinition = async (config, appname, appdefinition, appPath,
await ensureDir(dirname(destPath));
componentLibraries.push(destPath);
componentLibraries.push({
importPath: destPath.replace(appPublicPath, "")
.replace(/\\/g, "/"),
libName: lib
});
let shouldCopy = !(await pathExists(destPath));
if(!shouldCopy) {
@ -120,7 +125,7 @@ const buildClientAppDefinition = async (config, appname, appdefinition, appPath,
const clientAppDefObj = {
hierarchy: appdefinition.hierarchy,
componentLibraries: pages.componentLibraries,
componentLibraries: componentLibraries,
appRootPath: appRootPath,
props: appdefinition.props[pageName]
}

View File

@ -118,6 +118,8 @@ const getRootComponents = async (appPath, pages ,lib) => {
merge(components, info.components);
}
if(components._lib) delete components._lib;
return components;
}

View File

@ -11,12 +11,13 @@
<link rel='stylesheet' href='{{ @this }}'>
{{ /each }}
<script src='{{ appRootPath }}/clientAppDefinition.js'></script>
<script src='{{ appRootPath }}/budibase-client.js'></script>
</head>
<body id="app">
<script src='{{ appRootPath }}/clientAppDefinition.js'></script>
</body>
</html>

View File

@ -36,7 +36,7 @@ module.exports.appsFolder = (config) => appPackageFolder(config, "");
module.exports.masterAppPackage = (context) => {
const { config } = context;
const standardPackage = createAppPackage(
context, "../appPackages/master");
context, "../appPackages/_master");
const customizeMaster = config && config.customizeMaster
? config.customizeMaster