1
0
Fork 0
mirror of synced 2024-09-20 11:27:56 +12:00
budibase/packages/builder/src/components/userInterface/temporaryPanelStructure.js

820 lines
25 KiB
JavaScript
Raw Normal View History

2020-05-19 03:32:00 +12:00
import Input from "../common/Input.svelte"
import OptionSelect from "./OptionSelect.svelte"
import Checkbox from "../common/Checkbox.svelte"
import ModelSelect from "components/userInterface/ModelSelect.svelte"
2020-05-19 03:32:00 +12:00
import { all } from "./propertyCategories.js"
2020-07-26 22:54:55 +12:00
/*
{ label: "N/A ", value: "N/A" },
{ label: "Flex", value: "flex" },
{ label: "Inline Flex", value: "inline-flex" },
*/
2020-05-05 03:07:04 +12:00
export default {
categories: [
{
2020-05-07 21:53:34 +12:00
name: "Basic",
isCategory: true,
children: [
{
2020-04-22 22:52:55 +12:00
_component: "@budibase/standard-components/container",
2020-05-07 21:53:34 +12:00
name: "Container",
description: "This component contains things within itself",
2020-07-15 22:12:43 +12:00
icon: "ri-layout-row-line",
commonProps: {},
2020-05-07 21:53:34 +12:00
children: [],
properties: {
design: { ...all },
settings: [
{
key: "type",
label: "Type",
control: OptionSelect,
options: [
2020-06-25 03:16:01 +12:00
"article",
"aside",
"details",
"div",
"figure",
"figcaption",
"footer",
"header",
"main",
"mark",
"nav",
"paragraph",
"summary",
],
},
],
},
},
2020-07-15 22:12:43 +12:00
{
_component: "@budibase/standard-components/embed",
icon: "ri-code-line",
name: "Embed",
description: "Embed content from 3rd party sources",
properties: {
design: {
...all,
},
settings: [{ label: "Embed", key: "embed", control: Input }],
},
},
{
2020-05-07 21:53:34 +12:00
name: "Text",
description: "This is a simple text component",
2020-07-15 22:12:43 +12:00
icon: "ri-t-box-line",
commonProps: {},
children: [
{
2020-05-07 21:53:34 +12:00
_component: "@budibase/standard-components/heading",
name: "Headline",
2020-04-24 00:22:41 +12:00
description: "A component for displaying heading text",
icon: "ri-heading",
2020-05-05 21:02:10 +12:00
properties: {
2020-05-19 03:32:00 +12:00
design: { ...all },
settings: [
{
key: "text",
label: "Text",
2020-05-19 03:32:00 +12:00
control: Input,
},
{
key: "type",
label: "Type",
control: OptionSelect,
options: ["h1", "h2", "h3", "h4", "h5", "h6"],
},
],
2020-04-22 22:52:55 +12:00
},
},
{
2020-05-07 21:53:34 +12:00
_component: "@budibase/standard-components/text",
name: "Paragraph",
2020-04-24 00:22:41 +12:00
description: "A component for displaying paragraph text.",
2020-05-19 03:32:00 +12:00
icon: "ri-paragraph",
properties: {
design: { ...all },
settings: [
{
label: "Text",
key: "text",
2020-05-19 03:32:00 +12:00
control: Input,
},
{
label: "Type",
key: "type",
control: OptionSelect,
options: [
"none",
"bold",
"strong",
"italic",
"emphasis",
"mark",
"small",
"del",
"ins",
"sub",
"sup",
],
},
],
2020-05-19 03:32:00 +12:00
},
},
],
},
2020-04-24 00:22:41 +12:00
{
2020-05-07 21:53:34 +12:00
name: "Input",
2020-04-24 00:22:41 +12:00
description: "These components handle user input.",
2020-07-15 22:12:43 +12:00
icon: "ri-edit-box-line",
2020-04-24 00:22:41 +12:00
commonProps: {},
children: [
{
2020-05-05 04:13:57 +12:00
_component: "@budibase/standard-components/input",
2020-04-24 00:22:41 +12:00
name: "Textfield",
2020-05-19 03:32:00 +12:00
description:
"A textfield component that allows the user to input text.",
2020-07-15 22:12:43 +12:00
icon: "ri-edit-box-line",
properties: {
design: { ...all },
settings: [
{ label: "Label", key: "label", control: Input },
{
label: "Type",
key: "type",
control: OptionSelect,
options: ["text", "password"],
},
],
},
2020-04-24 00:22:41 +12:00
},
{
_component: "@budibase/standard-components/checkbox",
name: "Checkbox",
description: "A selectable checkbox component",
2020-07-15 22:12:43 +12:00
icon: "ri-checkbox-line",
properties: {
design: { ...all },
settings: [{ label: "Label", key: "label", control: Input }],
},
2020-04-24 00:22:41 +12:00
},
{
_component: "@budibase/standard-components/radiobutton",
name: "Radiobutton",
description: "A selectable radiobutton component",
2020-05-19 03:32:00 +12:00
icon: "ri-radio-button-line",
properties: {
design: { ...all },
settings: [{ label: "Label", key: "label", control: Input }],
},
2020-04-24 00:22:41 +12:00
},
{
_component: "@budibase/standard-components/select",
name: "Select",
2020-05-19 03:32:00 +12:00
description:
"A select component for choosing from different options",
2020-07-15 22:12:43 +12:00
icon: "ri-file-list-line",
properties: {
design: { ...all },
2020-05-26 21:19:04 +12:00
settings: [],
},
2020-05-19 03:32:00 +12:00
},
],
2020-04-24 00:22:41 +12:00
},
{
2020-04-22 22:52:55 +12:00
_component: "@budibase/standard-components/button",
2020-05-19 03:32:00 +12:00
name: "Button",
description: "A basic html button that is ready for styling",
2020-07-15 22:12:43 +12:00
icon: "ri-share-box-line",
2020-05-07 21:53:34 +12:00
children: [],
properties: {
design: {
2020-05-26 21:19:04 +12:00
...all,
},
settings: [
{ label: "Text", key: "text", control: Input },
{
label: "Disabled",
key: "disabled",
2020-05-22 01:28:32 +12:00
valueKey: "checked",
control: Checkbox,
},
2020-05-26 21:19:04 +12:00
],
},
},
{
_component: "@budibase/standard-components/image",
name: "Image",
description: "A basic component for displaying images",
2020-07-15 22:12:43 +12:00
icon: "ri-image-line",
children: [],
properties: {
design: { ...all },
2020-06-09 22:49:06 +12:00
settings: [{ label: "URL", key: "url", control: Input }],
},
},
2020-07-15 22:12:43 +12:00
// {
2020-07-15 22:18:46 +12:00
// _component: "@budibase/standard-components/icon",
// name: "Icon",
// description: "A basic component for displaying icons",
// icon: "ri-sun-fill",
// children: [],
// properties: {
// design: { ...all },
// },
2020-07-15 22:12:43 +12:00
// },
{
2020-04-24 00:22:41 +12:00
_component: "@budibase/standard-components/link",
2020-05-19 03:32:00 +12:00
name: "Link",
description: "A basic link component for internal and external links",
icon: "ri-link",
children: [],
2020-05-20 22:55:25 +12:00
properties: {
design: { ...all },
settings: [
{ label: "Text", key: "text", control: Input },
{ label: "Url", key: "url", control: Input },
{
label: "Open New Tab",
key: "openInNewTab",
2020-05-22 01:28:32 +12:00
valueKey: "checked",
2020-05-20 22:55:25 +12:00
control: Checkbox,
},
],
},
2020-05-19 03:32:00 +12:00
},
],
},
{
2020-05-07 21:53:34 +12:00
name: "Blocks",
isCategory: true,
children: [
2020-07-31 23:02:29 +12:00
{
name: "List",
_component: "@budibase/standard-components/list",
description: "Renders all children once per record, of a given table",
icon: "ri-file-list-line",
properties: {
design: { ...all },
settings: [{ label: "Table", key: "model", control: ModelSelect }],
},
children: [],
},
{
_component: "@budibase/standard-components/stackedlist",
name: "Stacked List",
description:
"A basic card component that can contain content and actions.",
icon: "ri-archive-drawer-line",
children: [],
properties: {
design: { ...all },
settings: [
{
label: "Image",
key: "imageUrl",
control: Input,
placeholder: "{{{context.Image}}}",
},
{
label: "Heading",
key: "heading",
control: Input,
placeholder: "{{context.Heading}}",
},
{
label: "Text 1",
key: "text1",
control: Input,
placeholder: "{{context.Text 1}}",
},
{
label: "Text 2",
key: "text2",
control: Input,
placeholder: "{{context.Text 2}}",
},
{
label: "Text 3",
key: "text3",
control: Input,
placeholder: "{{context.Text 3}}",
},
{
label: "destinationUrl",
key: "destinationUrl",
control: Input,
2020-08-11 00:18:30 +12:00
placeholder: "/table/{{context._id}}",
2020-07-31 23:02:29 +12:00
},
],
},
},
2020-08-13 19:58:48 +12:00
{
name: "Card",
description: "Card components",
icon: "ri-layout-bottom-line",
commonProps: {},
children: [
{
_component: "@budibase/standard-components/card",
name: "Vertical",
description:
"A basic card component that can contain content and actions.",
icon: "ri-layout-bottom-line",
children: [],
properties: {
design: { ...all },
settings: [
{
label: "Image",
key: "imageUrl",
control: Input,
placeholder: "Image",
},
{
label: "Heading",
key: "heading",
control: Input,
placeholder: "Heading",
},
{
label: "Description",
key: "description",
control: Input,
placeholder: "Description",
},
{
label: "Link Text",
key: "linkText",
control: Input,
placeholder: "Link Text",
},
{
label: "Link Url",
key: "linkUrl",
control: Input,
placeholder: "Link URL",
},
{
label: "Link Color",
key: "color",
control: Input,
placeholder: "Link Color",
},
{
label: "Hover Color",
key: "linkHoverColor",
control: Input,
placeholder: "Hover Color",
},
{
label: "Image Height",
key: "imageHeight",
control: OptionSelect,
options: ["12rem", "16rem", "20rem", "24rem"],
placeholder: "Image Height",
},
{
label: "Card Width",
key: "cardWidth",
control: OptionSelect,
options: [ "16rem", "20rem", "24rem"],
placeholder: "Card Width",
},
],
},
},
{
_component: "@budibase/standard-components/cardhorizontal",
name: "Horizontal",
description:
"A basic card component that can contain content and actions.",
icon: "ri-layout-bottom-line",
children: [],
properties: {
design: { ...all },
settings: [
{
label: "Image",
key: "imageUrl",
control: Input,
placeholder: "Image",
},
{
label: "Heading",
key: "heading",
control: Input,
placeholder: "Heading",
},
{
label: "Description",
key: "description",
control: Input,
placeholder: "Description",
},
{
label: "Subtext",
key: "subtext",
control: Input,
placeholder: "Subtext",
},
{
label: "Link Text",
key: "linkText",
control: Input,
placeholder: "Link Text",
},
{
label: "Link Url",
key: "linkUrl",
control: Input,
placeholder: "Link URL",
},
{
label: "Link Color",
key: "color",
control: Input,
placeholder: "Link Color",
},
{
label: "Hover Color",
key: "linkHoverColor",
control: Input,
placeholder: "Hover Color",
},
{
label: "Card Width",
key: "cardWidth",
control: OptionSelect,
options: [ "24rem", "28rem", "32rem", "40rem", "48rem", "60rem", "100%"],
placeholder: "Card Height",
},
{
label: "Image Width",
key: "imageWidth",
control: OptionSelect,
options: [ "8rem", "12rem", "16rem"],
placeholder: "Image Width",
},
{
label: "Image Height",
key: "imageHeight",
control: OptionSelect,
options: [ "8rem", "12rem", "16rem", "auto"],
placeholder: "Image Height",
},
],
},
},
]
},
{
2020-04-22 22:52:55 +12:00
_component: "@budibase/materialdesign-components/BasicCard",
2020-05-19 03:32:00 +12:00
name: "Card",
description:
"A basic card component that can contain content and actions.",
2020-07-15 22:12:43 +12:00
icon: "ri-layout-bottom-line",
2020-05-07 21:53:34 +12:00
children: [],
properties: {
design: { ...all },
settings: [
{
label: "Heading",
key: "heading",
control: Input,
2020-06-03 01:22:35 +12:00
placeholder: "text",
},
{
label: "Subheading",
key: "subheading",
control: Input,
2020-06-03 01:22:35 +12:00
placeholder: "text",
},
{
label: "Content",
key: "content",
control: Input,
2020-06-03 01:22:35 +12:00
placeholder: "text",
},
{
label: "Image",
key: "imageUrl",
control: Input,
2020-06-03 01:22:35 +12:00
placeholder: "src",
},
2020-06-03 01:22:35 +12:00
],
},
},
{
2020-05-19 03:32:00 +12:00
name: "Table",
2020-06-03 03:46:37 +12:00
_component: "@budibase/standard-components/datatable",
2020-05-19 03:32:00 +12:00
description: "A component that generates a table from your data.",
2020-07-15 22:12:43 +12:00
icon: "ri-archive-drawer-line",
properties: {
design: { ...all },
settings: [
{ label: "Model", key: "model", control: ModelSelect },
{ label: "Stripe Color", key: "stripeColor", control: Input },
{ label: "Border Color", key: "borderColor", control: Input },
{ label: "TH Color", key: "backgroundColor", control: Input },
2020-07-02 01:46:22 +12:00
{ label: "TH Font Color", key: "color", control: Input },
2020-07-28 22:53:07 +12:00
{ label: "Table", key: "model", control: ModelSelect },
],
},
2020-05-19 03:32:00 +12:00
children: [],
},
{
2020-05-19 03:32:00 +12:00
name: "Form",
description: "A component that generates a form from your data.",
2020-07-15 22:12:43 +12:00
icon: "ri-file-edit-line",
commonProps: {},
children: [
{
_component: "@budibase/standard-components/dataform",
name: "Form Basic",
2020-07-15 22:12:43 +12:00
icon: "ri-file-edit-line",
properties: {
design: { ...all },
settings: [
{
2020-07-03 07:38:02 +12:00
label: "Table",
key: "model",
control: ModelSelect,
},
{
label: "Title",
key: "title",
control: Input,
},
{
label: "Button Text",
key: "buttonText",
control: Input,
},
],
},
template: {
component: "@budibase/materialdesign-components/Form",
description: "Form for saving a record",
name: "@budibase/materialdesign-components/recordForm",
},
},
{
_component: "@budibase/standard-components/dataformwide",
name: "Form Wide",
2020-07-15 22:12:43 +12:00
icon: "ri-file-edit-line",
properties: {
design: { ...all },
settings: [
{
2020-07-03 07:38:02 +12:00
label: "Table",
key: "model",
control: ModelSelect,
},
{
label: "Title",
key: "title",
control: Input,
},
{
label: "Button Text",
key: "buttonText",
control: Input,
},
],
},
},
],
},
2020-05-08 09:15:09 +12:00
{
2020-08-07 23:57:07 +12:00
name: "Donut Chart",
_component: "@budibase/standard-components/donut",
description: "Donut chart",
icon: "ri-pie-chart-fill",
properties: {
2020-06-04 07:35:30 +12:00
settings: [
{
2020-08-07 23:57:07 +12:00
label: "Table",
key: "model",
control: ModelSelect,
2020-08-04 01:42:37 +12:00
},
2020-08-07 23:57:07 +12:00
{
label: "Animate Chart",
key: "isAnimated",
valueKey: "checked",
control: Checkbox,
2020-06-04 07:35:30 +12:00
},
2020-08-07 23:57:07 +12:00
{
label: "Hover Highlight",
key: "hasHoverAnimation",
valueKey: "checked",
control: Checkbox,
2020-07-26 22:54:55 +12:00
},
2020-08-07 23:57:07 +12:00
{
label: "Keep Last Hover",
key: "hasLastHoverSliceHighlighted",
valueKey: "checked",
control: Checkbox,
},
2020-08-07 23:57:07 +12:00
{
label: "Colors",
key: "color",
2020-06-04 07:35:30 +12:00
control: OptionSelect,
2020-06-04 07:38:46 +12:00
options: [
2020-08-07 23:57:07 +12:00
"britecharts",
"blueGreen",
"green",
"grey",
"orange",
"pink",
"purple",
"red",
"teal",
"yellow",
2020-06-04 07:44:35 +12:00
],
2020-06-04 07:35:30 +12:00
},
2020-08-08 01:28:55 +12:00
{
label: "Name Field",
key: "nameKey",
control: Input,
},
{
label: "Value Field",
key: "valueKey",
control: Input,
},
2020-08-07 23:57:07 +12:00
{
label: "External Radius",
key: "externalRadius",
control: Input,
2020-08-03 22:55:13 +12:00
},
2020-08-07 23:57:07 +12:00
{
label: "Internal Radius",
key: "internalRadius",
control: Input,
2020-08-03 22:55:13 +12:00
},
2020-08-07 23:57:07 +12:00
{
label: "Radius Offset",
key: "radiusHoverOffset ",
control: Input,
2020-08-03 22:55:13 +12:00
},
2020-08-07 23:57:07 +12:00
{
label: "Show Legend",
key: "useLegend ",
valueKey: "checked",
control: Checkbox,
2020-08-03 22:55:13 +12:00
},
2020-08-07 23:57:07 +12:00
{
label: "Horizontal Legend",
key: "horizontalLegend",
valueKey: "checked",
control: Checkbox,
2020-08-03 22:55:13 +12:00
},
2020-08-07 23:57:07 +12:00
{
label: "Legend Width",
key: "legendWidth",
control: Input,
2020-07-26 22:54:55 +12:00
},
2020-08-07 23:57:07 +12:00
{
label: "Legend Height",
key: "legendHeight",
control: Input,
2020-07-26 22:54:55 +12:00
},
2020-06-04 07:35:30 +12:00
],
},
2020-05-08 09:15:09 +12:00
children: [],
},
{
name: "Data List",
2020-05-08 09:15:09 +12:00
_component: "@budibase/standard-components/datalist",
description: "Shiny list",
icon: "ri-file-list-fill",
properties: {
design: { ...all },
2020-07-03 07:38:02 +12:00
settings: [{ label: "Table", key: "model", control: ModelSelect }],
},
2020-05-08 09:15:09 +12:00
children: [],
},
2020-06-03 10:26:06 +12:00
{
2020-06-03 20:25:56 +12:00
name: "List",
2020-06-03 10:26:06 +12:00
_component: "@budibase/standard-components/list",
2020-07-03 07:38:02 +12:00
description: "Renders all children once per record, of a given table",
2020-06-03 10:26:06 +12:00
icon: "ri-file-list-fill",
properties: {
design: { ...all },
2020-07-03 07:38:02 +12:00
settings: [{ label: "Table", key: "model", control: ModelSelect }],
2020-06-03 10:26:06 +12:00
},
2020-07-26 22:54:55 +12:00
children: [
{
_component: "@budibase/standard-components/heading",
name: "Headline",
description: "A component for displaying heading text",
icon: "ri-heading",
},
],
2020-06-03 10:26:06 +12:00
},
2020-07-15 22:18:46 +12:00
// {
// name: "Data List",
// _component: "@budibase/standard-components/datalist",
// description: "Shiny list",
// icon: "ri-file-list-line",
// properties: {
// design: { ...all },
// settings: [{ label: "Table", key: "model", control: ModelSelect }],
// },
// children: [],
// },
2020-06-03 10:26:06 +12:00
{
2020-07-02 00:19:14 +12:00
name: "Record Detail",
_component: "@budibase/standard-components/recorddetail",
2020-07-02 00:27:12 +12:00
description:
"Loads a record, using an id from the URL, which can be used with {{ context }}, in children",
2020-07-02 00:19:14 +12:00
icon: "ri-profile-line",
2020-06-03 10:26:06 +12:00
properties: {
design: { ...all },
2020-07-03 07:38:02 +12:00
settings: [{ label: "Table", key: "model", control: ModelSelect }],
2020-06-03 10:26:06 +12:00
},
children: [],
},
2020-07-15 22:12:43 +12:00
// {
2020-07-15 22:18:46 +12:00
// name: "Map",
// _component: "@budibase/standard-components/datamap",
// description: "Shiny map",
// icon: "ri-map-pin-line",
// properties: { design: { ...all } },
// children: [],
2020-07-15 22:12:43 +12:00
// },
2020-05-07 21:53:34 +12:00
],
},
2020-05-28 00:21:13 +12:00
{
name: "Layouts",
isCategory: true,
children: [
{
_component: "##builtin/screenslot",
name: "Screen Slot",
2020-05-28 00:21:13 +12:00
description:
"This component is a placeholder for the rendering of a screen within a page.",
2020-07-15 22:12:43 +12:00
icon: "ri-crop-2-line",
properties: { design: { ...all } },
commonProps: {},
2020-05-28 00:21:13 +12:00
children: [],
},
{
name: "Nav Bar",
_component: "@budibase/standard-components/Navigation",
description:
"A component for handling the navigation within your app.",
2020-07-15 22:12:43 +12:00
icon: "ri-navigation-line",
2020-05-28 00:21:13 +12:00
children: [],
2020-06-04 00:36:39 +12:00
properties: {
design: { ...all },
settings: [
{ label: "Logo URL", key: "logoUrl", control: Input },
{ label: "Title", key: "title", control: Input },
{ label: "Color", key: "color", control: Input },
2020-06-04 00:55:29 +12:00
{ label: "Background", key: "backgroundColor", control: Input },
],
2020-06-04 00:36:39 +12:00
},
2020-05-28 00:21:13 +12:00
},
2020-07-15 22:12:43 +12:00
{
name: "Login",
_component: "@budibase/standard-components/login",
description:
"A component that automatically generates a login screen for your app.",
icon: "ri-login-box-line",
children: [],
properties: {
design: { ...all },
settings: [
{
label: "Name",
key: "name",
control: Input,
},
{
label: "Logo",
key: "logo",
control: Input,
},
{
label: "Title",
key: "title",
control: Input,
},
{
label: "Button Text",
key: "buttonText",
control: Input,
},
],
},
},
2020-05-28 00:21:13 +12:00
],
},
2020-05-07 21:53:34 +12:00
],
2020-06-30 06:55:27 +12:00
}