pict-section-formeditor 1.0.0

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.
Files changed (178) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +118 -0
  3. package/docs/.nojekyll +0 -0
  4. package/docs/README.md +162 -0
  5. package/docs/_sidebar.md +23 -0
  6. package/docs/_topbar.md +5 -0
  7. package/docs/cover.md +12 -0
  8. package/docs/css/docuserve.css +73 -0
  9. package/docs/index.html +39 -0
  10. package/docs/retold-catalog.json +224 -0
  11. package/docs/retold-keyword-index.json +46846 -0
  12. package/example_applications/form_editor/.quackage.json +10 -0
  13. package/example_applications/form_editor/FormEditor-Example-Application.js +226 -0
  14. package/example_applications/form_editor/html/icon-chooser.html +375 -0
  15. package/example_applications/form_editor/html/index.html +54 -0
  16. package/example_applications/form_editor/package.json +50 -0
  17. package/package.json +55 -0
  18. package/sample_manifests/Complex-Table.json +974 -0
  19. package/sample_manifests/Distill-Example.json +200 -0
  20. package/sample_manifests/Gradebook-Assignment.json +38 -0
  21. package/sample_manifests/Gradebook-Student.json +40 -0
  22. package/sample_manifests/Manyfest-Editor.json +347 -0
  23. package/sample_manifests/Simple-Form.json +232 -0
  24. package/sample_manifests/Simple-Table.json +79 -0
  25. package/source/Pict-Section-FormEditor-DefaultConfiguration.js +3321 -0
  26. package/source/Pict-Section-FormEditor.js +35 -0
  27. package/source/providers/Pict-Provider-ChildPictManager-Application.js +40 -0
  28. package/source/providers/Pict-Provider-ChildPictManager.js +238 -0
  29. package/source/providers/Pict-Provider-FormEditorDocumentation.js +356 -0
  30. package/source/providers/Pict-Provider-FormEditorDragDrop.js +535 -0
  31. package/source/providers/Pict-Provider-FormEditorIconography.js +1002 -0
  32. package/source/providers/Pict-Provider-FormEditorManifestOps.js +1443 -0
  33. package/source/providers/Pict-Provider-FormEditorRendering.js +730 -0
  34. package/source/providers/Pict-Provider-FormEditorUtilities.js +862 -0
  35. package/source/providers/Pict-Provider-PreviewCSS.js +42 -0
  36. package/source/views/PictView-FormEditor-InlineEditing.js +309 -0
  37. package/source/views/PictView-FormEditor-InputTypePicker.js +532 -0
  38. package/source/views/PictView-FormEditor-PropertiesPanel.js +7730 -0
  39. package/source/views/PictView-FormEditor.js +681 -0
  40. package/test/Pict-Section-FormEditor_tests.js +4102 -0
  41. package/user-documentation/.pict_documentation_topics.json +695 -0
  42. package/user-documentation/Getting-Started.md +32 -0
  43. package/user-documentation/Groups.md +52 -0
  44. package/user-documentation/Inputs.md +98 -0
  45. package/user-documentation/Sections.md +36 -0
  46. package/user-documentation/Shortcuts.md +44 -0
  47. package/user-documentation/Solver-Expression-Walkthrough.md +176 -0
  48. package/user-documentation/Solver-Expressions-Advanced.md +344 -0
  49. package/user-documentation/Solver-Functions.md +213 -0
  50. package/user-documentation/Solvers.md +81 -0
  51. package/user-documentation/ToC.md +18 -0
  52. package/user-documentation/solverfunctions/abs.md +84 -0
  53. package/user-documentation/solverfunctions/aggregationhistogram.md +83 -0
  54. package/user-documentation/solverfunctions/aggregationhistogrambyobject.md +64 -0
  55. package/user-documentation/solverfunctions/arrayconcat.md +64 -0
  56. package/user-documentation/solverfunctions/avg.md +81 -0
  57. package/user-documentation/solverfunctions/bucketset.md +69 -0
  58. package/user-documentation/solverfunctions/ceil.md +70 -0
  59. package/user-documentation/solverfunctions/cleanvaluearray.md +66 -0
  60. package/user-documentation/solverfunctions/cleanvalueobject.md +68 -0
  61. package/user-documentation/solverfunctions/colorgroupbackground.md +60 -0
  62. package/user-documentation/solverfunctions/colorinputbackground.md +62 -0
  63. package/user-documentation/solverfunctions/colorinputbackgroundtabular.md +64 -0
  64. package/user-documentation/solverfunctions/colorsectionbackground.md +59 -0
  65. package/user-documentation/solverfunctions/compare.md +72 -0
  66. package/user-documentation/solverfunctions/concat.md +73 -0
  67. package/user-documentation/solverfunctions/concatraw.md +73 -0
  68. package/user-documentation/solverfunctions/cos.md +75 -0
  69. package/user-documentation/solverfunctions/count.md +73 -0
  70. package/user-documentation/solverfunctions/countset.md +65 -0
  71. package/user-documentation/solverfunctions/countsetelements.md +63 -0
  72. package/user-documentation/solverfunctions/createarrayfromabsolutevalues.md +63 -0
  73. package/user-documentation/solverfunctions/createvalueobjectbyhashes.md +69 -0
  74. package/user-documentation/solverfunctions/cumulativesummation.md +96 -0
  75. package/user-documentation/solverfunctions/dateadddays.md +79 -0
  76. package/user-documentation/solverfunctions/dateaddhours.md +74 -0
  77. package/user-documentation/solverfunctions/dateaddmilliseconds.md +65 -0
  78. package/user-documentation/solverfunctions/dateaddminutes.md +72 -0
  79. package/user-documentation/solverfunctions/dateaddmonths.md +74 -0
  80. package/user-documentation/solverfunctions/dateaddseconds.md +66 -0
  81. package/user-documentation/solverfunctions/dateaddweeks.md +73 -0
  82. package/user-documentation/solverfunctions/dateaddyears.md +74 -0
  83. package/user-documentation/solverfunctions/datedaydifference.md +84 -0
  84. package/user-documentation/solverfunctions/datefromparts.md +81 -0
  85. package/user-documentation/solverfunctions/datehourdifference.md +64 -0
  86. package/user-documentation/solverfunctions/datemathadd.md +72 -0
  87. package/user-documentation/solverfunctions/datemilliseconddifference.md +64 -0
  88. package/user-documentation/solverfunctions/dateminutedifference.md +64 -0
  89. package/user-documentation/solverfunctions/datemonthdifference.md +66 -0
  90. package/user-documentation/solverfunctions/dateseconddifference.md +64 -0
  91. package/user-documentation/solverfunctions/dateweekdifference.md +65 -0
  92. package/user-documentation/solverfunctions/dateyeardifference.md +64 -0
  93. package/user-documentation/solverfunctions/differencearrays.md +59 -0
  94. package/user-documentation/solverfunctions/disablesolverordinal.md +58 -0
  95. package/user-documentation/solverfunctions/distributionhistogram.md +96 -0
  96. package/user-documentation/solverfunctions/distributionhistogrambyobject.md +64 -0
  97. package/user-documentation/solverfunctions/enablesolverordinal.md +57 -0
  98. package/user-documentation/solverfunctions/entryinset.md +72 -0
  99. package/user-documentation/solverfunctions/euler.md +77 -0
  100. package/user-documentation/solverfunctions/exp.md +74 -0
  101. package/user-documentation/solverfunctions/findfirstvaluebyexactmatch.md +67 -0
  102. package/user-documentation/solverfunctions/findfirstvaluebystringincludes.md +67 -0
  103. package/user-documentation/solverfunctions/flatten.md +76 -0
  104. package/user-documentation/solverfunctions/floor.md +70 -0
  105. package/user-documentation/solverfunctions/gaussianelimination.md +75 -0
  106. package/user-documentation/solverfunctions/generatearrayofobjectsfromsets.md +70 -0
  107. package/user-documentation/solverfunctions/generatehtmlhexcolor.md +67 -0
  108. package/user-documentation/solverfunctions/getvalue.md +90 -0
  109. package/user-documentation/solverfunctions/getvaluearray.md +64 -0
  110. package/user-documentation/solverfunctions/getvalueobject.md +67 -0
  111. package/user-documentation/solverfunctions/hidesections.md +58 -0
  112. package/user-documentation/solverfunctions/if.md +109 -0
  113. package/user-documentation/solverfunctions/iterativeseries.md +107 -0
  114. package/user-documentation/solverfunctions/join.md +75 -0
  115. package/user-documentation/solverfunctions/joinraw.md +64 -0
  116. package/user-documentation/solverfunctions/largestinset.md +63 -0
  117. package/user-documentation/solverfunctions/leastsquares.md +66 -0
  118. package/user-documentation/solverfunctions/linest.md +58 -0
  119. package/user-documentation/solverfunctions/log.md +74 -0
  120. package/user-documentation/solverfunctions/logvalues.md +65 -0
  121. package/user-documentation/solverfunctions/match.md +71 -0
  122. package/user-documentation/solverfunctions/matrixinverse.md +67 -0
  123. package/user-documentation/solverfunctions/matrixmultiply.md +71 -0
  124. package/user-documentation/solverfunctions/matrixtranspose.md +72 -0
  125. package/user-documentation/solverfunctions/matrixvectormultiply.md +69 -0
  126. package/user-documentation/solverfunctions/max.md +73 -0
  127. package/user-documentation/solverfunctions/mean.md +63 -0
  128. package/user-documentation/solverfunctions/median.md +79 -0
  129. package/user-documentation/solverfunctions/min.md +73 -0
  130. package/user-documentation/solverfunctions/mode.md +66 -0
  131. package/user-documentation/solverfunctions/objectkeystoarray.md +66 -0
  132. package/user-documentation/solverfunctions/objectvaluessortbyexternalobjectarray.md +65 -0
  133. package/user-documentation/solverfunctions/objectvaluestoarray.md +67 -0
  134. package/user-documentation/solverfunctions/percent.md +75 -0
  135. package/user-documentation/solverfunctions/pi.md +77 -0
  136. package/user-documentation/solverfunctions/polynomialregression.md +69 -0
  137. package/user-documentation/solverfunctions/predict.md +71 -0
  138. package/user-documentation/solverfunctions/rad.md +85 -0
  139. package/user-documentation/solverfunctions/randomfloat.md +63 -0
  140. package/user-documentation/solverfunctions/randomfloatbetween.md +72 -0
  141. package/user-documentation/solverfunctions/randomfloatupto.md +65 -0
  142. package/user-documentation/solverfunctions/randominteger.md +56 -0
  143. package/user-documentation/solverfunctions/randomintegerbetween.md +72 -0
  144. package/user-documentation/solverfunctions/randomintegerupto.md +64 -0
  145. package/user-documentation/solverfunctions/refreshtabularsection.md +57 -0
  146. package/user-documentation/solverfunctions/resolvehtmlentities.md +64 -0
  147. package/user-documentation/solverfunctions/round.md +111 -0
  148. package/user-documentation/solverfunctions/runsolvers.md +49 -0
  149. package/user-documentation/solverfunctions/setconcatenate.md +64 -0
  150. package/user-documentation/solverfunctions/setgroupvisibility.md +60 -0
  151. package/user-documentation/solverfunctions/setsectionvisibility.md +59 -0
  152. package/user-documentation/solverfunctions/setsolverordinalenabled.md +59 -0
  153. package/user-documentation/solverfunctions/settabularrowlength.md +57 -0
  154. package/user-documentation/solverfunctions/setvalue.md +65 -0
  155. package/user-documentation/solverfunctions/showsections.md +58 -0
  156. package/user-documentation/solverfunctions/sin.md +83 -0
  157. package/user-documentation/solverfunctions/slice.md +80 -0
  158. package/user-documentation/solverfunctions/smallestinset.md +63 -0
  159. package/user-documentation/solverfunctions/sortarray.md +58 -0
  160. package/user-documentation/solverfunctions/sorthistogram.md +70 -0
  161. package/user-documentation/solverfunctions/sorthistogrambykeys.md +69 -0
  162. package/user-documentation/solverfunctions/sortset.md +75 -0
  163. package/user-documentation/solverfunctions/sqrt.md +85 -0
  164. package/user-documentation/solverfunctions/stdev.md +81 -0
  165. package/user-documentation/solverfunctions/stdeva.md +58 -0
  166. package/user-documentation/solverfunctions/stdevp.md +83 -0
  167. package/user-documentation/solverfunctions/stringcountsegments.md +66 -0
  168. package/user-documentation/solverfunctions/stringgetsegments.md +74 -0
  169. package/user-documentation/solverfunctions/subtractingsummation.md +66 -0
  170. package/user-documentation/solverfunctions/sum.md +78 -0
  171. package/user-documentation/solverfunctions/tan.md +78 -0
  172. package/user-documentation/solverfunctions/tofixed.md +75 -0
  173. package/user-documentation/solverfunctions/unionarrays.md +59 -0
  174. package/user-documentation/solverfunctions/uniquearray.md +58 -0
  175. package/user-documentation/solverfunctions/var.md +67 -0
  176. package/user-documentation/solverfunctions/vara.md +58 -0
  177. package/user-documentation/solverfunctions/varp.md +66 -0
  178. package/user-documentation/solverfunctions/when.md +98 -0
@@ -0,0 +1,974 @@
1
+ {
2
+ "Scope": "SuperComplexTabularForm",
3
+
4
+ "PickLists":
5
+ [
6
+ {
7
+ "Hash": "Families",
8
+ "ListAddress": "AppData.FruitMetaLists.Families",
9
+ "ListSourceAddress": "FruitData.FruityVice[]",
10
+ "TextTemplate": "{~D:Record.family~}",
11
+ "IDTemplate": "{~D:Record.family~}",
12
+ "Unique": true,
13
+ "Sorted": true,
14
+ "UpdateFrequency": "Once"
15
+ },
16
+ {
17
+ "Hash": "Orders",
18
+ "ListAddress": "AppData.FruitMetaLists.Orders",
19
+ "ListSourceAddress": "FruitData.FruityVice[]",
20
+ "TextTemplate": "{~D:Record.order~}",
21
+ "IDTemplate": "{~D:Record.order~}",
22
+ "Unique": true,
23
+ "UpdateFrequency": "Once"
24
+ },
25
+ {
26
+ "Hash": "Genuses",
27
+ "ListAddress": "AppData.FruitMetaLists.Genuses",
28
+ "ListSourceAddress": "FruitData.FruityVice[]",
29
+ "TextTemplate": "{~D:Record.genus~}",
30
+ "IDTemplate": "{~D:Record.genus~}",
31
+ "Sorted": true,
32
+ "UpdateFrequency": "Always"
33
+ },
34
+ {
35
+ "Hash": "Books",
36
+ "ListAddress": "AppData.AuthorsBooks",
37
+ "ListSourceAddress": "Books[]",
38
+ "TextTemplate": "{~D:Record.Title~}",
39
+ "IDTemplate": "{~D:Record.IDBook~}",
40
+ "Sorted": true,
41
+ "UpdateFrequency": "Always"
42
+ },
43
+ {
44
+ "Hash": "RandomNumbers",
45
+ "Dynamic": true
46
+ }
47
+ ],
48
+
49
+ "Sections": [
50
+ {
51
+ "Hash": "Recipe",
52
+ "Name": "Fruit-based Recipe",
53
+
54
+ "Solvers":
55
+ [
56
+ "TotalFruitCalories = SUM(FruitNutritionCalories)",
57
+ "AverageFruitCalories = MEAN(FruitNutritionCalories)",
58
+ {
59
+ "Ordinal": 99,
60
+ "Expression": "AverageFatPercent = MEAN(FruitPercentTotalFat)"
61
+ },
62
+ "RecipeCounterSurfaceArea = RecipeCounterWidth * RecipeCounterDepth",
63
+ "RecipeCounterVolume = RecipeCounterSurfaceArea * RecipeVerticalClearance",
64
+ "InspirationLink = CONCAT(\"https://www.google.com/search?q=\", RecipeName, \" recipe\")",
65
+ "cumulativeSummationResult = cumulativeSummation(getvalue(\"AppData.FruitData.FruityVice\"), \"nutritions.calories\", \"SummedCalories\")",
66
+ "MAP VAR row FROM FruitData.FruityVice : ColorInputBackgroundTabular(\"FruitGrid\", \"FruitGrid\", \"PercentTotalFat\", stepIndex, \"#FFCCCC\", IF(row.nutritions.percent_total_fat, \">\", 0.25, 1, 0))"
67
+ ],
68
+
69
+ "MetaTemplates":
70
+ [
71
+ {
72
+ "HashPostfix": "-Template-Wrap-Prefix",
73
+ "Template": "<h1>Rectangular Area Solver Micro-app</h1><div><a href=\"#\" onclick=\"{~Pict~}.PictApplication.solve()\">[ solve ]</a> <a href=\"#\" onclick=\"{~P~}.views.PictFormMetacontroller.showSupportViewInlineEditor()\">[ debug ]</a></div><hr />"
74
+ }
75
+ ],
76
+
77
+ "Groups": [
78
+ {
79
+ "Hash": "Recipe",
80
+ "Name": "Recipe"
81
+ },
82
+ {
83
+ "Hash": "StatisticsTabs",
84
+ "Name": "Select a Statistics Section"
85
+ },
86
+ {
87
+ "Hash": "Statistics",
88
+ "Name": "Statistics",
89
+ "Layout": "Vertical"
90
+ },
91
+ {
92
+ "Hash": "FruitStatistics",
93
+ "Name": "Statistics About the Fruit"
94
+ }
95
+ ]
96
+ },
97
+ {
98
+ "Hash": "Book",
99
+ "Name": "Books about Tables",
100
+ "CSSClass": "HasFancyHeaders",
101
+ "Groups": [
102
+ {
103
+ "Hash": "Author",
104
+ "Name": "Author",
105
+ "CSSClass": "FancyCustomGroupTitleOverride"
106
+ },
107
+ {
108
+ "Hash": "Book"
109
+ }
110
+ ]
111
+ },
112
+ {
113
+ "Hash": "FruitGrid",
114
+ "Name": "Fruits of the World",
115
+ "Groups": [
116
+ {
117
+ "Hash": "FruitGrid",
118
+ "Name": "FruitGrid",
119
+
120
+ "Layout": "Tabular",
121
+
122
+ "RecordSetSolvers": [
123
+ {
124
+ "Ordinal": 0,
125
+ "Expression": "PercentTotalFat = (Fat * 9) / Calories"
126
+ },
127
+ {
128
+ "Ordinal": 1,
129
+ "Expression": "ProteinFatRatio = Protein / Fat * 100"
130
+ },
131
+ {
132
+ "Ordinal": 2,
133
+ "Expression": "HealthInfoLink = CONCAT(\"https://www.google.com/search?q=\", Family, \" health information\")"
134
+ }
135
+ ],
136
+
137
+ "PickLists":
138
+ [
139
+ {
140
+ "Hash": "Families",
141
+ "ListAddress": "AppData.FruitMetaLists.Families",
142
+ "ListSourceAddress": "FruitData.FruityVice[]",
143
+ "TextTemplate": "{~D:Record.family~}",
144
+ "IDTemplate": "{~D:Record.family~}",
145
+ "Unique": true,
146
+ "Sorted": true,
147
+ "UpdateFrequency": "Once"
148
+ }
149
+ ],
150
+ "RecordSetAddress": "FruitData.FruityVice",
151
+ "RecordManifest": "FruitEditor"
152
+ }
153
+ ]
154
+ },
155
+ {
156
+ "Hash": "BookGrid",
157
+ "Name": "Books of the World",
158
+ "Groups": [
159
+ {
160
+ "Hash": "BookGrid",
161
+ "Name": "BookGrid",
162
+
163
+ "Layout": "Tabular",
164
+
165
+ "RecordSetAddress": "Books",
166
+ "RecordManifest": "BookEditor"
167
+ }
168
+ ]
169
+ },
170
+ {
171
+ "Hash": "ExtraFormSections",
172
+ "Name": "Extra Form Sections"
173
+ },
174
+ {
175
+ "Hash": "Survey",
176
+ "Name": "Food Approval Survey"
177
+ },
178
+ {
179
+ "Hash": "DeliveryDestination",
180
+ "Name": "Delivery Destination"
181
+ },
182
+ {
183
+ "Hash": "Documentation",
184
+ "Name": "Preparation Documentation"
185
+ },
186
+ {
187
+ "Name": "Array Marshalling Test",
188
+ "Hash": "ArrayTest",
189
+ "Solvers": [],
190
+ "Groups": [
191
+ {
192
+ "Name": "",
193
+ "Hash": "ItemTablePre"
194
+ },
195
+ {
196
+ "Name": "Item Table",
197
+ "Hash": "ItemTable",
198
+ "Rows": [],
199
+ "RecordSetSolvers": [],
200
+ "Layout": "Tabular",
201
+ "RecordSetAddress": "ItemArray",
202
+ "RecordManifest": "ItemManifest"
203
+ }
204
+ ]
205
+ }
206
+ ],
207
+
208
+ "Descriptors": {
209
+ "RandomNumber": {
210
+ "Name": "Pick a Random Number",
211
+ "Hash": "PickRandomNumber",
212
+ "DataType": "String",
213
+ "PictForm":
214
+ {
215
+ "Section": "Recipe",
216
+ "Group": "Recipe",
217
+ "Row": 1,
218
+ "InputType": "Option",
219
+ "SelectOptionsPickList": "RandomNumbers"
220
+ }
221
+ },
222
+ "RecipeName": {
223
+ "Name": "Recipe Name",
224
+ "Hash": "RecipeName",
225
+ "DataType": "String",
226
+ "PictForm": { "Section": "Recipe", "Group": "Recipe", "Row": 1 }
227
+ },
228
+ "InspirationLink": {
229
+ "Name": "Inspiration",
230
+ "Hash": "InspirationLink",
231
+ "DataType": "String",
232
+ "PictForm": { "Section": "Recipe", "Group": "Recipe", "Row": 1, "InputType": "Link" }
233
+ },
234
+ "RecipeType": {
235
+ "Name": "Recipe Type",
236
+ "Hash": "RecipeType",
237
+ "DataType": "String",
238
+ "PictForm":
239
+ {
240
+ "Section": "Recipe",
241
+ "Group": "Recipe",
242
+ "Row": 1
243
+ }
244
+ },
245
+ "RecipeDescription": {
246
+ "Name": "Description",
247
+ "Hash": "RecipeDescription",
248
+ "DataType": "String",
249
+ "PictForm": { "Section": "Recipe", "Group": "Recipe", "Row": 2 }
250
+ },
251
+ "Inventor": {
252
+ "Name": "Inventor",
253
+ "Hash": "Inventor",
254
+ "DataType": "String",
255
+ "PictForm": { "Section": "Recipe", "Group": "Recipe", "Row": 3 }
256
+ },
257
+ "Proprietary": {
258
+ "Name": "Proprietary",
259
+ "Hash": "Proprietary",
260
+ "DataType": "Boolean",
261
+ "PictForm": { "InputType": "Boolean", "Section": "Recipe", "Group": "Recipe", "Row": 3 }
262
+ },
263
+ "MetaFruit.Information.FavoriteGenus": {
264
+ "Name": "Favorite Genus",
265
+ "Hash": "FavoriteGenus",
266
+ "DataType": "String",
267
+ "PictForm": { "Section": "Recipe", "Group": "Recipe", "Row": 4 }
268
+ },
269
+ "MetaFruit.Information.LastPrepared": {
270
+ "Name": "Last Prepared",
271
+ "Hash": "LastPrepared",
272
+ "DataType": "DateTime",
273
+ "PictForm": {
274
+ "Section": "Recipe", "Group": "Recipe", "Row": 4,
275
+ "Providers": ["Pict-Input-DateTime"]
276
+ }
277
+ },
278
+
279
+ "Author.IDAuthor": {
280
+ "Name": "Author ID",
281
+ "Hash": "IDAuthor",
282
+ "DataType": "Number",
283
+ "PictForm": {
284
+ "Section": "Book", "Group": "Author", "Row": 1, "Width": 1,
285
+ "Providers": ["Pict-Input-EntityBundleRequest", "Pict-Input-AutofillTriggerGroup"],
286
+ "EntitiesBundle": [
287
+ {
288
+ "Entity": "Author",
289
+ "Filter": "FBV~IDAuthor~EQ~{~D:Record.Value~}",
290
+ "Destination": "AppData.CurrentAuthor",
291
+ "SingleRecord": true
292
+ },
293
+ {
294
+ "Entity": "BookAuthorJoin",
295
+ "Filter": "FBV~IDAuthor~EQ~{~D:AppData.CurrentAuthor.IDAuthor~}",
296
+ "Destination": "AppData.BookAuthorJoins"
297
+ },
298
+ {
299
+ "Entity": "Book",
300
+ "Filter": "FBL~IDBook~INN~{~PJU:,^IDBook^AppData.BookAuthorJoins~}",
301
+ "Destination": "AppData.Books"
302
+ }
303
+ ],
304
+ "EntityBundleTriggerGroup": "BookTriggerGroup",
305
+ "AutofillTriggerGroup":
306
+ {
307
+ "TriggerGroupHash": "BookTriggerGroup",
308
+ "PostSolvers": [ "refreshTabularSection(\"BookGrid\", \"BookGrid\")`" ]
309
+ }
310
+ }
311
+ },
312
+ "Author.Name": {
313
+ "Name": "Author Name",
314
+ "Hash": "AuthorName",
315
+ "DataType": "String",
316
+ "PictForm": {
317
+ "Section": "Book", "Group": "Author", "Row": 1, "Width": 1,
318
+ "Providers": ["Pict-Input-AutofillTriggerGroup"],
319
+ "AutofillTriggerGroup":
320
+ {
321
+ "TriggerGroupHash": "BookTriggerGroup",
322
+ "TriggerAddress": "AppData.CurrentAuthor.Name",
323
+ "MarshalEmptyValues": true
324
+ }
325
+ }
326
+ },
327
+
328
+ "Books": {
329
+ "Name": "Authors Book List",
330
+ "Hash": "Books",
331
+ "DataType": "Array",
332
+ "Default": []
333
+ },
334
+ "Books.length": {
335
+ "Name": "Number of Books",
336
+ "Hash": "NumBooks",
337
+ "DataType": "PreciseNumber",
338
+ "Default": "0"
339
+ },
340
+ "Book.IDBook": {
341
+ "Name": "Specific Book",
342
+ "Hash": "SpecificIDBook",
343
+ "DataType": "Number",
344
+ "PictForm": {
345
+ "Section": "Book",
346
+ "Group": "Book",
347
+ "Row": 1, "Width": 1,
348
+ "InputType": "Option",
349
+ "SelectOptionsPickList": "Books",
350
+ "Providers": ["Pict-Input-Select", "Pict-Input-AutofillTriggerGroup"],
351
+ "AutofillTriggerGroup":
352
+ {
353
+ "TriggerGroupHash": "BookTriggerGroup",
354
+ "SelectOptionsRefresh": true
355
+ }
356
+ }
357
+ },
358
+
359
+ "SimpleGraphExampleRawDataOne":
360
+ {
361
+ "Name": "SimpleGraphExampleOne",
362
+ "Hash": "SimpleGraphExampleOne",
363
+
364
+ "DataType": "Object",
365
+ "PictForm":
366
+ {
367
+ "Section": "Chart",
368
+ "Group": "SimpleChart",
369
+
370
+ "Row": 1,
371
+ "Width": 3,
372
+
373
+ "InputType": "Chart",
374
+
375
+ "ChartLabelsRaw": ["Red", "Green", "Yellow", "Grey", "Blue"],
376
+
377
+ "ChartDatasetsRaw": [{
378
+ "label": "My First Dataset",
379
+ "data": [11, 16, 7, 3, 14],
380
+ "backgroundColor":
381
+ [
382
+ "rgb(255, 99, 132)",
383
+ "rgb(75, 192, 192)",
384
+ "rgb(255, 205, 86)",
385
+ "rgb(201, 203, 207)",
386
+ "rgb(54, 162, 235)"
387
+ ]
388
+ }],
389
+
390
+ "ChartConfigCorePrototypeRaw":
391
+ {
392
+ "type": "polarArea"
393
+ }
394
+ }
395
+ },
396
+
397
+ "SimpleGraphExampleRawDataTwo":
398
+ {
399
+ "Name": "SimpleGraphExampleTwo",
400
+ "Hash": "SimpleGraphExampleTwo",
401
+
402
+ "DataType": "Object",
403
+ "PictForm":
404
+ {
405
+ "Section": "Chart",
406
+ "Group": "SimpleChart",
407
+
408
+ "Row": 2,
409
+ "Width": 6,
410
+
411
+ "InputType": "Chart",
412
+
413
+ "ChartType": "bar",
414
+ "ChartLabelsSolver": "objectkeystoarray(aggregationhistogrambyobject(FruitGrid, \"name\", \"nutritions.calories\"))",
415
+ "ChartDatasetsSolvers":
416
+ [
417
+ {
418
+ "Label": "Calories",
419
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(FruitGrid, \"name\", \"nutritions.calories\"))"
420
+ }
421
+ ]
422
+ }
423
+ },
424
+
425
+ "SimpleGraphExampleRawDataThree":
426
+ {
427
+ "Name": "SimpleGraphExampleThree",
428
+ "Hash": "SimpleGraphExampleThree",
429
+
430
+ "DataType": "Object",
431
+ "PictForm":
432
+ {
433
+ "Section": "Chart",
434
+ "Group": "SimpleChart",
435
+
436
+ "Row": 2,
437
+ "Width": 6,
438
+
439
+ "InputType": "Chart",
440
+
441
+ "ChartType": "bar",
442
+ "ChartLabelsSolver": "objectkeystoarray(aggregationhistogrambyobject(FruitGrid, \"name\", \"nutritions.fat\"))",
443
+ "ChartDatasetsSolvers":
444
+ [
445
+ {
446
+ "Label": "Fat",
447
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(FruitGrid, \"name\", \"nutritions.fat\"))"
448
+ },
449
+ {
450
+ "Label": "Carbohydrates",
451
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(FruitGrid, \"name\", \"nutritions.carbohydrates\"))"
452
+ },
453
+ {
454
+ "Label": "Protein",
455
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(FruitGrid, \"name\", \"nutritions.protein\"))"
456
+ },
457
+ {
458
+ "Label": "Sugars",
459
+ "DataSolver": "objectvaluestoarray(aggregationhistogrambyobject(FruitGrid, \"name\", \"nutritions.sugar\"))"
460
+ }
461
+ ]
462
+ }
463
+ },
464
+
465
+ "WideGraphExample": {
466
+ "Name": "WideGraphExample",
467
+ "Hash": "WideGraphExample",
468
+ "DataType": "Object",
469
+ "PictForm":
470
+ {
471
+ "Section": "Chart",
472
+ "Group": "SimpleChart",
473
+ "Row": 3,
474
+ "Width": 12,
475
+ "InputType": "Chart",
476
+
477
+ "ChartLabelsRaw": ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
478
+
479
+ "ChartDatasetsRaw": [
480
+ {
481
+ "label": "Awesomeness",
482
+ "data": [1500, 1200, 800, 1700, 900, 2000]
483
+ }],
484
+
485
+ "ChartConfigCorePrototypeRaw":
486
+ {
487
+ "type": "bar",
488
+ "options": {
489
+ "scales": {
490
+ "y": {
491
+ "beginAtZero": true
492
+ }
493
+ }
494
+ }
495
+ }
496
+ }
497
+ },
498
+
499
+ "UI.StatisticsTabState": {
500
+ "Name": "Statistics Tab State",
501
+ "Hash": "StatisticsTabState",
502
+ "DataType": "String",
503
+ "PictForm": {
504
+ "Section": "Recipe",
505
+ "Group": "StatisticsTabs",
506
+ "InputType": "TabGroupSelector",
507
+ "TabGroupSet": ["Statistics", "FruitStatistics"],
508
+ "TabGroupNames": ["Statistics", "Fruit Statistics"]
509
+ }
510
+ },
511
+
512
+ "UI.ExtraSectionSelection": {
513
+ "Name": "Extra Form Sections",
514
+ "Hash": "ExtraFormSectionSelection",
515
+ "DataType": "String",
516
+ "PictForm": {
517
+ "Section": "ExtraFormSections",
518
+ "InputType": "TabSectionSelector",
519
+ "TabSectionSet": ["Survey", "DeliveryDestination", "Documentation"],
520
+ "TabSectionNames": ["Survey", "Delivery Destination", "Documentation"]
521
+ }
522
+ },
523
+
524
+ "Recipe.Feeds": {
525
+ "Name": "Feeds",
526
+ "Hash": "RecipeFeeds",
527
+ "DataType": "PreciseNumber",
528
+ "Default": "1",
529
+ "PictForm": {
530
+ "Section": "Recipe", "Group": "Statistics", "Row": 1, "Width": 1,
531
+ "ExtraDescription": "How many people does this recipe feed?",
532
+ "InputType": "Option",
533
+ "Providers": ["CustomDataProvider", "Pict-Input-Select"],
534
+ "SelectOptions": [{ "id": "few", "text": "Few" }, { "id": "some", "text": "Some" }, { "id": "many", "text": "Many" }]
535
+ }
536
+ },
537
+ "Recipe.TotalCalories": {
538
+ "Name": "Calories in the Fruits",
539
+ "Hash": "RecipeCalories",
540
+ "DataType": "PreciseNumber",
541
+ "Default": "1",
542
+ "PictForm": {
543
+ "Section": "Recipe",
544
+ "Group": "Statistics",
545
+ "Row": 1,
546
+ "Width": 1
547
+ }
548
+ },
549
+
550
+ "Recipe.CounterWidth": {
551
+ "Name": "Counter Prep Width Requirements",
552
+ "Hash": "RecipeCounterWidth",
553
+ "DataType": "Number",
554
+ "Default": "10",
555
+ "PictForm": { "Section": "Recipe", "Group": "Statistics", "Row": 2, "Width": 1 }
556
+ },
557
+ "Recipe.CounterDepth": {
558
+ "Name": "Counter Prep Depth Requirements",
559
+ "Hash": "RecipeCounterDepth",
560
+ "DataType": "Number",
561
+ "Default": "5",
562
+ "PictForm": { "Section": "Recipe", "Group": "Statistics", "Row": 2, "Width": 1 }
563
+ },
564
+ "Recipe.CounterSurfaceArea": {
565
+ "Name": "Required Counter Surface Area",
566
+ "Hash": "RecipeCounterSurfaceArea",
567
+ "DataType": "PreciseNumber",
568
+ "PictForm": { "Section": "Recipe", "Group": "Statistics", "Row": 2, "Width": 1, "InputType": "PreciseNumberReadOnly", "DecimalPrecision": 3, "DigitsPostfix": " sq. in." }
569
+ },
570
+
571
+ "Recipe.VerticalClearance": {
572
+ "Name": "Prep Vertical Clearance",
573
+ "Hash": "RecipeVerticalClearance",
574
+ "DataType": "Number",
575
+ "Default": "12",
576
+ "PictForm": { "Section": "Recipe", "Group": "Statistics", "Row": 3, "Width": 1 }
577
+ },
578
+ "Recipe.PrepVolume": {
579
+ "Name": "Preparation Volume Requirements",
580
+ "Hash": "RecipeCounterVolume",
581
+ "DataType": "PreciseNumber",
582
+ "PictForm": { "Section": "Recipe", "Group": "Statistics", "Row": 3, "Width": 1 }
583
+ },
584
+ "Recipe.MoistureContent": {
585
+ "Name": "Required Moisture Content",
586
+ "Hash": "RecipeMoistureContent",
587
+ "DataType": "PreciseNumber",
588
+ "PictForm": { "Section": "Recipe", "Group": "Statistics", "Row": 3, "Width": 1 }
589
+ },
590
+
591
+ "FruitStats.TotalCalories": {
592
+ "Name": "Total Calories in All Fruits",
593
+ "Hash": "TotalFruitCalories",
594
+ "DataType": "PreciseNumber",
595
+ "PictForm": {
596
+ "DecimalPrecision": 3,
597
+ "RoundingMethod": 0,
598
+ "Section": "Recipe",
599
+ "Group": "FruitStatistics",
600
+ "Row": 1,
601
+ "Width": 1
602
+ }
603
+ },
604
+ "FruitStats.AverageCalories": {
605
+ "Name": "Average (mean) Calories in All Fruits",
606
+ "Hash": "AverageFruitCalories",
607
+ "DataType": "PreciseNumber",
608
+ "PictForm": {
609
+ "Section": "Recipe",
610
+ "Group": "FruitStatistics",
611
+ "Row": 1,
612
+ "Width": 1
613
+ }
614
+ },
615
+ "FruitStats.AverageFatPercent": {
616
+ "Name": "Average (mean) Fat Percentage in All Fruits",
617
+ "Hash": "AverageFatPercent",
618
+ "DataType": "PreciseNumber",
619
+ "PictForm": {
620
+ "Section": "Recipe",
621
+ "Group": "FruitStatistics",
622
+ "Row": 1,
623
+ "Width": 1
624
+ }
625
+ },
626
+
627
+ "FruitData.FruityVice": {
628
+ "Name": "Fruits of the Earth",
629
+ "Hash": "FruitGrid",
630
+ "DataType": "Array",
631
+ "Default": []
632
+ },
633
+
634
+ "FruitData.FruityVice[].nutritions.calories": {
635
+ "Hash": "FruitNutritionCalories"
636
+ },
637
+ "FruitData.FruityVice[].health_info": {
638
+ "Hash": "FruitHealthInfo"
639
+ },
640
+ "FruitData.FruityVice[].nutritions.percent_total_fat": {
641
+ "Hash": "FruitPercentTotalFat"
642
+ },
643
+
644
+ "Survey.Subject": {
645
+ "Name": "Subject",
646
+ "Hash": "SurveySubject",
647
+ "DataType": "String",
648
+ "PictForm": {
649
+ "Section": "Survey",
650
+ "Group": "SurveyContent",
651
+ "Row": 1,
652
+ "Width": 1
653
+ }
654
+ },
655
+ "Survey.Content": {
656
+ "Name": "Content",
657
+ "Hash": "SurveyContent",
658
+ "DataType": "String",
659
+ "PictForm": {
660
+ "Section": "Survey",
661
+ "InputType": "TextArea",
662
+ "Group": "SurveyContent",
663
+ "Row": 2,
664
+ "Width": 1
665
+ }
666
+ },
667
+
668
+ "Distribution.Address": {
669
+ "Name": "Address",
670
+ "Hash": "DistributionAddress",
671
+ "DataType": "String",
672
+ "PictForm": {
673
+ "Section": "DeliveryDestination",
674
+ "InputType": "TextArea",
675
+ "Group": "DeliveryDestinationAddress",
676
+ "Row": 1,
677
+ "Width": 1
678
+ }
679
+ },
680
+ "Distribution.City": {
681
+ "Name": "City",
682
+ "Hash": "DistributionAddressCity",
683
+ "DataType": "String",
684
+ "PictForm": {
685
+ "Section": "DeliveryDestination",
686
+ "Group": "DeliveryDestinationAddress",
687
+ "Row": 2,
688
+ "Width": 1
689
+ }
690
+ },
691
+ "Distribution.State": {
692
+ "Name": "State",
693
+ "Hash": "DistributionAddressState",
694
+ "DataType": "String",
695
+ "PictForm": {
696
+ "Section": "DeliveryDestination",
697
+ "Group": "DeliveryDestinationAddress",
698
+ "Row": 2,
699
+ "Width": 1
700
+ }
701
+ },
702
+ "Distribution.Zip": {
703
+ "Name": "Zip",
704
+ "Hash": "DistributionAddressZip",
705
+ "DataType": "String",
706
+ "PictForm": {
707
+ "Section": "DeliveryDestination",
708
+ "Group": "DeliveryDestinationAddress",
709
+ "Row": 2,
710
+ "Width": 1
711
+ }
712
+ },
713
+
714
+ "Documentation.Title": {
715
+ "Name": "Title",
716
+ "Hash": "DocumentationTitle",
717
+ "DataType": "String",
718
+ "PictForm": {
719
+ "Section": "Documentation",
720
+ "Group": "Documentation",
721
+ "Row": 1,
722
+ "Width": 1
723
+ }
724
+ },
725
+ "Documentation.Body": {
726
+ "Name": "Body",
727
+ "Hash": "DocumentationBody",
728
+ "DataType": "String",
729
+ "PictForm": {
730
+ "Section": "Documentation",
731
+ "InputType": "TextArea",
732
+ "Group": "Documentation",
733
+ "Row": 2,
734
+ "Width": 1
735
+ }
736
+ },
737
+ "Placeholder": {
738
+ "Hash": "Placeholder",
739
+ "Name": "Placeholder",
740
+ "PictForm":
741
+ {
742
+ "Section": "Recipe",
743
+ "Group": "Recipe",
744
+ "InputType": "Hidden",
745
+ "Providers": [ "Pict-Input-EntityBundleRequest" ],
746
+ "EntityBundleTriggerGroup": "SourceDataChange",
747
+ "EntityBundleTriggerWithoutValue": true,
748
+ "EntityBundleTriggerOnInitialize": true,
749
+ "EntitiesBundle": []
750
+ }
751
+ },
752
+ "ItemArray": {
753
+ "Hash": "ItemArray",
754
+ "Name": "Item Array",
755
+ "DataAddress": "ItemArray",
756
+ "DataType": "Array",
757
+ "PictForm": {
758
+ "Row": "0",
759
+ "Width": "0",
760
+ "InputType": "Hidden",
761
+ "Providers": [
762
+ "Pict-Input-AutofillTriggerGroup"
763
+ ],
764
+ "AutofillTriggerGroup": [
765
+ {
766
+ "TriggerGroupHash": "SourceDataChange",
767
+ "MarshalEmptyValues": true,
768
+ "TriggerAddress": "AppData.SourceArray",
769
+ "PostSolvers": [
770
+ "refreshtabularsection(\"ArrayTest\",\"ItemTable\")"
771
+ ]
772
+ }
773
+ ],
774
+ "Section": "ArrayTest",
775
+ "Group": "ItemTablePre"
776
+ }
777
+ }
778
+ },
779
+
780
+ "ReferenceManifests": {
781
+ "DynamicSection1": {
782
+ "Scope": "DynamicSection1",
783
+ "Descriptors": {
784
+ "DynamicField1": {
785
+ "Name": "Dynamic Field 1",
786
+ "Hash": "DynamicField1",
787
+ "DataType": "String",
788
+ "PictForm": { "Section": "DynamicSection1", "Group": "DynamicGroup1", "Row": 1 }
789
+ },
790
+ "DynamicField2": {
791
+ "Name": "Dynamic Field 2",
792
+ "Hash": "DynamicField2",
793
+ "DataType": "String",
794
+ "PictForm": { "Section": "DynamicSection1", "Group": "DynamicGroup2", "Row": 1 }
795
+ }
796
+ },
797
+ "Sections": [
798
+ {
799
+ "Hash": "DynamicSection1",
800
+ "Name": "Dynamic Section 1",
801
+ "Groups": [
802
+ {
803
+ "Hash": "DynamicGroup1",
804
+ "Name": "Dynamic Group 1"
805
+ },
806
+ {
807
+ "Hash": "DynamicGroup2",
808
+ "Name": "Dynamic Group 2"
809
+ }
810
+ ]
811
+ }
812
+ ]
813
+ },
814
+ "FruitEditor": {
815
+ "Scope": "FruitEditor",
816
+
817
+ "Descriptors": {
818
+ "name": {
819
+ "Name": "Fruit Name",
820
+ "Hash": "Name",
821
+ "DataType": "String",
822
+ "Default": "(unnamed fruit)",
823
+ "PictForm": { "Row": "1", "Section": "FruitGrid", "Group": "FruitGrid" }
824
+ },
825
+ "health_info": {
826
+ "Name": "Health Info.",
827
+ "Hash": "HealthInfoLink",
828
+ "DataType": "String",
829
+ "Default": "",
830
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid", "InputType": "Link" }
831
+ },
832
+ "family": {
833
+ "Name": "Family",
834
+ "Hash": "Family",
835
+ "DataType": "String",
836
+ "PictForm": {
837
+ "Section": "FruitGrid", "Group": "FruitGrid", "InputType": "Option",
838
+ "Providers": ["Pict-Input-Select"],
839
+ "SelectOptionsPickList": "Families"
840
+ }
841
+ },
842
+ "order": {
843
+ "Name": "Order",
844
+ "Hash": "Order",
845
+ "DataType": "String",
846
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid" }
847
+ },
848
+ "genus": {
849
+ "Name": "Genus",
850
+ "Hash": "Genus",
851
+ "DataType": "String",
852
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid" }
853
+ },
854
+ "lastWatered": {
855
+ "Name": "Last Watered",
856
+ "Hash": "LastWatered",
857
+ "DataType": "DateTime",
858
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid", "InputType": "DateTime", "Providers": ["Pict-Input-DateTime"] }
859
+ },
860
+ "nutritions.calories": {
861
+ "Name": "Calories",
862
+ "Hash": "Calories",
863
+ "DataType": "Number",
864
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid" }
865
+ },
866
+ "SummedCalories": {
867
+ "Name": "Summed Calories (cumulative)",
868
+ "Hash": "SummedCalories",
869
+ "DataType": "Number",
870
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid" }
871
+ },
872
+ "nutritions.fat": {
873
+ "Name": "Fat",
874
+ "Hash": "Fat",
875
+ "DataType": "Number",
876
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid" }
877
+ },
878
+ "nutritions.carbohydrates": {
879
+ "Name": "Carbohydrates",
880
+ "Hash": "Carbs",
881
+ "DataType": "Number",
882
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid" }
883
+ },
884
+ "nutritions.protein": {
885
+ "Name": "Protein",
886
+ "Hash": "Protein",
887
+ "DataType": "Number",
888
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid" }
889
+ },
890
+ "nutritions.protein_fat_ratio": {
891
+ "Name": "Protein Fat Ratio",
892
+ "Hash": "ProteinFatRatio",
893
+ "DataType": "Number",
894
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid", "TabularHidden": true }
895
+ },
896
+ "nutritions.percent_total_fat": {
897
+ "Name": "PercentTotalFat",
898
+ "Hash": "PercentTotalFat",
899
+ "DataType": "Number",
900
+ "PictForm": { "Section": "FruitGrid", "Group": "FruitGrid", "InputType": "PreciseNumberReadOnly", "DecimalPrecision": 4 }
901
+ },
902
+ "Author.Name": {
903
+ "Name": "Author Name",
904
+ "Hash": "AuthorNameTabular",
905
+ "DataType": "String",
906
+ "PictForm": {
907
+ "Row": "1",
908
+ "Section": "FruitGrid", "Group": "FruitGrid",
909
+ "Providers": ["Pict-Input-AutofillTriggerGroup"],
910
+ "AutofillTriggerGroup":
911
+ {
912
+ "TriggerGroupHash": "BookTriggerGroup",
913
+ "TriggerAddress": "AppData.CurrentAuthor.Name",
914
+ "MarshalEmptyValues": true
915
+ }
916
+ }
917
+ }
918
+ }
919
+ },
920
+ "BookEditor": {
921
+ "Scope": "BookEditor",
922
+
923
+ "Descriptors": {
924
+ "Title": {
925
+ "Name": "Book Title",
926
+ "Hash": "Title",
927
+ "DataType": "String",
928
+ "Default": "(unnamed book)",
929
+ "PictForm": { "Row": "1", "Section": "BookGrid", "Group": "BookGrid" }
930
+ }
931
+ }
932
+ },
933
+ "ItemManifest": {
934
+ "Scope": "ItemManifest",
935
+ "Descriptors": {
936
+ "ItemID": {
937
+ "Hash": "ItemID",
938
+ "Name": "Item ID",
939
+ "DataAddress": "ItemID",
940
+ "DataType": "Number",
941
+ "PictForm": {
942
+ "Row": "1",
943
+ "Width": "8",
944
+ "InputType": "ReadOnly"
945
+ }
946
+ },
947
+ "HiddenValue": {
948
+ "Hash": "HiddenValue",
949
+ "Name": "Hidden Value",
950
+ "DataAddress": "HiddenValue",
951
+ "DataType": "String",
952
+ "PictForm": {
953
+ "Row": "1",
954
+ "Width": "8",
955
+ "InputType": "Hidden",
956
+ "TabularHidden": true
957
+ }
958
+ },
959
+ "Value": {
960
+ "Hash": "Value",
961
+ "Name": "Value",
962
+ "DataAddress": "Value",
963
+ "DataType": "String",
964
+ "PictForm": {
965
+ "Row": "1",
966
+ "Width": "8"
967
+ }
968
+ }
969
+ },
970
+ "Sections": [],
971
+ "ReferenceManifests": {}
972
+ }
973
+ }
974
+ }