pict-section-form 1.0.149 → 1.0.151

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -76,6 +76,12 @@
76
76
  "Units": "planetary",
77
77
  "Section": "Header",
78
78
  "Group": "General_Info"
79
+ },
80
+ "AnotherObject": {
81
+ "NotPictForm": {
82
+ "x": 15.2,
83
+ "y": 17
84
+ }
79
85
  }
80
86
  },
81
87
  "Header.WarehouseVolume": {
@@ -113,6 +119,11 @@
113
119
  ],
114
120
  "Section": "REST_Request",
115
121
  "Group": "Book_Data"
122
+ },
123
+ "AnotherObject": {
124
+ "NotPictForm": {
125
+ "x": 86
126
+ }
116
127
  }
117
128
  },
118
129
  "HelpContent.Math": {
@@ -139,7 +150,13 @@
139
150
  "Section": "Basic_Geometry",
140
151
  "Group": "BasicGeoGrp"
141
152
  },
142
- "Default": "7.25"
153
+ "Default": "7.25",
154
+ "AnotherObject": {
155
+ "NotPictForm": {
156
+ "x": 11,
157
+ "y": 190
158
+ }
159
+ }
143
160
  },
144
161
  "Geometry.Rectangle.Height": {
145
162
  "Hash": "RectangleHeight",
@@ -152,7 +169,12 @@
152
169
  "Section": "Basic_Geometry",
153
170
  "Group": "BasicGeoGrp"
154
171
  },
155
- "Default": "10.3571"
172
+ "Default": "10.3571",
173
+ "AnotherObject": {
174
+ "NotPictForm": {
175
+ "y": 22
176
+ }
177
+ }
156
178
  },
157
179
  "Geometry.Rectangle.Area": {
158
180
  "Hash": "RectangleArea",
@@ -164,7 +186,8 @@
164
186
  "Width": "3",
165
187
  "Units": "unrounded",
166
188
  "Section": "Basic_Geometry",
167
- "Group": "BasicGeoGrp"
189
+ "Group": "BasicGeoGrp",
190
+ "RandomData": "This is a test for random data injection."
168
191
  },
169
192
  "Description": "Area of the Rectangle."
170
193
  },
@@ -217,7 +240,8 @@
217
240
  "Width": "12",
218
241
  "DecimalPrecision": 4,
219
242
  "Section": "Basic_Geometry",
220
- "Group": "Circle"
243
+ "Group": "Circle",
244
+ "RandomData": "Sparse..."
221
245
  },
222
246
  "Default": "85.523"
223
247
  },
@@ -496,6 +520,35 @@
496
520
  ]
497
521
  }
498
522
  },
523
+ "BoxChart_DataAll": {
524
+ "Hash": "BoxChart_DataComparison",
525
+ "Name": "Box Data Comparison",
526
+ "DataAddress": "BoxChart_DataAll",
527
+ "DataType": "Object",
528
+ "PictForm": {
529
+ "InputType": "Chart",
530
+ "Row": "5",
531
+ "Width": "4",
532
+ "Section": "Box_Summary_Data",
533
+ "Group": "Box_Summary_Data",
534
+ "ChartType": "bar",
535
+ "ChartLabelsSolver": "objectkeystoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Volume\"))",
536
+ "ChartDatasetsSolvers": [
537
+ {
538
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Width\"))",
539
+ "Label": "Width"
540
+ },
541
+ {
542
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Depth\"))",
543
+ "Label": "Data"
544
+ },
545
+ {
546
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Height\"))",
547
+ "Label": "Data"
548
+ }
549
+ ]
550
+ }
551
+ },
499
552
  "HelpContent.Cuboid": {
500
553
  "Hash": "CuboidHelpContent",
501
554
  "Name": "How to Cuboid Math",
@@ -504,7 +557,7 @@
504
557
  "PictForm": {
505
558
  "InputType": "Markdown",
506
559
  "Row": "1",
507
- "Width": "1",
560
+ "Width": "12",
508
561
  "Section": "Rectangular_Area_Help",
509
562
  "Group": "Rectangular_Area_Help"
510
563
  }
@@ -516,7 +569,7 @@
516
569
  "DataType": "Number",
517
570
  "PictForm": {
518
571
  "Row": "1",
519
- "Width": "4",
572
+ "Width": "6",
520
573
  "Tooltip": "The PR is *very* important.",
521
574
  "Section": "Complex_Equation",
522
575
  "Group": "Complex_Equation"
@@ -1,73 +1,75 @@
1
- Form,Form Name,SubManifest,HideTabularEditingControls,GroupRecordSetAddress,DataOnly,Section Name,Section Hash,Group Name,Group Hash,Group Layout,Group CSS,Group Show Title,Row,Width,Minimum Row Count,Maximum Row Count,Input Address,Input Name,Input Hash,Input Extra,Units,DataType,Decimal Precision,InputType,Equation,Equation Ordinal,Default,Description,Tooltip,Input Notes,Entity,EntityColumnFilter,EntityDestination,SingleRecord,TriggerGroup,TriggerAddress,TriggerAllInputs,MarshalEmptyValues,ChartType,ChartLabelsAddress,ChartLabelsSolver,ChartDatasetsAddress,ChartDatasetsLabel,ChartDatasetsSolver
2
- MathExampleForm,Math Example Form,,,,,Header,,General Info,,,,,1,3,,,Header.FirstName,First Name,HeaderFirstName,,,String,,,,,,,,,,,,,,,,,,,,,,
3
- MathExampleForm,,,,,,Header,,General Info,,,,,1,3,,,Header.LastName,Last Name,HeaderLastName,,,String,,,,,,,,,,,,,,,,,,,,,,
4
- MathExampleForm,,,,,,Header,,General Info,,,,,1,6,,,Header.JobTitle,Job Title,JobTitle,,,String,,,,,,,,,,,,,,,,,,,,,,
5
- MathExampleForm,,,,,,Header,,General Info,,,,,2,12,,,Header.Description,Description,Description,,,String,,,,,,,,,,,,,,,,,,,,,,
6
- MathExampleForm,,,,,,Header,,General Info,,,,,3,6,,,Header.Planet,Planet,Planet,,planetary,String,,Option,,,,,,,,,,,,,,,,,,,,
7
- MathExampleForm,,,,,,Header,,General Info,,,,,3,6,,,Header.Universe,Universe,Universe,,planetary,String,,Option,,,,,,,,,,,,,,,,,,,,
8
- MathExampleForm,,,,,,Header,,General Info,,,,,4,12,,,Header.WarehouseVolume,Warehouse Volume,WarehouseVolume,,,Number,,,,,50000,,,,,,,,,,,,,,,,,
9
- MathExampleForm,,,,,,REST Request,,Book Data,,,,,1,6,,,BookData.CurrentIDBook,IDBook,CurrentIDBook,,,Number,,,,,,,,Book from REST request,Book,IDBook,LoadedBook,,,,,,,,,,,
10
- MathExampleForm,,,,,,MatheMagic,,Math is Magic,,,,,1,1,,,HelpContent.Math,So Very Magic,MathHelpContent,,,String,,HTML,,,,,,,,,,,,,,,,,,,,
11
- MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,1,6,,,Geometry.Rectangle.Width,Width,RectangleWidth,,,Number,,,,,7.25,,,,,,,,,,,,,,,,,
12
- MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,1,6,,,Geometry.Rectangle.Height,Height,RectangleHeight,,,Number,,,,,10.3571,,,,,,,,,,,,,,,,,
13
- MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,2,3,,,Geometry.Rectangle.Area,Area,RectangleArea,,unrounded,Number,,,RectangleArea = RectangleWidth * RectangleHeight,,,Area of the Rectangle.,,,,,,,,,,,,,,,,
14
- MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,2,3,,,Geometry.Rectangle.AreaRoundedDefault,Area Rounded,RectangleAreaRoundedDefault,,default,Number,,,RectangleAreaRoundedDefault = ROUND(RectangleWidth * RectangleHeight),,,,,,,,,,,,,,,,,,,
15
- MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,2,3,,,Geometry.Rectangle.AreaRoundedThree,Area Rounded 3,RectangleAreaRoundedThree,,3,Number,,,"RectangleAreaRoundedThree = ROUND((RectangleWidth * RectangleHeight), 3)",,,,,,,,,,,,,,,,,,,
16
- MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,2,3,,,Geometry.Rectangle.AreaRoundedFour,Area Rounded 5,RectangleAreaRoundedFive,,5,Number,,,"RectangleAreaRoundedFive = ROUND(RectangleArea, 5)",,,,,,,,,,,,,,,,,,,
17
- MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,1,12,,,Geometry.Circle.Radius,Radius,CircleRadius,,,Number,4,,,,85.523,,,,,,,,,,,,,,,,,
18
- MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,2,3,,,Geometry.Circle.Area,Area,CircleArea,,unrounded,Number,,,CircleArea = PI() * CircleRadius^2,,,,,,,,,,,,,,,,,,,
19
- MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,2,3,,,Geometry.Circle.AreaRoundedDefault,Area Rounded,CircleAreaRoundedDefault,,default,Number,,,CircleAreaRoundedDefault = ROUND(PI() * CircleRadius^2),,,,,,,,,,,,,,,,,,,
20
- MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,2,3,,,Geometry.Circle.AreaRoundedThree,Area Rounded 4,CircleAreaRoundedFour,,4,Number,,,"CircleAreaRoundedFour = ROUND(CircleArea,4)",,,,,,,,,,,,,,,,,,,
21
- MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,2,3,,,Geometry.Circle.AreaRoundedFour,Area Rounded 6,CircleAreaRoundedSix,,6,Number,,,"CircleAreaRoundedSix = ROUND(PI() * CircleRadius^2,6)",,,,,,,,,,,,,,,,,,,
22
- MathExampleForm,,BoxCollectionData,,,1,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,true,1,1,3,10,Boxes,Boxes,Boxes,,,Array,,TabularAddress,,,,,,,,,,,,,,,,,,,,
23
- MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Identifier,Identifier,BoxIdentifier,,,String,,,,,,,,,,,,,Box,,X,,,,,,,
24
- MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,BoxCategory,Category,BoxCategory,,,String,,,,,,,,,,,,,Box,,X,,,,,,,
25
- MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Width,Width,BoxWidth,,,Number,,,,,,,,,,,,,,,,,,,,,,
26
- MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Height,Height,BoxHeight,,,Number,,,,,,,,,,,,,,,,,,,,,,
27
- MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Depth,Depth,BoxDepth,,,Number,,,,,,,,,,,,,,,,,,,,,,
28
- MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Floorspace,Floorspace,BoxFloorspace,,,Number,,,BoxFloorspace = BoxWidth * BoxDepth,,,,,,,,,,,,,,,,,,,
29
- MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Volume,Volume,BoxVolume,,,Number,,,BoxVolume = BoxFloorspace * BoxHeight,,,,,,,,,,Box,,true,,,,,,,
30
- MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,WarehouseSpaceLeft,Warehouse Space Left,WarehouseSpaceLeft,,,Number,,,,,,,,,,,,,Box,,true,,,,,,,
31
- MathExampleForm,,BoxCollectionSecondaryTable,1,Boxes,1,Box Decoration,BoxDecroations,Box Decorations,BoxDecorationGroup,,,true,1,1,,,BoxDecorationSet,BoxDecorationSet,BoxDecorationSet,,,Array,,TabularAddress,,,,,,,,,,,,,,,,,,,,
32
- MathExampleForm,,BoxCollectionSecondaryTable,,,,Box Decoration,BoxDecorations,Box Decorations,BoxDecorationGroup,,,,1,1,,,Identifier,Identifier,BoxIdentifier,,,String,,DataOnly,,,,,,,,,,,Box,,X,,,,,,,
33
- MathExampleForm,,BoxCollectionSecondaryTable,,,,Box Decoration,BoxDecorations,Box Decorations,BoxDecorationGroup,,,,1,1,,,Volume,Volume,BoxVolume,,,PreciseNumber,,DataOnly,,,,,,,,,,,Box,,X,,,,,,,
34
- MathExampleForm,,BoxCollectionSecondaryTable,,,,Box Decoration,BoxDecorations,Box Decorations,BoxDecorationGroup,,,,1,1,,,DecorativeText,Decorative Text,DecorativeText,,,String,,,,,,,,,,,,,Box,,X,,,,,,,
35
- MathExampleForm,,,,,1,Box Summary Data,,Box Summary Data,,,,,1,1,,,Boxes[].Floorspace,BoxesFloorSpaceSet,BoxesFloorspaceSet,,,Object,,,,,,,,,,,,,,,,,,,,,,
36
- MathExampleForm,,,,,1,Box Summary Data,,Box Summary Data,,,,,1,1,,,Boxes[].Volume,BoxesVolumeSet,BoxesVolumeSet,,,Object,,,,,,,,,,,,,,,,,,,,,,
37
- MathExampleForm,,,,,1,Box Summary Data,,Box Summary Data,,,,,1,1,,,Boxes[].Depth,BoxesDepthSet,BoxesDepthSet,,,Object,,,,,,,,,,,,,,,,,,,,,,
38
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,1,12,,,BoxAggregate.Count,Box Count,BoxesCount,,,Number,,,BoxesCount = COUNT(BoxesFloorspaceSet),,,,,,,,,,,,,,,,,,,
39
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,2,6,,,BoxAggregate.AverageFloorspace,Average Floorspace,BoxesAverageFloorspace,,,Number,,,BoxesAverageFloorspace = AVG(BoxesFloorspaceSet),,,,,,,,,,,,,,,,,,,
40
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,2,6,,,BoxAggregate.TotalFloorspace,Total Floorspace,BoxesTotalFloorspace,,,Number,,,BoxesTotalFloorspace = SUM(BoxesFloorspaceSet),,,,,,,,,,,,,,,,,,,
41
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,3,4,,,BoxAggregate.AverageVolume,Average Volume,BoxesAverageVolume,,,Number,,,BoxesAverageVolume = AVG(BoxesVolumeSet),,,,,,,,,,,,,,,,,,,
42
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,3,4,,,BoxAggregate.TotalVolume,Total Volume,BoxesTotalVolume,,,Number,,,BoxesTotalVolume = COUNT(BoxesVolumeSet),,,,,,,,,,,,,,,,,,,
43
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,3,4,,,BoxAggregate.TotalVolumeRounded,Total Volume Rounded,BoxesTotalVolumeRounded,,,Number,,,BoxesTotalVolumeRounded = ROUND(SUM(BoxesVolumeSet)),,,,,,,,,,,,,,,,,,,
44
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,4,3,,,BoxAggregate.MinDepth,Minimum Depth,BoxesMinDepth,,,Number,,,BoxesMinDepth = MIN(BoxesDepthSet),,,,,,,,,,,,,,,,,,,
45
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,4,3,,,BoxAggregate.MeanDepth,Mean Depth,BoxesMeanDepth,,,Number,,,BoxesMeanDepth = MEAN(BoxesDepthSet),,,,,,,,,,,,,,,,,,,
46
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,4,3,,,BoxAggregate.MedianDepth,Median Depth,BoxesMedianDepth,,,Number,,,BoxesMedianDepth = MEDIAN(BoxesDepthSet),,,,,,,,,,,,,,,,,,,
47
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,4,3,,,BoxAggregate.MaxDepth,Max Depth,BoxesMaxDepth,,,Number,,,BoxesMaxDepth = MAX(BoxesDepthSet),,,,,,,,,,,,,,,,,,,
48
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,5,4,,,BoxChart_Sizes,Box Category Volume Comparison,BoxChart_Sizes,,,Object,,Chart,,,,,,,,,,,,,,,pie,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Volume""))",,Box Categories,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Volume""))"
49
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,5,4,,,BoxChart_Size_Details,Box Size Comparison,BoxChart_Size_Details,,,Object,,Chart,,,,,,,,,,,,,,,bar,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Volume""))",,Box Volumes,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Volume""))"
50
- MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,5,4,,,BoxChart_Scatter,Box Width x Height Scatter,BoxChart_Dimensions,,,Object,,Chart,,,,,,,,,,,,,,,radar,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Floorspace""))",,Box Floorspace Usage,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Floorspace""))"
51
- MathExampleForm,,,,,,Rectangular Area Help,,Rectangular Area Help,,,,,1,1,,,HelpContent.Cuboid,How to Cuboid Math,CuboidHelpContent,,,String,,Markdown,,,,,,,,,,,,,,,,,,,,
52
- MathExampleForm,,,,,,Complex Equation,,Complex Equation,,Vertical,,,1,4,,,ComplexEquation.PR,PR,CePR,,,Number,,,,,4.5,,The PR is *very* important.,,,,,,,,,,,,,,,
53
- MathExampleForm,,,,,,Complex Equation,,Complex Equation,,,,,1,4,,,ComplexEquation.Z,Z,CeZ,,,Number,,,,,1.5,,Z _is not_ the z-index.,,,,,,,,,,,,,,,
54
- MathExampleForm,,,,,,Complex Equation,,Complex Equation,,,,,1,4,,,ComplexEquation.C,C,CeC,,,Number,,,,,8.75,,C is the universal constant.,,,,,,,,,,,,,,,
55
- MathExampleForm,,,,,,Complex Equation,,Complex Equation,,,,,2,6,,,ComplexEquation.Result,(160 * PR * Z) / (C / 100) * PR * Z + (160 * (1 - C / 100)),CeResult,,,Number,,,CeResult = (160 * CePR * CeZ) / (CeC / 100) * CePR * CeZ + (160 * (1 - CeC / 100)),,,,,,,,,,,,,,,,,,,
56
- MathExampleForm,,,,,,Complex Equation,,Complex Equation,,,,,2,6,,,ComplexEquation.ResultRounded,Rounded 3,CeResultRounded,,,Number,,,"CeResultRounded = ROUND(CeResult,3)",,,,,,,,,,,,,,,,,,,
57
- MathExampleForm,,Rectangles,,,1,Rectangle Aggregation,,Rectangle Set,,,,false,1,1,20,,Rectangle,Rectangles,Rectangles,,,Array,,TabularAddress,,,,,,,,,,,,,,,,,,,,
58
- MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,Identifier,Identifier,RectangleIdentifier,,,String,,,,,,,,,,,,,,,,,,,,,,
59
- MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,Width,Width,RectangleWidth,,meters,Number,,,,,,,,,,,,,,,,,,,,,,
60
- MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,Height,Height,RectangleHeight,,meters,Number,,,,,,,,,,,,,,,,,,,,,,
61
- MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,Area,Area,RectangleArea,,,Number,,,RectangleArea = RectangleWidth * RectangleHeight,,,,,,,,,,,,,,,,,,,
62
- MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,AreaDegredation,Degredation (first minus each subsequent),AreaDegredation,,,Number,,,,,,,,,,,,,,,,,,,,,,
63
- MathExampleForm,,Cylinders,,,1,Cylinders,,Cylinders,,,,false,1,1,,,Cylinders,Cylinders,Cylinders,,,Array,,TabularAddress,,,,,,,,,,,,,,,,,,,,
64
- MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Identifier,Identifier,Identifier,,,String,,,,,,,,,,,,,,,,,,,,,,
65
- MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Radius,Radius,Radius,,,PreciseNumber,2,,,,,,,,,,,,,,,,,,,,,
66
- MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Height,Height,Height,,,PreciseNumber,,,,,,,,,,,,,,,,,,,,,,
67
- MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Circumference,Circumference,Circumference,,,PreciseNumber,,,Circumference = 2 * PI() * Radius,,,,,,,,,,,,,,,,,,,
68
- MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Area,Area,Area,,,PreciseNumber,,,Area = (2 * PI() * Radius * Height) + (2 * PI() * Radius ^2),,,,,,,,,,,,,,,,,,,
69
- MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,CustomCSSClass,,1,1,,,Listopia.Filters.Colour,Color Filter,ColourFilter,,,,,,,,,,,,,,,,,,,,,,,,,
70
- MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,,,2,1,,,Listopia.Color,Color,Colors,,,String,,Option,"SUBTRACTINGSUMMATION(Rectangles, ""Area"", ""AreaDegredation"")",,,,,,,,,,,,,,,,,,,
71
- MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,,,2,1,,,Listopia.Box,Box,BoxSelection,,,String,,Option,,,,,,,,,,,Box,,,,,,,,,
72
- MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,,,3,1,,,Listopia.Fruit,Fruit,FruitSelection,,,String,,Option,,,,,,,,,,,,,,,,,,,,
73
- MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,,,3,1,,,Listopia.Stone,Stone,Stones,,,String,,Option,,,,,,,,,,,,,,,,,,,,
1
+ Form,Form Name,SubManifest,HideTabularEditingControls,GroupRecordSetAddress,DataOnly,Section Name,Section Hash,Group Name,Group Hash,Group Layout,Group CSS,Group Show Title,Row,Width,Minimum Row Count,Maximum Row Count,Input Address,Input Name,Input Hash,Input Extra,Units,DataType,Decimal Precision,InputType,Equation,Equation Ordinal,Default,Description,Tooltip,Input Notes,Entity,EntityColumnFilter,EntityDestination,SingleRecord,TriggerGroup,TriggerAddress,TriggerAllInputs,MarshalEmptyValues,ChartType,ChartLabelsAddress,ChartLabelsSolver,ChartDatasetsAddress,ChartDatasetsLabel,ChartDatasetsSolver,ChartDatasetsSolverChartType,ChartDatasetsSolverLabel1,ChartDatasetsSolver1,ChartDataSetsSolverChartType1,ChartDatasetsSolverLabel2,ChartDatasetsSolver2,ChartDatasetsSolverChartType2,ChartDatasetsSolverLabel3,ChartDatasetsSolver3,ChartDatasetsSolverChartType3,Descriptor_Extension_PictForm.RandomData,Desciptor_Boolean_Extension_PictForm.ShowMoreMath,Descriptor_Float_Extension_AnotherObject.NotPictForm.x,Descriptor_Float_Extension_AnotherObject.NotPictForm.y
2
+ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
3
+ MathExampleForm,Math Example Form,,,,,Header,,General Info,,,,,1,3,,,Header.FirstName,First Name,HeaderFirstName,,,String,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4
+ MathExampleForm,,,,,,Header,,General Info,,,,,1,3,,,Header.LastName,Last Name,HeaderLastName,,,String,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
5
+ MathExampleForm,,,,,,Header,,General Info,,,,,1,6,,,Header.JobTitle,Job Title,JobTitle,,,String,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
6
+ MathExampleForm,,,,,,Header,,General Info,,,,,2,12,,,Header.Description,Description,Description,,,String,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,T,,
7
+ MathExampleForm,,,,,,Header,,General Info,,,,,3,6,,,Header.Planet,Planet,Planet,,planetary,String,,Option,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
8
+ MathExampleForm,,,,,,Header,,General Info,,,,,3,6,,,Header.Universe,Universe,Universe,,planetary,String,,Option,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,15.2,17
9
+ MathExampleForm,,,,,,Header,,General Info,,,,,4,12,,,Header.WarehouseVolume,Warehouse Volume,WarehouseVolume,,,Number,,,,,50000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,t,,
10
+ MathExampleForm,,,,,,REST Request,,Book Data,,,,,1,6,,,BookData.CurrentIDBook,IDBook,CurrentIDBook,,,Number,,,,,,,,Book from REST request,Book,IDBook,LoadedBook,,,,,,,,,,,,,,,,,,,,,,,,86,
11
+ MathExampleForm,,,,,,MatheMagic,,Math is Magic,,,,,1,1,,,HelpContent.Math,So Very Magic,MathHelpContent,,,String,,HTML,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
12
+ MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,1,6,,,Geometry.Rectangle.Width,Width,RectangleWidth,,,Number,,,,,7.25,,,,,,,,,,,,,,,,,,,,,,,,,,,,,y,11,190
13
+ MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,1,6,,,Geometry.Rectangle.Height,Height,RectangleHeight,,,Number,,,,,10.3571,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,22
14
+ MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,2,3,,,Geometry.Rectangle.Area,Area,RectangleArea,,unrounded,Number,,,RectangleArea = RectangleWidth * RectangleHeight,,,Area of the Rectangle.,,,,,,,,,,,,,,,,,,,,,,,,,,,This is a test for random data injection.,1,,
15
+ MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,2,3,,,Geometry.Rectangle.AreaRoundedDefault,Area Rounded,RectangleAreaRoundedDefault,,default,Number,,,RectangleAreaRoundedDefault = ROUND(RectangleWidth * RectangleHeight),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,frog,
16
+ MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,2,3,,,Geometry.Rectangle.AreaRoundedThree,Area Rounded 3,RectangleAreaRoundedThree,,3,Number,,,"RectangleAreaRoundedThree = ROUND((RectangleWidth * RectangleHeight), 3)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
17
+ MathExampleForm,,,,,,Basic Geometry,,Rectangle,BasicGeoGrp,,,,2,3,,,Geometry.Rectangle.AreaRoundedFour,Area Rounded 5,RectangleAreaRoundedFive,,5,Number,,,"RectangleAreaRoundedFive = ROUND(RectangleArea, 5)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,true,,
18
+ MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,1,12,,,Geometry.Circle.Radius,Radius,CircleRadius,,,Number,4,,,,85.523,,,,,,,,,,,,,,,,,,,,,,,,,,,,Sparse...,,,
19
+ MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,2,3,,,Geometry.Circle.Area,Area,CircleArea,,unrounded,Number,,,CircleArea = PI() * CircleRadius^2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
20
+ MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,2,3,,,Geometry.Circle.AreaRoundedDefault,Area Rounded,CircleAreaRoundedDefault,,default,Number,,,CircleAreaRoundedDefault = ROUND(PI() * CircleRadius^2),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
21
+ MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,2,3,,,Geometry.Circle.AreaRoundedThree,Area Rounded 4,CircleAreaRoundedFour,,4,Number,,,"CircleAreaRoundedFour = ROUND(CircleArea,4)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
22
+ MathExampleForm,,,,,,Basic Geometry,,Circle,,,,,2,3,,,Geometry.Circle.AreaRoundedFour,Area Rounded 6,CircleAreaRoundedSix,,6,Number,,,"CircleAreaRoundedSix = ROUND(PI() * CircleRadius^2,6)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
23
+ MathExampleForm,,BoxCollectionData,,,1,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,true,1,1,3,10,Boxes,Boxes,Boxes,,,Array,,TabularAddress,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
24
+ MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Identifier,Identifier,BoxIdentifier,,,String,,,,,,,,,,,,,Box,,X,,,,,,,,,,,,,,,,,,,,,
25
+ MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,BoxCategory,Category,BoxCategory,,,String,,,,,,,,,,,,,Box,,X,,,,,,,,,,,,,,,,,,,,,
26
+ MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Width,Width,BoxWidth,,,Number,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
27
+ MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Height,Height,BoxHeight,,,Number,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
28
+ MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Depth,Depth,BoxDepth,,,Number,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
29
+ MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Floorspace,Floorspace,BoxFloorspace,,,Number,,,BoxFloorspace = BoxWidth * BoxDepth,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
30
+ MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,Volume,Volume,BoxVolume,,,Number,,,BoxVolume = BoxFloorspace * BoxHeight,,,,,,,,,,Box,,true,,,,,,,,,,,,,,,,,,,,,
31
+ MathExampleForm,,BoxCollectionData,,,,Box Collection,BoxCollSec,Boxes,BoxCollGrp,,,,1,1,,,WarehouseSpaceLeft,Warehouse Space Left,WarehouseSpaceLeft,,,Number,,,,,,,,,,,,,Box,,true,,,,,,,,,,,,,,,,,,,,,
32
+ MathExampleForm,,BoxCollectionSecondaryTable,1,Boxes,1,Box Decoration,BoxDecroations,Box Decorations,BoxDecorationGroup,,,true,1,1,,,BoxDecorationSet,BoxDecorationSet,BoxDecorationSet,,,Array,,TabularAddress,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
33
+ MathExampleForm,,BoxCollectionSecondaryTable,,,,Box Decoration,BoxDecorations,Box Decorations,BoxDecorationGroup,,,,1,1,,,Identifier,Identifier,BoxIdentifier,,,String,,DataOnly,,,,,,,,,,,Box,,X,,,,,,,,,,,,,,,,,,,,,
34
+ MathExampleForm,,BoxCollectionSecondaryTable,,,,Box Decoration,BoxDecorations,Box Decorations,BoxDecorationGroup,,,,1,1,,,Volume,Volume,BoxVolume,,,PreciseNumber,,DataOnly,,,,,,,,,,,Box,,X,,,,,,,,,,,,,,,,,,,,,
35
+ MathExampleForm,,BoxCollectionSecondaryTable,,,,Box Decoration,BoxDecorations,Box Decorations,BoxDecorationGroup,,,,1,1,,,DecorativeText,Decorative Text,DecorativeText,,,String,,,,,,,,,,,,,Box,,X,,,,,,,,,,,,,,,,,,,,,
36
+ MathExampleForm,,,,,1,Box Summary Data,,Box Summary Data,,,,,1,1,,,Boxes[].Floorspace,BoxesFloorSpaceSet,BoxesFloorspaceSet,,,Object,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
37
+ MathExampleForm,,,,,1,Box Summary Data,,Box Summary Data,,,,,1,1,,,Boxes[].Volume,BoxesVolumeSet,BoxesVolumeSet,,,Object,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
38
+ MathExampleForm,,,,,1,Box Summary Data,,Box Summary Data,,,,,1,1,,,Boxes[].Depth,BoxesDepthSet,BoxesDepthSet,,,Object,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
39
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,1,12,,,BoxAggregate.Count,Box Count,BoxesCount,,,Number,,,BoxesCount = COUNT(BoxesFloorspaceSet),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
40
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,2,6,,,BoxAggregate.AverageFloorspace,Average Floorspace,BoxesAverageFloorspace,,,Number,,,BoxesAverageFloorspace = AVG(BoxesFloorspaceSet),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
41
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,2,6,,,BoxAggregate.TotalFloorspace,Total Floorspace,BoxesTotalFloorspace,,,Number,,,BoxesTotalFloorspace = SUM(BoxesFloorspaceSet),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
42
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,3,4,,,BoxAggregate.AverageVolume,Average Volume,BoxesAverageVolume,,,Number,,,BoxesAverageVolume = AVG(BoxesVolumeSet),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
43
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,3,4,,,BoxAggregate.TotalVolume,Total Volume,BoxesTotalVolume,,,Number,,,BoxesTotalVolume = COUNT(BoxesVolumeSet),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
44
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,3,4,,,BoxAggregate.TotalVolumeRounded,Total Volume Rounded,BoxesTotalVolumeRounded,,,Number,,,BoxesTotalVolumeRounded = ROUND(SUM(BoxesVolumeSet)),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
45
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,4,3,,,BoxAggregate.MinDepth,Minimum Depth,BoxesMinDepth,,,Number,,,BoxesMinDepth = MIN(BoxesDepthSet),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
46
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,4,3,,,BoxAggregate.MeanDepth,Mean Depth,BoxesMeanDepth,,,Number,,,BoxesMeanDepth = MEAN(BoxesDepthSet),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
47
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,4,3,,,BoxAggregate.MedianDepth,Median Depth,BoxesMedianDepth,,,Number,,,BoxesMedianDepth = MEDIAN(BoxesDepthSet),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
48
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,4,3,,,BoxAggregate.MaxDepth,Max Depth,BoxesMaxDepth,,,Number,,,BoxesMaxDepth = MAX(BoxesDepthSet),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
49
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,5,4,,,BoxChart_Sizes,Box Category Volume Comparison,BoxChart_Sizes,,,Object,,Chart,,,,,,,,,,,,,,,pie,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Volume""))",,Box Categories,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Volume""))",,,,,,,,,,,,,,
50
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,5,4,,,BoxChart_Size_Details,Box Size Comparison,BoxChart_Size_Details,,,Object,,Chart,,,,,,,,,,,,,,,bar,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Volume""))",,Box Volumes,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Volume""))",,,,,,,,,,,,,,
51
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,5,4,,,BoxChart_Scatter,Box Width x Height Scatter,BoxChart_Dimensions,,,Object,,Chart,,,,,,,,,,,,,,,radar,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Floorspace""))",,Box Floorspace Usage,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Floorspace""))",,,,,,,,,,,,,,
52
+ MathExampleForm,,,,,,Box Summary Data,,Box Summary Data,,,,,5,4,,,BoxChart_DataAll,Box Data Comparison,BoxChart_DataComparison,,,Object,,Chart,,,,,,,,,,,,,,,bar,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Volume""))",,Width,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Width""))",,Depth,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Depth""))",,Height,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Height""))",,,,,,,,
53
+ MathExampleForm,,,,,,Rectangular Area Help,,Rectangular Area Help,,,,,1,12,,,HelpContent.Cuboid,How to Cuboid Math,CuboidHelpContent,,,String,,Markdown,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
54
+ MathExampleForm,,,,,,Complex Equation,,Complex Equation,,Vertical,,,1,6,,,ComplexEquation.PR,PR,CePR,,,Number,,,,,4.5,,The PR is *very* important.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
55
+ MathExampleForm,,,,,,Complex Equation,,Complex Equation,,,,,1,4,,,ComplexEquation.Z,Z,CeZ,,,Number,,,,,1.5,,Z _is not_ the z-index.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
56
+ MathExampleForm,,,,,,Complex Equation,,Complex Equation,,,,,1,4,,,ComplexEquation.C,C,CeC,,,Number,,,,,8.75,,C is the universal constant.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
57
+ MathExampleForm,,,,,,Complex Equation,,Complex Equation,,,,,2,6,,,ComplexEquation.Result,(160 * PR * Z) / (C / 100) * PR * Z + (160 * (1 - C / 100)),CeResult,,,Number,,,CeResult = (160 * CePR * CeZ) / (CeC / 100) * CePR * CeZ + (160 * (1 - CeC / 100)),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
58
+ MathExampleForm,,,,,,Complex Equation,,Complex Equation,,,,,2,6,,,ComplexEquation.ResultRounded,Rounded 3,CeResultRounded,,,Number,,,"CeResultRounded = ROUND(CeResult,3)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
59
+ MathExampleForm,,Rectangles,,,1,Rectangle Aggregation,,Rectangle Set,,,,false,1,1,20,,Rectangle,Rectangles,Rectangles,,,Array,,TabularAddress,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
60
+ MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,Identifier,Identifier,RectangleIdentifier,,,String,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
61
+ MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,Width,Width,RectangleWidth,,meters,Number,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
62
+ MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,Height,Height,RectangleHeight,,meters,Number,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
63
+ MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,Area,Area,RectangleArea,,,Number,,,RectangleArea = RectangleWidth * RectangleHeight,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
64
+ MathExampleForm,,Rectangles,,,,Rectangle Aggregation,,Rectangle Set,,,,,1,1,,,AreaDegredation,Degredation (first minus each subsequent),AreaDegredation,,,Number,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
65
+ MathExampleForm,,Cylinders,,,1,Cylinders,,Cylinders,,,,false,1,1,,,Cylinders,Cylinders,Cylinders,,,Array,,TabularAddress,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
66
+ MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Identifier,Identifier,Identifier,,,String,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
67
+ MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Radius,Radius,Radius,,,PreciseNumber,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
68
+ MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Height,Height,Height,,,PreciseNumber,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
69
+ MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Circumference,Circumference,Circumference,,,PreciseNumber,,,Circumference = 2 * PI() * Radius,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
70
+ MathExampleForm,,Cylinders,,,,Cylinders,,Cylinders,,,,,1,1,,,Area,Area,Area,,,PreciseNumber,,,Area = (2 * PI() * Radius * Height) + (2 * PI() * Radius ^2),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
71
+ MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,CustomCSSClass,,1,1,,,Listopia.Filters.Colour,Color Filter,ColourFilter,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
72
+ MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,,,2,1,,,Listopia.Color,Color,Colors,,,String,,Option,"SUBTRACTINGSUMMATION(Rectangles, ""Area"", ""AreaDegredation"")",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
73
+ MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,,,2,1,,,Listopia.Box,Box,BoxSelection,,,String,,Option,,,,,,,,,,,Box,,,,,,,,,,,,,,,,,,,,,,,
74
+ MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,,,3,1,,,Listopia.Fruit,Fruit,FruitSelection,,,String,,Option,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
75
+ MathExampleForm,,,,,,List Topia,Listopia,Occlusion Lists,OcclusionLists,,,,3,1,,,Listopia.Stone,Stone,Stones,,,String,,Option,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
@@ -75,6 +75,12 @@
75
75
  "Units": "planetary",
76
76
  "Section": "Header",
77
77
  "Group": "General_Info"
78
+ },
79
+ "AnotherObject": {
80
+ "NotPictForm": {
81
+ "x": 15.2,
82
+ "y": 17
83
+ }
78
84
  }
79
85
  },
80
86
  "Header.WarehouseVolume": {
@@ -112,6 +118,11 @@
112
118
  ],
113
119
  "Section": "REST_Request",
114
120
  "Group": "Book_Data"
121
+ },
122
+ "AnotherObject": {
123
+ "NotPictForm": {
124
+ "x": 86
125
+ }
115
126
  }
116
127
  },
117
128
  "HelpContent.Math": {
@@ -139,7 +150,13 @@
139
150
  "Section": "Basic_Geometry",
140
151
  "Group": "BasicGeoGrp"
141
152
  },
142
- "Default": "7.25"
153
+ "Default": "7.25",
154
+ "AnotherObject": {
155
+ "NotPictForm": {
156
+ "x": 11,
157
+ "y": 190
158
+ }
159
+ }
143
160
  },
144
161
  "Geometry.Rectangle.Height": {
145
162
  "Hash": "RectangleHeight",
@@ -152,7 +169,12 @@
152
169
  "Section": "Basic_Geometry",
153
170
  "Group": "BasicGeoGrp"
154
171
  },
155
- "Default": "10.3571"
172
+ "Default": "10.3571",
173
+ "AnotherObject": {
174
+ "NotPictForm": {
175
+ "y": 22
176
+ }
177
+ }
156
178
  },
157
179
  "Geometry.Rectangle.Area": {
158
180
  "Hash": "RectangleArea",
@@ -164,7 +186,8 @@
164
186
  "Width": "3",
165
187
  "Units": "unrounded",
166
188
  "Section": "Basic_Geometry",
167
- "Group": "BasicGeoGrp"
189
+ "Group": "BasicGeoGrp",
190
+ "RandomData": "This is a test for random data injection."
168
191
  },
169
192
  "Description": "Area of the Rectangle."
170
193
  },
@@ -217,7 +240,8 @@
217
240
  "Width": "12",
218
241
  "DecimalPrecision": 4,
219
242
  "Section": "Basic_Geometry",
220
- "Group": "Circle"
243
+ "Group": "Circle",
244
+ "RandomData": "Sparse..."
221
245
  },
222
246
  "Default": "85.523"
223
247
  },
@@ -496,6 +520,35 @@
496
520
  ]
497
521
  }
498
522
  },
523
+ "BoxChart_DataAll": {
524
+ "Hash": "BoxChart_DataComparison",
525
+ "Name": "Box Data Comparison",
526
+ "DataAddress": "BoxChart_DataAll",
527
+ "DataType": "Object",
528
+ "PictForm": {
529
+ "InputType": "Chart",
530
+ "Row": "5",
531
+ "Width": "4",
532
+ "Section": "Box_Summary_Data",
533
+ "Group": "Box_Summary_Data",
534
+ "ChartType": "bar",
535
+ "ChartLabelsSolver": "objectkeystoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Volume\"))",
536
+ "ChartDatasetsSolvers": [
537
+ {
538
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Width\"))",
539
+ "Label": "Width"
540
+ },
541
+ {
542
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Depth\"))",
543
+ "Label": "Data"
544
+ },
545
+ {
546
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Height\"))",
547
+ "Label": "Data"
548
+ }
549
+ ]
550
+ }
551
+ },
499
552
  "HelpContent.Cuboid": {
500
553
  "Hash": "CuboidHelpContent",
501
554
  "Name": "How to Cuboid Math",
@@ -504,7 +557,7 @@
504
557
  "PictForm": {
505
558
  "InputType": "Markdown",
506
559
  "Row": "1",
507
- "Width": "1",
560
+ "Width": "12",
508
561
  "Section": "Rectangular_Area_Help",
509
562
  "Group": "Rectangular_Area_Help"
510
563
  },
@@ -517,7 +570,7 @@
517
570
  "DataType": "Number",
518
571
  "PictForm": {
519
572
  "Row": "1",
520
- "Width": "4",
573
+ "Width": "6",
521
574
  "Tooltip": "The PR is *very* important.",
522
575
  "Section": "Complex_Equation",
523
576
  "Group": "Complex_Equation"
@@ -48,8 +48,9 @@ MathExampleForm,,,,,,Box Summary Data,Box_Summary_Data,Box Summary Data,Box_Summ
48
48
  MathExampleForm,,,,,,Box Summary Data,Box_Summary_Data,Box Summary Data,Box_Summary_Data,,,,5,4,,,BoxChart_Sizes,Box Category Volume Comparison,BoxChart_Sizes,,,Object,,Chart,,,,,,,,,,,,,,,pie,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Volume""))",,Box Categories,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Volume""))"
49
49
  MathExampleForm,,,,,,Box Summary Data,Box_Summary_Data,Box Summary Data,Box_Summary_Data,,,,5,4,,,BoxChart_Size_Details,Box Size Comparison,BoxChart_Size_Details,,,Object,,Chart,,,,,,,,,,,,,,,bar,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Volume""))",,Box Volumes,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Volume""))"
50
50
  MathExampleForm,,,,,,Box Summary Data,Box_Summary_Data,Box Summary Data,Box_Summary_Data,,,,5,4,,,BoxChart_Scatter,Box Width x Height Scatter,BoxChart_Dimensions,,,Object,,Chart,,,,,,,,,,,,,,,radar,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Floorspace""))",,Box Floorspace Usage,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""Identifier"", ""Floorspace""))"
51
- MathExampleForm,,,,,,Rectangular Area Help,Rectangular_Area_Help,Rectangular Area Help,Rectangular_Area_Help,,,,1,1,,,HelpContent.Cuboid,How to Cuboid Math,CuboidHelpContent,,,String,,Markdown,,,,,,,,,,,,,,,,,,,,
52
- MathExampleForm,,,,,,Complex Equation,Complex_Equation,Complex Equation,Complex_Equation,Vertical,,,1,4,,,ComplexEquation.PR,PR,CePR,,,Number,,,CeResult = (160 * CePR * CeZ) / (CeC / 100) * CePR * CeZ + (160 * (1 - CeC / 100)),1,4.5,,The PR is *very* important.,,,,,,,,,,,,,,,
51
+ MathExampleForm,,,,,,Box Summary Data,Box_Summary_Data,Box Summary Data,Box_Summary_Data,,,,5,4,,,BoxChart_DataAll,Box Data Comparison,BoxChart_DataComparison,,,Object,,Chart,,,,,,,,,,,,,,,bar,,"objectkeystoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Volume""))",,Width,"objectvaluestoarray(aggregationhistogrambyobject(Boxes, ""BoxCategory"", ""Width""))"
52
+ MathExampleForm,,,,,,Rectangular Area Help,Rectangular_Area_Help,Rectangular Area Help,Rectangular_Area_Help,,,,1,12,,,HelpContent.Cuboid,How to Cuboid Math,CuboidHelpContent,,,String,,Markdown,,,,,,,,,,,,,,,,,,,,
53
+ MathExampleForm,,,,,,Complex Equation,Complex_Equation,Complex Equation,Complex_Equation,Vertical,,,1,6,,,ComplexEquation.PR,PR,CePR,,,Number,,,CeResult = (160 * CePR * CeZ) / (CeC / 100) * CePR * CeZ + (160 * (1 - CeC / 100)),1,4.5,,The PR is *very* important.,,,,,,,,,,,,,,,
53
54
  MathExampleForm,,,,,,Complex Equation,Complex_Equation,Complex Equation,Complex_Equation,Vertical,,,1,4,,,ComplexEquation.Z,Z,CeZ,,,Number,,,"CeResultRounded = ROUND(CeResult,3)",1,1.5,,Z _is not_ the z-index.,,,,,,,,,,,,,,,
54
55
  MathExampleForm,,,,,,Complex Equation,Complex_Equation,Complex Equation,Complex_Equation,Vertical,,,1,4,,,ComplexEquation.C,C,CeC,,,Number,,,,,8.75,,C is the universal constant.,,,,,,,,,,,,,,,
55
56
  MathExampleForm,,,,,,Complex Equation,Complex_Equation,Complex Equation,Complex_Equation,Vertical,,,2,6,,,ComplexEquation.Result,(160 * PR * Z) / (C / 100) * PR * Z + (160 * (1 - C / 100)),CeResult,,,Number,,,,,,,,,,,,,,,,,,,,,,
@@ -75,6 +75,12 @@
75
75
  "Units": "planetary",
76
76
  "Section": "Header",
77
77
  "Group": "General_Info"
78
+ },
79
+ "AnotherObject": {
80
+ "NotPictForm": {
81
+ "x": 15.2,
82
+ "y": 17
83
+ }
78
84
  }
79
85
  },
80
86
  "Header.WarehouseVolume": {
@@ -112,6 +118,11 @@
112
118
  ],
113
119
  "Section": "REST_Request",
114
120
  "Group": "Book_Data"
121
+ },
122
+ "AnotherObject": {
123
+ "NotPictForm": {
124
+ "x": 86
125
+ }
115
126
  }
116
127
  },
117
128
  "HelpContent.Math": {
@@ -139,7 +150,13 @@
139
150
  "Section": "Basic_Geometry",
140
151
  "Group": "BasicGeoGrp"
141
152
  },
142
- "Default": "7.25"
153
+ "Default": "7.25",
154
+ "AnotherObject": {
155
+ "NotPictForm": {
156
+ "x": 11,
157
+ "y": 190
158
+ }
159
+ }
143
160
  },
144
161
  "Geometry.Rectangle.Height": {
145
162
  "Hash": "RectangleHeight",
@@ -152,7 +169,12 @@
152
169
  "Section": "Basic_Geometry",
153
170
  "Group": "BasicGeoGrp"
154
171
  },
155
- "Default": "10.3571"
172
+ "Default": "10.3571",
173
+ "AnotherObject": {
174
+ "NotPictForm": {
175
+ "y": 22
176
+ }
177
+ }
156
178
  },
157
179
  "Geometry.Rectangle.Area": {
158
180
  "Hash": "RectangleArea",
@@ -164,7 +186,8 @@
164
186
  "Width": "3",
165
187
  "Units": "unrounded",
166
188
  "Section": "Basic_Geometry",
167
- "Group": "BasicGeoGrp"
189
+ "Group": "BasicGeoGrp",
190
+ "RandomData": "This is a test for random data injection."
168
191
  },
169
192
  "Description": "Area of the Rectangle."
170
193
  },
@@ -217,7 +240,8 @@
217
240
  "Width": "12",
218
241
  "DecimalPrecision": 4,
219
242
  "Section": "Basic_Geometry",
220
- "Group": "Circle"
243
+ "Group": "Circle",
244
+ "RandomData": "Sparse..."
221
245
  },
222
246
  "Default": "85.523"
223
247
  },
@@ -496,6 +520,35 @@
496
520
  ]
497
521
  }
498
522
  },
523
+ "BoxChart_DataAll": {
524
+ "Hash": "BoxChart_DataComparison",
525
+ "Name": "Box Data Comparison",
526
+ "DataAddress": "BoxChart_DataAll",
527
+ "DataType": "Object",
528
+ "PictForm": {
529
+ "InputType": "Chart",
530
+ "Row": "5",
531
+ "Width": "4",
532
+ "Section": "Box_Summary_Data",
533
+ "Group": "Box_Summary_Data",
534
+ "ChartType": "bar",
535
+ "ChartLabelsSolver": "objectkeystoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Volume\"))",
536
+ "ChartDatasetsSolvers": [
537
+ {
538
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Width\"))",
539
+ "Label": "Width"
540
+ },
541
+ {
542
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Depth\"))",
543
+ "Label": "Data"
544
+ },
545
+ {
546
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(Boxes, \"BoxCategory\", \"Height\"))",
547
+ "Label": "Data"
548
+ }
549
+ ]
550
+ }
551
+ },
499
552
  "HelpContent.Cuboid": {
500
553
  "Hash": "CuboidHelpContent",
501
554
  "Name": "How to Cuboid Math",
@@ -504,7 +557,7 @@
504
557
  "PictForm": {
505
558
  "InputType": "Markdown",
506
559
  "Row": "1",
507
- "Width": "1",
560
+ "Width": "12",
508
561
  "Section": "Rectangular_Area_Help",
509
562
  "Group": "Rectangular_Area_Help"
510
563
  },
@@ -517,7 +570,7 @@
517
570
  "DataType": "Number",
518
571
  "PictForm": {
519
572
  "Row": "1",
520
- "Width": "4",
573
+ "Width": "6",
521
574
  "Tooltip": "The PR is *very* important.",
522
575
  "Section": "Complex_Equation",
523
576
  "Group": "Complex_Equation"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pict-section-form",
3
- "version": "1.0.149",
3
+ "version": "1.0.151",
4
4
  "description": "Pict dynamic form sections",
5
5
  "main": "source/Pict-Section-Form.js",
6
6
  "directories": {
@@ -34,10 +34,10 @@
34
34
  "browser-env": "^3.3.0",
35
35
  "eslint": "^9.38.0",
36
36
  "jquery": "^3.7.1",
37
- "pict": "^1.0.321",
37
+ "pict": "^1.0.323",
38
38
  "pict-application": "^1.0.29",
39
- "pict-service-commandlineutility": "^1.0.15",
40
- "quackage": "^1.0.44",
39
+ "pict-service-commandlineutility": "^1.0.16",
40
+ "quackage": "^1.0.45",
41
41
  "tui-grid": "^4.21.22",
42
42
  "typescript": "^5.9.3"
43
43
  },
@@ -90,6 +90,11 @@ class PictDynamicSolver extends libPictProvider
90
90
  let tmpResultsObject = {};
91
91
  let tmpSolutionValue = this.fable.ExpressionParser.solve(pSolverExpression, tmpViewMarshalDestinationObject, tmpResultsObject, this.pict.manifest);
92
92
 
93
+ if (tmpResultsObject.fable)
94
+ {
95
+ delete tmpResultsObject.fable;
96
+ }
97
+
93
98
  this.pict.log.trace(`Manual solve executed for expression: ${pSolverExpression}`, tmpResultsObject);
94
99
 
95
100
  return tmpSolutionValue;
@@ -474,6 +474,41 @@ class CustomInputHandler extends libPictSectionInputExtension
474
474
  data: (Array.isArray(tmpSolvedDataSet)) ? tmpSolvedDataSet : []
475
475
  });
476
476
 
477
+ if (tmpCurrentSolverExpression.ChartType)
478
+ {
479
+ tmpDataObject.type = tmpCurrentSolverExpression.ChartType;
480
+ }
481
+
482
+ // Add in any custom Y axis ID
483
+ if (tmpCurrentSolverExpression.CustomYAxisID)
484
+ {
485
+ tmpDataObject.yAxisID = tmpCurrentSolverExpression.CustomYAxisID;
486
+ }
487
+
488
+ // Add in any custom X axis ID
489
+ if (tmpCurrentSolverExpression.CustomXAxisID)
490
+ {
491
+ tmpDataObject.xAxisID = tmpCurrentSolverExpression.CustomXAxisID;
492
+ }
493
+
494
+ // Add in a custom Tension
495
+ if (tmpCurrentSolverExpression.Tension)
496
+ {
497
+ tmpDataObject.tension = tmpCurrentSolverExpression.Tension;
498
+ }
499
+
500
+ // Add in a custom pointRadius
501
+ if (tmpCurrentSolverExpression.PointRadius)
502
+ {
503
+ tmpDataObject.pointRadius = tmpCurrentSolverExpression.PointRadius;
504
+ }
505
+
506
+ // Check if this has a stack defined (for stacked bar charts and such)
507
+ if (tmpCurrentSolverExpression.StackGroup)
508
+ {
509
+ tmpDataObject.stack = tmpCurrentSolverExpression.StackGroup;
510
+ }
511
+
477
512
  if (tmpParsingConfiguration.ObjectType === 'array')
478
513
  {
479
514
  if (Array.isArray(tmpSolvedDataSet))
@@ -88,24 +88,24 @@ class ManifestFactory extends libFableServiceProviderBase
88
88
  let tmpDescriptor = pView.options.Manifests.Section.Descriptors[tmpDescriptorKeys[i]];
89
89
 
90
90
  if (
91
- // If there is an obect in the descriptor
92
- typeof(tmpDescriptor) == 'object' &&
93
- // AND it has a PictForm property
94
- ('PictForm' in tmpDescriptor) &&
95
- // AND the PictForm property is an object
96
- typeof(tmpDescriptor.PictForm) == 'object' &&
97
- // AND the PictForm object has a Section property
98
- ('Section' in tmpDescriptor.PictForm) &&
99
- // AND the Section property matches our section hash
100
- tmpDescriptor.PictForm.Section == pView.sectionDefinition.Hash
101
- )
91
+ // If there is an obect in the descriptor
92
+ typeof (tmpDescriptor) == 'object' &&
93
+ // AND it has a PictForm property
94
+ ('PictForm' in tmpDescriptor) &&
95
+ // AND the PictForm property is an object
96
+ typeof (tmpDescriptor.PictForm) == 'object' &&
97
+ // AND the PictForm object has a Section property
98
+ ('Section' in tmpDescriptor.PictForm) &&
99
+ // AND the Section property matches our section hash
100
+ tmpDescriptor.PictForm.Section == pView.sectionDefinition.Hash
101
+ )
102
102
  {
103
103
  tmpDescriptor.PictForm.InformaryDataAddress = tmpDescriptorKeys[i];
104
104
 
105
105
  // Decorate the view hash for reverse lookup
106
106
  tmpDescriptor.PictForm.ViewHash = pView.Hash;
107
107
 
108
- let tmpGroupHash = (typeof(tmpDescriptor.PictForm.Group) == 'string') ? tmpDescriptor.PictForm.Group : 'Default';
108
+ let tmpGroupHash = (typeof (tmpDescriptor.PictForm.Group) == 'string') ? tmpDescriptor.PictForm.Group : 'Default';
109
109
 
110
110
  if (!('Groups' in pView.sectionDefinition))
111
111
  {
@@ -122,9 +122,9 @@ class ManifestFactory extends libFableServiceProviderBase
122
122
  tmpGroup.Rows = [];
123
123
  }
124
124
 
125
- let tmpRowHash = (typeof(tmpDescriptor.PictForm.Row) == 'string') ? tmpDescriptor.PictForm.Row :
126
- (typeof(tmpDescriptor.PictForm.Row) == 'number') ? `Row_${tmpDescriptor.PictForm.Row.toString()}` :
127
- 'Row_Default';
125
+ let tmpRowHash = (typeof (tmpDescriptor.PictForm.Row) == 'string') ? tmpDescriptor.PictForm.Row :
126
+ (typeof (tmpDescriptor.PictForm.Row) == 'number') ? `Row_${tmpDescriptor.PictForm.Row.toString()}` :
127
+ 'Row_Default';
128
128
 
129
129
  tmpDescriptor.PictForm.RowHash = tmpRowHash;
130
130
 
@@ -183,7 +183,7 @@ class ManifestFactory extends libFableServiceProviderBase
183
183
  tmpInput.PictForm.ViewHash = pView.Hash;
184
184
 
185
185
  tmpInput.PictForm.InformaryDataAddress = tmpSupportingManifestDescriptorKeys[k];
186
- if (typeof(tmpGroup.RecordSetAddress) == 'string')
186
+ if (typeof (tmpGroup.RecordSetAddress) == 'string')
187
187
  {
188
188
  tmpInput.PictForm.InformaryContainerAddress = tmpGroup.RecordSetAddress;
189
189
  }
@@ -206,13 +206,13 @@ class ManifestFactory extends libFableServiceProviderBase
206
206
  {
207
207
  pView.log.trace(`RecordSetAddress is an Array for [${tmpGroup.Hash}]`);
208
208
  }
209
- else if (typeof(tmpRecordSetDataObject) === 'object')
209
+ else if (typeof (tmpRecordSetDataObject) === 'object')
210
210
  {
211
211
  pView.log.trace(`RecordSetAddress is an Object for [${tmpGroup.Hash}]`);
212
212
  }
213
213
  else
214
214
  {
215
- pView.log.error(`RecordSetAddress is not an Array or Object for [${tmpGroup.Hash}]; it is a [${typeof(tmpRecordSetDataObject)}] -- likely the data shape will cause erratic problems.`);
215
+ pView.log.error(`RecordSetAddress is not an Array or Object for [${tmpGroup.Hash}]; it is a [${typeof (tmpRecordSetDataObject)}] -- likely the data shape will cause erratic problems.`);
216
216
  }
217
217
 
218
218
  // Check if there are default rows to add
@@ -263,7 +263,7 @@ class ManifestFactory extends libFableServiceProviderBase
263
263
  }
264
264
  }
265
265
  // Add the section if it do no exist
266
- const tmpSection = { Name:pSectionHash, Hash:pSectionHash, Solvers:[], Groups:[] };
266
+ const tmpSection = { Name: pSectionHash, Hash: pSectionHash, Solvers: [], Groups: [] };
267
267
  this.manifest.Sections.push(tmpSection);
268
268
  return tmpSection;
269
269
  }
@@ -278,7 +278,7 @@ class ManifestFactory extends libFableServiceProviderBase
278
278
  */
279
279
  getManifestGroup(pManifestSection, pGroupHash)
280
280
  {
281
- let tmpManifestSection = (typeof(pManifestSection) === 'string') ? this.getManifestSection(pManifestSection) : pManifestSection;
281
+ let tmpManifestSection = (typeof (pManifestSection) === 'string') ? this.getManifestSection(pManifestSection) : pManifestSection;
282
282
  for (const tmpGroup of tmpManifestSection.Groups)
283
283
  {
284
284
  if (tmpGroup.Hash === pGroupHash)
@@ -287,7 +287,7 @@ class ManifestFactory extends libFableServiceProviderBase
287
287
  }
288
288
  }
289
289
  // Add the group if it do no exist
290
- const tmpGroup = { Name:pGroupHash, Hash:pGroupHash, Rows:[], RecordSetSolvers:[] };
290
+ const tmpGroup = { Name: pGroupHash, Hash: pGroupHash, Rows: [], RecordSetSolvers: [] };
291
291
  tmpManifestSection.Groups.push(tmpGroup);
292
292
  return tmpGroup;
293
293
  }
@@ -312,6 +312,65 @@ class ManifestFactory extends libFableServiceProviderBase
312
312
  return true;
313
313
  }
314
314
 
315
+ decorateChartDescriptorFromTabularRow(pRecord, pDescriptor, pPostfix)
316
+ {
317
+ let tmpRecord = pRecord;
318
+ let tmpDescriptor = pDescriptor;
319
+ let tmpPostfix = pPostfix || '';
320
+
321
+ // Log out the data coming in
322
+ //this.log.debug(`Decorating chart descriptor from tabular row for ${tmpDescriptor.Hash} with postfix [${tmpPostfix}]`,{ Record: tmpRecord, Descriptor: tmpDescriptor });
323
+
324
+ // Charts will pull in five extra pieces of config if they exist: ChartType, ChartLabelsAddress, ChartLabelsSolver, ChartDatasetsAddress, ChartDatasetsSolver
325
+ if (tmpRecord.ChartType)
326
+ {
327
+ tmpDescriptor.PictForm.ChartType = tmpRecord.ChartType;
328
+ }
329
+ if (tmpPostfix == '')
330
+ {
331
+ // Maybe later this gets more advanced.
332
+ if (tmpRecord.ChartLabelsAddress)
333
+ {
334
+ tmpDescriptor.PictForm.ChartLabelsAddress = tmpRecord.ChartLabelsAddress;
335
+ }
336
+ if (tmpRecord.ChartLabelsSolver)
337
+ {
338
+ tmpDescriptor.PictForm.ChartLabelsSolver = tmpRecord.ChartLabelsSolver;
339
+ }
340
+ if (tmpRecord.ChartDatasetsAddress)
341
+ {
342
+ tmpDescriptor.PictForm.ChartDatasetsAddress = tmpRecord.ChartDatasetsAddress;
343
+ }
344
+ }
345
+
346
+ if (tmpRecord[`ChartDatasetsSolver${tmpPostfix}`])
347
+ {
348
+ let tmpSolverEntry = { DataSolver: tmpRecord[`ChartDatasetsSolver${tmpPostfix}`] };
349
+ //this.log.debug(`Adding chart dataset solver for descriptor ${tmpDescriptor.Hash} with postfix [${tmpPostfix}]`, tmpSolverEntry);
350
+ if (!tmpRecord[`ChartDatasetsLabel${tmpPostfix}`])
351
+ {
352
+ tmpSolverEntry.Label = 'Data';
353
+ }
354
+ else
355
+ {
356
+ tmpSolverEntry.Label = tmpRecord[`ChartDatasetsLabel${tmpPostfix}`];
357
+ }
358
+ if (tmpRecord[`ChartDataSetsSolverChartType${tmpPostfix}`])
359
+ {
360
+ tmpSolverEntry.ChartType = tmpRecord[`ChartDataSetsSolverChartType${tmpPostfix}`];
361
+ }
362
+ if (!tmpDescriptor.PictForm.ChartDatasetsSolvers || !Array.isArray(tmpDescriptor.PictForm.ChartDatasetsSolvers))
363
+ {
364
+ tmpDescriptor.PictForm.ChartDatasetsSolvers = [];
365
+ }
366
+ // Log and add the solver entry
367
+ //this.log.debug(`Adding chart dataset solver entry for ${tmpDescriptor.Hash} with postfix [${tmpPostfix}]`, tmpSolverEntry);
368
+ tmpDescriptor.PictForm.ChartDatasetsSolvers.push(tmpSolverEntry);
369
+ }
370
+ // Log the descripter going out
371
+ //this.log.debug(`Decorated chart descriptor from tabular row for ${tmpDescriptor.Hash} with postfix [${tmpPostfix}]`, tmpDescriptor);
372
+ }
373
+
315
374
  /**
316
375
  * Add a manifest descriptor from a tabular row.
317
376
  *
@@ -322,7 +381,7 @@ class ManifestFactory extends libFableServiceProviderBase
322
381
  */
323
382
  tabularRowAddDescriptor(pManifestFactory, pRecord)
324
383
  {
325
- if (typeof(pRecord) !== 'object')
384
+ if (typeof (pRecord) !== 'object')
326
385
  {
327
386
  this.log.error(`Invalid record passed to addManifestDescriptor: ${pRecord}`);
328
387
  return false;
@@ -396,11 +455,11 @@ class ManifestFactory extends libFableServiceProviderBase
396
455
  let tmpOptionSetValuePair = tmpOptionSetValues[i].split('^');
397
456
  if (tmpOptionSetValuePair.length == 2)
398
457
  {
399
- tmpOptionSet.push({ id:tmpOptionSetValuePair[0].trim(), text:tmpOptionSetValuePair[1].trim() });
458
+ tmpOptionSet.push({ id: tmpOptionSetValuePair[0].trim(), text: tmpOptionSetValuePair[1].trim() });
400
459
  }
401
460
  else
402
461
  {
403
- tmpOptionSet.push({ id:tmpOptionSetValues[i].trim(), text:tmpOptionSetValues[i].trim() });
462
+ tmpOptionSet.push({ id: tmpOptionSetValues[i].trim(), text: tmpOptionSetValues[i].trim() });
404
463
  }
405
464
  }
406
465
  }
@@ -411,7 +470,7 @@ class ManifestFactory extends libFableServiceProviderBase
411
470
  }
412
471
  }
413
472
 
414
- if (((tmpDescriptor.PictForm.InputType == 'TabSectionSelector') || (tmpDescriptor.PictForm.InputType == 'TabGroupSelector')) && (tmpRecord['Input Extra']))
473
+ if (((tmpDescriptor.PictForm.InputType == 'TabSectionSelector') || (tmpDescriptor.PictForm.InputType == 'TabGroupSelector')) && (tmpRecord['Input Extra']))
415
474
  {
416
475
  let tmpTabSet = [];
417
476
  let tmpTabSetNames = [];
@@ -451,7 +510,7 @@ class ManifestFactory extends libFableServiceProviderBase
451
510
  }
452
511
 
453
512
  // Verbose obtuse data validation.
454
- if ((`TriggerGroup` in tmpRecord) && (typeof(tmpRecord.TriggerGroup) === 'string') && (tmpRecord.TriggerGroup != ''))
513
+ if ((`TriggerGroup` in tmpRecord) && (typeof (tmpRecord.TriggerGroup) === 'string') && (tmpRecord.TriggerGroup != ''))
455
514
  {
456
515
  if (!Array.isArray(tmpDescriptor.PictForm.Providers))
457
516
  {
@@ -465,11 +524,11 @@ class ManifestFactory extends libFableServiceProviderBase
465
524
  MarshalEmptyValues: tmpRecord.MarshalEmptyValues ? true : false
466
525
  });
467
526
 
468
- if ((`TriggerAddress` in tmpRecord) && (typeof(tmpRecord.TriggerAddress) === 'string') && (tmpRecord.TriggerAddress != ''))
527
+ if ((`TriggerAddress` in tmpRecord) && (typeof (tmpRecord.TriggerAddress) === 'string') && (tmpRecord.TriggerAddress != ''))
469
528
  {
470
529
  tmpDescriptor.PictForm.AutofillTriggerGroup.TriggerAddress = tmpRecord.TriggerAddress;
471
530
  }
472
- if ((`TriggerAllInputs` in tmpRecord) && (typeof(tmpRecord.TriggerAllInputs) === 'string')
531
+ if ((`TriggerAllInputs` in tmpRecord) && (typeof (tmpRecord.TriggerAllInputs) === 'string')
473
532
  && ((tmpRecord.TriggerAllInputs.toLowerCase() == 'true') || (tmpRecord.TriggerAllInputs.toLowerCase() == 'x') || (tmpRecord.TriggerAllInputs.toLowerCase() == '1')))
474
533
  {
475
534
  tmpDescriptor.PictForm.AutofillTriggerGroup.TriggerAllInputs = true;
@@ -481,9 +540,9 @@ class ManifestFactory extends libFableServiceProviderBase
481
540
  }
482
541
  }
483
542
 
484
- if ((`Entity` in tmpRecord) && (typeof(tmpRecord.Entity) === 'string') && (tmpRecord.Entity != '')
485
- && (`EntityColumnFilter` in tmpRecord) && (typeof(tmpRecord.EntityColumnFilter) === 'string') && (tmpRecord.EntityColumnFilter != '')
486
- && (`EntityDestination` in tmpRecord) && (typeof(tmpRecord.EntityDestination) === 'string') && (tmpRecord.EntityDestination != ''))
543
+ if ((`Entity` in tmpRecord) && (typeof (tmpRecord.Entity) === 'string') && (tmpRecord.Entity != '')
544
+ && (`EntityColumnFilter` in tmpRecord) && (typeof (tmpRecord.EntityColumnFilter) === 'string') && (tmpRecord.EntityColumnFilter != '')
545
+ && (`EntityDestination` in tmpRecord) && (typeof (tmpRecord.EntityDestination) === 'string') && (tmpRecord.EntityDestination != ''))
487
546
  {
488
547
  if (!Array.isArray(tmpDescriptor.PictForm.Providers))
489
548
  {
@@ -603,7 +662,7 @@ class ManifestFactory extends libFableServiceProviderBase
603
662
  }
604
663
  if (tmpRecord['Group Show Title'] && (tmpRecord['Group Show Title'] != ''))
605
664
  {
606
- switch(tmpRecord['Group Show Title'].toLowerCase())
665
+ switch (tmpRecord['Group Show Title'].toLowerCase())
607
666
  {
608
667
  case 1:
609
668
  case '1':
@@ -615,7 +674,7 @@ class ManifestFactory extends libFableServiceProviderBase
615
674
  case 'false':
616
675
  tmpGroup.ShowTitle = false;
617
676
  break;
618
- }
677
+ }
619
678
  }
620
679
  if (tmpDescriptor.Hash in pManifestFactory.manifest.Descriptors)
621
680
  {
@@ -637,7 +696,7 @@ class ManifestFactory extends libFableServiceProviderBase
637
696
  tmpGroup.Layout = 'Tabular';
638
697
  // If the csv defines the GroupRecordSetAddress, use that explicitly
639
698
  console.log(`Group ${tmpGroup.Hash} RSA ${tmpRecord['GroupRecordSetAddress']} -> Descriptor ${tmpDescriptor.DataAddress}`)
640
- if (tmpRecord['GroupRecordSetAddress'] && (typeof(tmpRecord.GroupRecordSetAddress == 'string')) && (tmpRecord.GroupRecordSetAddress.length > 0))
699
+ if (tmpRecord['GroupRecordSetAddress'] && (typeof (tmpRecord.GroupRecordSetAddress == 'string')) && (tmpRecord.GroupRecordSetAddress.length > 0))
641
700
  {
642
701
  tmpGroup.RecordSetAddress = tmpRecord.GroupRecordSetAddress;
643
702
  }
@@ -708,39 +767,119 @@ class ManifestFactory extends libFableServiceProviderBase
708
767
 
709
768
  if ((tmpRecord.InputType == 'Chart') && (tmpDescriptor.PictForm))
710
769
  {
711
- // Charts will pull in five extra pieces of config if they exist: ChartType, ChartLabelsAddress, ChartLabelsSolver, ChartDatasetsAddress, ChartDatasetsSolver
712
- if (tmpRecord.ChartType)
713
- {
714
- tmpDescriptor.PictForm.ChartType = tmpRecord.ChartType;
715
- }
716
- if (tmpRecord.ChartLabelsAddress)
717
- {
718
- tmpDescriptor.PictForm.ChartLabelsAddress = tmpRecord.ChartLabelsAddress;
719
- }
720
- if (tmpRecord.ChartLabelsSolver)
770
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '');
771
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '1');
772
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '2');
773
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '3');
774
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '4');
775
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '5');
776
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '6');
777
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '7');
778
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '8');
779
+ this.decorateChartDescriptorFromTabularRow(tmpRecord, tmpDescriptor, '9');
780
+ }
781
+
782
+ // Finally add any `Descriptor_Extension_* properties
783
+ const tmpDescriptorKeys = Object.keys(tmpRecord);
784
+ let tmpDescriptorManifest = this.fable.newManyfest();
785
+ for (let i = 0; i < tmpDescriptorKeys.length; i++)
786
+ {
787
+ let tmpKey = tmpDescriptorKeys[i];
788
+ if (tmpKey.startsWith('Descriptor_Extension_'))
721
789
  {
722
- tmpDescriptor.PictForm.ChartLabelsSolver = tmpRecord.ChartLabelsSolver;
790
+ const tmpExtensionKey = tmpKey.replace('Descriptor_Extension_', '');
791
+ try
792
+ {
793
+ // This is just going to stuff a string in
794
+ let tmpAddress = tmpExtensionKey;
795
+ let tmpValue = tmpRecord[tmpKey];
796
+
797
+ // Use the manifest to put it on the descriptor
798
+ if (tmpValue && tmpValue.length > 0)
799
+ {
800
+ tmpDescriptorManifest.setValueAtAddress(tmpDescriptor, tmpAddress, tmpValue);
801
+ }
802
+ }
803
+ catch (pError)
804
+ {
805
+ this.log.error(`Failed to set Descriptor Extension [${tmpKey}] on descriptor [${tmpDescriptor.Hash}]: ${pError}`);
806
+ }
723
807
  }
724
- if (tmpRecord.ChartDatasetsAddress)
808
+
809
+ if (tmpKey.startsWith('Descriptor_Float_Extension_'))
725
810
  {
726
- tmpDescriptor.PictForm.ChartDatasetsAddress = tmpRecord.ChartDatasetsAddress;
811
+ const tmpExtensionKey = tmpKey.replace('Descriptor_Float_Extension_', '');
812
+ try
813
+ {
814
+ // This is just going to stuff a string in
815
+ let tmpAddress = tmpExtensionKey;
816
+ let tmpRawValue = tmpRecord[tmpKey];
817
+ let tmpValue = parseFloat(tmpRawValue);
818
+
819
+ // Use the manifest to put it on the descriptor
820
+ if (tmpValue && !isNaN(tmpValue))
821
+ {
822
+ tmpDescriptorManifest.setValueAtAddress(tmpDescriptor, tmpAddress, tmpValue);
823
+ this.log.trace(`Set Float Descriptor Extension [${tmpKey}] on descriptor [${tmpDescriptor.Hash}] to value [${tmpValue}]`);
824
+ }
825
+ }
826
+ catch (pError)
827
+ {
828
+ this.log.error(`Failed to set Float Descriptor Extension [${tmpKey}] on descriptor [${tmpDescriptor.Hash}]: ${pError}`);
829
+ }
727
830
  }
728
- if (tmpRecord.ChartDatasetsSolver)
831
+
832
+ if (tmpKey.startsWith('Descriptor_Integer_Extension_'))
729
833
  {
730
- let tmpSolverEntry = { DataSolver: tmpRecord.ChartDatasetsSolver };
731
- if (!tmpRecord.ChartDatasetsLabel)
834
+ const tmpExtensionKey = tmpKey.replace('Descriptor_Integer_Extension_', '');
835
+ try
732
836
  {
733
- tmpSolverEntry.Label = 'Data';
837
+ // This is just going to stuff a string in
838
+ let tmpAddress = tmpExtensionKey;
839
+ let tmpRawValue = tmpRecord[tmpKey];
840
+ let tmpValue = parseInt(tmpRawValue);
841
+
842
+ // Use the manifest to put it on the descriptor
843
+ if (tmpValue && !isNaN(tmpValue))
844
+ {
845
+ tmpDescriptorManifest.setValueAtAddress(tmpDescriptor, tmpAddress, tmpValue);
846
+ }
734
847
  }
735
- else
848
+ catch (pError)
736
849
  {
737
- tmpSolverEntry.Label = tmpRecord.ChartDatasetsLabel;
850
+ this.log.error(`Failed to set Integer Descriptor Extension [${tmpKey}] on descriptor [${tmpDescriptor.Hash}]: ${pError}`);
738
851
  }
739
- if (!tmpDescriptor.PictForm.ChartDatasetsSolvers || !Array.isArray(tmpDescriptor.PictForm.ChartDatasetsSolvers))
852
+ }
853
+
854
+ if (tmpKey.startsWith('Descriptor_Boolean_Extension_'))
855
+ {
856
+ const tmpExtensionKey = tmpKey.replace('Descriptor_Boolean_Extension_', '');
857
+ try
858
+ {
859
+ // This is just going to stuff a string in
860
+ let tmpAddress = tmpExtensionKey;
861
+ let tmpRawValue = tmpRecord[tmpKey];
862
+ let tmpValue;
863
+
864
+ if ((tmpRawValue.toLowerCase() == 'x') || (tmpRawValue.toLowerCase() == 'y') || (tmpRawValue.toLowerCase() == 'yes') || (tmpRawValue.toLowerCase() == 't') || (tmpRawValue.toLowerCase() == 'true') || (tmpRawValue == '1'))
865
+ {
866
+ tmpValue = true;
867
+ }
868
+ if ((tmpRawValue.toLowerCase() == 'n') || (tmpRawValue.toLowerCase() == 'no') || (tmpRawValue.toLowerCase() == 'f') || (tmpRawValue.toLowerCase() == 'false') || (tmpRawValue == '0'))
869
+ {
870
+ tmpValue = false;
871
+ }
872
+
873
+ // Use the manifest to put it on the descriptor
874
+ if ((tmpValue === true) || (tmpValue === false))
875
+ {
876
+ tmpDescriptorManifest.setValueAtAddress(tmpDescriptor, tmpAddress, tmpValue);
877
+ }
878
+ }
879
+ catch (pError)
740
880
  {
741
- tmpDescriptor.PictForm.ChartDatasetsSolvers = [];
881
+ this.log.error(`Failed to set Boolean Descriptor Extension [${tmpKey}] on descriptor [${tmpDescriptor.Hash}]: ${pError}`);
742
882
  }
743
- tmpDescriptor.PictForm.ChartDatasetsSolvers.push(tmpSolverEntry);
744
883
  }
745
884
  }
746
885
 
@@ -804,9 +943,9 @@ class ManifestFactory extends libFableServiceProviderBase
804
943
  tmpManifests[tmpRecord.Form] = this.fable.instantiateServiceProviderWithoutRegistration('ManifestFactory',
805
944
  {
806
945
  Manifest:
807
- {
808
- Form:tmpRecord.Form
809
- }
946
+ {
947
+ Form: tmpRecord.Form
948
+ }
810
949
  }, `${this.UUID}-${tmpRecord.Form}`);
811
950
  }
812
951
 
@@ -837,4 +976,4 @@ class ManifestFactory extends libFableServiceProviderBase
837
976
 
838
977
  module.exports = ManifestFactory;
839
978
  /** @type {Record<string, any>} */
840
- ManifestFactory.default_configuration = { };
979
+ ManifestFactory.default_configuration = {};