Master DNA
How the Master DNA is structured
The Package Level
{
package: {
meta: {
"@dna": "['package.core.cms']",
"name": "package.core.cms",
"kind": "package"
}
},
app: {
documents: {}
},
web: {
documents: {}
}
}
The Document Level Component
{
package: {
meta: {
"@dna": "['package.core.cms']",
"name": "package.core.cms",
"kind": "package"
}
},
app: {
documents: {
home: {
meta: {
"@dna": "['package.core.cms'].web.documents.home",
"@component": "['package.core.ui'].web.documents.Document",
"@theme": "['package.core.cms'].web.Document",
"name": "home",
"class": "Document",
"kind": "document"
},
props: {
"actions": [
{
"type": "GET_CONTENT_PAGE",
"payload": {
"params": {
"url": "ctx.query"
}
},
"meta": {
"package": "package.core.cms"
}
},
{
"type": "GET_ARTICLES",
"payload": {
"params": {}
},
"error": false,
"meta": {
"package": "package.core.cms"
}
}
],
"data": {
"accessors": {
"body": "actions.GET_CONTENT_PAGE.result",
"stories": "actions.GET_ARTICLES.result"
}
},
"set": {
"viewport": "scroll",
"route": {
"match": "/",
"params": {},
"template": "package.core.cms/web/home",
"authenticated": false
}
},
"ui": {
"theme": {
"modelVariant": "scrollContainer",
"modelParams": {},
"designVariant": "asScrollContainer",
"skinVariant": "themeVariantDefault",
"skinTone": "dimensionVariantDefault",
"skinTypography": "sans",
"skinSpacial": "compact",
"skinMotion": "smooth",
"decorateClass": "home",
"ornateStyle": {}
}
}
},
layouts: []
},
blog: {...}
}
},
web: {
documents: {
home: {...}
}
}
}
The Layout Level Component
{
layouts: [
{
meta: {
"@dna": "['package.core.cms'].web.documents.home.layouts[1:DocumentLayout]",
"@component": "['package.core.ui'].web.layouts.RenderLayout",
"name": "documentLayout",
"class": "RenderLayout",
"kind": "layout"
},
props: {
"set": {
"renderLayout": "WebPageLayout",
"boxCollapse": false
},
"ui": {
"theme": {
"decorateStyle": {
"display": "flex",
"flexDirection": "column",
"width": "100%",
"minHeight": "fit-content"
}
}
}
},
regions: [
{
meta: {
"@dna": "['package.core.cms'].web.documents.home.layouts[1:DocumentLayout].regions[1:header]",
"@component": "['package.core.cms'].web.blocks.WebPageHeader",
"name": "header",
"class": "Region",
"kind": "region"
},
props: {
"data": {
"accessors": {
"site": "document.site"
}
},
"set": {
"position": "center",
"actions": {},
"controls": {},
"layout": {
"display": "flex"
}
}
},
blocks: []
}
]
}
]
}
The Block Level Component
{
blocks: [
{
meta: {
"@dna": "['package.core.cms'].web.documents.home.layouts[1:DocumentLayout].regions[1:header].blocks[1:WebPageHeader]",
"@component": "['package.core.cms'].web.blocks.WebPageHeader",
"name": "WebPageHeader",
"class": "WebPageHeader",
"kind": "block"
},
props: {
"data": {
},
"set": {
},
"ui": {
"theme": {
}
}
}
}
]
}
The Cell Level Component
{
cell: {
meta: {
"@dna": "package.core.identity.documents.home.layouts.BaseLayout.blocks.GridTable.PersonList.cell",
"@component": "['package.core.ui'].app.cells.TextInputCell",
"kind": "cell"
},
props: {
"data": {
"accessor": "firstName",
"instanceType": "package.core.identity:Identity",
"validation": "string|1|*|range|style|default"
},
"ui": {
"theme": {
"finish": {
"style": {
"width": 100,
"minHeight": "fit-content"
}
}
}
},
"set": {
options: {
"operationMode": "basic",
"updateMode": "SKIP_REALISTIC",
"isLocalized": true,
"clickable": true,
"clickAction": ""
},
dependencies: [
{
"dependentOn": "name",
"dependencyType": "validation",
"dependencyResolver": "reveal",
"dependencyPayload": {}
}
],
components: {
cell: {
"meta": {
"name": "TextInputCell"
},
"props": {
"data": {},
"ui": {},
"set": {
"dropdownDefaultOpen": true
}
}
},
elements: {
optionComponent: [
],
valueComponent: [
]
}
}
}
}
}
}
The Element Level Component
{
elements: {
optionComponent: [
{
"meta": {
"name": "IconElement"
},
"props": {
"data": {
"accessor": {
"selection": "customers.avatar",
"label": "customers.label"
}
},
"set": {
"iconType": "svg"
}
}
}
],
valueComponent: [
{
"meta": {
"name": "IconElement"
},
"props": {
"data": {
"accessor": {
"selection": "customers.avatar",
"label": "customers.label"
}
},
"set": {
"iconType": "svg"
}
}
}
]
}
}
Last updated