169 lines
3.5 KiB
JavaScript
169 lines
3.5 KiB
JavaScript
const dao = [
|
|
|
|
// public, appears in builder
|
|
|
|
{
|
|
name: "canvasId",
|
|
label: "Canvas ID",
|
|
type: "id",
|
|
default: "",
|
|
private: true,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasTitle",
|
|
label: "Canvas Title",
|
|
type: "string",
|
|
default: "Label",
|
|
private: false,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasSize",
|
|
label: "Canvas Size",
|
|
type: "array",
|
|
default: [1200, 800],
|
|
private: false,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasSnap",
|
|
label: "Snap to Grid",
|
|
type: "boolean",
|
|
default: false,
|
|
private: false,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasSnapStep",
|
|
label: "Snap Step",
|
|
type: "number",
|
|
default: 10,
|
|
private: false,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasRulers",
|
|
label: "Canvas Rulers",
|
|
type: "boolean",
|
|
default: true,
|
|
private: false,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasContent",
|
|
label: "Canvas Content",
|
|
type: "string",
|
|
default: `<svg xmlns='http://www.w3.org/2000/svg' width='1200' height='800' viewBox='0 0 1200 800'>
|
|
<g>
|
|
<title>Layer 1</title>
|
|
<text font-weight="normal" font-style="normal" stroke="#000" xml:space="preserve" text-anchor="start" font-family="'Open Sans'" font-size="84" id="svg_1" y="120" x="80" stroke-width="0" fill="#000000">Sample text</text>
|
|
</g>
|
|
</svg>`,
|
|
private: true,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasMode",
|
|
label: "Canvas Mode",
|
|
type: "string",
|
|
default: "select",
|
|
private: true,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasFill",
|
|
label: "Canvas Fill",
|
|
type: "object",
|
|
default: {type: "solidColor", solidColor: 'ffffff', alpha: 100},
|
|
private: true,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasStroke",
|
|
label: "Canvas Stroke",
|
|
type: "object",
|
|
default: {type: "solidColor", solidColor: '000000', alpha: 100},
|
|
private: true,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasBackground",
|
|
label: "Canvas Background",
|
|
type: "object",
|
|
default: {type: "solidColor", solidColor: 'ffffff', alpha: 100},
|
|
private: true,
|
|
save: true
|
|
},
|
|
|
|
{
|
|
name: "canvasCreationDate",
|
|
label: "Canvas Creation Date",
|
|
type: "string",
|
|
default: new Date().toString(),
|
|
private: true,
|
|
save: false
|
|
},
|
|
// When this page was created
|
|
{
|
|
name: "canvasLastModified",
|
|
label: "Canvas Last Modified",
|
|
type: "string",
|
|
default: new Date().toString(),
|
|
private: true,
|
|
save: false
|
|
},
|
|
|
|
// system level fields
|
|
{
|
|
name: "darkmode",
|
|
label: "Dark Mode",
|
|
type: "boolean",
|
|
default: true,
|
|
private: true,
|
|
save: true,
|
|
},
|
|
// future use
|
|
{
|
|
name: "language",
|
|
label: "Language",
|
|
type: "string",
|
|
default: null,
|
|
private: true,
|
|
save: true,
|
|
},
|
|
// if it is the first time visitor we can onboard them
|
|
{
|
|
name: "visited",
|
|
label: "Has visited before",
|
|
type: "boolean",
|
|
default: false,
|
|
private: true,
|
|
save: true,
|
|
},
|
|
|
|
];
|
|
|
|
dao.forEach(thing => {
|
|
thing.clean = function(value){
|
|
if (thing.type === "number") return isNaN(value) ? 0 : parseInt(value, 10);
|
|
if (thing.type === "string") return value || "";
|
|
if (thing.type === "boolean") return value === "true" || value === true ? true : false;
|
|
if (thing.type === "url") return value || "";
|
|
if (thing.type === "id") return value || 0;
|
|
if (thing.type === "array") return typeof value === "object" ? value : value ? value.split(",") : [];
|
|
if (thing.type === "object") return typeof value === "object" ? value : value ? JSON.parse(value) : {};
|
|
else throw "type " + thing.type + " does not exist";
|
|
}
|
|
});
|