* expose react sdk * expose react sdk * iterate * iterate * iterate * nit * update example * update example * small fixes * update all
1214 lines
34 KiB
JSON
1214 lines
34 KiB
JSON
{
|
|
"hiddenInlineScripts": [],
|
|
"unusedInlineScripts": [],
|
|
"fullscreen": false,
|
|
"grid": [
|
|
{
|
|
"3": {
|
|
"h": 10,
|
|
"w": 3,
|
|
"x": 0,
|
|
"y": 1,
|
|
"id": "a",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 3
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"12": {
|
|
"h": 15,
|
|
"w": 8,
|
|
"x": 0,
|
|
"y": 2,
|
|
"id": "a",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 12
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"id": "a",
|
|
"data": {
|
|
"id": "a",
|
|
"card": true,
|
|
"type": "tablecomponent",
|
|
"actionButtons": [],
|
|
"configuration": {
|
|
"search": {
|
|
"type": "static",
|
|
"value": "Disabled",
|
|
"fieldType": "select",
|
|
"onlyStatic": true,
|
|
"optionValuesKey": "tableSearchOptions"
|
|
}
|
|
},
|
|
"componentInput": {
|
|
"type": "runnable",
|
|
"value": [
|
|
{
|
|
"id": 1,
|
|
"brand": "Apple",
|
|
"price": 549,
|
|
"stock": 94,
|
|
"title": "iPhone 9",
|
|
"rating": 4.69,
|
|
"category": "smartphones",
|
|
"discountPercentage": 12.96
|
|
},
|
|
{
|
|
"id": 2,
|
|
"brand": "Apple",
|
|
"price": 899,
|
|
"stock": 34,
|
|
"title": "iPhone X",
|
|
"rating": 4.44,
|
|
"category": "smartphones",
|
|
"discountPercentage": 17.94
|
|
},
|
|
{
|
|
"id": 3,
|
|
"brand": "Samsung",
|
|
"price": 1249,
|
|
"stock": 36,
|
|
"title": "Samsung Universe 9",
|
|
"rating": 4.09,
|
|
"category": "smartphones",
|
|
"discountPercentage": 15.46
|
|
},
|
|
{
|
|
"id": 4,
|
|
"brand": "OPPO",
|
|
"price": 280,
|
|
"stock": 123,
|
|
"title": "OPPOF19",
|
|
"rating": 4.3,
|
|
"category": "smartphones",
|
|
"discountPercentage": 17.91
|
|
},
|
|
{
|
|
"id": 5,
|
|
"brand": "Huawei",
|
|
"price": 499,
|
|
"stock": 32,
|
|
"title": "Huawei P30",
|
|
"rating": 4.09,
|
|
"category": "smartphones",
|
|
"discountPercentage": 10.58
|
|
},
|
|
{
|
|
"id": 6,
|
|
"brand": "APPle",
|
|
"price": 1749,
|
|
"stock": 83,
|
|
"title": "MacBook Pro",
|
|
"rating": 4.57,
|
|
"category": "laptops",
|
|
"discountPercentage": 11.02
|
|
},
|
|
{
|
|
"id": 7,
|
|
"brand": "Samsung",
|
|
"price": 1499,
|
|
"stock": 50,
|
|
"title": "Samsung Galaxy Book",
|
|
"rating": 4.25,
|
|
"category": "laptops",
|
|
"discountPercentage": 4.15
|
|
},
|
|
{
|
|
"id": 8,
|
|
"brand": "Microsoft Surface",
|
|
"price": 1499,
|
|
"stock": 68,
|
|
"title": "Microsoft Surface Laptop 4",
|
|
"rating": 4.43,
|
|
"category": "laptops",
|
|
"discountPercentage": 10.23
|
|
},
|
|
{
|
|
"id": 9,
|
|
"brand": "Infinix",
|
|
"price": 1099,
|
|
"stock": 96,
|
|
"title": "Infinix INBOOK",
|
|
"rating": 4.54,
|
|
"category": "laptops",
|
|
"discountPercentage": 11.83
|
|
},
|
|
{
|
|
"id": 10,
|
|
"brand": "HP Pavilion",
|
|
"price": 1099,
|
|
"stock": 89,
|
|
"title": "HP Pavilion 15-DK1056WM",
|
|
"rating": 4.43,
|
|
"category": "laptops",
|
|
"discountPercentage": 6.18
|
|
},
|
|
{
|
|
"id": 11,
|
|
"brand": "Impression of Acqua Di Gio",
|
|
"price": 13,
|
|
"stock": 65,
|
|
"title": "perfume Oil",
|
|
"rating": 4.26,
|
|
"category": "fragrances",
|
|
"discountPercentage": 8.4
|
|
},
|
|
{
|
|
"id": 12,
|
|
"brand": "Royal_Mirage",
|
|
"price": 40,
|
|
"stock": 52,
|
|
"title": "Brown Perfume",
|
|
"rating": 4,
|
|
"category": "fragrances",
|
|
"discountPercentage": 15.66
|
|
},
|
|
{
|
|
"id": 13,
|
|
"brand": "Fog Scent Xpressio",
|
|
"price": 13,
|
|
"stock": 61,
|
|
"title": "Fog Scent Xpressio Perfume",
|
|
"rating": 4.59,
|
|
"category": "fragrances",
|
|
"discountPercentage": 8.14
|
|
},
|
|
{
|
|
"id": 14,
|
|
"brand": "Al Munakh",
|
|
"price": 120,
|
|
"stock": 114,
|
|
"title": "Non-Alcoholic Concentrated Perfume Oil",
|
|
"rating": 4.21,
|
|
"category": "fragrances",
|
|
"discountPercentage": 15.6
|
|
},
|
|
{
|
|
"id": 15,
|
|
"brand": "Lord - Al-Rehab",
|
|
"price": 30,
|
|
"stock": 105,
|
|
"title": "Eau De Perfume Spray",
|
|
"rating": 4.7,
|
|
"category": "fragrances",
|
|
"discountPercentage": 10.99
|
|
},
|
|
{
|
|
"id": 16,
|
|
"brand": "L'Oreal Paris",
|
|
"price": 19,
|
|
"stock": 110,
|
|
"title": "Hyaluronic Acid Serum",
|
|
"rating": 4.83,
|
|
"category": "skincare",
|
|
"discountPercentage": 13.31
|
|
},
|
|
{
|
|
"id": 17,
|
|
"brand": "Hemani Tea",
|
|
"price": 12,
|
|
"stock": 78,
|
|
"title": "Tree Oil 30ml",
|
|
"rating": 4.52,
|
|
"category": "skincare",
|
|
"discountPercentage": 4.09
|
|
},
|
|
{
|
|
"id": 18,
|
|
"brand": "Dermive",
|
|
"price": 40,
|
|
"stock": 88,
|
|
"title": "Oil Free Moisturizer 100ml",
|
|
"rating": 4.56,
|
|
"category": "skincare",
|
|
"discountPercentage": 13.1
|
|
},
|
|
{
|
|
"id": 19,
|
|
"brand": "ROREC White Rice",
|
|
"price": 46,
|
|
"stock": 54,
|
|
"title": "Skin Beauty Serum.",
|
|
"rating": 4.42,
|
|
"category": "skincare",
|
|
"discountPercentage": 10.68
|
|
},
|
|
{
|
|
"id": 20,
|
|
"brand": "Fair & Clear",
|
|
"price": 70,
|
|
"stock": 140,
|
|
"title": "Freckle Treatment Cream- 15gm",
|
|
"rating": 4.06,
|
|
"category": "skincare",
|
|
"discountPercentage": 16.99
|
|
},
|
|
{
|
|
"id": 21,
|
|
"brand": "Saaf & Khaas",
|
|
"price": 20,
|
|
"stock": 133,
|
|
"title": "- Daal Masoor 500 grams",
|
|
"rating": 4.44,
|
|
"category": "groceries",
|
|
"discountPercentage": 4.81
|
|
},
|
|
{
|
|
"id": 22,
|
|
"brand": "Bake Parlor Big",
|
|
"price": 14,
|
|
"stock": 146,
|
|
"title": "Elbow Macaroni - 400 gm",
|
|
"rating": 4.57,
|
|
"category": "groceries",
|
|
"discountPercentage": 15.58
|
|
},
|
|
{
|
|
"id": 23,
|
|
"brand": "Baking Food Items",
|
|
"price": 14,
|
|
"stock": 26,
|
|
"title": "Orange Essence Food Flavou",
|
|
"rating": 4.85,
|
|
"category": "groceries",
|
|
"discountPercentage": 8.04
|
|
},
|
|
{
|
|
"id": 24,
|
|
"brand": "fauji",
|
|
"price": 46,
|
|
"stock": 113,
|
|
"title": "cereals muesli fruit nuts",
|
|
"rating": 4.94,
|
|
"category": "groceries",
|
|
"discountPercentage": 16.8
|
|
},
|
|
{
|
|
"id": 25,
|
|
"brand": "Dry Rose",
|
|
"price": 70,
|
|
"stock": 47,
|
|
"title": "Gulab Powder 50 Gram",
|
|
"rating": 4.87,
|
|
"category": "groceries",
|
|
"discountPercentage": 13.58
|
|
},
|
|
{
|
|
"id": 26,
|
|
"brand": "Boho Decor",
|
|
"price": 41,
|
|
"stock": 131,
|
|
"title": "Plant Hanger For Home",
|
|
"rating": 4.08,
|
|
"category": "home-decoration",
|
|
"discountPercentage": 17.86
|
|
},
|
|
{
|
|
"id": 27,
|
|
"brand": "Flying Wooden",
|
|
"price": 51,
|
|
"stock": 17,
|
|
"title": "Flying Wooden Bird",
|
|
"rating": 4.41,
|
|
"category": "home-decoration",
|
|
"discountPercentage": 15.58
|
|
},
|
|
{
|
|
"id": 28,
|
|
"brand": "LED Lights",
|
|
"price": 20,
|
|
"stock": 54,
|
|
"title": "3D Embellishment Art Lamp",
|
|
"rating": 4.82,
|
|
"category": "home-decoration",
|
|
"discountPercentage": 16.49
|
|
},
|
|
{
|
|
"id": 29,
|
|
"brand": "luxury palace",
|
|
"price": 60,
|
|
"stock": 7,
|
|
"title": "Handcraft Chinese style",
|
|
"rating": 4.44,
|
|
"category": "home-decoration",
|
|
"discountPercentage": 15.34
|
|
},
|
|
{
|
|
"id": 30,
|
|
"brand": "Golden",
|
|
"price": 30,
|
|
"stock": 54,
|
|
"title": "Key Holder",
|
|
"rating": 4.92,
|
|
"category": "home-decoration",
|
|
"discountPercentage": 2.92
|
|
}
|
|
],
|
|
"fields": {},
|
|
"runnable": {
|
|
"name": "All Product Data",
|
|
"type": "runnableByName",
|
|
"inlineScript": {
|
|
"path": "/inline-script/Inline Script 0",
|
|
"schema": {
|
|
"type": "object",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"required": [],
|
|
"properties": {}
|
|
},
|
|
"content": "export async function main() {\n const res = await fetch('https://dummyjson.com/products')\n const json = await res.json()\n return json.products.map((p: Record<string, any>) => {\n delete p.images\n delete p.thumbnail\n delete p.description\n return p\n })\n}\n",
|
|
"language": "deno"
|
|
}
|
|
},
|
|
"fieldType": "array",
|
|
"connection": {
|
|
"path": "result",
|
|
"componentId": "c"
|
|
},
|
|
"subFieldType": "object"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"3": {
|
|
"h": 1,
|
|
"w": 3,
|
|
"x": 0,
|
|
"y": 0,
|
|
"id": "b",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 3
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"12": {
|
|
"h": 2,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 0,
|
|
"id": "b",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 12
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"id": "b",
|
|
"data": {
|
|
"id": "b",
|
|
"card": false,
|
|
"type": "textcomponent",
|
|
"softWrap": true,
|
|
"configuration": {
|
|
"style": {
|
|
"type": "static",
|
|
"value": "Title",
|
|
"fieldType": "select",
|
|
"onlyStatic": true,
|
|
"optionValuesKey": "textStyleOptions"
|
|
},
|
|
"extraStyle": {
|
|
"type": "static",
|
|
"value": "padding-left:10px;",
|
|
"fieldType": "text"
|
|
}
|
|
},
|
|
"componentInput": {
|
|
"eval": "Product table",
|
|
"type": "template",
|
|
"value": "Hello ${ctx.username}",
|
|
"fieldType": "template"
|
|
},
|
|
"verticalAlignment": "center",
|
|
"horizontalAlignment": "left"
|
|
}
|
|
},
|
|
{
|
|
"3": {
|
|
"h": 12,
|
|
"w": 3,
|
|
"x": 0,
|
|
"y": 11,
|
|
"id": "d",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 3
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"12": {
|
|
"h": 15,
|
|
"w": 4,
|
|
"x": 8,
|
|
"y": 2,
|
|
"id": "d",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 12
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"id": "d",
|
|
"data": {
|
|
"id": "d",
|
|
"card": false,
|
|
"type": "htmlcomponent",
|
|
"softWrap": false,
|
|
"configuration": {},
|
|
"componentInput": {
|
|
"eval": "<img\n\tsrc=\"https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1024&h=1280&q=80\"\n>\n<div class=\"absolute top-4 left-2 text-white\">\n\tHello ${ctx.username}\n</div>\t\t\t\n",
|
|
"type": "runnable",
|
|
"value": "\n <p class=\"text-sm text-gray-600 text-center pt-8\">\n Select a row from the table\n </p>\n ",
|
|
"fields": {
|
|
"id": {
|
|
"type": "connected",
|
|
"value": null,
|
|
"visible": true,
|
|
"fieldType": "number",
|
|
"connection": {
|
|
"path": "selectedRow.id",
|
|
"componentId": "a"
|
|
}
|
|
}
|
|
},
|
|
"runnable": {
|
|
"name": "One Product Detail",
|
|
"type": "runnableByName",
|
|
"inlineScript": {
|
|
"path": "/inline-script/Inline Script 0",
|
|
"schema": {
|
|
"type": "object",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"required": ["id"],
|
|
"properties": {
|
|
"id": {
|
|
"type": "number",
|
|
"default": null,
|
|
"description": ""
|
|
}
|
|
}
|
|
},
|
|
"content": "export async function main(id: number) {\n if(!id) {\n return `\n <p class=\"text-sm text-gray-600 text-center pt-8\">\n Select a row from the table\n </p>\n `\n }\n const res = await fetch('https://dummyjson.com/products/' + id)\n const { brand, title, thumbnail, description } = await res.json()\n return `\n <img width=\"363\" height=\"200\" src=\"${thumbnail}\">\n <p class=\"text-lg font-bold my-1\">\n ${brand} ${title}\n </p>\n <p>\n ${description}\n </p>\n `\n}\n",
|
|
"language": "deno"
|
|
}
|
|
},
|
|
"fieldType": "template"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"3": {
|
|
"h": 8,
|
|
"w": 2,
|
|
"x": 0,
|
|
"y": 23,
|
|
"max": {
|
|
"h": 100,
|
|
"w": 3
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"12": {
|
|
"h": 8,
|
|
"w": 6,
|
|
"x": 0,
|
|
"y": 19,
|
|
"id": "e",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 12
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"id": "e",
|
|
"data": {
|
|
"id": "e",
|
|
"card": true,
|
|
"type": "barchartcomponent",
|
|
"configuration": {
|
|
"line": {
|
|
"type": "static",
|
|
"value": false,
|
|
"fieldType": "boolean",
|
|
"onlyStatic": true
|
|
},
|
|
"theme": {
|
|
"type": "static",
|
|
"value": "theme1",
|
|
"fieldType": "select",
|
|
"onlyStatic": true,
|
|
"optionValuesKey": "chartThemeOptions"
|
|
}
|
|
},
|
|
"componentInput": {
|
|
"type": "runnable",
|
|
"value": {
|
|
"data": [5, 5, 5, 5, 5, 5],
|
|
"labels": [
|
|
"smartphones",
|
|
"laptops",
|
|
"fragrances",
|
|
"skincare",
|
|
"groceries",
|
|
"home-decoration"
|
|
]
|
|
},
|
|
"fields": {
|
|
"data": {
|
|
"type": "connected",
|
|
"value": null,
|
|
"fieldType": "array",
|
|
"connection": {
|
|
"path": "result",
|
|
"componentId": "a"
|
|
}
|
|
}
|
|
},
|
|
"runnable": {
|
|
"name": "Product Category Count",
|
|
"type": "runnableByName",
|
|
"inlineScript": {
|
|
"path": "u/adam/products-app/inline-script/Inline Script 0",
|
|
"schema": {
|
|
"type": "object",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"required": ["data"],
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": null,
|
|
"properties": {
|
|
"category": {
|
|
"type": "string",
|
|
"description": ""
|
|
}
|
|
},
|
|
"description": ""
|
|
}
|
|
}
|
|
},
|
|
"content": "export async function main(data: {category: string}[]) {\n const result: {data: number[], labels: string[]} = {\n data: [],\n labels: []\n }\n if(!Array.isArray(data)) { return result }\n\n const count: Record<string, number> = {}\n data.forEach(({category}) => {\n if(count[category]) {\n count[category]++\n } else {\n count[category] = 1\n }\n })\n Object.entries(count).forEach(([key, value]) => {\n result.data.push(value)\n result.labels.push(key)\n })\n return result\n}\n",
|
|
"language": "deno"
|
|
}
|
|
},
|
|
"fieldType": "object"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"3": {
|
|
"h": 8,
|
|
"w": 2,
|
|
"x": 0,
|
|
"y": 31,
|
|
"max": {
|
|
"h": 100,
|
|
"w": 3
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"12": {
|
|
"h": 9,
|
|
"w": 6,
|
|
"x": 6,
|
|
"y": 19,
|
|
"id": "f",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 12
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"id": "f",
|
|
"data": {
|
|
"id": "f",
|
|
"card": true,
|
|
"type": "barchartcomponent",
|
|
"configuration": {
|
|
"line": {
|
|
"type": "static",
|
|
"value": false,
|
|
"fieldType": "boolean",
|
|
"onlyStatic": true
|
|
},
|
|
"theme": {
|
|
"type": "static",
|
|
"value": "theme1",
|
|
"fieldType": "select",
|
|
"onlyStatic": true,
|
|
"optionValuesKey": "chartThemeOptions"
|
|
}
|
|
},
|
|
"componentInput": {
|
|
"type": "runnable",
|
|
"value": {
|
|
"data": [
|
|
3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1
|
|
],
|
|
"labels": [
|
|
"apple",
|
|
"samsung",
|
|
"oppo",
|
|
"huawei",
|
|
"microsoft surface",
|
|
"infinix",
|
|
"hp pavilion",
|
|
"impression of acqua di gio",
|
|
"royal_mirage",
|
|
"fog scent xpressio",
|
|
"al munakh",
|
|
"lord - al-rehab",
|
|
"l'oreal paris",
|
|
"hemani tea",
|
|
"dermive",
|
|
"rorec white rice",
|
|
"fair & clear",
|
|
"saaf & khaas",
|
|
"bake parlor big",
|
|
"baking food items",
|
|
"fauji",
|
|
"dry rose",
|
|
"boho decor",
|
|
"flying wooden",
|
|
"led lights",
|
|
"luxury palace",
|
|
"golden"
|
|
]
|
|
},
|
|
"fields": {
|
|
"data": {
|
|
"type": "connected",
|
|
"value": null,
|
|
"fieldType": "array",
|
|
"connection": {
|
|
"path": "result",
|
|
"componentId": "a"
|
|
}
|
|
}
|
|
},
|
|
"runnable": {
|
|
"name": "Product Brand Count",
|
|
"type": "runnableByName",
|
|
"inlineScript": {
|
|
"path": "u/adam/products-app/inline-script/Inline Script 0",
|
|
"schema": {
|
|
"type": "object",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"required": ["data"],
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": null,
|
|
"description": ""
|
|
}
|
|
}
|
|
},
|
|
"content": "export async function main(data: {brand: string}[]) {\n const result: {data: number[], labels: string[]} = {\n data: [],\n labels: []\n }\n if(!Array.isArray(data)) { return result }\n\n const count: Record<string, number> = {}\n data.forEach(({brand}) => {\n brand = brand.toLowerCase()\n if(count[brand]) {\n count[brand]++\n } else {\n count[brand] = 1\n }\n })\n Object.entries(count).forEach(([key, value]) => {\n result.data.push(value)\n result.labels.push(key)\n })\n return result\n}\n",
|
|
"language": "deno"
|
|
}
|
|
},
|
|
"fieldType": "object"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"3": {
|
|
"h": 1,
|
|
"w": 1,
|
|
"x": 2,
|
|
"y": 23,
|
|
"max": {
|
|
"h": 100,
|
|
"w": 3
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"12": {
|
|
"h": 2,
|
|
"w": 6,
|
|
"x": 0,
|
|
"y": 17,
|
|
"id": "h",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 12
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"id": "h",
|
|
"data": {
|
|
"id": "h",
|
|
"card": false,
|
|
"type": "textcomponent",
|
|
"softWrap": true,
|
|
"configuration": {
|
|
"style": {
|
|
"type": "static",
|
|
"value": "Subtitle",
|
|
"fieldType": "select",
|
|
"onlyStatic": true,
|
|
"optionValuesKey": "textStyleOptions"
|
|
},
|
|
"copyButton": {
|
|
"type": "static",
|
|
"value": false,
|
|
"fieldType": "boolean",
|
|
"onlyStatic": true
|
|
},
|
|
"extraStyle": {
|
|
"type": "static",
|
|
"value": "",
|
|
"tooltip": "CSS rules like \"color: blue;\"",
|
|
"fieldType": "text"
|
|
}
|
|
},
|
|
"componentInput": {
|
|
"eval": "Product Count By Categories",
|
|
"type": "template",
|
|
"value": "Hello ${ctx.username}",
|
|
"fieldType": "template"
|
|
},
|
|
"verticalAlignment": "bottom",
|
|
"horizontalAlignment": "left"
|
|
}
|
|
},
|
|
{
|
|
"3": {
|
|
"h": 1,
|
|
"w": 1,
|
|
"x": 2,
|
|
"y": 24,
|
|
"max": {
|
|
"h": 100,
|
|
"w": 3
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"12": {
|
|
"h": 2,
|
|
"w": 6,
|
|
"x": 6,
|
|
"y": 17,
|
|
"id": "i",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 12
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"id": "i",
|
|
"data": {
|
|
"id": "i",
|
|
"card": false,
|
|
"type": "textcomponent",
|
|
"softWrap": true,
|
|
"configuration": {
|
|
"style": {
|
|
"type": "static",
|
|
"value": "Subtitle",
|
|
"fieldType": "select",
|
|
"onlyStatic": true,
|
|
"optionValuesKey": "textStyleOptions"
|
|
},
|
|
"copyButton": {
|
|
"type": "static",
|
|
"value": false,
|
|
"fieldType": "boolean",
|
|
"onlyStatic": true
|
|
},
|
|
"extraStyle": {
|
|
"type": "static",
|
|
"value": "",
|
|
"tooltip": "CSS rules like \"color: blue;\"",
|
|
"fieldType": "text"
|
|
}
|
|
},
|
|
"componentInput": {
|
|
"eval": "Product Count By Brands",
|
|
"type": "template",
|
|
"value": "Hello ${ctx.username}",
|
|
"fieldType": "template"
|
|
},
|
|
"verticalAlignment": "bottom",
|
|
"horizontalAlignment": "left"
|
|
}
|
|
},
|
|
{
|
|
"3": {
|
|
"h": 1,
|
|
"w": 1,
|
|
"x": 2,
|
|
"y": 25,
|
|
"max": {
|
|
"h": 100,
|
|
"w": 3
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"12": {
|
|
"h": 2,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 28,
|
|
"id": "j",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 12
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"id": "j",
|
|
"data": {
|
|
"id": "j",
|
|
"card": false,
|
|
"type": "textcomponent",
|
|
"softWrap": true,
|
|
"configuration": {
|
|
"style": {
|
|
"type": "static",
|
|
"value": "Subtitle",
|
|
"fieldType": "select",
|
|
"onlyStatic": true,
|
|
"optionValuesKey": "textStyleOptions"
|
|
},
|
|
"copyButton": {
|
|
"type": "static",
|
|
"value": false,
|
|
"fieldType": "boolean",
|
|
"onlyStatic": true
|
|
},
|
|
"extraStyle": {
|
|
"type": "static",
|
|
"value": "",
|
|
"tooltip": "CSS rules like \"color: blue;\"",
|
|
"fieldType": "text"
|
|
}
|
|
},
|
|
"componentInput": {
|
|
"eval": "Stock Worth By Product",
|
|
"type": "runnable",
|
|
"value": "Stock Worth By Product (Total Worth: $765,200)",
|
|
"fields": {
|
|
"data": {
|
|
"type": "connected",
|
|
"value": null,
|
|
"fieldType": "array",
|
|
"connection": {
|
|
"path": "result",
|
|
"componentId": "a"
|
|
}
|
|
}
|
|
},
|
|
"runnable": {
|
|
"name": "Stock Worth Title",
|
|
"type": "runnableByName",
|
|
"inlineScript": {
|
|
"path": "u/adam/products-app/inline-script/Inline Script 0",
|
|
"schema": {
|
|
"type": "object",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"required": ["data"],
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": null,
|
|
"description": ""
|
|
}
|
|
}
|
|
},
|
|
"content": "export async function main(data: {stock: number, price: number}[]) {\n const base = 'Stock Worth By Product'\n if(!Array.isArray(data)) { return base }\n\n const total = data.map(row => row.stock * row.price).reduce((acc, curr) => acc + curr)\n const formatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n maximumFractionDigits: 0,\n });\n return base + ` (Total Worth: ${formatter.format(total)})`\n}\n",
|
|
"language": "deno"
|
|
}
|
|
},
|
|
"fieldType": "template"
|
|
},
|
|
"verticalAlignment": "bottom",
|
|
"horizontalAlignment": "left"
|
|
}
|
|
},
|
|
{
|
|
"3": {
|
|
"h": 8,
|
|
"w": 2,
|
|
"x": 0,
|
|
"y": 47,
|
|
"max": {
|
|
"h": 100,
|
|
"w": 3
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"12": {
|
|
"h": 16,
|
|
"w": 12,
|
|
"x": 0,
|
|
"y": 30,
|
|
"id": "k",
|
|
"max": {
|
|
"h": 100,
|
|
"w": 12
|
|
},
|
|
"min": {
|
|
"h": 1,
|
|
"w": 1
|
|
},
|
|
"fixed": false,
|
|
"draggable": true,
|
|
"resizable": true,
|
|
"customDragger": false,
|
|
"customResizer": false
|
|
},
|
|
"id": "k",
|
|
"data": {
|
|
"id": "k",
|
|
"card": true,
|
|
"type": "barchartcomponent",
|
|
"configuration": {
|
|
"line": {
|
|
"type": "static",
|
|
"value": false,
|
|
"fieldType": "boolean",
|
|
"onlyStatic": true
|
|
},
|
|
"theme": {
|
|
"type": "static",
|
|
"value": "theme1",
|
|
"fieldType": "select",
|
|
"onlyStatic": true,
|
|
"optionValuesKey": "chartThemeOptions"
|
|
}
|
|
},
|
|
"componentInput": {
|
|
"type": "runnable",
|
|
"value": {
|
|
"data": [
|
|
51606, 30566, 44964, 34440, 15968, 145167, 74950, 101932, 105504,
|
|
97811, 845, 2080, 793, 13680, 3150, 2090, 936, 3520, 2484, 9800,
|
|
2660, 2044, 364, 5198, 3290, 5371, 867, 1080, 420, 1620
|
|
],
|
|
"labels": [
|
|
"Apple iPhone 9",
|
|
"Apple iPhone X",
|
|
"Samsung Samsung Universe 9",
|
|
"OPPO OPPOF19",
|
|
"Huawei Huawei P30",
|
|
"APPle MacBook Pro",
|
|
"Samsung Samsung Galaxy Book",
|
|
"Microsoft Surface Microsoft Surface Laptop 4",
|
|
"Infinix Infinix INBOOK",
|
|
"HP Pavilion HP Pavilion 15-DK1056WM",
|
|
"Impression of Acqua Di Gio perfume Oil",
|
|
"Royal_Mirage Brown Perfume",
|
|
"Fog Scent Xpressio Fog Scent Xpressio Perfume",
|
|
"Al Munakh Non-Alcoholic Concentrated Perfume Oil",
|
|
"Lord - Al-Rehab Eau De Perfume Spray",
|
|
"L'Oreal Paris Hyaluronic Acid Serum",
|
|
"Hemani Tea Tree Oil 30ml",
|
|
"Dermive Oil Free Moisturizer 100ml",
|
|
"ROREC White Rice Skin Beauty Serum.",
|
|
"Fair & Clear Freckle Treatment Cream- 15gm",
|
|
"Saaf & Khaas - Daal Masoor 500 grams",
|
|
"Bake Parlor Big Elbow Macaroni - 400 gm",
|
|
"Baking Food Items Orange Essence Food Flavou",
|
|
"fauji cereals muesli fruit nuts",
|
|
"Dry Rose Gulab Powder 50 Gram",
|
|
"Boho Decor Plant Hanger For Home",
|
|
"Flying Wooden Flying Wooden Bird",
|
|
"LED Lights 3D Embellishment Art Lamp",
|
|
"luxury palace Handcraft Chinese style",
|
|
"Golden Key Holder"
|
|
]
|
|
},
|
|
"fields": {
|
|
"data": {
|
|
"type": "connected",
|
|
"value": null,
|
|
"fieldType": "array",
|
|
"connection": {
|
|
"path": "result",
|
|
"componentId": "a"
|
|
}
|
|
}
|
|
},
|
|
"runnable": {
|
|
"name": "Product Stock Total Worth",
|
|
"type": "runnableByName",
|
|
"inlineScript": {
|
|
"path": "u/adam/products-app/inline-script/Inline Script 0",
|
|
"schema": {
|
|
"type": "object",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"required": ["data"],
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": null,
|
|
"description": ""
|
|
}
|
|
}
|
|
},
|
|
"content": "export async function main(data: {brand: string, title: string, stock: number, price: number}[]) {\n const result: {data: number[], labels: string[]} = {\n data: [],\n labels: []\n }\n if(!Array.isArray(data)) { return result }\n\n const count: Record<string, number> = {}\n data.forEach(row => {\n const key = `${row.brand} ${row.title}`\n const value = row.stock * row.price\n count[key] = value\n })\n Object.entries(count).forEach(([key, value]) => {\n result.data.push(value)\n result.labels.push(key)\n })\n return result\n}\n",
|
|
"language": "deno"
|
|
}
|
|
},
|
|
"fieldType": "object"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"norefreshbar": false
|
|
}
|