I am creating and testing dynamic component extension schema. I have created an extension to set margin for arrangements. How to define schema for this? Like when we are defining properties of a component we can use extension to pass extra properties that extension has like the block I have shared.
Example
{
"name": "Generated Templated",
"metadata-version": 1,
"author": "Schema Listview generator tool",
"platforms": [
"App Inventor",
"Kodular",
"Niotron"
],
"extensions": {
"Typesenseextension": "pk.typesenseextension.typesenseextension.Typesenseextension",
"ViewTools": "pk.viewtools.ViewTools"
},
"keys": [
"id"
],
"components": [
{
"id": "HorizontalArrangement1{id}",
"type": "HorizontalArrangement",
"properties": {
"Width": -2
},
"components": [
{
"id": "Show{id}",
"type": "Button",
"properties": {
"FontSize": 8,
"Height": 10,
"Text": "Show"
}
},
{
"id": "Hide{id}",
"type": "Button",
"properties": {
"FontSize": 8,
"Height": 10,
"Text": "Hide"
}
}
]
},
{
"id": "ListView1{id}",
"type": "ListView",
"properties": {
"ElementCornerRadius": 20,
"FontSize": 16,
"ShowFilterBar": true
}
},
{
"id": "VerticalArrangement1{id}",
"type": "VerticalArrangement",
"properties": {
"Width": -2
},
"components": [
{
"id": "Button4{id}",
"type": "Button",
"properties": {
"Text": "Text for Button4"
}
},
{
"id": "Label5{id}",
"type": "Label",
"properties": {
"Text": "Text for Label5"
}
},
{
"id": "Button3{id}",
"type": "Button",
"properties": {
"Text": "Text for Button3"
}
},
{
"id": "Label4{id}",
"type": "Label",
"properties": {
"Text": "Text for Label4"
}
},
{
"id": "Button2{id}",
"type": "Button",
"properties": {
"Text": "Text for Button2"
}
},
{
"id": "Label1{id}",
"type": "Label",
"properties": {
"Text": "Text for Label1"
}
},
{
"id": "Label3{id}",
"type": "Label",
"properties": {
"Text": "Text for Label3"
}
},
{
"id": "Label2{id}",
"type": "Label",
"properties": {
"Text": "Text for Label2"
}
},
{
"id": "Button1{id}",
"type": "Button",
"properties": {
"Text": "Text for Button1"
}
}
]
},
{
"id": "Map1{id}",
"type": "Map",
"properties": {
"CenterFromString": "31.565738346501394, 74.3302345275879",
"EnableRotation": true,
"Height": -1050,
"Width": -1090,
"LocationSensor": "LocationSensor1",
"ScaleUnits": 2,
"ShowCompass": true,
"ShowScale": true,
"ShowUser": true,
"ShowZoom": true
},
"components": [
{
"id": "LineString1{id}",
"type": "LineString",
"properties": {
"EnableInfobox": true,
"PointsFromString": "[[31.571808037696464,74.3243980407715],[31.5656652152831,74.33160781860353]]",
"StrokeColor": -65536,
"StrokeWidth": 5
}
},
{
"id": "Marker1{id}",
"type": "Marker",
"properties": {
"Latitude": 31.56303245323146,
"Longitude": 74.32920455932619
}
}
]
},
{
"id": "LocationSensor1{id}",
"type": "LocationSensor",
"properties": {
"TimeInterval": 0
}
},
{
"id": "Navigation1{id}",
"type": "Navigation",
"properties": {
"ApiKey": "5b3ce3597851110001cf6248aa868576851046358084136d44dcba0d",
"EndLatitude": 31.5677003,
"EndLongitude": 74.3313606,
"StartLatitude": 31.5641579,
"StartLongitude": 74.323116,
"TransportationMethod": "driving-car"
}
},
{
"id": "Typesenseextension1{id}",
"type": "pk.typesenseextension.typesenseextension.Typesenseextension",
"properties": {}
},
{
"id": "Web1{id}",
"type": "Web",
"properties": {}
},
{
"id": "ViewTools1{id}",
"type": "pk.viewtools.ViewTools",
"properties": {}
}
]
}