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,63 @@
1
+ # countsetelements
2
+
3
+ Counts unique elements in a set/array.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ countsetelements(set)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `set` | Array | The array to count unique elements from |
16
+
17
+ ## Returns
18
+
19
+ String - The number of unique elements in the set.
20
+
21
+ ## Description
22
+
23
+ The `countsetelements` function counts the number of unique (distinct) elements in an array. Duplicate values are only counted once.
24
+
25
+ ## Examples
26
+
27
+ ### Basic Usage
28
+
29
+ ```expression
30
+ Result = COUNTSETELEMENTS([1, 2, 2, 3, 3, 3, 4])
31
+ // Result: "4" (unique values: 1, 2, 3, 4)
32
+ ```
33
+
34
+ ### Unique Categories
35
+
36
+ ```expression
37
+ UniqueCategories = COUNTSETELEMENTS(FLATTEN(AppData.Products.category))
38
+ ```
39
+
40
+ ### Distinct Users
41
+
42
+ ```expression
43
+ UniqueUsers = COUNTSETELEMENTS(FLATTEN(AppData.Transactions.userId))
44
+ ```
45
+
46
+ ## Use Cases
47
+
48
+ - **Unique counts**: Count distinct values
49
+ - **Deduplication**: Count after removing duplicates
50
+ - **Analysis**: Cardinality of datasets
51
+ - **Validation**: Verify uniqueness
52
+
53
+ ## Related Functions
54
+
55
+ - [count](./count.md) - Count all elements (including duplicates)
56
+ - [countset](./countset.md) - Count set elements
57
+ - [distributionhistogram](./distributionhistogram.md) - Count by value
58
+
59
+ ## Notes
60
+
61
+ - Only counts unique values
62
+ - Duplicates counted once
63
+ - Uses the Math service's `countSetElements` method
@@ -0,0 +1,63 @@
1
+ # createarrayfromabsolutevalues
2
+
3
+ Creates an array of absolute values from input values.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ createarrayfromabsolutevalues(value1, value2, ...)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `values` | Number(s) | Values to convert to absolute values |
16
+
17
+ ## Returns
18
+
19
+ Array - Array of absolute values.
20
+
21
+ ## Description
22
+
23
+ The `createarrayfromabsolutevalues` function takes multiple values and returns an array containing the absolute value of each input.
24
+
25
+ ## Examples
26
+
27
+ ### Basic Usage
28
+
29
+ ```expression
30
+ Result = CREATEARRAYFROMABSOLUTEVALUES(-5, 3, -2, 7, -1)
31
+ // Result: [5, 3, 2, 7, 1]
32
+ ```
33
+
34
+ ### With Variables
35
+
36
+ ```expression
37
+ AbsValues = CREATEARRAYFROMABSOLUTEVALUES(Delta1, Delta2, Delta3)
38
+ ```
39
+
40
+ ### For Distance Calculations
41
+
42
+ ```expression
43
+ Distances = CREATEARRAYFROMABSOLUTEVALUES(X2-X1, Y2-Y1, Z2-Z1)
44
+ ```
45
+
46
+ ## Use Cases
47
+
48
+ - **Distance calculations**: Absolute differences
49
+ - **Error analysis**: Absolute errors
50
+ - **Data normalization**: Remove negative signs
51
+ - **Magnitude**: Get magnitudes of values
52
+
53
+ ## Related Functions
54
+
55
+ - [abs](./abs.md) - Single value absolute
56
+ - [flatten](./flatten.md) - Flatten arrays
57
+ - [sum](./sum.md) - Sum the absolute values
58
+
59
+ ## Notes
60
+
61
+ - Converts all values to positive
62
+ - Returns array, not single value
63
+ - Uses the Math service's `createArrayFromAbsoluteValues` method
@@ -0,0 +1,69 @@
1
+ # createvalueobjectbyhashes
2
+
3
+ Creates an object from arrays of keys and values.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ createvalueobjectbyhashes(keys, values)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `keys` | Array | Array of property names |
16
+ | `values` | Array | Array of values |
17
+
18
+ ## Returns
19
+
20
+ Object - New object with key-value pairs.
21
+
22
+ ## Description
23
+
24
+ The `createvalueobjectbyhashes` function creates an object by pairing up arrays of keys and values. Each key is matched with the value at the same index.
25
+
26
+ ## Examples
27
+
28
+ ### Basic Usage
29
+
30
+ ```expression
31
+ Keys = ["name", "age", "city"]
32
+ Values = ["John", 30, "NYC"]
33
+ Result = CREATEVALUEOBJECTBYHASHES(Keys, Values)
34
+ // Result: { name: "John", age: 30, city: "NYC" }
35
+ ```
36
+
37
+ ### From Headers and Data
38
+
39
+ ```expression
40
+ Headers = ["id", "product", "price"]
41
+ Row = ["001", "Widget", "9.99"]
42
+ Record = CREATEVALUEOBJECTBYHASHES(Headers, Row)
43
+ ```
44
+
45
+ ### Dynamic Object Creation
46
+
47
+ ```expression
48
+ PropertyNames = OBJECTKEYSTOARRAY(Template)
49
+ PropertyValues = GeneratedValues
50
+ NewObject = CREATEVALUEOBJECTBYHASHES(PropertyNames, PropertyValues)
51
+ ```
52
+
53
+ ## Use Cases
54
+
55
+ - **CSV processing**: Convert rows to objects
56
+ - **Data transformation**: Build objects dynamically
57
+ - **Mapping**: Create lookup tables
58
+ - **Import**: Convert flat data to objects
59
+
60
+ ## Related Functions
61
+
62
+ - [objectkeystoarray](./objectkeystoarray.md) - Extract keys
63
+ - [objectvaluestoarray](./objectvaluestoarray.md) - Extract values
64
+ - [generatearrayofobjectsfromsets](./generatearrayofobjectsfromsets.md) - Generate multiple objects
65
+
66
+ ## Notes
67
+
68
+ - Arrays should have same length
69
+ - Uses the Logic service's `createValueObjectByHashes` method
@@ -0,0 +1,96 @@
1
+ # cumulativesummation
2
+
3
+ Calculates cumulative (running) sums across a set of records.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ cumulativesummation(array, valueProperty, resultProperty)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `array` | Array | Array of objects to process |
16
+ | `valueProperty` | String | Property name containing values to sum |
17
+ | `resultProperty` | String | Property name to store the cumulative result |
18
+
19
+ ## Returns
20
+
21
+ Array - The input array with a new property added to each object containing the cumulative sum.
22
+
23
+ ## Description
24
+
25
+ The `cumulativesummation` function iterates through an array of objects and calculates a running total. Each object receives a new property containing the sum of all values up to and including that point.
26
+
27
+ ## Examples
28
+
29
+ ### Basic Usage
30
+
31
+ ```expression
32
+ // Input data
33
+ Data = [
34
+ { Value: 10 },
35
+ { Value: 20 },
36
+ { Value: 5 }
37
+ ]
38
+
39
+ Result = cumulativesummation(Data, "Value", "RunningTotal")
40
+
41
+ // Result:
42
+ // [
43
+ // { Value: 10, RunningTotal: "10" },
44
+ // { Value: 20, RunningTotal: "30" },
45
+ // { Value: 5, RunningTotal: "35" }
46
+ // ]
47
+ ```
48
+
49
+ ### Financial Running Balance
50
+
51
+ ```expression
52
+ // Track cumulative spending
53
+ Transactions = [
54
+ { Amount: 100, Description: "Purchase 1" },
55
+ { Amount: 50, Description: "Purchase 2" },
56
+ { Amount: 75, Description: "Purchase 3" }
57
+ ]
58
+
59
+ Result = cumulativesummation(Transactions, "Amount", "TotalSpent")
60
+ // TotalSpent values: 100, 150, 225
61
+ ```
62
+
63
+ ### Inventory Tracking
64
+
65
+ ```expression
66
+ // Track cumulative inventory received
67
+ Shipments = [
68
+ { Quantity: 500 },
69
+ { Quantity: 300 },
70
+ { Quantity: 200 }
71
+ ]
72
+
73
+ Result = cumulativesummation(Shipments, "Quantity", "TotalReceived")
74
+ // TotalReceived values: 500, 800, 1000
75
+ ```
76
+
77
+ ## Use Cases
78
+
79
+ - **Financial tracking**: Running balances, cumulative spending
80
+ - **Inventory management**: Cumulative receipts or shipments
81
+ - **Progress tracking**: Cumulative completion amounts
82
+ - **Statistical analysis**: Cumulative distribution functions
83
+ - **Reporting**: Year-to-date totals
84
+
85
+ ## Related Functions
86
+
87
+ - [subtractingsummation](./subtractingsummation.md) - Subtracting cumulative
88
+ - [iterativeseries](./iterativeseries.md) - General iterative operations
89
+ - [sum](./sum.md) - Simple sum of all values
90
+
91
+ ## Notes
92
+
93
+ - Modifies the input array by adding the result property
94
+ - Uses arbitrary precision arithmetic
95
+ - Works with the Math service's `cumulativeSummation` method
96
+ - The result property values are strings (arbitrary precision)
@@ -0,0 +1,79 @@
1
+ # dateadddays
2
+
3
+ Adds a specified number of days to a date.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ dateadddays(date, days)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `date` | String | Starting date (ISO 8601 format) |
16
+ | `days` | Number | Number of days to add (can be negative) |
17
+
18
+ ## Returns
19
+
20
+ String - The resulting date in ISO 8601 format.
21
+
22
+ ## Description
23
+
24
+ The `dateadddays` function adds a specified number of days to a date and returns the new date. Use negative numbers to subtract days.
25
+
26
+ ## Examples
27
+
28
+ ### Basic Usage
29
+
30
+ ```expression
31
+ Result = DATEADDDAYS("2025-04-01T00:00:00.000Z", 10)
32
+ // Result: "2025-04-11T00:00:00.000Z"
33
+ ```
34
+
35
+ ### Adding Many Days
36
+
37
+ ```expression
38
+ Result = DATEADDDAYS(DATEFROMPARTS(2025, 4, 1, 13, 03, 51, 761), 87)
39
+ // Result: "2025-06-27T13:03:51.761Z"
40
+ ```
41
+
42
+ ### Subtracting Days
43
+
44
+ ```expression
45
+ Result = DATEADDDAYS("2025-04-15T00:00:00.000Z", -10)
46
+ // Result: "2025-04-05T00:00:00.000Z"
47
+ ```
48
+
49
+ ### With Variables
50
+
51
+ ```expression
52
+ DueDate = DATEADDDAYS(OrderDate, ShippingDays)
53
+ ```
54
+
55
+ ## Use Cases
56
+
57
+ - **Due date calculation**: Add business days to start date
58
+ - **Scheduling**: Calculate future appointments
59
+ - **Aging reports**: Determine dates in past or future
60
+ - **Date navigation**: Moving through calendars
61
+
62
+ ## Related Functions
63
+
64
+ - [dateaddmilliseconds](./dateaddmilliseconds.md) - Add milliseconds
65
+ - [dateaddseconds](./dateaddseconds.md) - Add seconds
66
+ - [dateaddminutes](./dateaddminutes.md) - Add minutes
67
+ - [dateaddhours](./dateaddhours.md) - Add hours
68
+ - [dateaddweeks](./dateaddweeks.md) - Add weeks
69
+ - [dateaddmonths](./dateaddmonths.md) - Add months
70
+ - [dateaddyears](./dateaddyears.md) - Add years
71
+ - [datedaydifference](./datedaydifference.md) - Calculate day difference
72
+ - [datefromparts](./datefromparts.md) - Create date from parts
73
+
74
+ ## Notes
75
+
76
+ - Returns ISO 8601 formatted string
77
+ - Handles month/year boundaries automatically
78
+ - Negative values subtract days
79
+ - Uses the Dates service internally
@@ -0,0 +1,74 @@
1
+ # dateaddhours
2
+
3
+ Adds a specified number of hours to a date.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ dateaddhours(date, hours)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `date` | String | Starting date (ISO 8601 format) |
16
+ | `hours` | Number | Number of hours to add (can be negative) |
17
+
18
+ ## Returns
19
+
20
+ String - The resulting date in ISO 8601 format.
21
+
22
+ ## Description
23
+
24
+ The `dateaddhours` function adds a specified number of hours to a date and returns the new date/time. Use negative numbers to subtract hours.
25
+
26
+ ## Examples
27
+
28
+ ### Basic Usage
29
+
30
+ ```expression
31
+ Result = DATEADDHOURS("2025-04-01T10:00:00.000Z", 5)
32
+ // Result: "2025-04-01T15:00:00.000Z"
33
+ ```
34
+
35
+ ### Crossing Day Boundary
36
+
37
+ ```expression
38
+ Result = DATEADDHOURS("2025-04-01T22:00:00.000Z", 4)
39
+ // Result: "2025-04-02T02:00:00.000Z"
40
+ ```
41
+
42
+ ### Subtracting Hours
43
+
44
+ ```expression
45
+ Result = DATEADDHOURS("2025-04-01T10:00:00.000Z", -3)
46
+ // Result: "2025-04-01T07:00:00.000Z"
47
+ ```
48
+
49
+ ### Deadline Calculation
50
+
51
+ ```expression
52
+ DeadlineTime = DATEADDHOURS(SubmissionStart, TimeLimit)
53
+ ```
54
+
55
+ ## Use Cases
56
+
57
+ - **SLA tracking**: Hours until deadline
58
+ - **Scheduling**: Appointment times
59
+ - **Time zones**: Hour offset calculations
60
+ - **Shift scheduling**: Work shift end times
61
+
62
+ ## Related Functions
63
+
64
+ - [dateaddminutes](./dateaddminutes.md) - Add minutes
65
+ - [dateaddseconds](./dateaddseconds.md) - Add seconds
66
+ - [dateadddays](./dateadddays.md) - Add days
67
+ - [datehourdifference](./datehourdifference.md) - Calculate hour difference
68
+
69
+ ## Notes
70
+
71
+ - Returns ISO 8601 formatted string
72
+ - Handles day/month/year boundaries
73
+ - Negative values subtract hours
74
+ - Uses the Dates service internally
@@ -0,0 +1,65 @@
1
+ # dateaddmilliseconds
2
+
3
+ Adds a specified number of milliseconds to a date.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ dateaddmilliseconds(date, milliseconds)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `date` | String | Starting date (ISO 8601 format) |
16
+ | `milliseconds` | Number | Number of milliseconds to add (can be negative) |
17
+
18
+ ## Returns
19
+
20
+ String - The resulting date in ISO 8601 format.
21
+
22
+ ## Description
23
+
24
+ The `dateaddmilliseconds` function adds a specified number of milliseconds to a date and returns the new date/time. Use negative numbers to subtract milliseconds.
25
+
26
+ ## Examples
27
+
28
+ ### Basic Usage
29
+
30
+ ```expression
31
+ Result = DATEADDMILLISECONDS("2025-04-01T10:30:00.000Z", 500)
32
+ // Result: "2025-04-01T10:30:00.500Z"
33
+ ```
34
+
35
+ ### Subtracting Milliseconds
36
+
37
+ ```expression
38
+ Result = DATEADDMILLISECONDS("2025-04-01T10:30:00.500Z", -250)
39
+ // Result: "2025-04-01T10:30:00.250Z"
40
+ ```
41
+
42
+ ### Precise Timing
43
+
44
+ ```expression
45
+ AnimationFrame = DATEADDMILLISECONDS(StartTime, FrameDelay)
46
+ ```
47
+
48
+ ## Use Cases
49
+
50
+ - **High precision timing**: Millisecond-level calculations
51
+ - **Animation**: Frame timing
52
+ - **Performance measurement**: Precise durations
53
+ - **Logging**: Precise timestamps
54
+
55
+ ## Related Functions
56
+
57
+ - [dateaddseconds](./dateaddseconds.md) - Add seconds
58
+ - [datemilliseconddifference](./datemilliseconddifference.md) - Calculate millisecond difference
59
+
60
+ ## Notes
61
+
62
+ - Returns ISO 8601 formatted string
63
+ - Handles second/minute boundaries
64
+ - Negative values subtract milliseconds
65
+ - Uses the Dates service internally
@@ -0,0 +1,72 @@
1
+ # dateaddminutes
2
+
3
+ Adds a specified number of minutes to a date.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ dateaddminutes(date, minutes)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `date` | String | Starting date (ISO 8601 format) |
16
+ | `minutes` | Number | Number of minutes to add (can be negative) |
17
+
18
+ ## Returns
19
+
20
+ String - The resulting date in ISO 8601 format.
21
+
22
+ ## Description
23
+
24
+ The `dateaddminutes` function adds a specified number of minutes to a date and returns the new date/time. Use negative numbers to subtract minutes.
25
+
26
+ ## Examples
27
+
28
+ ### Basic Usage
29
+
30
+ ```expression
31
+ Result = DATEADDMINUTES("2025-04-01T10:30:00.000Z", 45)
32
+ // Result: "2025-04-01T11:15:00.000Z"
33
+ ```
34
+
35
+ ### Subtracting Minutes
36
+
37
+ ```expression
38
+ Result = DATEADDMINUTES("2025-04-01T10:30:00.000Z", -15)
39
+ // Result: "2025-04-01T10:15:00.000Z"
40
+ ```
41
+
42
+ ### Meeting Duration
43
+
44
+ ```expression
45
+ MeetingEnd = DATEADDMINUTES(MeetingStart, Duration)
46
+ ```
47
+
48
+ ### Buffer Time
49
+
50
+ ```expression
51
+ ArrivalTime = DATEADDMINUTES(AppointmentTime, -15)
52
+ ```
53
+
54
+ ## Use Cases
55
+
56
+ - **Meeting scheduling**: Calculate end times
57
+ - **Timers**: Add time intervals
58
+ - **Reminders**: Calculate reminder times
59
+ - **Transit**: Estimated arrival times
60
+
61
+ ## Related Functions
62
+
63
+ - [dateaddseconds](./dateaddseconds.md) - Add seconds
64
+ - [dateaddhours](./dateaddhours.md) - Add hours
65
+ - [dateminutedifference](./dateminutedifference.md) - Calculate minute difference
66
+
67
+ ## Notes
68
+
69
+ - Returns ISO 8601 formatted string
70
+ - Handles hour/day boundaries
71
+ - Negative values subtract minutes
72
+ - Uses the Dates service internally
@@ -0,0 +1,74 @@
1
+ # dateaddmonths
2
+
3
+ Adds a specified number of months to a date.
4
+
5
+ ## Syntax
6
+
7
+ ```
8
+ dateaddmonths(date, months)
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Type | Description |
14
+ |-----------|------|-------------|
15
+ | `date` | String | Starting date (ISO 8601 format) |
16
+ | `months` | Number | Number of months to add (can be negative) |
17
+
18
+ ## Returns
19
+
20
+ String - The resulting date in ISO 8601 format.
21
+
22
+ ## Description
23
+
24
+ The `dateaddmonths` function adds a specified number of months to a date and returns the new date. Use negative numbers to subtract months.
25
+
26
+ ## Examples
27
+
28
+ ### Basic Usage
29
+
30
+ ```expression
31
+ Result = DATEADDMONTHS("2025-01-15T00:00:00.000Z", 3)
32
+ // Result: "2025-04-15T00:00:00.000Z"
33
+ ```
34
+
35
+ ### Subtracting Months
36
+
37
+ ```expression
38
+ Result = DATEADDMONTHS("2025-06-15T00:00:00.000Z", -2)
39
+ // Result: "2025-04-15T00:00:00.000Z"
40
+ ```
41
+
42
+ ### With Variables
43
+
44
+ ```expression
45
+ RenewalDate = DATEADDMONTHS(SubscriptionStart, SubscriptionLength)
46
+ ```
47
+
48
+ ### Quarterly Calculations
49
+
50
+ ```expression
51
+ NextQuarter = DATEADDMONTHS(CurrentDate, 3)
52
+ ```
53
+
54
+ ## Use Cases
55
+
56
+ - **Subscriptions**: Calculate renewal dates
57
+ - **Billing cycles**: Monthly billing dates
58
+ - **Project planning**: Monthly milestones
59
+ - **Financial reporting**: Period end dates
60
+
61
+ ## Related Functions
62
+
63
+ - [dateadddays](./dateadddays.md) - Add days
64
+ - [dateaddweeks](./dateaddweeks.md) - Add weeks
65
+ - [dateaddyears](./dateaddyears.md) - Add years
66
+ - [datemonthdifference](./datemonthdifference.md) - Calculate month difference
67
+ - [datefromparts](./datefromparts.md) - Create date from parts
68
+
69
+ ## Notes
70
+
71
+ - Returns ISO 8601 formatted string
72
+ - Handles year boundaries automatically
73
+ - Negative values subtract months
74
+ - Uses the Dates service internally