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.
- package/LICENSE +21 -0
- package/README.md +118 -0
- package/docs/.nojekyll +0 -0
- package/docs/README.md +162 -0
- package/docs/_sidebar.md +23 -0
- package/docs/_topbar.md +5 -0
- package/docs/cover.md +12 -0
- package/docs/css/docuserve.css +73 -0
- package/docs/index.html +39 -0
- package/docs/retold-catalog.json +224 -0
- package/docs/retold-keyword-index.json +46846 -0
- package/example_applications/form_editor/.quackage.json +10 -0
- package/example_applications/form_editor/FormEditor-Example-Application.js +226 -0
- package/example_applications/form_editor/html/icon-chooser.html +375 -0
- package/example_applications/form_editor/html/index.html +54 -0
- package/example_applications/form_editor/package.json +50 -0
- package/package.json +55 -0
- package/sample_manifests/Complex-Table.json +974 -0
- package/sample_manifests/Distill-Example.json +200 -0
- package/sample_manifests/Gradebook-Assignment.json +38 -0
- package/sample_manifests/Gradebook-Student.json +40 -0
- package/sample_manifests/Manyfest-Editor.json +347 -0
- package/sample_manifests/Simple-Form.json +232 -0
- package/sample_manifests/Simple-Table.json +79 -0
- package/source/Pict-Section-FormEditor-DefaultConfiguration.js +3321 -0
- package/source/Pict-Section-FormEditor.js +35 -0
- package/source/providers/Pict-Provider-ChildPictManager-Application.js +40 -0
- package/source/providers/Pict-Provider-ChildPictManager.js +238 -0
- package/source/providers/Pict-Provider-FormEditorDocumentation.js +356 -0
- package/source/providers/Pict-Provider-FormEditorDragDrop.js +535 -0
- package/source/providers/Pict-Provider-FormEditorIconography.js +1002 -0
- package/source/providers/Pict-Provider-FormEditorManifestOps.js +1443 -0
- package/source/providers/Pict-Provider-FormEditorRendering.js +730 -0
- package/source/providers/Pict-Provider-FormEditorUtilities.js +862 -0
- package/source/providers/Pict-Provider-PreviewCSS.js +42 -0
- package/source/views/PictView-FormEditor-InlineEditing.js +309 -0
- package/source/views/PictView-FormEditor-InputTypePicker.js +532 -0
- package/source/views/PictView-FormEditor-PropertiesPanel.js +7730 -0
- package/source/views/PictView-FormEditor.js +681 -0
- package/test/Pict-Section-FormEditor_tests.js +4102 -0
- package/user-documentation/.pict_documentation_topics.json +695 -0
- package/user-documentation/Getting-Started.md +32 -0
- package/user-documentation/Groups.md +52 -0
- package/user-documentation/Inputs.md +98 -0
- package/user-documentation/Sections.md +36 -0
- package/user-documentation/Shortcuts.md +44 -0
- package/user-documentation/Solver-Expression-Walkthrough.md +176 -0
- package/user-documentation/Solver-Expressions-Advanced.md +344 -0
- package/user-documentation/Solver-Functions.md +213 -0
- package/user-documentation/Solvers.md +81 -0
- package/user-documentation/ToC.md +18 -0
- package/user-documentation/solverfunctions/abs.md +84 -0
- package/user-documentation/solverfunctions/aggregationhistogram.md +83 -0
- package/user-documentation/solverfunctions/aggregationhistogrambyobject.md +64 -0
- package/user-documentation/solverfunctions/arrayconcat.md +64 -0
- package/user-documentation/solverfunctions/avg.md +81 -0
- package/user-documentation/solverfunctions/bucketset.md +69 -0
- package/user-documentation/solverfunctions/ceil.md +70 -0
- package/user-documentation/solverfunctions/cleanvaluearray.md +66 -0
- package/user-documentation/solverfunctions/cleanvalueobject.md +68 -0
- package/user-documentation/solverfunctions/colorgroupbackground.md +60 -0
- package/user-documentation/solverfunctions/colorinputbackground.md +62 -0
- package/user-documentation/solverfunctions/colorinputbackgroundtabular.md +64 -0
- package/user-documentation/solverfunctions/colorsectionbackground.md +59 -0
- package/user-documentation/solverfunctions/compare.md +72 -0
- package/user-documentation/solverfunctions/concat.md +73 -0
- package/user-documentation/solverfunctions/concatraw.md +73 -0
- package/user-documentation/solverfunctions/cos.md +75 -0
- package/user-documentation/solverfunctions/count.md +73 -0
- package/user-documentation/solverfunctions/countset.md +65 -0
- package/user-documentation/solverfunctions/countsetelements.md +63 -0
- package/user-documentation/solverfunctions/createarrayfromabsolutevalues.md +63 -0
- package/user-documentation/solverfunctions/createvalueobjectbyhashes.md +69 -0
- package/user-documentation/solverfunctions/cumulativesummation.md +96 -0
- package/user-documentation/solverfunctions/dateadddays.md +79 -0
- package/user-documentation/solverfunctions/dateaddhours.md +74 -0
- package/user-documentation/solverfunctions/dateaddmilliseconds.md +65 -0
- package/user-documentation/solverfunctions/dateaddminutes.md +72 -0
- package/user-documentation/solverfunctions/dateaddmonths.md +74 -0
- package/user-documentation/solverfunctions/dateaddseconds.md +66 -0
- package/user-documentation/solverfunctions/dateaddweeks.md +73 -0
- package/user-documentation/solverfunctions/dateaddyears.md +74 -0
- package/user-documentation/solverfunctions/datedaydifference.md +84 -0
- package/user-documentation/solverfunctions/datefromparts.md +81 -0
- package/user-documentation/solverfunctions/datehourdifference.md +64 -0
- package/user-documentation/solverfunctions/datemathadd.md +72 -0
- package/user-documentation/solverfunctions/datemilliseconddifference.md +64 -0
- package/user-documentation/solverfunctions/dateminutedifference.md +64 -0
- package/user-documentation/solverfunctions/datemonthdifference.md +66 -0
- package/user-documentation/solverfunctions/dateseconddifference.md +64 -0
- package/user-documentation/solverfunctions/dateweekdifference.md +65 -0
- package/user-documentation/solverfunctions/dateyeardifference.md +64 -0
- package/user-documentation/solverfunctions/differencearrays.md +59 -0
- package/user-documentation/solverfunctions/disablesolverordinal.md +58 -0
- package/user-documentation/solverfunctions/distributionhistogram.md +96 -0
- package/user-documentation/solverfunctions/distributionhistogrambyobject.md +64 -0
- package/user-documentation/solverfunctions/enablesolverordinal.md +57 -0
- package/user-documentation/solverfunctions/entryinset.md +72 -0
- package/user-documentation/solverfunctions/euler.md +77 -0
- package/user-documentation/solverfunctions/exp.md +74 -0
- package/user-documentation/solverfunctions/findfirstvaluebyexactmatch.md +67 -0
- package/user-documentation/solverfunctions/findfirstvaluebystringincludes.md +67 -0
- package/user-documentation/solverfunctions/flatten.md +76 -0
- package/user-documentation/solverfunctions/floor.md +70 -0
- package/user-documentation/solverfunctions/gaussianelimination.md +75 -0
- package/user-documentation/solverfunctions/generatearrayofobjectsfromsets.md +70 -0
- package/user-documentation/solverfunctions/generatehtmlhexcolor.md +67 -0
- package/user-documentation/solverfunctions/getvalue.md +90 -0
- package/user-documentation/solverfunctions/getvaluearray.md +64 -0
- package/user-documentation/solverfunctions/getvalueobject.md +67 -0
- package/user-documentation/solverfunctions/hidesections.md +58 -0
- package/user-documentation/solverfunctions/if.md +109 -0
- package/user-documentation/solverfunctions/iterativeseries.md +107 -0
- package/user-documentation/solverfunctions/join.md +75 -0
- package/user-documentation/solverfunctions/joinraw.md +64 -0
- package/user-documentation/solverfunctions/largestinset.md +63 -0
- package/user-documentation/solverfunctions/leastsquares.md +66 -0
- package/user-documentation/solverfunctions/linest.md +58 -0
- package/user-documentation/solverfunctions/log.md +74 -0
- package/user-documentation/solverfunctions/logvalues.md +65 -0
- package/user-documentation/solverfunctions/match.md +71 -0
- package/user-documentation/solverfunctions/matrixinverse.md +67 -0
- package/user-documentation/solverfunctions/matrixmultiply.md +71 -0
- package/user-documentation/solverfunctions/matrixtranspose.md +72 -0
- package/user-documentation/solverfunctions/matrixvectormultiply.md +69 -0
- package/user-documentation/solverfunctions/max.md +73 -0
- package/user-documentation/solverfunctions/mean.md +63 -0
- package/user-documentation/solverfunctions/median.md +79 -0
- package/user-documentation/solverfunctions/min.md +73 -0
- package/user-documentation/solverfunctions/mode.md +66 -0
- package/user-documentation/solverfunctions/objectkeystoarray.md +66 -0
- package/user-documentation/solverfunctions/objectvaluessortbyexternalobjectarray.md +65 -0
- package/user-documentation/solverfunctions/objectvaluestoarray.md +67 -0
- package/user-documentation/solverfunctions/percent.md +75 -0
- package/user-documentation/solverfunctions/pi.md +77 -0
- package/user-documentation/solverfunctions/polynomialregression.md +69 -0
- package/user-documentation/solverfunctions/predict.md +71 -0
- package/user-documentation/solverfunctions/rad.md +85 -0
- package/user-documentation/solverfunctions/randomfloat.md +63 -0
- package/user-documentation/solverfunctions/randomfloatbetween.md +72 -0
- package/user-documentation/solverfunctions/randomfloatupto.md +65 -0
- package/user-documentation/solverfunctions/randominteger.md +56 -0
- package/user-documentation/solverfunctions/randomintegerbetween.md +72 -0
- package/user-documentation/solverfunctions/randomintegerupto.md +64 -0
- package/user-documentation/solverfunctions/refreshtabularsection.md +57 -0
- package/user-documentation/solverfunctions/resolvehtmlentities.md +64 -0
- package/user-documentation/solverfunctions/round.md +111 -0
- package/user-documentation/solverfunctions/runsolvers.md +49 -0
- package/user-documentation/solverfunctions/setconcatenate.md +64 -0
- package/user-documentation/solverfunctions/setgroupvisibility.md +60 -0
- package/user-documentation/solverfunctions/setsectionvisibility.md +59 -0
- package/user-documentation/solverfunctions/setsolverordinalenabled.md +59 -0
- package/user-documentation/solverfunctions/settabularrowlength.md +57 -0
- package/user-documentation/solverfunctions/setvalue.md +65 -0
- package/user-documentation/solverfunctions/showsections.md +58 -0
- package/user-documentation/solverfunctions/sin.md +83 -0
- package/user-documentation/solverfunctions/slice.md +80 -0
- package/user-documentation/solverfunctions/smallestinset.md +63 -0
- package/user-documentation/solverfunctions/sortarray.md +58 -0
- package/user-documentation/solverfunctions/sorthistogram.md +70 -0
- package/user-documentation/solverfunctions/sorthistogrambykeys.md +69 -0
- package/user-documentation/solverfunctions/sortset.md +75 -0
- package/user-documentation/solverfunctions/sqrt.md +85 -0
- package/user-documentation/solverfunctions/stdev.md +81 -0
- package/user-documentation/solverfunctions/stdeva.md +58 -0
- package/user-documentation/solverfunctions/stdevp.md +83 -0
- package/user-documentation/solverfunctions/stringcountsegments.md +66 -0
- package/user-documentation/solverfunctions/stringgetsegments.md +74 -0
- package/user-documentation/solverfunctions/subtractingsummation.md +66 -0
- package/user-documentation/solverfunctions/sum.md +78 -0
- package/user-documentation/solverfunctions/tan.md +78 -0
- package/user-documentation/solverfunctions/tofixed.md +75 -0
- package/user-documentation/solverfunctions/unionarrays.md +59 -0
- package/user-documentation/solverfunctions/uniquearray.md +58 -0
- package/user-documentation/solverfunctions/var.md +67 -0
- package/user-documentation/solverfunctions/vara.md +58 -0
- package/user-documentation/solverfunctions/varp.md +66 -0
- package/user-documentation/solverfunctions/when.md +98 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# dateseconddifference
|
|
2
|
+
|
|
3
|
+
Calculates the difference between two dates in seconds.
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
dateseconddifference(startDate, endDate)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
|-----------|------|-------------|
|
|
15
|
+
| `startDate` | String | Start date (ISO 8601 format) |
|
|
16
|
+
| `endDate` | String | End date (ISO 8601 format) |
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
String - The number of seconds between the two dates.
|
|
21
|
+
|
|
22
|
+
## Description
|
|
23
|
+
|
|
24
|
+
The `dateseconddifference` function calculates how many seconds have elapsed between two dates. The result is positive when endDate is after startDate, and negative otherwise.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### Basic Usage
|
|
29
|
+
|
|
30
|
+
```expression
|
|
31
|
+
Result = DATESECONDDIFFERENCE("2025-04-01T10:00:00.000Z", "2025-04-01T10:00:30.000Z")
|
|
32
|
+
// Result: "30"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Response Time
|
|
36
|
+
|
|
37
|
+
```expression
|
|
38
|
+
ResponseTime = DATESECONDDIFFERENCE(RequestSent, ResponseReceived)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Timeout Check
|
|
42
|
+
|
|
43
|
+
```expression
|
|
44
|
+
SecondsSinceStart = DATESECONDDIFFERENCE(ProcessStart, Now)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Use Cases
|
|
48
|
+
|
|
49
|
+
- **Performance measurement**: Response times
|
|
50
|
+
- **Timeouts**: Check elapsed time
|
|
51
|
+
- **Rate limiting**: Time between requests
|
|
52
|
+
- **Logging**: Precise durations
|
|
53
|
+
|
|
54
|
+
## Related Functions
|
|
55
|
+
|
|
56
|
+
- [datemilliseconddifference](./datemilliseconddifference.md) - Difference in milliseconds
|
|
57
|
+
- [dateminutedifference](./dateminutedifference.md) - Difference in minutes
|
|
58
|
+
- [dateaddseconds](./dateaddseconds.md) - Add seconds to a date
|
|
59
|
+
|
|
60
|
+
## Notes
|
|
61
|
+
|
|
62
|
+
- Uses ISO 8601 date format
|
|
63
|
+
- Result can be negative
|
|
64
|
+
- Uses the Dates service internally
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# dateweekdifference
|
|
2
|
+
|
|
3
|
+
Calculates the difference between two dates in weeks.
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
dateweekdifference(startDate, endDate)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
|-----------|------|-------------|
|
|
15
|
+
| `startDate` | String | Start date (ISO 8601 format) |
|
|
16
|
+
| `endDate` | String | End date (ISO 8601 format) |
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
String - The number of weeks between the two dates.
|
|
21
|
+
|
|
22
|
+
## Description
|
|
23
|
+
|
|
24
|
+
The `dateweekdifference` function calculates how many weeks have elapsed between two dates. The result is positive when endDate is after startDate, and negative otherwise.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### Basic Usage
|
|
29
|
+
|
|
30
|
+
```expression
|
|
31
|
+
Result = DATEWEEKDIFFERENCE("2025-01-01T00:00:00.000Z", "2025-01-15T00:00:00.000Z")
|
|
32
|
+
// Result: "2"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Sprint Tracking
|
|
36
|
+
|
|
37
|
+
```expression
|
|
38
|
+
SprintsCompleted = DATEWEEKDIFFERENCE(ProjectStart, Today) / 2
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Weeks Until Deadline
|
|
42
|
+
|
|
43
|
+
```expression
|
|
44
|
+
WeeksRemaining = DATEWEEKDIFFERENCE(Today, Deadline)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Use Cases
|
|
48
|
+
|
|
49
|
+
- **Sprint planning**: Track sprint weeks
|
|
50
|
+
- **Project management**: Weekly progress
|
|
51
|
+
- **Scheduling**: Week-based planning
|
|
52
|
+
- **Reporting**: Weekly reports
|
|
53
|
+
|
|
54
|
+
## Related Functions
|
|
55
|
+
|
|
56
|
+
- [datedaydifference](./datedaydifference.md) - Difference in days
|
|
57
|
+
- [datemonthdifference](./datemonthdifference.md) - Difference in months
|
|
58
|
+
- [dateaddweeks](./dateaddweeks.md) - Add weeks to a date
|
|
59
|
+
|
|
60
|
+
## Notes
|
|
61
|
+
|
|
62
|
+
- Uses ISO 8601 date format
|
|
63
|
+
- One week equals 7 days
|
|
64
|
+
- Result can be negative
|
|
65
|
+
- Uses the Dates service internally
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# dateyeardifference
|
|
2
|
+
|
|
3
|
+
Calculates the difference between two dates in years.
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
dateyeardifference(startDate, endDate)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
|-----------|------|-------------|
|
|
15
|
+
| `startDate` | String | Start date (ISO 8601 format) |
|
|
16
|
+
| `endDate` | String | End date (ISO 8601 format) |
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
String - The number of years between the two dates.
|
|
21
|
+
|
|
22
|
+
## Description
|
|
23
|
+
|
|
24
|
+
The `dateyeardifference` function calculates how many years have elapsed between two dates. The result is positive when endDate is after startDate, and negative otherwise.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### Basic Usage
|
|
29
|
+
|
|
30
|
+
```expression
|
|
31
|
+
Result = DATEYEARDIFFERENCE("2020-01-01T00:00:00.000Z", "2025-01-01T00:00:00.000Z")
|
|
32
|
+
// Result: "5"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Age Calculation
|
|
36
|
+
|
|
37
|
+
```expression
|
|
38
|
+
Age = DATEYEARDIFFERENCE(BirthDate, Today)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Contract Duration
|
|
42
|
+
|
|
43
|
+
```expression
|
|
44
|
+
ContractYears = DATEYEARDIFFERENCE(StartDate, EndDate)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Use Cases
|
|
48
|
+
|
|
49
|
+
- **Age calculation**: Calculate age in years
|
|
50
|
+
- **Anniversary**: Years since event
|
|
51
|
+
- **Contracts**: Multi-year contract terms
|
|
52
|
+
- **Experience**: Years of service
|
|
53
|
+
|
|
54
|
+
## Related Functions
|
|
55
|
+
|
|
56
|
+
- [datedaydifference](./datedaydifference.md) - Difference in days
|
|
57
|
+
- [datemonthdifference](./datemonthdifference.md) - Difference in months
|
|
58
|
+
- [dateaddyears](./dateaddyears.md) - Add years to a date
|
|
59
|
+
|
|
60
|
+
## Notes
|
|
61
|
+
|
|
62
|
+
- Uses ISO 8601 date format
|
|
63
|
+
- Result can be negative
|
|
64
|
+
- Uses the Dates service internally
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# differencearrays
|
|
2
|
+
|
|
3
|
+
Returns values in the first array that are not in the second array (set difference).
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
differencearrays(array1, array2)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
|-----------|------|-------------|
|
|
15
|
+
| `array1` | Array | The array to filter |
|
|
16
|
+
| `array2` | Array | The array of values to exclude |
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
A new array containing only the values from `array1` that do not appear in `array2`.
|
|
21
|
+
|
|
22
|
+
## Description
|
|
23
|
+
|
|
24
|
+
The `differencearrays` function performs a set difference operation. It returns a new array containing every element from the first array that is not present in the second array. This is useful for finding items that exist in one list but not another, such as identifying incomplete tasks or missing items.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### Finding incomplete items
|
|
29
|
+
|
|
30
|
+
```expression
|
|
31
|
+
OnlyInA = differencearrays(AllItems, CompletedItems)
|
|
32
|
+
// If AllItems is ["A", "B", "C", "D"] and CompletedItems is ["B", "D"],
|
|
33
|
+
// OnlyInA is ["A", "C"]
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Filtering out excluded options
|
|
37
|
+
|
|
38
|
+
```expression
|
|
39
|
+
Available = differencearrays(AllOptions, ExcludedOptions)
|
|
40
|
+
// Returns only the options that have not been excluded
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Use Cases
|
|
44
|
+
|
|
45
|
+
- **Tracking incomplete work**: Find items in a full list that are not in a completed list
|
|
46
|
+
- **Filtering exclusions**: Remove specific entries from a list based on another list
|
|
47
|
+
- **Identifying missing data**: Determine which expected values are absent from a dataset
|
|
48
|
+
|
|
49
|
+
## Related Functions
|
|
50
|
+
|
|
51
|
+
- [unionarrays](./unionarrays.md) - Returns all unique values from both arrays
|
|
52
|
+
- [uniquearray](./uniquearray.md) - Removes duplicates from a single array
|
|
53
|
+
- [sortarray](./sortarray.md) - Returns a sorted copy of an array
|
|
54
|
+
|
|
55
|
+
## Notes
|
|
56
|
+
|
|
57
|
+
- Both parameters must be arrays
|
|
58
|
+
- The operation is directional: `differencearrays(A, B)` is not the same as `differencearrays(B, A)`
|
|
59
|
+
- Duplicate values in `array1` that are not in `array2` may still appear in the result
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# disablesolverordinal
|
|
2
|
+
|
|
3
|
+
Disables all solvers with the specified ordinal number so they will not execute.
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
disablesolverordinal(ordinal)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
|-----------|------|-------------|
|
|
15
|
+
| `ordinal` | Integer | The ordinal number of the solver group to disable |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
Void. This function does not return a value.
|
|
20
|
+
|
|
21
|
+
## Description
|
|
22
|
+
|
|
23
|
+
The `disablesolverordinal` function disables all solvers assigned to a specific ordinal number, preventing them from executing during subsequent solver runs. This is a convenience function equivalent to calling `setsolverordinalenabled(ordinal, false)`. Disabled solvers are skipped entirely, which can improve performance and prevent unwanted calculations.
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
### Disabling ordinal 3 solvers
|
|
28
|
+
|
|
29
|
+
```expression
|
|
30
|
+
disablesolverordinal(3)
|
|
31
|
+
// All solvers with ordinal 3 will now be skipped during solver runs
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Disabling advanced calculations
|
|
35
|
+
|
|
36
|
+
```expression
|
|
37
|
+
disablesolverordinal(5)
|
|
38
|
+
// Prevents ordinal 5 solvers from running
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Use Cases
|
|
42
|
+
|
|
43
|
+
- **Skipping irrelevant calculations**: Disable solver groups that are not needed for the current form state
|
|
44
|
+
- **Performance optimization**: Prevent unnecessary solver execution to improve responsiveness
|
|
45
|
+
- **Mode switching**: Disable solver groups when switching between form modes
|
|
46
|
+
|
|
47
|
+
## Related Functions
|
|
48
|
+
|
|
49
|
+
- [setsolverordinalenabled](./setsolverordinalenabled.md) - Enables or disables solvers with a boolean
|
|
50
|
+
- [enablesolverordinal](./enablesolverordinal.md) - Enables all solvers with the specified ordinal
|
|
51
|
+
- [runsolvers](./runsolvers.md) - Triggers re-execution of all solver expressions
|
|
52
|
+
|
|
53
|
+
## Notes
|
|
54
|
+
|
|
55
|
+
- Equivalent to `setsolverordinalenabled(ordinal, false)`
|
|
56
|
+
- The ordinal number must correspond to an ordinal defined in the solver configuration
|
|
57
|
+
- Disabled solvers retain their configuration and can be re-enabled at any time
|
|
58
|
+
- Changes take effect on the next solver run
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# distributionhistogram
|
|
2
|
+
|
|
3
|
+
Generates a histogram counting occurrences of each unique value.
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
distributionhistogram(dataPath, keyProperty)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
|-----------|------|-------------|
|
|
15
|
+
| `dataPath` | String | Path to the data array (quoted string) |
|
|
16
|
+
| `keyProperty` | String | Property name to count occurrences of |
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
Object - A histogram object with unique values and their counts.
|
|
21
|
+
|
|
22
|
+
## Description
|
|
23
|
+
|
|
24
|
+
The `distributionhistogram` function creates a histogram by counting how many times each unique value appears in a dataset. This is useful for understanding the distribution of categorical data.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### Basic Usage
|
|
29
|
+
|
|
30
|
+
```expression
|
|
31
|
+
// Given city data with a 'state' property
|
|
32
|
+
DistributionResult = distributionhistogram("AppData.Cities", "state")
|
|
33
|
+
|
|
34
|
+
// Result: {
|
|
35
|
+
// 'Alabama': 12,
|
|
36
|
+
// 'Colorado': 21,
|
|
37
|
+
// 'Florida': 73,
|
|
38
|
+
// 'Georgia': 18,
|
|
39
|
+
// // ... etc
|
|
40
|
+
// }
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Counting Categories
|
|
44
|
+
|
|
45
|
+
```expression
|
|
46
|
+
// Count orders by status
|
|
47
|
+
StatusCounts = distributionhistogram("AppData.Orders", "status")
|
|
48
|
+
// Result: { 'pending': 45, 'shipped': 123, 'delivered': 89 }
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### With Verification
|
|
52
|
+
|
|
53
|
+
```expression
|
|
54
|
+
// Verify distribution counts match data
|
|
55
|
+
DistributionResult = distributionhistogram("AppData.Cities", "state")
|
|
56
|
+
// DistributionResult.Alabama should equal 12
|
|
57
|
+
// DistributionResult.Colorado should equal 21
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Use Cases
|
|
61
|
+
|
|
62
|
+
- **Demographic analysis**: Count people by category
|
|
63
|
+
- **Survey results**: Tally responses
|
|
64
|
+
- **Quality metrics**: Distribution of defect types
|
|
65
|
+
- **Inventory**: Count items by category
|
|
66
|
+
- **Geographic analysis**: Records per region
|
|
67
|
+
|
|
68
|
+
## Difference from aggregationhistogram
|
|
69
|
+
|
|
70
|
+
| distributionhistogram | aggregationhistogram |
|
|
71
|
+
|----------------------|---------------------|
|
|
72
|
+
| Counts occurrences | Sums values |
|
|
73
|
+
| One property (key) | Two properties (key, value) |
|
|
74
|
+
| Result: counts | Result: sums |
|
|
75
|
+
|
|
76
|
+
```expression
|
|
77
|
+
// Distribution: How many cities per state?
|
|
78
|
+
distributionhistogram("AppData.Cities", "state")
|
|
79
|
+
// { 'California': 73, 'Texas': 51, ... }
|
|
80
|
+
|
|
81
|
+
// Aggregation: Total population per state?
|
|
82
|
+
aggregationhistogram("AppData.Cities", "state", "population")
|
|
83
|
+
// { 'California': '39538223', 'Texas': '29145505', ... }
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Related Functions
|
|
87
|
+
|
|
88
|
+
- [distributionhistogrambyobject](./distributionhistogrambyobject.md) - Takes object directly
|
|
89
|
+
- [aggregationhistogram](./aggregationhistogram.md) - Sum values instead of count
|
|
90
|
+
- [count](./count.md) - Simple count of elements
|
|
91
|
+
|
|
92
|
+
## Notes
|
|
93
|
+
|
|
94
|
+
- The data path must be a quoted string
|
|
95
|
+
- Returns integer counts for each unique value
|
|
96
|
+
- Works with the Math service's `histogramDistributionByExactValueFromInternalState` method
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# distributionhistogrambyobject
|
|
2
|
+
|
|
3
|
+
Generates a distribution histogram from an object directly.
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
distributionhistogrambyobject(object, keyProperty)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
|-----------|------|-------------|
|
|
15
|
+
| `object` | Array | Array of objects to count |
|
|
16
|
+
| `keyProperty` | String | Property name to count occurrences of |
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
Object - A histogram object with unique values and their counts.
|
|
21
|
+
|
|
22
|
+
## Description
|
|
23
|
+
|
|
24
|
+
The `distributionhistogrambyobject` function is similar to `distributionhistogram` but takes an object/array directly instead of a data path string. This is useful when working with data that's already in a variable.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### Basic Usage
|
|
29
|
+
|
|
30
|
+
```expression
|
|
31
|
+
// Given array of order data
|
|
32
|
+
Orders = [
|
|
33
|
+
{ id: 1, status: 'pending' },
|
|
34
|
+
{ id: 2, status: 'shipped' },
|
|
35
|
+
{ id: 3, status: 'pending' },
|
|
36
|
+
{ id: 4, status: 'delivered' }
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
Result = DISTRIBUTIONHISTOGRAMBYOBJECT(Orders, "status")
|
|
40
|
+
// Result: { 'pending': 2, 'shipped': 1, 'delivered': 1 }
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### With Filtered Data
|
|
44
|
+
|
|
45
|
+
```expression
|
|
46
|
+
CategoryCounts = DISTRIBUTIONHISTOGRAMBYOBJECT(FilteredProducts, "category")
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Use Cases
|
|
50
|
+
|
|
51
|
+
- **Dynamic data**: Count data already in variables
|
|
52
|
+
- **Filtered data**: Count after filtering
|
|
53
|
+
- **Chained operations**: Use in expression chains
|
|
54
|
+
|
|
55
|
+
## Related Functions
|
|
56
|
+
|
|
57
|
+
- [distributionhistogram](./distributionhistogram.md) - Uses data path string
|
|
58
|
+
- [aggregationhistogrambyobject](./aggregationhistogrambyobject.md) - Sum by object
|
|
59
|
+
- [count](./count.md) - Simple count
|
|
60
|
+
|
|
61
|
+
## Notes
|
|
62
|
+
|
|
63
|
+
- Takes array directly, not path string
|
|
64
|
+
- Uses the Math service's `histogramDistributionByExactValue` method
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# enablesolverordinal
|
|
2
|
+
|
|
3
|
+
Enables all solvers with the specified ordinal number so they will execute.
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
enablesolverordinal(ordinal)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
|-----------|------|-------------|
|
|
15
|
+
| `ordinal` | Integer | The ordinal number of the solver group to enable |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
Void. This function does not return a value.
|
|
20
|
+
|
|
21
|
+
## Description
|
|
22
|
+
|
|
23
|
+
The `enablesolverordinal` function enables all solvers assigned to a specific ordinal number, ensuring they will execute during subsequent solver runs. This is a convenience function equivalent to calling `setsolverordinalenabled(ordinal, true)`. It is typically used to re-enable a group of solvers that was previously disabled.
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
### Enabling ordinal 3 solvers
|
|
28
|
+
|
|
29
|
+
```expression
|
|
30
|
+
enablesolverordinal(3)
|
|
31
|
+
// All solvers with ordinal 3 will now execute during solver runs
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Re-enabling solvers after a condition is met
|
|
35
|
+
|
|
36
|
+
```expression
|
|
37
|
+
enablesolverordinal(2)
|
|
38
|
+
// Re-enables ordinal 2 solvers that were previously disabled
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Use Cases
|
|
42
|
+
|
|
43
|
+
- **Re-enabling solvers**: Turn on a group of solvers that was previously disabled
|
|
44
|
+
- **Workflow progression**: Enable additional solver groups as the user progresses through a form
|
|
45
|
+
- **Conditional activation**: Enable solver groups when specific conditions are met
|
|
46
|
+
|
|
47
|
+
## Related Functions
|
|
48
|
+
|
|
49
|
+
- [setsolverordinalenabled](./setsolverordinalenabled.md) - Enables or disables solvers with a boolean
|
|
50
|
+
- [disablesolverordinal](./disablesolverordinal.md) - Disables all solvers with the specified ordinal
|
|
51
|
+
- [runsolvers](./runsolvers.md) - Triggers re-execution of all solver expressions
|
|
52
|
+
|
|
53
|
+
## Notes
|
|
54
|
+
|
|
55
|
+
- Equivalent to `setsolverordinalenabled(ordinal, true)`
|
|
56
|
+
- The ordinal number must correspond to an ordinal defined in the solver configuration
|
|
57
|
+
- Changes take effect on the next solver run
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# entryinset
|
|
2
|
+
|
|
3
|
+
Checks if a value exists in a set/array.
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
entryinset(value, set)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
|-----------|------|-------------|
|
|
15
|
+
| `value` | Any | The value to search for |
|
|
16
|
+
| `set` | Array | The array to search in |
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
Boolean - True if the value exists in the set, false otherwise.
|
|
21
|
+
|
|
22
|
+
## Description
|
|
23
|
+
|
|
24
|
+
The `entryinset` function checks whether a specific value exists within an array or set. This is useful for membership testing and validation.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### Basic Usage
|
|
29
|
+
|
|
30
|
+
```expression
|
|
31
|
+
Result = ENTRYINSET(3, [1, 2, 3, 4, 5])
|
|
32
|
+
// Result: true
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Not Found
|
|
36
|
+
|
|
37
|
+
```expression
|
|
38
|
+
Result = ENTRYINSET(10, [1, 2, 3, 4, 5])
|
|
39
|
+
// Result: false
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### With Variables
|
|
43
|
+
|
|
44
|
+
```expression
|
|
45
|
+
IsValidStatus = ENTRYINSET(OrderStatus, ["pending", "shipped", "delivered"])
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Validation
|
|
49
|
+
|
|
50
|
+
```expression
|
|
51
|
+
IsAllowedCategory = ENTRYINSET(Category, AllowedCategories)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Use Cases
|
|
55
|
+
|
|
56
|
+
- **Validation**: Check if value is allowed
|
|
57
|
+
- **Filtering**: Conditional processing
|
|
58
|
+
- **Membership**: Check set membership
|
|
59
|
+
- **Logic**: Conditional branching
|
|
60
|
+
|
|
61
|
+
## Related Functions
|
|
62
|
+
|
|
63
|
+
- [findfirstvaluebyexactmatch](./findfirstvaluebyexactmatch.md) - Find value in array
|
|
64
|
+
- [if](./if.md) - Use with conditional logic
|
|
65
|
+
- [when](./when.md) - Conditional expression
|
|
66
|
+
|
|
67
|
+
## Notes
|
|
68
|
+
|
|
69
|
+
- Returns boolean (true/false)
|
|
70
|
+
- Uses exact matching
|
|
71
|
+
- Case-sensitive for strings
|
|
72
|
+
- Uses the Math service's `entryInSet` method
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# euler
|
|
2
|
+
|
|
3
|
+
Returns Euler's number (e) with high precision.
|
|
4
|
+
|
|
5
|
+
## Syntax
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
euler()
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
None.
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
String - Euler's number (e) to 100 decimal places.
|
|
18
|
+
|
|
19
|
+
## Description
|
|
20
|
+
|
|
21
|
+
The `euler` function returns Euler's number (e ≈ 2.71828...), which is the base of natural logarithms. It's one of the most important constants in mathematics and appears in many areas including calculus, probability, and physics.
|
|
22
|
+
|
|
23
|
+
## Examples
|
|
24
|
+
|
|
25
|
+
### Basic Usage
|
|
26
|
+
|
|
27
|
+
```expression
|
|
28
|
+
Result = euler()
|
|
29
|
+
// Result: "2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274..."
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Exponential Growth
|
|
33
|
+
|
|
34
|
+
```expression
|
|
35
|
+
// Compound interest with continuous compounding
|
|
36
|
+
// A = P * e^(rt)
|
|
37
|
+
FinalAmount = Principal * euler()^(Rate * Time)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Natural Logarithm Calculations
|
|
41
|
+
|
|
42
|
+
```expression
|
|
43
|
+
// e^x where x = 1
|
|
44
|
+
Result = euler()^1
|
|
45
|
+
// Result: e ≈ 2.71828...
|
|
46
|
+
|
|
47
|
+
// From unit tests:
|
|
48
|
+
Result = 2.71828182845905 ^ -0.282444
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### In Complex Formulas
|
|
52
|
+
|
|
53
|
+
```expression
|
|
54
|
+
// Environmental calculation from unit tests
|
|
55
|
+
EGS = ROUND(ROUND(0.0172834*2.71828182845905^(-0.0117685*Temp),5)*SQRT(ROUND(16.294-0.163*HR,1)/60),4)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Use Cases
|
|
59
|
+
|
|
60
|
+
- **Exponential growth/decay**: Population growth, radioactive decay
|
|
61
|
+
- **Finance**: Continuous compound interest
|
|
62
|
+
- **Probability**: Normal distribution calculations
|
|
63
|
+
- **Calculus**: Natural logarithm and exponential functions
|
|
64
|
+
- **Physics**: Decay processes, thermodynamics
|
|
65
|
+
|
|
66
|
+
## Related Functions
|
|
67
|
+
|
|
68
|
+
- [pi](./pi.md) - Pi constant
|
|
69
|
+
- [exp](./exp.md) - e raised to a power
|
|
70
|
+
- [log](./log.md) - Logarithm
|
|
71
|
+
|
|
72
|
+
## Notes
|
|
73
|
+
|
|
74
|
+
- Returns the full precision value stored in the Math service
|
|
75
|
+
- Uses arbitrary precision arithmetic
|
|
76
|
+
- Also known as Napier's constant
|
|
77
|
+
- Approximately equal to 2.71828182845904523536...
|