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,85 @@
1
+ # rad
2
+
3
+ Converts degrees to radians.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ rad(degrees)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `degrees` | Number/String | The angle in degrees |
16
+
17
+ ## Returns
18
+
19
+ String - The angle converted to radians.
20
+
21
+ ## Description
22
+
23
+ The `rad` function converts an angle from degrees to radians. This is necessary because the trigonometric functions (`sin`, `cos`, `tan`) expect angles in radians.
24
+
25
+ The conversion formula is: radians = degrees × (π / 180)
26
+
27
+ ## Examples
28
+
29
+ ### Basic Usage
30
+
31
+ ```expression
32
+ Result = rad(180)
33
+ // Result: "3.14159265358979..." (π)
34
+
35
+ Result = rad(90)
36
+ // Result: "1.5707963267948966..." (π/2)
37
+
38
+ Result = rad(360)
39
+ // Result: "6.28318530717958..." (2π)
40
+ ```
41
+
42
+ ### With Trigonometric Functions
43
+
44
+ ```expression
45
+ // Sine of 60 degrees
46
+ Result = sin(rad(60))
47
+ // Result: "0.8660254037844386"
48
+
49
+ // Cosine of 45 degrees
50
+ Result = cos(rad(45))
51
+ // Result: "0.7071067811865476"
52
+ ```
53
+
54
+ ### Common Angle Conversions
55
+
56
+ ```expression
57
+ rad(0) // 0
58
+ rad(30) // π/6 ≈ 0.5236
59
+ rad(45) // π/4 ≈ 0.7854
60
+ rad(60) // π/3 ≈ 1.0472
61
+ rad(90) // π/2 ≈ 1.5708
62
+ rad(180) // π ≈ 3.1416
63
+ rad(270) // 3π/2 ≈ 4.7124
64
+ rad(360) // 2π ≈ 6.2832
65
+ ```
66
+
67
+ ## Use Cases
68
+
69
+ - **Trigonometry**: Converting user-friendly degree inputs to radians
70
+ - **Graphics**: Rotation calculations
71
+ - **Physics**: Angular motion calculations
72
+ - **Engineering**: Angle-based computations
73
+
74
+ ## Related Functions
75
+
76
+ - [sin](./sin.md) - Sine (requires radians)
77
+ - [cos](./cos.md) - Cosine (requires radians)
78
+ - [tan](./tan.md) - Tangent (requires radians)
79
+ - [pi](./pi.md) - Pi constant
80
+
81
+ ## Notes
82
+
83
+ - Uses arbitrary precision arithmetic
84
+ - The result is (degrees × π / 180)
85
+ - Essential for using trig functions with degree-based inputs
@@ -0,0 +1,63 @@
1
+ # randomfloat
2
+
3
+ Generates a random floating-point number.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ randomfloat()
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ None
14
+
15
+ ## Returns
16
+
17
+ String - A random floating-point number between 0 and 1.
18
+
19
+ ## Description
20
+
21
+ The `randomfloat` function generates a random decimal number, typically between 0 and 1. This is useful for probability calculations and generating random decimal values.
22
+
23
+ ## Examples
24
+
25
+ ### Basic Usage
26
+
27
+ ```expression
28
+ Result = RANDOMFLOAT()
29
+ // Result: "0.7423589" (random each time)
30
+ ```
31
+
32
+ ### Probability Check
33
+
34
+ ```expression
35
+ // 50% chance
36
+ Happened = RANDOMFLOAT() < 0.5
37
+ ```
38
+
39
+ ### Scale to Range
40
+
41
+ ```expression
42
+ // Random value between 0 and 100
43
+ Scaled = RANDOMFLOAT() * 100
44
+ ```
45
+
46
+ ## Use Cases
47
+
48
+ - **Probability**: Random chance calculations
49
+ - **Simulation**: Monte Carlo simulations
50
+ - **Weighting**: Random weighted selection
51
+ - **Testing**: Generate decimal test data
52
+
53
+ ## Related Functions
54
+
55
+ - [randomfloatbetween](./randomfloatbetween.md) - Random decimal in range
56
+ - [randomfloatupto](./randomfloatupto.md) - Random decimal up to max
57
+ - [randominteger](./randominteger.md) - Random whole number
58
+
59
+ ## Notes
60
+
61
+ - Returns value between 0 and 1
62
+ - Returns result as string
63
+ - Uses the DataGeneration service
@@ -0,0 +1,72 @@
1
+ # randomfloatbetween
2
+
3
+ Generates a random floating-point number between two values.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ randomfloatbetween(min, max)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `min` | Number | Minimum value |
16
+ | `max` | Number | Maximum value |
17
+
18
+ ## Returns
19
+
20
+ String - A random floating-point number between min and max.
21
+
22
+ ## Description
23
+
24
+ The `randomfloatbetween` function generates a random decimal number within a specified range.
25
+
26
+ ## Examples
27
+
28
+ ### Basic Usage
29
+
30
+ ```expression
31
+ Result = RANDOMFLOATBETWEEN(1.0, 10.0)
32
+ // Result: "5.732" (random between 1 and 10)
33
+ ```
34
+
35
+ ### Temperature Range
36
+
37
+ ```expression
38
+ RandomTemp = RANDOMFLOATBETWEEN(98.0, 99.5)
39
+ // Random body temperature
40
+ ```
41
+
42
+ ### Price Variation
43
+
44
+ ```expression
45
+ RandomPrice = RANDOMFLOATBETWEEN(9.99, 19.99)
46
+ ```
47
+
48
+ ### Coordinate Generation
49
+
50
+ ```expression
51
+ RandomLat = RANDOMFLOATBETWEEN(-90, 90)
52
+ RandomLng = RANDOMFLOATBETWEEN(-180, 180)
53
+ ```
54
+
55
+ ## Use Cases
56
+
57
+ - **Simulation**: Random values in realistic ranges
58
+ - **Testing**: Generate bounded decimal test data
59
+ - **Coordinates**: Random geographic coordinates
60
+ - **Pricing**: Random price generation
61
+
62
+ ## Related Functions
63
+
64
+ - [randomfloat](./randomfloat.md) - Random decimal 0-1
65
+ - [randomfloatupto](./randomfloatupto.md) - Random decimal up to max
66
+ - [randomintegerbetween](./randomintegerbetween.md) - Random integer in range
67
+
68
+ ## Notes
69
+
70
+ - Returns result as string
71
+ - Uses the DataGeneration service
72
+ - Includes decimal precision
@@ -0,0 +1,65 @@
1
+ # randomfloatupto
2
+
3
+ Generates a random floating-point number from 0 up to a maximum value.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ randomfloatupto(max)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `max` | Number | Maximum value |
16
+
17
+ ## Returns
18
+
19
+ String - A random floating-point number from 0 to max.
20
+
21
+ ## Description
22
+
23
+ The `randomfloatupto` function generates a random decimal number starting from 0 up to the specified maximum value.
24
+
25
+ ## Examples
26
+
27
+ ### Basic Usage
28
+
29
+ ```expression
30
+ Result = RANDOMFLOATUPTO(100.0)
31
+ // Result: "47.832" (random between 0 and 100)
32
+ ```
33
+
34
+ ### Random Percentage
35
+
36
+ ```expression
37
+ RandomPercent = RANDOMFLOATUPTO(100)
38
+ // Random percentage with decimals
39
+ ```
40
+
41
+ ### Random Duration
42
+
43
+ ```expression
44
+ RandomSeconds = RANDOMFLOATUPTO(60)
45
+ // Random duration up to 1 minute
46
+ ```
47
+
48
+ ## Use Cases
49
+
50
+ - **Scaling**: Random values up to a limit
51
+ - **Percentages**: Random percent with decimals
52
+ - **Time**: Random durations
53
+ - **Testing**: Bounded decimal test data
54
+
55
+ ## Related Functions
56
+
57
+ - [randomfloat](./randomfloat.md) - Random decimal 0-1
58
+ - [randomfloatbetween](./randomfloatbetween.md) - Random decimal in range
59
+ - [randomintegerupto](./randomintegerupto.md) - Random integer up to max
60
+
61
+ ## Notes
62
+
63
+ - Starts from 0
64
+ - Returns result as string
65
+ - Uses the DataGeneration service
@@ -0,0 +1,56 @@
1
+ # randominteger
2
+
3
+ Generates a random integer.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ randominteger()
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ None
14
+
15
+ ## Returns
16
+
17
+ String - A random integer value.
18
+
19
+ ## Description
20
+
21
+ The `randominteger` function generates a random integer. This is useful for creating random test data, unique identifiers, or implementing random selection.
22
+
23
+ ## Examples
24
+
25
+ ### Basic Usage
26
+
27
+ ```expression
28
+ Result = RANDOMINTEGER()
29
+ // Result: "7342985621" (random each time)
30
+ ```
31
+
32
+ ### Random Selection
33
+
34
+ ```expression
35
+ // Generate random index for array selection
36
+ Index = RANDOMINTEGER() % ArrayLength
37
+ ```
38
+
39
+ ## Use Cases
40
+
41
+ - **Test data**: Generate random values
42
+ - **Randomization**: Random selection
43
+ - **IDs**: Generate identifiers
44
+ - **Games**: Random number generation
45
+
46
+ ## Related Functions
47
+
48
+ - [randomintegerbetween](./randomintegerbetween.md) - Random integer in range
49
+ - [randomintegerupto](./randomintegerupto.md) - Random integer up to max
50
+ - [randomfloat](./randomfloat.md) - Random decimal number
51
+
52
+ ## Notes
53
+
54
+ - Returns result as string
55
+ - Uses the DataGeneration service
56
+ - Each call produces different result
@@ -0,0 +1,72 @@
1
+ # randomintegerbetween
2
+
3
+ Generates a random integer between two values (inclusive).
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ randomintegerbetween(min, max)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `min` | Number | Minimum value (inclusive) |
16
+ | `max` | Number | Maximum value (inclusive) |
17
+
18
+ ## Returns
19
+
20
+ String - A random integer between min and max.
21
+
22
+ ## Description
23
+
24
+ The `randomintegerbetween` function generates a random integer within a specified range, including both the minimum and maximum values.
25
+
26
+ ## Examples
27
+
28
+ ### Basic Usage
29
+
30
+ ```expression
31
+ Result = RANDOMINTEGERBETWEEN(1, 10)
32
+ // Result: "7" (random between 1 and 10)
33
+ ```
34
+
35
+ ### Dice Roll
36
+
37
+ ```expression
38
+ DiceRoll = RANDOMINTEGERBETWEEN(1, 6)
39
+ // Result: "4" (simulates rolling a die)
40
+ ```
41
+
42
+ ### Random Selection Index
43
+
44
+ ```expression
45
+ // Select random item from list of 5 items
46
+ Index = RANDOMINTEGERBETWEEN(0, 4)
47
+ ```
48
+
49
+ ### Random Age in Range
50
+
51
+ ```expression
52
+ RandomAge = RANDOMINTEGERBETWEEN(18, 65)
53
+ ```
54
+
55
+ ## Use Cases
56
+
57
+ - **Games**: Dice rolls, card draws
58
+ - **Testing**: Generate bounded random values
59
+ - **Sampling**: Random selection from range
60
+ - **Simulation**: Random parameters
61
+
62
+ ## Related Functions
63
+
64
+ - [randominteger](./randominteger.md) - Unbounded random integer
65
+ - [randomintegerupto](./randomintegerupto.md) - Random integer from 0 to max
66
+ - [randomfloatbetween](./randomfloatbetween.md) - Random decimal in range
67
+
68
+ ## Notes
69
+
70
+ - Both min and max are inclusive
71
+ - Returns result as string
72
+ - Uses the DataGeneration service
@@ -0,0 +1,64 @@
1
+ # randomintegerupto
2
+
3
+ Generates a random integer from 0 up to a maximum value.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ randomintegerupto(max)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `max` | Number | Maximum value (exclusive or inclusive based on implementation) |
16
+
17
+ ## Returns
18
+
19
+ String - A random integer from 0 to max.
20
+
21
+ ## Description
22
+
23
+ The `randomintegerupto` function generates a random integer starting from 0 up to the specified maximum value. This is useful for array indexing and random selection from lists.
24
+
25
+ ## Examples
26
+
27
+ ### Basic Usage
28
+
29
+ ```expression
30
+ Result = RANDOMINTEGERUPTO(100)
31
+ // Result: "42" (random between 0 and 100)
32
+ ```
33
+
34
+ ### Array Index Selection
35
+
36
+ ```expression
37
+ // Select random index for 10-element array
38
+ Index = RANDOMINTEGERUPTO(10)
39
+ ```
40
+
41
+ ### Percentage Simulation
42
+
43
+ ```expression
44
+ RandomPercent = RANDOMINTEGERUPTO(100)
45
+ ```
46
+
47
+ ## Use Cases
48
+
49
+ - **Array indexing**: Random element selection
50
+ - **Percentages**: Random percentage values
51
+ - **Simulation**: Random values from zero
52
+ - **Testing**: Generate test indices
53
+
54
+ ## Related Functions
55
+
56
+ - [randominteger](./randominteger.md) - Unbounded random integer
57
+ - [randomintegerbetween](./randomintegerbetween.md) - Random integer in range
58
+ - [randomfloatupto](./randomfloatupto.md) - Random decimal up to max
59
+
60
+ ## Notes
61
+
62
+ - Starts from 0
63
+ - Returns result as string
64
+ - Uses the DataGeneration service
@@ -0,0 +1,57 @@
1
+ # refreshtabularsection
2
+
3
+ Forces a tabular section to re-render its display.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ refreshtabularsection(sectionHash, groupHash)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `sectionHash` | String | The hash identifier of the section containing the tabular group |
16
+ | `groupHash` | String | The hash identifier of the tabular group |
17
+
18
+ ## Returns
19
+
20
+ Void. This function does not return a value.
21
+
22
+ ## Description
23
+
24
+ The `refreshtabularsection` function forces a tabular form group to re-render its display. This is useful after programmatically modifying the underlying data of a tabular section, such as changing row counts, updating cell values, or restructuring the data. The re-render ensures that the displayed table reflects the current state of the data.
25
+
26
+ ## Examples
27
+
28
+ ### Refreshing after data modification
29
+
30
+ ```expression
31
+ refreshtabularsection("DataSection", "DataGroup")
32
+ // Forces the DataGroup table in DataSection to re-render
33
+ ```
34
+
35
+ ### Refreshing after row count change
36
+
37
+ ```expression
38
+ settabularrowlength("Orders", "LineItems", 5)
39
+ refreshtabularsection("Orders", "LineItems")
40
+ // Sets row count then refreshes the display
41
+ ```
42
+
43
+ ## Use Cases
44
+
45
+ - **Post-update refresh**: Re-render a table after programmatically modifying its data
46
+ - **Data synchronization**: Ensure the display matches the current application state after bulk changes
47
+ - **Layout correction**: Force a re-render to correct any display inconsistencies
48
+
49
+ ## Related Functions
50
+
51
+ - [settabularrowlength](./settabularrowlength.md) - Sets the number of rows in a tabular data group
52
+
53
+ ## Notes
54
+
55
+ - The section and group hashes must match hashes defined in the form configuration
56
+ - This function only affects the display; it does not modify the underlying data
57
+ - Typically called after other functions that modify tabular data programmatically
@@ -0,0 +1,64 @@
1
+ # resolvehtmlentities
2
+
3
+ Converts HTML entities to their corresponding characters.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ resolvehtmlentities(text)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `text` | String | Text containing HTML entities |
16
+
17
+ ## Returns
18
+
19
+ String - Text with HTML entities decoded.
20
+
21
+ ## Description
22
+
23
+ The `resolvehtmlentities` function converts HTML entities (like `&amp;`, `&lt;`, `&gt;`) back to their original characters.
24
+
25
+ ## Examples
26
+
27
+ ### Basic Usage
28
+
29
+ ```expression
30
+ Result = RESOLVEHTMLENTITIES("Hello &amp; World")
31
+ // Result: "Hello & World"
32
+ ```
33
+
34
+ ### Multiple Entities
35
+
36
+ ```expression
37
+ Result = RESOLVEHTMLENTITIES("&lt;div&gt;Content&lt;/div&gt;")
38
+ // Result: "<div>Content</div>"
39
+ ```
40
+
41
+ ### Special Characters
42
+
43
+ ```expression
44
+ Result = RESOLVEHTMLENTITIES("Price: &pound;100 &copy; 2025")
45
+ // Result: "Price: £100 © 2025"
46
+ ```
47
+
48
+ ## Use Cases
49
+
50
+ - **Data cleaning**: Decode HTML-encoded data
51
+ - **Display**: Show proper characters
52
+ - **Import**: Process HTML data
53
+ - **Text processing**: Normalize text
54
+
55
+ ## Related Functions
56
+
57
+ - [concat](./concat.md) - Combine strings
58
+ - [join](./join.md) - Join strings
59
+
60
+ ## Notes
61
+
62
+ - Decodes common HTML entities
63
+ - Handles numeric entities
64
+ - Uses the DataFormat service
@@ -0,0 +1,111 @@
1
+ # round
2
+
3
+ Rounds a number to a specified number of decimal places.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ round(value)
9
+ round(value, decimalPlaces)
10
+ round(value, decimalPlaces, roundingMethod)
11
+ ```
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Type | Default | Description |
16
+ |-----------|------|---------|-------------|
17
+ | `value` | Number/String | required | The value to round |
18
+ | `decimalPlaces` | Number | 0 | Number of decimal places |
19
+ | `roundingMethod` | Number | 1 | Rounding method (0-3) |
20
+
21
+ ### Rounding Methods
22
+
23
+ | Value | Method | Description |
24
+ |-------|--------|-------------|
25
+ | 0 | Round Down | Truncate toward zero |
26
+ | 1 | Round Half Up | Round to nearest, ties away from zero (default) |
27
+ | 2 | Round Half Even | Round to nearest, ties to even (banker's rounding) |
28
+ | 3 | Round Up | Always round away from zero |
29
+
30
+ ## Returns
31
+
32
+ String - The rounded value.
33
+
34
+ ## Description
35
+
36
+ The `round` function rounds a number to a specified number of decimal places using arbitrary precision arithmetic. It supports multiple rounding methods for different use cases.
37
+
38
+ ## Examples
39
+
40
+ ### Basic Usage (No Decimal Places)
41
+
42
+ ```expression
43
+ Result = round(3.7)
44
+ // Result: "4"
45
+
46
+ Result = round(3.2)
47
+ // Result: "3"
48
+
49
+ Result = round(3.5)
50
+ // Result: "4" (rounds up by default)
51
+ ```
52
+
53
+ ### With Decimal Places
54
+
55
+ ```expression
56
+ Result = round(3.14159, 2)
57
+ // Result: "3.14"
58
+
59
+ Result = round(3.14159, 4)
60
+ // Result: "3.1416"
61
+
62
+ // From unit tests:
63
+ Area = ROUND(X * Y * Z, 2)
64
+ // With X=5.867, Y=3.1, Z=75: Area = 1364.0775
65
+ // Result: "1364.08"
66
+ ```
67
+
68
+ ### With Custom Rounding Method
69
+
70
+ ```expression
71
+ // Round up (method 3)
72
+ Result = ROUND(X * Y * Z, 3, 3)
73
+ // With X=5.867, Y=3.5, Z=75.248923423
74
+ // Result: "1545.2"
75
+ ```
76
+
77
+ ### Dynamic Decimal Places
78
+
79
+ ```expression
80
+ // Decimal places can be computed
81
+ MATH_DP = ROUND(1.2345, 5 - 2)
82
+ // Result: "1.235"
83
+ ```
84
+
85
+ ### In Complex Expressions
86
+
87
+ ```expression
88
+ EGS = ROUND(ROUND(0.0172834*2.71828182845905^(-0.0117685*Temp),5)*SQRT(ROUND(16.294-0.163*HR,1)/60),4)
89
+ // With Temp=24, HR=20.5
90
+ // Result: "0.0061"
91
+ ```
92
+
93
+ ## Use Cases
94
+
95
+ - **Financial calculations**: Rounding currency values
96
+ - **Display formatting**: Showing clean numeric values
97
+ - **Precision control**: Limiting decimal places in results
98
+ - **Statistical output**: Rounding means, percentages, etc.
99
+
100
+ ## Related Functions
101
+
102
+ - [tofixed](./tofixed.md) - Format to fixed decimal places
103
+ - [floor](./floor.md) - Round down
104
+ - [ceil](./ceil.md) - Round up
105
+
106
+ ## Notes
107
+
108
+ - Uses arbitrary precision arithmetic
109
+ - Returns a string representation
110
+ - When no decimal places specified, rounds to nearest integer
111
+ - Be careful with rounding methods in financial applications (banker's rounding may be preferred)