@vertigis/workflow 5.33.1 → 5.35.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 (433) hide show
  1. package/Activator.d.ts +6 -2
  2. package/Collections.d.ts +8 -5
  3. package/EnumUtils.d.ts +1 -0
  4. package/Errors.d.ts +10 -1
  5. package/Errors.js +1 -1
  6. package/Hooks.d.ts +4 -1
  7. package/IActivityHandler.d.ts +20 -6
  8. package/LanguageStringUtils.js +1 -1
  9. package/ProgramInspectorFacility.d.ts +1 -0
  10. package/Task.d.ts +1 -0
  11. package/activities/app/GetApplicationData.d.ts +2 -2
  12. package/activities/app/GetApplicationInfo.d.ts +6 -3
  13. package/activities/app/GetUserInfo.d.ts +6 -3
  14. package/activities/app/PublishEvent.d.ts +2 -2
  15. package/activities/app/RemoveApplicationData.d.ts +2 -2
  16. package/activities/app/RunCommand.d.ts +6 -3
  17. package/activities/app/RunOperation.d.ts +10 -4
  18. package/activities/app/SetApplicationData.d.ts +2 -2
  19. package/activities/arcgis/AddAttachment.d.ts +2 -2
  20. package/activities/arcgis/AddFeatureLayer.d.ts +2 -2
  21. package/activities/arcgis/AddFeatures.d.ts +2 -2
  22. package/activities/arcgis/AddFeatures.js +1 -1
  23. package/activities/arcgis/AddGraphics.d.ts +10 -4
  24. package/activities/arcgis/ArcadeScript.d.ts +2 -2
  25. package/activities/arcgis/AreaEngineTask.d.ts +2 -2
  26. package/activities/arcgis/BufferEngineTask.d.ts +2 -2
  27. package/activities/arcgis/BufferServiceTask.d.ts +2 -2
  28. package/activities/arcgis/CastGeometry.d.ts +2 -2
  29. package/activities/arcgis/ClearGraphics.d.ts +2 -2
  30. package/activities/arcgis/ClipEngineTask.d.ts +2 -2
  31. package/activities/arcgis/ClosestFacilityTask.d.ts +2 -2
  32. package/activities/arcgis/CompareGeometries.d.ts +2 -2
  33. package/activities/arcgis/CreateGraphic.d.ts +2 -2
  34. package/activities/arcgis/CreatePoint.d.ts +2 -2
  35. package/activities/arcgis/CutEngineTask.d.ts +2 -2
  36. package/activities/arcgis/DeleteAttachments.d.ts +2 -2
  37. package/activities/arcgis/DeleteFeatures.d.ts +2 -2
  38. package/activities/arcgis/DensifyEngineTask.d.ts +2 -2
  39. package/activities/arcgis/DifferenceEngineTask.d.ts +2 -2
  40. package/activities/arcgis/DistanceEngineTask.d.ts +2 -2
  41. package/activities/arcgis/DistanceServiceTask.d.ts +2 -2
  42. package/activities/arcgis/ExtendedSpatialReferenceInfoEngineTask.d.ts +2 -2
  43. package/activities/arcgis/FeatureSetFromJson.d.ts +2 -2
  44. package/activities/arcgis/FlipEngineTask.d.ts +2 -2
  45. package/activities/arcgis/FromGeoCoordinateStringServiceTask.d.ts +2 -2
  46. package/activities/arcgis/GeneralizeEngineTask.d.ts +2 -2
  47. package/activities/arcgis/GenerateArcGisToken.d.ts +2 -2
  48. package/activities/arcgis/GenerateWebmapForReport.d.ts +2 -2
  49. package/activities/arcgis/Geocode.d.ts +2 -2
  50. package/activities/arcgis/GeometryFromJson.d.ts +2 -2
  51. package/activities/arcgis/Geoprocessing.d.ts +2 -2
  52. package/activities/arcgis/GeoprocessingAsync.d.ts +2 -2
  53. package/activities/arcgis/GetAttributeValue.d.ts +2 -2
  54. package/activities/arcgis/GetAttributeValues.d.ts +2 -2
  55. package/activities/arcgis/GetCentroid.d.ts +2 -2
  56. package/activities/arcgis/GetCodedValueDomain.d.ts +2 -2
  57. package/activities/arcgis/GetCurrentPosition.d.ts +2 -2
  58. package/activities/arcgis/GetFeatureGeometries.d.ts +2 -2
  59. package/activities/arcgis/GetFeatureGeometry.d.ts +2 -2
  60. package/activities/arcgis/GetFeatureLayerInfo.d.ts +2 -2
  61. package/activities/arcgis/GetFeatureSetExtent.d.ts +2 -2
  62. package/activities/arcgis/GetFeatureSetObjectIds.d.ts +2 -2
  63. package/activities/arcgis/GetFormElementItemsFromFeatures.d.ts +2 -2
  64. package/activities/arcgis/GetGeometryExtent.d.ts +2 -2
  65. package/activities/arcgis/GetGraphics.d.ts +2 -2
  66. package/activities/arcgis/GetLayer.d.ts +2 -2
  67. package/activities/arcgis/GetLayerDefinitionExpression.d.ts +2 -2
  68. package/activities/arcgis/GetLayerProperty.d.ts +2 -2
  69. package/activities/arcgis/GetLayerVisibility.d.ts +2 -2
  70. package/activities/arcgis/GetMap.d.ts +2 -2
  71. package/activities/arcgis/GetMapScreenshot.d.ts +2 -2
  72. package/activities/arcgis/GetPortalUser.d.ts +2 -2
  73. package/activities/arcgis/GetTable.d.ts +2 -2
  74. package/activities/arcgis/GetViewExtent.d.ts +2 -2
  75. package/activities/arcgis/GetViewpoint.d.ts +2 -2
  76. package/activities/arcgis/IntersectEngineTask.d.ts +2 -2
  77. package/activities/arcgis/LabelPointsServiceTask.d.ts +2 -2
  78. package/activities/arcgis/LengthEngineTask.d.ts +2 -2
  79. package/activities/arcgis/MapProvider.d.ts +4 -1
  80. package/activities/arcgis/NearestCoordinateEngineTask.d.ts +2 -2
  81. package/activities/arcgis/NearestVertexEngineTask.d.ts +2 -2
  82. package/activities/arcgis/NearestVerticesEngineTask.d.ts +2 -2
  83. package/activities/arcgis/OffsetEngineTask.d.ts +2 -2
  84. package/activities/arcgis/ProjectServiceTask.d.ts +2 -2
  85. package/activities/arcgis/QueryAttachmentInfos.d.ts +2 -2
  86. package/activities/arcgis/QueryTask.d.ts +10 -4
  87. package/activities/arcgis/RefreshLayer.d.ts +2 -2
  88. package/activities/arcgis/RegisterCorsUrl.d.ts +2 -2
  89. package/activities/arcgis/RelateEngineTask.d.ts +2 -2
  90. package/activities/arcgis/RelationServiceTask.d.ts +2 -2
  91. package/activities/arcgis/RelationshipQueryTask.d.ts +2 -2
  92. package/activities/arcgis/RemoveFeatureSetFields.d.ts +2 -2
  93. package/activities/arcgis/RemoveGraphics.d.ts +2 -2
  94. package/activities/arcgis/RemoveLayer.d.ts +2 -2
  95. package/activities/arcgis/RendererFromJson.d.ts +2 -2
  96. package/activities/arcgis/ReshapeServiceTask.d.ts +2 -2
  97. package/activities/arcgis/ReverseGeocode.d.ts +2 -2
  98. package/activities/arcgis/RotateEngineTask.d.ts +2 -2
  99. package/activities/arcgis/RouteTask.d.ts +2 -2
  100. package/activities/arcgis/RunPrint.d.ts +2 -2
  101. package/activities/arcgis/RunReport.d.ts +2 -2
  102. package/activities/arcgis/RunWorkflow.d.ts +21 -3
  103. package/activities/arcgis/RunWorkflow.js +1 -1
  104. package/activities/arcgis/SendLayerToAttributeTable.d.ts +2 -2
  105. package/activities/arcgis/ServiceAreaTask.d.ts +2 -2
  106. package/activities/arcgis/SetFeatureAttribute.d.ts +2 -2
  107. package/activities/arcgis/SetFeatureGeometry.d.ts +2 -2
  108. package/activities/arcgis/SetFeaturePopup.d.ts +2 -2
  109. package/activities/arcgis/SetFeatureSymbol.d.ts +2 -2
  110. package/activities/arcgis/SetImageryLayerOptions.d.ts +2 -2
  111. package/activities/arcgis/SetLayerDefinitionExpression.d.ts +2 -2
  112. package/activities/arcgis/SetLayerPopup.d.ts +2 -2
  113. package/activities/arcgis/SetLayerProperty.d.ts +2 -2
  114. package/activities/arcgis/SetLayerVisibility.d.ts +2 -2
  115. package/activities/arcgis/SetMap.d.ts +6 -3
  116. package/activities/arcgis/SetViewExtent.d.ts +2 -2
  117. package/activities/arcgis/SetViewpoint.d.ts +2 -2
  118. package/activities/arcgis/ShowFeaturePopup.d.ts +2 -2
  119. package/activities/arcgis/ShowResults.d.ts +5 -2
  120. package/activities/arcgis/SimplifyEngineTask.d.ts +2 -2
  121. package/activities/arcgis/SortFeatureSet.d.ts +2 -2
  122. package/activities/arcgis/SymbolFromJson.d.ts +2 -2
  123. package/activities/arcgis/ToGeoCoordinateStringServiceTask.d.ts +2 -2
  124. package/activities/arcgis/UnionEngineTask.d.ts +2 -2
  125. package/activities/arcgis/UnionServiceTask.d.ts +2 -2
  126. package/activities/arcgis/UpdateAttachment.d.ts +2 -2
  127. package/activities/arcgis/UpdateFeatures.d.ts +2 -2
  128. package/activities/arcgis/runUtils.d.ts +6 -2
  129. package/activities/browser/GetBrowserInfo.d.ts +2 -2
  130. package/activities/browser/InjectCss.d.ts +2 -2
  131. package/activities/core/AddItem.d.ts +2 -2
  132. package/activities/core/AddItems.d.ts +2 -2
  133. package/activities/core/Annotation.d.ts +2 -2
  134. package/activities/core/Cast.d.ts +2 -2
  135. package/activities/core/ChannelProvider.d.ts +1 -0
  136. package/activities/core/ClearItems.d.ts +2 -2
  137. package/activities/core/Container.d.ts +2 -2
  138. package/activities/core/ConvertBytesToText.d.ts +2 -2
  139. package/activities/core/ConvertDataTableToFeatureSet.d.ts +2 -2
  140. package/activities/core/ConvertTextToBytes.d.ts +2 -2
  141. package/activities/core/ConvertToJson.d.ts +2 -2
  142. package/activities/core/CreateFile.d.ts +2 -2
  143. package/activities/core/CreateValue.d.ts +2 -2
  144. package/activities/core/DecodeUriComponent.d.ts +2 -2
  145. package/activities/core/Delay.d.ts +2 -2
  146. package/activities/core/EncodeUriComponent.d.ts +2 -2
  147. package/activities/core/Evaluate.d.ts +2 -2
  148. package/activities/core/EvaluateAsync.d.ts +2 -2
  149. package/activities/core/Exit.d.ts +2 -2
  150. package/activities/core/ForEach.d.ts +2 -2
  151. package/activities/core/FormatDate.d.ts +5 -5
  152. package/activities/core/FormatDate.js +1 -1
  153. package/activities/core/GetBase64StringFromBytes.d.ts +2 -2
  154. package/activities/core/GetBase64StringFromFile.d.ts +2 -2
  155. package/activities/core/GetBytesFromBase64String.d.ts +2 -2
  156. package/activities/core/GetFirstItem.d.ts +2 -2
  157. package/activities/core/GetItemAtIndex.d.ts +2 -2
  158. package/activities/core/GetLastItem.d.ts +2 -2
  159. package/activities/core/GetLogLevel.d.ts +2 -2
  160. package/activities/core/GetTextFromFile.d.ts +2 -2
  161. package/activities/core/GetWorkflowInputs.d.ts +2 -2
  162. package/activities/core/If.d.ts +2 -2
  163. package/activities/core/Log.d.ts +2 -2
  164. package/activities/core/Loop.d.ts +2 -2
  165. package/activities/core/ParseJson.d.ts +2 -2
  166. package/activities/core/ParseNumber.d.ts +2 -2
  167. package/activities/core/ParseUrl.d.ts +2 -2
  168. package/activities/core/Placeholder.d.ts +2 -2
  169. package/activities/core/RegexMatches.d.ts +2 -2
  170. package/activities/core/RegexReplace.d.ts +2 -2
  171. package/activities/core/RemoveItem.d.ts +2 -2
  172. package/activities/core/RunActivity.d.ts +2 -2
  173. package/activities/core/RunSubworkflow.d.ts +2 -2
  174. package/activities/core/SetLogLevel.d.ts +2 -2
  175. package/activities/core/SetProperty.d.ts +2 -2
  176. package/activities/core/SetWorkflowOutput.d.ts +2 -2
  177. package/activities/core/Subworkflow.d.ts +2 -2
  178. package/activities/core/Switch.d.ts +2 -2
  179. package/activities/core/TextReplace.d.ts +2 -2
  180. package/activities/core/Throw.d.ts +2 -2
  181. package/activities/core/TryCatch.d.ts +2 -2
  182. package/activities/core/WebRequest.d.ts +2 -2
  183. package/activities/core/converters.d.ts +1 -1
  184. package/activities/csv/ConvertCsvToDataTable.d.ts +2 -2
  185. package/activities/csv/ConvertDataTableToCsv.d.ts +2 -2
  186. package/activities/essentials/GetEssentialsSite.d.ts +2 -2
  187. package/activities/essentials/RunEssentialsWorkflow.d.ts +2 -2
  188. package/activities/essentials/RunEssentialsWorkflowActivity.d.ts +2 -2
  189. package/activities/forms/ActivateFormElement.d.ts +2 -2
  190. package/activities/forms/AddFormElement.d.ts +2 -2
  191. package/activities/forms/ClearFormElementError.d.ts +2 -2
  192. package/activities/forms/CompleteForm.d.ts +2 -2
  193. package/activities/forms/DisplayForm.d.ts +6 -3
  194. package/activities/forms/FilterFormElementItems.d.ts +2 -2
  195. package/activities/forms/FormRenderer.d.ts +1 -0
  196. package/activities/forms/FormRenderer.js +1 -1
  197. package/activities/forms/GetFormElementItemsFromCollection.d.ts +2 -2
  198. package/activities/forms/GetFormElementProperty.d.ts +2 -2
  199. package/activities/forms/GetFormElementValue.d.ts +2 -2
  200. package/activities/forms/GetFormEventData.d.ts +2 -2
  201. package/activities/forms/HideFormElement.d.ts +2 -2
  202. package/activities/forms/PropagateFormEvent.d.ts +2 -2
  203. package/activities/forms/SetCurrentFormElementItem.d.ts +2 -2
  204. package/activities/forms/SetFormElementError.d.ts +2 -2
  205. package/activities/forms/SetFormElementEvent.d.ts +2 -2
  206. package/activities/forms/SetFormElementItemProperty.d.ts +2 -2
  207. package/activities/forms/SetFormElementItems.d.ts +2 -2
  208. package/activities/forms/SetFormElementProperty.d.ts +3 -3
  209. package/activities/forms/ShowFormElement.d.ts +2 -2
  210. package/activities/image/GetImageMetadata.d.ts +2 -2
  211. package/activities/image/RotateImage.d.ts +2 -2
  212. package/activities/index.d.ts +1 -0
  213. package/activities/index.js +1 -1
  214. package/activities/math/Abs.d.ts +2 -2
  215. package/activities/math/Cos.d.ts +2 -2
  216. package/activities/math/Max.d.ts +2 -2
  217. package/activities/math/Min.d.ts +2 -2
  218. package/activities/math/Pow.d.ts +2 -2
  219. package/activities/math/Random.d.ts +2 -2
  220. package/activities/math/Sin.d.ts +2 -2
  221. package/activities/math/Sqrt.d.ts +2 -2
  222. package/activities/math/Tan.d.ts +2 -2
  223. package/activities/pdf/AddGeoreferenceToPdf.d.ts +19 -0
  224. package/activities/pdf/AddGeoreferenceToPdf.js +1 -0
  225. package/activities/pdf/ExtractPdfPages.d.ts +2 -2
  226. package/activities/pdf/MergePdfs.d.ts +2 -2
  227. package/activities/server/CopyFile.d.ts +2 -2
  228. package/activities/server/CreateDirectory.d.ts +2 -2
  229. package/activities/server/CreateDownload.d.ts +2 -2
  230. package/activities/server/CreateEmailAttachment.d.ts +2 -2
  231. package/activities/server/CreateZipFromDirectory.d.ts +2 -2
  232. package/activities/server/DeleteDirectory.d.ts +2 -2
  233. package/activities/server/DeleteFile.d.ts +2 -2
  234. package/activities/server/DirectoryExists.d.ts +2 -2
  235. package/activities/server/ExtractZipToDirectory.d.ts +2 -2
  236. package/activities/server/FileExists.d.ts +2 -2
  237. package/activities/server/GetDirectoriesInDirectory.d.ts +2 -2
  238. package/activities/server/GetFilesInDirectory.d.ts +2 -2
  239. package/activities/server/MoveFile.d.ts +2 -2
  240. package/activities/server/ReadFile.d.ts +2 -2
  241. package/activities/server/ReadFileBytes.d.ts +2 -2
  242. package/activities/server/RunApplication.d.ts +2 -2
  243. package/activities/server/RunPython.d.ts +2 -2
  244. package/activities/server/SendEmail.d.ts +2 -2
  245. package/activities/server/SqlNonQuery.d.ts +2 -2
  246. package/activities/server/SqlQuery.d.ts +2 -2
  247. package/activities/server/SqlQueryUnsafe.d.ts +2 -2
  248. package/activities/server/WriteFile.d.ts +2 -2
  249. package/activities/server/WriteFileBytes.d.ts +2 -2
  250. package/activities/ui/Alert.d.ts +6 -3
  251. package/activities/ui/Confirm.d.ts +10 -4
  252. package/activities/ui/Prompt.d.ts +10 -4
  253. package/activities/wab/OpenWidget.d.ts +2 -2
  254. package/activities/wab/PublishWidgetData.d.ts +2 -2
  255. package/activities/xlsx/ConvertDataTableToXlsx.d.ts +2 -2
  256. package/activities/xlsx/ConvertXlsxToDataSet.d.ts +2 -2
  257. package/definition/Program.d.ts +4 -1
  258. package/definition/ProgramInspector.d.ts +4 -1
  259. package/definition/Reference.d.ts +4 -1
  260. package/diagnostics/ConsoleDebugLogger.d.ts +4 -1
  261. package/diagnostics/logging.d.ts +4 -1
  262. package/execution/ActivityLoader.d.ts +4 -1
  263. package/execution/Engine.d.ts +16 -4
  264. package/execution/IDebugSession.d.ts +4 -1
  265. package/execution/ProgramRunner.js +1 -1
  266. package/forms/Calendar.d.ts +1 -1
  267. package/forms/FormComponent.d.ts +4 -3
  268. package/forms/FormComponent.js +1 -1
  269. package/forms/FormDefinition.d.ts +100 -19
  270. package/forms/FormElement.d.ts +3 -17
  271. package/forms/FormElement.js +1 -1
  272. package/forms/FormHost.d.ts +29 -8
  273. package/forms/FormHost.js +1 -1
  274. package/forms/FormPresenterHost.d.ts +33 -7
  275. package/forms/common.d.ts +6 -7
  276. package/forms/common.js +1 -1
  277. package/forms/components/AccordionGroup.d.ts +15 -0
  278. package/forms/components/AccordionGroup.js +1 -0
  279. package/forms/components/AutoComplete.d.ts +7 -0
  280. package/forms/components/AutoComplete.js +1 -0
  281. package/forms/components/ButtonBar.d.ts +13 -0
  282. package/forms/components/ButtonBar.js +1 -0
  283. package/forms/components/CheckBox.d.ts +7 -0
  284. package/forms/components/CheckBox.js +1 -0
  285. package/forms/components/CheckGroup.d.ts +7 -0
  286. package/forms/components/CheckGroup.js +1 -0
  287. package/forms/components/Custom.d.ts +7 -0
  288. package/forms/components/Custom.js +1 -0
  289. package/forms/components/DatePicker.d.ts +6 -16
  290. package/forms/components/DatePicker.js +1 -1
  291. package/forms/components/DateRangePicker.d.ts +10 -8
  292. package/forms/components/DateRangePicker.js +1 -1
  293. package/forms/components/DateTimePicker.d.ts +6 -8
  294. package/forms/components/DateTimePicker.js +1 -1
  295. package/forms/components/DropDownList.d.ts +7 -0
  296. package/forms/components/DropDownList.js +1 -0
  297. package/forms/components/FilePicker.d.ts +9 -0
  298. package/forms/components/FilePicker.js +1 -0
  299. package/forms/components/Form.d.ts +23 -0
  300. package/forms/components/Form.js +1 -0
  301. package/forms/components/FormLabelNumberField.d.ts +15 -0
  302. package/forms/components/FormLabelNumberField.js +1 -0
  303. package/forms/components/GeometryPicker.d.ts +4 -0
  304. package/forms/components/GeometryPicker.js +1 -0
  305. package/forms/components/GeometryPickerListItem.d.ts +23 -0
  306. package/forms/components/GeometryPickerListItem.js +1 -0
  307. package/forms/components/HorizontalRule.d.ts +7 -0
  308. package/forms/components/HorizontalRule.js +1 -0
  309. package/forms/components/Image.d.ts +7 -0
  310. package/forms/components/Image.js +1 -0
  311. package/forms/components/ItemPicker.d.ts +17 -0
  312. package/forms/components/ItemPicker.js +1 -0
  313. package/forms/components/ListBox.d.ts +7 -0
  314. package/forms/components/ListBox.js +1 -0
  315. package/forms/components/Markdown.d.ts +1 -1
  316. package/forms/components/Markdown.js +1 -1
  317. package/forms/components/Number.d.ts +7 -0
  318. package/forms/components/Number.js +1 -0
  319. package/forms/components/NumberRangeSlider.d.ts +11 -8
  320. package/forms/components/NumberRangeSlider.js +1 -1
  321. package/forms/components/NumberSlider.d.ts +9 -8
  322. package/forms/components/NumberSlider.js +1 -1
  323. package/forms/components/RadioGroup.d.ts +7 -0
  324. package/forms/components/RadioGroup.js +1 -0
  325. package/forms/components/Scanner.d.ts +9 -0
  326. package/forms/components/Scanner.js +1 -0
  327. package/forms/components/Section.d.ts +14 -0
  328. package/forms/components/Section.js +1 -0
  329. package/forms/components/Signature.d.ts +11 -0
  330. package/forms/components/Signature.js +1 -0
  331. package/forms/components/SignatureDialog.d.ts +22 -0
  332. package/forms/components/SignatureDialog.js +1 -0
  333. package/forms/components/Text.d.ts +1 -1
  334. package/forms/components/Text.js +1 -1
  335. package/forms/components/TextArea.d.ts +1 -1
  336. package/forms/components/TextArea.js +1 -1
  337. package/forms/components/TextBox.d.ts +1 -1
  338. package/forms/components/TextBox.js +1 -1
  339. package/forms/components/TimePicker.d.ts +7 -0
  340. package/forms/components/TimePicker.js +1 -0
  341. package/forms/constants.d.ts +19 -31
  342. package/forms/constants.js +1 -1
  343. package/forms/dateUtilities.d.ts +41 -9
  344. package/forms/dateUtilities.js +1 -1
  345. package/forms/elements/AutoComplete.d.ts +7 -0
  346. package/forms/elements/AutoComplete.js +1 -0
  347. package/forms/elements/Number.d.ts +5 -0
  348. package/forms/elements/Number.js +1 -0
  349. package/forms/elements/NumberRangeSlider.d.ts +5 -3
  350. package/forms/elements/NumberRangeSlider.js +1 -1
  351. package/forms/elements/NumberSlider.d.ts +0 -3
  352. package/forms/elements/NumberSlider.js +0 -1
  353. package/forms/elements/Scanner.d.ts +9 -0
  354. package/forms/elements/Scanner.js +1 -0
  355. package/forms/elements/Signature.d.ts +16 -0
  356. package/forms/elements/Signature.js +1 -0
  357. package/forms/elements/types.d.ts +4 -2
  358. package/forms/index.d.ts +6 -2
  359. package/forms/index.js +1 -1
  360. package/forms/keyboard.d.ts +1 -0
  361. package/forms/numberFormatter.d.ts +5 -6
  362. package/forms/numberFormatter.js +1 -1
  363. package/forms/numberUtilities.d.ts +113 -0
  364. package/forms/numberUtilities.js +1 -0
  365. package/forms/presenter.d.ts +1 -0
  366. package/forms/presenter.js +1 -1
  367. package/forms/renderers.d.ts +5 -43
  368. package/forms/renderers.js +1 -1
  369. package/forms/textUtilities.d.ts +6 -4
  370. package/forms/textUtilities.js +1 -1
  371. package/forms/utils.d.ts +102 -20
  372. package/forms/utils.js +1 -1
  373. package/index.d.ts +1 -1
  374. package/index.js +0 -1
  375. package/libs/version.d.ts +1 -1
  376. package/libs/version.js +1 -1
  377. package/package.json +10 -10
  378. package/app/ActivityPackUtils.d.ts +0 -10
  379. package/app/ActivityPackUtils.js +0 -1
  380. package/app/AppActivity.d.ts +0 -82
  381. package/app/AppActivity.js +0 -1
  382. package/app/RegisterCustomFormElementBase.d.ts +0 -34
  383. package/app/RegisterCustomFormElementBase.js +0 -1
  384. package/forms/LegacyStyles.d.ts +0 -498
  385. package/forms/LegacyStyles.js +0 -1
  386. package/forms/assets/arrow.d.ts +0 -4
  387. package/forms/assets/arrow.js +0 -1
  388. package/forms/assets/chevron.d.ts +0 -3
  389. package/forms/assets/chevron.js +0 -1
  390. package/forms/assets/cross.d.ts +0 -3
  391. package/forms/assets/cross.js +0 -1
  392. package/forms/assets/datetime.d.ts +0 -3
  393. package/forms/assets/datetime.js +0 -1
  394. package/forms/assets/remove.d.ts +0 -2
  395. package/forms/assets/remove.js +0 -1
  396. package/forms/assets/scan.d.ts +0 -4
  397. package/forms/assets/scan.js +0 -1
  398. package/forms/assets/stock.d.ts +0 -5
  399. package/forms/assets/stock.js +0 -1
  400. package/forms/components/DateRange.d.ts +0 -6
  401. package/forms/components/DateRange.js +0 -1
  402. package/forms/components/Navigator.d.ts +0 -1
  403. package/forms/components/Navigator.js +0 -1
  404. package/forms/components/ReactDateRangeCalendar.d.ts +0 -6
  405. package/forms/components/ReactDateRangeCalendar.js +0 -1
  406. package/forms/components/SyntheticButton.d.ts +0 -1
  407. package/forms/components/SyntheticButton.js +0 -1
  408. package/forms/components/TimePickerInput.d.ts +0 -24
  409. package/forms/components/TimePickerInput.js +0 -1
  410. package/forms/components/TimerManager.d.ts +0 -7
  411. package/forms/components/TimerManager.js +0 -1
  412. package/forms/components/utils.d.ts +0 -2
  413. package/forms/components/utils.js +0 -1
  414. package/forms/datetime.d.ts +0 -5
  415. package/forms/datetime.js +0 -1
  416. package/forms/files.d.ts +0 -4
  417. package/forms/files.js +0 -1
  418. package/forms/geometry.d.ts +0 -4
  419. package/forms/geometry.js +0 -1
  420. package/forms/number.d.ts +0 -11
  421. package/forms/number.js +0 -1
  422. package/forms/numberSliderUtilities.d.ts +0 -12
  423. package/forms/numberSliderUtilities.js +0 -1
  424. package/forms/scanner.d.ts +0 -4
  425. package/forms/scanner.js +0 -1
  426. package/forms/selectors.d.ts +0 -10
  427. package/forms/selectors.js +0 -1
  428. package/forms/styles/daterange.css +0 -1
  429. package/forms/styles/daterange.d.ts +0 -1
  430. package/forms/styles/daterange.js +0 -1
  431. package/forms/styles/stock.css +0 -1
  432. package/forms/styles/stock.d.ts +0 -1
  433. package/forms/styles/stock.js +0 -1
@@ -0,0 +1 @@
1
+ import FormControlLabel from"@vertigis/react-ui/FormControlLabel";import Radio from"@vertigis/react-ui/Radio";import BaseRadioGroup from"@vertigis/react-ui/RadioGroup";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{useEffect,useState}from"react";import FormElement from"../FormElement.js";import{Orientation}from"../constants.js";import{makeSafeClassName,sortItems as sortAndFilterItems}from"../utils.js";import Markdown from"./Markdown.js";const Root=styled(FormElement)(({theme:{spacing:e}})=>({marginBottom:e(1.5)})),RadioGroup=({className:e,component:t,element:o})=>{const[r,a]=useState(""),{host:m,name:n}=t.props;var s=sortAndFilterItems(o);useEffect(()=>{a(o.current||"")},[o.current]);var i=e=>{null===e||e.disabled||m.renderFocus(e,n)};const l=[];for(const p in s){const f=s[p];var c=t.enabled&&!1!==f.enabled,u=m.renderText(f.tooltip),d=f.styleName?makeSafeClassName(f.styleName):void 0;l.push(React.createElement(FormControlLabel,{className:d,control:React.createElement(Radio,{inputRef:i,onClick:e=>{o.current!==p&&(o.current=p,o.value=f.value,m.post("changed",{name:n,item:p,value:f.value}),a(p))}}),disabled:!c,key:p,label:React.createElement(Markdown,{host:m,text:f.label}),title:u,value:p}))}return React.createElement(Root,{className:e,component:t,element:o},React.createElement(BaseRadioGroup,{name:t.id,row:o.orientation===Orientation.HORIZONTAL,value:r},l))};export default RadioGroup;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { BaseFormElementProps } from "../FormElement";
3
+ export declare const scannerClasses: {
4
+ container: string;
5
+ button: string;
6
+ inputContainer: string;
7
+ };
8
+ declare const Scanner: ({ className, component, element }: BaseFormElementProps) => JSX.Element;
9
+ export default Scanner;
@@ -0,0 +1 @@
1
+ import Button from"@vertigis/react-ui/Button";import Input from"@vertigis/react-ui/Input";import Stack from"@vertigis/react-ui/Stack";import{Close as CloseIcon,ScanBarcode,ScanMulti,ScanQr}from"@vertigis/react-ui/icons";import{styled}from"@vertigis/react-ui/styles";import{useState,useEffect,useRef}from"react";import*as React from"react";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{ScanType}from"../constants.js";import{scannerConfiguration}from"../elements/Scanner.js";import{getKeyString}from"../keyboard.js";import{isScanRef,makeUniqueId}from"../utils.js";const PREFIX="Scanner",scannerClasses={container:`${PREFIX}-container`,button:`${PREFIX}-button`,inputContainer:`${PREFIX}-inner`},Root=styled(FormElement)(({theme:{spacing:e}})=>({[`.${scannerClasses.container}`]:{gap:e(.5),video:{width:"100%"},[`.${scannerClasses.inputContainer}`]:{alignItems:"flex-start",gap:e(.5),[`.${scannerClasses.button}`]:{minWidth:0,padding:e(.5)}}}})),CAMERA_READY_TIMEOUT_MS=1500;var EntryMethod;!function(e){e.Camera="camera",e.Manual="manual"}(EntryMethod=EntryMethod||{});const convertToScanRef=(e,t,a)=>{var r=typeof e,r="number"==r||"string"==r?e.toString():e?.value?.toString();if(r)return t=t||e?.entryMethod||EntryMethod.Manual,{refValueType:"scan",value:r,scanType:a=a||e?.scanType,entryMethod:t}},Scanner=({className:e,component:t,element:o})=>{const[a,r]=useState(!0),[n,c]=useState(null),[s,i]=useState(""),[l,u]=useState(!1),[m,d]=useState(scannerConfiguration.rows.default),p=useRef(null),{host:f,name:E}=t.props;var S=`${makeUniqueId(E)}-input`;const v="barcode"!==o.scanType;useEffect(()=>{let e=scannerConfiguration.rows.default;"number"==typeof o.size&&(e=Math.max(scannerConfiguration.rows.minimum,o.size)),d(e)},[o.size]),useEffect(()=>(u(!0),()=>u(!1)),[]),useEffect(()=>{l&&o.enabled&&o.autoActivate&&(o.autoActivate=!1,B())},[l]),useEffect(()=>{const e=()=>{r(!1),setTimeout(()=>{l&&r(!0)},CAMERA_READY_TIMEOUT_MS)};return n&&e(),()=>{n&&(n.reset(),e())}},[n]);var y=useFocusCallback(t);useEffect(()=>{let e=o.value;!isScanRef(e)&&e&&(o.value=e=convertToScanRef(e));var t=e?.value||"";s!==t&&i(t)},[o.value]);var C=f.renderText(o.tooltip),g=!t.enabled,R=g||!o.manualEntry;const T=(e,t,a)=>{e&&o.value?.value!==e&&(a=convertToScanRef(e,t,a),o.value=a,i(e),f.post("changed",{name:E,value:a}))},F=async e=>{var t=await import("@zxing/library");let a=void 0;return e===ScanType.QrCode?a=[t.BarcodeFormat.AZTEC,t.BarcodeFormat.DATA_MATRIX,t.BarcodeFormat.MAXICODE,t.BarcodeFormat.PDF_417,t.BarcodeFormat.QR_CODE]:e===ScanType.BarCode&&(a=[t.BarcodeFormat.CODABAR,t.BarcodeFormat.CODE_39,t.BarcodeFormat.CODE_93,t.BarcodeFormat.CODE_128,t.BarcodeFormat.EAN_8,t.BarcodeFormat.EAN_13,t.BarcodeFormat.ITF,t.BarcodeFormat.RSS_14,t.BarcodeFormat.RSS_EXPANDED,t.BarcodeFormat.UPC_A,t.BarcodeFormat.UPC_E,t.BarcodeFormat.UPC_EAN_EXTENSION]),a},B=async()=>{if(n)return c(null),void f.post("cancel",{name:E,type:"cancel"});if(l){var e=await(async e=>{var t=await import("@zxing/library"),e=await F(e);const a=new Map;return a.set(t.DecodeHintType.POSSIBLE_FORMATS,e),a})(o.scanType);const t=await import("@zxing/library");e=new t.BrowserMultiFormatReader(e);c(e),await(async e=>{try{var t=await e.listVideoInputDevices();if(!t||0==t.length)throw new DOMException("No video input devices detected.");const r=await e.decodeOnceFromVideoDevice(void 0,p.current||void 0),n=await F(ScanType.QrCode);var a=n.indexOf(r.getBarcodeFormat())<0?ScanType.BarCode:ScanType.QrCode;T(r.toString(),EntryMethod.Camera,a),c(null)}catch(e){e instanceof DOMException&&(o.error=e.message,c(null))}})(e)}};return React.createElement(Root,{className:e,component:t,element:o,inputId:S},React.createElement(Stack,{className:scannerClasses.container},React.createElement("video",{hidden:!n,ref:p}),React.createElement(Stack,{className:scannerClasses.inputContainer,direction:"row"},React.createElement(Input,{disabled:R,fullWidth:!0,id:S,inputProps:{title:C},inputRef:y,multiline:v,onBlur:e=>{0<e.currentTarget.value.length&&(c(null),T(e.currentTarget.value,EntryMethod.Manual))},onChange:e=>{i(e.currentTarget.value)},onKeyDown:e=>{"enter"===getKeyString(e)&&e.stopPropagation(),v||(e=e.currentTarget,c(null),T(e.value,EntryMethod.Manual))},required:o.require,rows:v?m:void 0,spellCheck:!1,value:s}),React.createElement(Button,{className:scannerClasses.button,color:"primary",disabled:g||!a,onClick:B,ref:y,title:C},n?React.createElement(CloseIcon,null):o.scanType===ScanType.BarCode?React.createElement(ScanBarcode,null):o.scanType===ScanType.QrCode?React.createElement(ScanQr,null):React.createElement(ScanMulti,null)))))};export default Scanner;export{scannerClasses};
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { BaseFormElementProps } from "../FormElement";
3
+ export declare const sectionClasses: {
4
+ root: string;
5
+ basicSection: string;
6
+ fieldSetSection: string;
7
+ title: string;
8
+ description: string;
9
+ };
10
+ /**
11
+ * The component for the "Section" Form Element.
12
+ */
13
+ declare const Section: ({ className, component, element }: BaseFormElementProps) => JSX.Element;
14
+ export default Section;
@@ -0,0 +1 @@
1
+ import Accordion,{accordionClasses}from"@vertigis/react-ui/Accordion";import AccordionSummary from"@vertigis/react-ui/AccordionSummary";import Box from"@vertigis/react-ui/Box";import FormLabel from"@vertigis/react-ui/FormLabel";import ChevronDown from"@vertigis/react-ui/icons/ChevronDown";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect}from"react";import{defs}from"../FormHost.js";import{renderAccessibleDescription,renderDescription,renderError}from"../common.js";import{makeSafeClassName,makeUniqueId}from"../utils.js";import Markdown from"./Markdown.js";const PREFIX="WorkflowSection",sectionClasses={root:`${PREFIX}-root`,basicSection:`${PREFIX}-basicSection`,fieldSetSection:`${PREFIX}-fieldSetSection`,title:`${PREFIX}-title`,description:`${PREFIX}-description`},AccordionRoot=styled(Accordion)(({theme:{spacing:e}})=>({[`.${accordionClasses.region}`]:{padding:e(1),[`.${sectionClasses.description} p`]:{marginBottom:0,marginTop:0,padding:e(.5)}}})),BoxRoot=styled(Box)(({theme:{palette:e,spacing:o,typography:{pxToRem:t}}})=>({marginBottom:o(4),marginTop:o(4),[`.${sectionClasses.description} p`]:{marginBottom:0,marginTop:0,padding:o(.5)},[`&.${sectionClasses.basicSection}`]:{borderLeft:`6px solid ${e.primary[500]}`,paddingLeft:o(1),paddingRight:o(1)},[`&.${sectionClasses.fieldSetSection}`]:{position:"relative",border:`3px solid ${e.primary[500]}`,borderLeft:"none",borderRight:"none",paddingTop:o(3),paddingBottom:o(2),[`.${sectionClasses.title}`]:{backgroundColor:e.background.default,position:"absolute",top:t(-22),left:0,padding:0,"& span":{paddingRight:o(1)}}}})),Section=({className:e,component:t,element:i})=>{const r=t.props["host"],s=t.props.name;let o;null!=i&&i.format&&(o=i.format),o=void 0!==o&&null!==o?o:defs.DEFAULT_SECTION_FORMAT;const a=r.isAccordionSection(i),n=a||r.isCollapsibleSection(i);var c=`${makeUniqueId(s)}-input`;useEffect(()=>(r.refs[s]=t,()=>{r.refs[s]=void 0}),[]);var l,d,m=(l=i,d=c,React.createElement(FormLabel,{className:sectionClasses.title,error:n&&r.hasInvalidChild(l),id:`${d}-label`,component:"h6"},React.createElement(Markdown,{host:r,inline:!0,text:l.title}))),p=renderDescription(r,i,c,sectionClasses.description),f=renderAccessibleDescription(r,i,c),g=renderError(r,i),c={"aria-labelledby":m?.props?.id,"aria-details":p?.props?.id,"aria-describedby":f?.props?.id},g=[p,f,g,t.props.children],e=clsx(e,i.type,sectionClasses.root,{[sectionClasses.basicSection]:"basic-section"===o,[sectionClasses.fieldSetSection]:"fieldset-section"===o,[makeSafeClassName(s)]:!!s,[makeSafeClassName(i.styleName)]:!!i.styleName});return n?React.createElement(AccordionRoot,{className:e,expanded:!0!==i.collapsed,onChange:(e,o)=>{a&&o?r.updateAccordionSections(s):(i.collapsed=!o,t.forceUpdate())},...c},React.createElement(AccordionSummary,{expandIcon:React.createElement(ChevronDown,null),ref:e=>{null!==e&&i.collapsed&&r.renderFocus(e,s)}},m),...g):React.createElement(BoxRoot,{className:e,component:"section",...c},m,React.createElement(Box,null,...g))};export default Section;export{sectionClasses};
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { BaseFormElementProps } from "../FormElement";
3
+ export declare const signatureClasses: {
4
+ button: string;
5
+ image: string;
6
+ };
7
+ /**
8
+ * The component for the "Signature" Form Element.
9
+ */
10
+ declare const Signature: ({ className, component, element }: BaseFormElementProps) => JSX.Element;
11
+ export default Signature;
@@ -0,0 +1 @@
1
+ import Box from"@vertigis/react-ui/Box";import Button from"@vertigis/react-ui/Button";import Dialog from"@vertigis/react-ui/Dialog";import IconButton from"@vertigis/react-ui/IconButton";import SignatureIcon from"@vertigis/react-ui/icons/Signature";import Trash from"@vertigis/react-ui/icons/Trash";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{useEffect,useState}from"react";import FormElement from"../FormElement.js";import{renderTitle}from"../common.js";import{signatureConfiguration}from"../elements/Signature.js";import{makeUniqueId}from"../utils.js";import Markdown from"./Markdown.js";import SignatureDialog from"./SignatureDialog.js";const PREFIX="Signature",signatureClasses={button:`${PREFIX}-button`,image:`${PREFIX}-image`},Root=styled(FormElement)(({theme:{spacing:e}})=>({[`.${signatureClasses.button}`]:{marginBottom:e(1),marginTop:e(1)},[`.${signatureClasses.image}`]:{alignItems:"flex-start",display:"flex",flexDirection:"row",gap:e(1),img:{border:"solid 1px grey",flexShrink:1,minWidth:0}}})),Signature=({className:e,component:t,element:i})=>{const r=t.props["host"],o=t.props.name,[a,n]=useState(),[s,l]=useState(500),m=r.renderText(i.tooltip),c=r.renderText("@common-clear");useEffect(()=>{var e=i.size;let t=signatureConfiguration.width.default;"number"!=typeof e||isNaN(e)?"object"!=typeof e||void 0===e.width||isNaN(e.width)||(t=e.width):t=e,t=Math.max(t,signatureConfiguration.width.minimum),t=Math.min(t,signatureConfiguration.width.maximum),l(t)},[i.size]),useEffect(()=>{var e=i.value;n(e?.dataUrl)},[i.value]);const u=async e=>{if(e){const a=await fetch(e);var t=await a.blob(),t=new File([t],`${o}.png`,{type:t.type});i.value={refValueType:"signature",dataUrl:e,file:t}}else i.value=void 0;n(e)};return React.createElement(Root,{className:e,component:t,element:i},a?React.createElement(Box,{className:signatureClasses.image},React.createElement("img",{src:a,alt:m}),React.createElement(IconButton,{"aria-label":c,disabled:!t.enabled,onClick:()=>u(void 0),title:c},React.createElement(Trash,null))):null,a?null:React.createElement(Box,{className:signatureClasses.button},React.createElement(Button,{color:"primary",disabled:!1===i.enabled,onClick:async()=>{const e=Math.round(.4*s);await r.displayDialog(a=>React.createElement(SignatureDialog,{cancelCaption:r.renderText("@common-cancel"),clearCaption:c,doneCaption:r.renderText("@common-done"),format:"image/png",height:e,helperText:React.createElement(Markdown,{host:r,inline:!0,text:i.label}),onClose:(e,t)=>{e&&u(t),a()},title:renderTitle(r,i,makeUniqueId(t.props.name+"-dialog")),undoCaption:r.renderText("@common-undo"),width:s}),Dialog)},startIcon:React.createElement(SignatureIcon,null),title:m,variant:"outlined"},React.createElement(Markdown,{host:r,inline:!0,text:i.prompt||""}))))};export default Signature;export{signatureClasses};
@@ -0,0 +1,22 @@
1
+ /// <reference types="react" />
2
+ export declare const signatureDialogClasses: {
3
+ canvas: string;
4
+ canvasAnnotations: string;
5
+ container: string;
6
+ mark: string;
7
+ titleText: string;
8
+ };
9
+ export interface StyledDialogProps {
10
+ cancelCaption: string;
11
+ clearCaption: string;
12
+ doneCaption: string;
13
+ format: string;
14
+ helperText: JSX.Element | null;
15
+ height: number;
16
+ title: JSX.Element | null;
17
+ undoCaption: string;
18
+ width: number;
19
+ onClose: (confirm: boolean, dataUrl: string | undefined) => void;
20
+ }
21
+ declare const SignatureDialog: ({ cancelCaption, clearCaption, doneCaption, format, height, helperText, title, undoCaption, width, onClose, }: StyledDialogProps) => JSX.Element;
22
+ export default SignatureDialog;
@@ -0,0 +1 @@
1
+ import Box from"@vertigis/react-ui/Box";import Button from"@vertigis/react-ui/Button";import DialogActions from"@vertigis/react-ui/DialogActions";import DialogContent from"@vertigis/react-ui/DialogContent";import DialogTitle from"@vertigis/react-ui/DialogTitle";import IconButton from"@vertigis/react-ui/IconButton";import Skeleton from"@vertigis/react-ui/Skeleton";import Stack from"@vertigis/react-ui/Stack";import Typography from"@vertigis/react-ui/Typography";import Trash from"@vertigis/react-ui/icons/Trash";import Undo from"@vertigis/react-ui/icons/Undo";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{lazy,Suspense}from"react";const SignaturePadWrapper=lazy(()=>import("react-signature-pad-wrapper")),DialogPrefix="SignatureDialog",signatureDialogClasses={canvas:`${DialogPrefix}-canvas`,canvasAnnotations:`${DialogPrefix}-canvas-annotations`,container:`${DialogPrefix}-container`,mark:`${DialogPrefix}-mark`,titleText:`${DialogPrefix}-title-text`},StyledDialogTitle=styled(DialogTitle)(()=>({display:"flex",[`.${signatureDialogClasses.titleText}`]:{flexGrow:1,flexShrink:1}})),StyledDialogContent=styled(DialogContent)(({theme:{spacing:e,typography:t}})=>({[`.${signatureDialogClasses.container}`]:{backgroundColor:"#eee",filter:"drop-shadow(2px 2px 2px grey)",[`.${signatureDialogClasses.canvas}`]:{position:"relative",zIndex:1},[`.${signatureDialogClasses.canvasAnnotations}`]:{alignItems:"center",display:"flex",flexDirection:"column",marginTop:t.pxToRem(-64),paddingLeft:e(1),paddingRight:e(1),position:"relative",zIndex:0,[`.${signatureDialogClasses.mark}`]:{fontSize:"large",borderBottom:"solid 1px black",width:"100%"}}}})),SignatureDialog=({cancelCaption:e,clearCaption:t,doneCaption:a,format:i,height:o,helperText:r,title:n,undoCaption:l,width:s,onClose:c})=>{let g,m,p;return React.createElement(React.Fragment,null,React.createElement(StyledDialogTitle,null,React.createElement("div",{className:signatureDialogClasses.titleText},n),React.createElement(Stack,{direction:"row"},React.createElement(IconButton,{"aria-label":l,onClick:async()=>{if(g){const e=g.toData();e.pop(),g.fromData(e)}},title:l},React.createElement(Undo,null)),React.createElement(IconButton,{"aria-label":t,onClick:async()=>{m&&m.clear()},title:t},React.createElement(Trash,null)))),React.createElement(StyledDialogContent,null,React.createElement(Box,{className:signatureDialogClasses.container,sx:{height:`${o}px`,width:`${s}px`}},React.createElement(Suspense,{fallback:React.createElement(Skeleton,{variant:"rectangular",width:s,height:o})},React.createElement(SignaturePadWrapper,{canvasProps:{className:signatureDialogClasses.canvas},ref:e=>{g=e||void 0,m=g?.instance||void 0,p=g?.canvas?.current||void 0,p&&(p.oncontextmenu=()=>!1,p.height=o,p.width=s)}}),React.createElement(Box,{className:signatureDialogClasses.canvasAnnotations},React.createElement(Typography,{"aria-hidden":!0,className:signatureDialogClasses.mark},"X"),React.createElement(Typography,{variant:"caption"},r))))),React.createElement(DialogActions,null,React.createElement(Button,{color:"primary",onClick:()=>{let e;m&&!m.isEmpty()&&(e=m.toDataURL(i)),c(!0,e)},variant:"contained"},React.createElement(Typography,null,a)),React.createElement(Button,{color:"inherit",onClick:()=>{c(!1,void 0)},variant:"outlined"},React.createElement(Typography,null,e))))};export default SignatureDialog;export{signatureDialogClasses};
@@ -4,5 +4,5 @@ import { BaseFormElementProps } from "../FormElement";
4
4
  * The component for the "Text" Form Element.
5
5
  * It just exposes the Title and Description which are common to all.
6
6
  */
7
- declare const Text: ({ component, element }: BaseFormElementProps) => JSX.Element;
7
+ declare const Text: ({ className, component, element }: BaseFormElementProps) => JSX.Element;
8
8
  export default Text;
@@ -1 +1 @@
1
- import*as React from"react";import FormElement from"../FormElement.js";const Text=({component:e,element:t})=>React.createElement(FormElement,{component:e,element:t});export default Text;
1
+ import*as React from"react";import FormElement from"../FormElement.js";const Text=({className:e,component:t,element:m})=>React.createElement(FormElement,{className:e,component:t,element:m});export default Text;
@@ -3,5 +3,5 @@ import { BaseFormElementProps } from "../FormElement";
3
3
  /**
4
4
  * The component for the "Text Area" Form Element.
5
5
  */
6
- declare const TextArea: ({ component, element }: BaseFormElementProps) => JSX.Element;
6
+ declare const TextArea: ({ className, component, element }: BaseFormElementProps) => JSX.Element;
7
7
  export default TextArea;
@@ -1 +1 @@
1
- import Input from"@vertigis/react-ui/Input";import{useCallback,useEffect,useState}from"react";import*as React from"react";import FormElement from"../FormElement.js";import{makeUniqueId}from"../utils.js";const TextArea=({component:e,element:r})=>{const[t,a]=useState(8),[n,o]=useState(""),[l,u]=useState("soft"),{host:p,name:i}=e.props;var s=`${makeUniqueId(i)}-input`,m=r.maxLength,f=p.renderText(r.prompt),c=r.readOnly,d=p.renderText(r.tooltip);useEffect(()=>{"number"==typeof r.size&&a(r.size)},[r.size]);var v=useCallback(()=>{let e="";var t=r.value;"string"==typeof t&&(e=t),r.value=e,o(e)},[r.value]);useEffect(v,[v]),useEffect(()=>{"string"==typeof r.wrap&&-1!==["hard","soft","off"].indexOf(r.wrap)&&u(r.wrap)},[r.wrap]);return React.createElement(FormElement,{component:e,element:r,inputId:s},React.createElement(Input,{color:"primary",disabled:!e.enabled,fullWidth:!0,id:s,inputProps:{maxLength:m,onKeyDown:e=>{e.stopPropagation()},title:d,wrap:l},inputRef:e=>{null===e||e.disabled||p.renderFocus(e,i)},multiline:!0,onBlur:e=>{e=e.target.value;e!=r.value&&(r.value=e,p.post("changed",{name:i,value:e}))},onChange:e=>{e=e.target.value;e!=n&&o(e)},placeholder:f,readOnly:c,required:r.require,rows:t,value:n}))};export default TextArea;
1
+ import Input from"@vertigis/react-ui/Input";import{useEffect,useState}from"react";import*as React from"react";import FormElement from"../FormElement.js";import{makeUniqueId}from"../utils.js";const TextArea=({className:e,component:a,element:r})=>{const[t,n]=useState(8),[o,u]=useState(""),[l,s]=useState("soft"),{host:p,name:m}=a.props;var i=`${makeUniqueId(m)}-input`,f=r.maxLength,c=p.renderText(r.prompt),d=r.readOnly,v=p.renderText(r.tooltip);useEffect(()=>{"number"==typeof r.size&&n(r.size)},[r.size]),useEffect(()=>{let e="";var t=r.value;"string"==typeof t&&(e=t),r.value!==e&&(r.value=e,a.forceUpdate()),u(e)},[r.value]),useEffect(()=>{"string"==typeof r.wrap&&-1!==["hard","soft","off"].indexOf(r.wrap)&&s(r.wrap)},[r.wrap]);return React.createElement(FormElement,{className:e,component:a,element:r,inputId:i},React.createElement(Input,{disabled:!a.enabled,fullWidth:!0,id:i,inputProps:{maxLength:f,onKeyDown:e=>{e.stopPropagation()},title:v,wrap:l},inputRef:e=>{null===e||e.disabled||p.renderFocus(e,m)},multiline:!0,onBlur:e=>{e=e.target.value;e!=r.value&&(r.value=e,p.post("changed",{name:m,value:e}),u(e))},onChange:e=>{e=e.target.value;e!=o&&u(e)},placeholder:c,readOnly:d,required:r.require,rows:t,value:o}))};export default TextArea;
@@ -17,5 +17,5 @@ interface TextBoxProps extends BaseFormElementProps {
17
17
  /**
18
18
  * The component for the "Text Box" and "Password Box" Form Elements.
19
19
  */
20
- declare const TextBox: ({ component, element, type }: TextBoxProps) => JSX.Element;
20
+ declare const TextBox: ({ className, component, element, type }: TextBoxProps) => JSX.Element;
21
21
  export default TextBox;
@@ -1 +1 @@
1
- import Input from"@vertigis/react-ui/Input";import*as React from"react";import{useCallback,useEffect,useState}from"react";import FormElement from"../FormElement.js";import{getKeyString}from"../keyboard.js";import{makeUniqueId}from"../utils.js";const TextBox=({component:e,element:a,type:t})=>{const[r,n]=useState(""),{host:o,name:u}=e.props;var l=`${makeUniqueId(u)}-input`,p="password"===t,i=p?void 0:a.maxLength,m=o.renderText(a.prompt),s=p?void 0:a.readOnly,c=o.renderText(a.tooltip),p=useCallback(()=>{let e="";var t=a.value;"string"==typeof t?e=t:"number"==typeof t&&(e=o.formatNumber(t,{useGrouping:!0})),a.value=e,n(e)},[a.value]);useEffect(p,[p]);const d=e=>{a.value=e,o.post("changed",{name:u,value:e})};return React.createElement(FormElement,{component:e,element:a,inputId:l},React.createElement(Input,{color:"primary",disabled:!e.enabled,fullWidth:!0,id:l,inputProps:{maxLength:i,onKeyDown:e=>{var t=getKeyString(e);return"enter"===t?(e=>{const t=e.currentTarget;var r=t.value;if(r!==a.value)return d(r),t.select(),e.stopPropagation(),e.preventDefault(),!1})(e):"escape"===t?(e=>{const t=e.currentTarget;if(t.value!==a.value)return n(a.value),t.select(),e.stopPropagation(),e.preventDefault(),!1})(e):void 0},title:c},inputRef:e=>{null===e||e.disabled||o.renderFocus(e,u)},onBlur:e=>{e=e.target.value;e!=a.value&&d(e)},onChange:e=>{e=e.target.value;e!=r&&n(e)},placeholder:m,readOnly:s,required:a.require,type:t,value:r}))};export default TextBox;
1
+ import Input from"@vertigis/react-ui/Input";import*as React from"react";import{useEffect,useState}from"react";import FormElement from"../FormElement.js";import{getKeyString}from"../keyboard.js";import{makeUniqueId}from"../utils.js";const TextBox=({className:e,component:r,element:a,type:t})=>{const[n,o]=useState(""),{host:u,name:l}=r.props;var p=`${makeUniqueId(l)}-input`,m="password"===t,i=m?void 0:a.maxLength,s=u.renderText(a.prompt),c=m?void 0:a.readOnly,m=u.renderText(a.tooltip);useEffect(()=>{let e="";var t=a.value;"string"==typeof t?e=t:"number"==typeof t&&(e=u.formatNumber(t)),a.value!==e&&(a.value=e,r.forceUpdate()),o(e)},[a.value]);const d=e=>{a.value=e,u.post("changed",{name:l,value:e}),o(e)};return React.createElement(FormElement,{className:e,component:r,element:a,inputId:p},React.createElement(Input,{disabled:!r.enabled,fullWidth:!0,id:p,inputProps:{maxLength:i,onKeyDown:e=>{var t=getKeyString(e);return"enter"===t?(e=>{const t=e.currentTarget;var r=t.value;if(r!==a.value)return d(r),t.select(),e.stopPropagation(),e.preventDefault(),!1})(e):"escape"===t?(e=>{const t=e.currentTarget;if(t.value!==a.value)return o(a.value),t.select(),e.stopPropagation(),e.preventDefault(),!1})(e):void 0},title:m},inputRef:e=>{null===e||e.disabled||u.renderFocus(e,l)},onBlur:e=>{e=e.target.value;e!=a.value&&d(e)},onChange:e=>{e=e.target.value;e!=n&&o(e)},placeholder:s,readOnly:c,required:a.require,type:t,value:n}))};export default TextBox;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { BaseFormElementProps } from "../FormElement";
3
+ /**
4
+ * The component for the "Time Picker" Form Element.
5
+ */
6
+ declare const TimePicker: ({ className, component, element }: BaseFormElementProps) => JSX.Element;
7
+ export default TimePicker;
@@ -0,0 +1 @@
1
+ import{buttonBaseClasses}from"@vertigis/react-ui/ButtonBase";import{clockClasses}from"@vertigis/react-ui/ClockPicker";import FormHelperText from"@vertigis/react-ui/FormHelperText";import FormLabelTextField from"@vertigis/react-ui/FormLabelTextField";import BaseTimePicker from"@vertigis/react-ui/TimePicker";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{hasErrorChanged,isInvalidDate,makeProperFormat,makeProperValue,updateElementValue}from"../dateUtilities.js";import{makeUniqueId}from"../utils.js";const StylableTimePicker=e=>{const{PopperProps:r={},className:t,...a}=e;return React.createElement(BaseTimePicker,{PopperProps:{...r,className:clsx(r.className,t)},...a})},StyledTimePicker=styled(StylableTimePicker)(({theme:{palette:e}})=>({[`& .${clockClasses.amButton}, .${clockClasses.pmButton}`]:{[`&.${buttonBaseClasses.focusVisible}`]:{color:e.action.active}}})),TimePicker=({className:e,component:r,element:t})=>{const[a,o]=useState(!1),[l,s]=useState(!1),[i,m]=useState(null),c=useRef(),n=useRef(!0),{host:u,name:p}=r.props;var d=useFocusCallback(r);const f=u.renderText(t.tooltip),k=makeProperFormat(t.value,t.format),P=Calendar.useNative(),v="time";useEffect(()=>{var e=makeProperValue(t.value,P);updateElementValue(t,e,v,k,P),m(e||null)},[t.value]),useEffect(()=>{n.current?n.current=!1:l||a||(isInvalidDate(i)?F({status:"invalid"}):(F(),updateElementValue(t,i,v,k,P)&&u.post("changed",{name:p,value:t.value})))},[l,a]);const F=e=>{hasErrorChanged(t,e)&&(t.error=e,r.forceUpdate())},T=`${makeUniqueId(p)}-input`,E=u.renderText(t.prompt);return React.createElement(FormElement,{className:e,component:r,element:t,inputId:T},t.error&&React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},c.current),React.createElement(StyledTimePicker,{disabled:!r.enabled,key:"date-picker",inputRef:d,onChange:e=>{m(e)},onOpen:()=>{s(!0)},onClose:()=>{s(!1)},renderInput:e=>(c.current=e.inputProps?.placeholder,e.error=!!t.error,e.inputProps={...e.inputProps,id:T,onBlur:()=>{o(!1)},onFocus:()=>{o(!0)},placeholder:E||e.inputProps?.placeholder,title:f},React.createElement(FormLabelTextField,{...e})),value:i}))};export default TimePicker;
@@ -1,3 +1,19 @@
1
+ /**
2
+ * All of the types of component used in forms within VertiGIS Studio Workflow.
3
+ * Most are containers that hold other things. In the case of "element",
4
+ * we use `FormElementTypes` to specify which type of element it represents.
5
+ */
6
+ export declare const FormComponentTypes: {
7
+ ACCORDIONGROUP: string;
8
+ BODY: string;
9
+ ELEMENT: string;
10
+ FOOTER: string;
11
+ FORM: string;
12
+ HEADER: string;
13
+ MAIN: string;
14
+ ROW: string;
15
+ SECTION: string;
16
+ };
1
17
  /**
2
18
  * All of the types of Form Element that are included in VertiGIS Studio Workflow.
3
19
  *
@@ -29,39 +45,15 @@ export declare const FormElementTypes: {
29
45
  RADIOGROUP: string;
30
46
  SCANNER: string;
31
47
  SECTION: string;
48
+ SIGNATURE: string;
32
49
  TEXT: string;
33
50
  TEXTAREA: string;
34
51
  TEXTBOX: string;
35
52
  TIMEPICKER: string;
36
53
  };
37
- export declare const CssClasses: {
38
- /**
39
- * The Form Element contains a drop down list.
40
- */
41
- DROPDOWN: string;
42
- /**
43
- * The Form Element has an error.
44
- */
45
- ERROR: string;
46
- /**
47
- * The Form Element cannot contain any more items.
48
- */
49
- FULL: string;
50
- /**
51
- * The Form Element is a Number or Number Slider.
52
- */
53
- NUMERIC: string;
54
- /**
55
- * The Form Element can only contain a single item.
56
- */
57
- SINGLE: string;
58
- /**
59
- * The Form Element allows increment by steps.
60
- */
61
- STEPPER: string;
62
- };
63
54
  /**
64
55
  * The way that Form Element Items are presented to the user.
56
+ * @public
65
57
  */
66
58
  export declare const Orientation: {
67
59
  /** The items are laid out side-by-side, in a row. */
@@ -77,13 +69,9 @@ export declare enum ScanType {
77
69
  BarCode = "barcode",
78
70
  QrCode = "qrcode"
79
71
  }
80
- /**
81
- * The default number of rows for a Text Area in the Scanner Form Element.
82
- * This is defined outside of scanner.tsx to prevent webpack from pulling @zxing/library into the designer.
83
- */
84
- export declare const SCANNER_DEFAULT_ROW_COUNT = 5;
85
72
  /**
86
73
  * The way that a Form Element's title is positioned relative to its content.
74
+ * @public
87
75
  */
88
76
  export declare const TitleLocation: {
89
77
  /** The title is shown above the element's content. */
@@ -1 +1 @@
1
- const FormElementTypes={AUTOCOMPLETE:"AutoComplete",BUTTONBAR:"ButtonBar",CHECKBOX:"CheckBox",CHECKGROUP:"CheckGroup",CUSTOM:"Custom",DATEPICKER:"DatePicker",DATERANGEPICKER:"DateRangePicker",DATETIMEPICKER:"DateTimePicker",DROPDOWNLIST:"DropDownList",FILEPICKER:"FilePicker",GEOMETRYPICKER:"GeometryPicker",HEADER:"Header",HORIZONTALRULE:"HorizontalRule",IMAGE:"Image",ITEMPICKER:"ItemPicker",LISTBOX:"ListBox",NUMBER:"Number",NUMBERRANGESLIDER:"NumberRangeSlider",NUMBERSLIDER:"NumberSlider",PASSWORDBOX:"PasswordBox",RADIOGROUP:"RadioGroup",SCANNER:"Scanner",SECTION:"Section",TEXT:"Text",TEXTAREA:"TextArea",TEXTBOX:"TextBox",TIMEPICKER:"TimePicker"},CssClasses={DROPDOWN:"dropdown",ERROR:"error",FULL:"full",NUMERIC:"Numeric",SINGLE:"single",STEPPER:"stepper"},Orientation={HORIZONTAL:"horizontal",VERTICAL:"vertical"};var ScanType;!function(e){e.BarCode="barcode",e.QrCode="qrcode"}(ScanType=ScanType||{});const SCANNER_DEFAULT_ROW_COUNT=5,TitleLocation={ABOVE:"above",BESIDE:"beside"};export{FormElementTypes,CssClasses,Orientation,ScanType,SCANNER_DEFAULT_ROW_COUNT,TitleLocation};
1
+ const FormComponentTypes={ACCORDIONGROUP:"accordionGroup",BODY:"body",ELEMENT:"element",FOOTER:"footer",FORM:"form",HEADER:"header",MAIN:"main",ROW:"row",SECTION:"section"},FormElementTypes={AUTOCOMPLETE:"AutoComplete",BUTTONBAR:"ButtonBar",CHECKBOX:"CheckBox",CHECKGROUP:"CheckGroup",CUSTOM:"Custom",DATEPICKER:"DatePicker",DATERANGEPICKER:"DateRangePicker",DATETIMEPICKER:"DateTimePicker",DROPDOWNLIST:"DropDownList",FILEPICKER:"FilePicker",GEOMETRYPICKER:"GeometryPicker",HEADER:"Header",HORIZONTALRULE:"HorizontalRule",IMAGE:"Image",ITEMPICKER:"ItemPicker",LISTBOX:"ListBox",NUMBER:"Number",NUMBERRANGESLIDER:"NumberRangeSlider",NUMBERSLIDER:"NumberSlider",PASSWORDBOX:"PasswordBox",RADIOGROUP:"RadioGroup",SCANNER:"Scanner",SECTION:"Section",SIGNATURE:"Signature",TEXT:"Text",TEXTAREA:"TextArea",TEXTBOX:"TextBox",TIMEPICKER:"TimePicker"},Orientation={HORIZONTAL:"horizontal",VERTICAL:"vertical"};var ScanType;!function(e){e.BarCode="barcode",e.QrCode="qrcode"}(ScanType=ScanType||{});const TitleLocation={ABOVE:"above",BESIDE:"beside"};export{FormComponentTypes,FormElementTypes,Orientation,ScanType,TitleLocation};
@@ -1,4 +1,14 @@
1
- import { DateRangeRef } from "./FormDefinition";
1
+ import { Calendar } from "./Calendar";
2
+ import { DateRangeRef, DateTimeFormat, DateTimeRef, DateTimeType } from "./FormDefinition";
3
+ import { defs } from "./FormHost";
4
+ import { FormPresenterHost } from "./FormPresenterHost";
5
+ /**
6
+ * Checks if a form element's value is equal to the supplied value.
7
+ * @param element A Form Element to inspect.
8
+ * @param newValue A new value for the Form Element.
9
+ * @returns True if the element's current value and the new value are equal, false otherwise.
10
+ */
11
+ export declare function areValuesEqual(element: defs.Element, newValue: DateTimeRef | DateRangeRef): boolean;
2
12
  /**
3
13
  * Checks if a given date is valid or not.
4
14
  * @param date The date object to check.
@@ -15,7 +25,7 @@ export declare function tryParseYear(year: string): string;
15
25
  * Returns undefined if input is valid.
16
26
  * @param month The string for the month.
17
27
  */
18
- export declare function tryParseMonth(month: string): string;
28
+ export declare function tryParseMonth(month: string): string | undefined;
19
29
  /**
20
30
  * Converts a given string to a corresponding two digit day. Performs basic validation.
21
31
  * Returns undefined if input is valid.
@@ -53,12 +63,6 @@ export declare function getLocaleDateFormatSeparator(): string;
53
63
  * 1 for year position in mm/yyyy/dd and 0 for year position in yyyy/mm/dd.
54
64
  */
55
65
  export declare function getLocaleDateFormatTokenPosition(token: "yyyy" | "dd" | "MM"): number;
56
- /**
57
- * Returns a string formatted using the locale date format while always using 'yyyy', 'MM' and
58
- * 'dd' token styles ie two digit months and days and four digit years.
59
- * @param date The input date
60
- */
61
- export declare function getDateAsLocaleFormattedString(date: Date): string;
62
66
  /**
63
67
  * Inputs that can be converted to a DateRangeRef. Requires two values that can be converted into
64
68
  * start and end dates
@@ -75,7 +79,7 @@ export declare type DateRangeLike = (Date | number | string)[] | {
75
79
  * DateRangeRef like object.
76
80
  * @returns A valid DateRangeRef if possible. Undefined otherwise.
77
81
  */
78
- export declare function convertToDateRangeRef(value: DateRangeLike): DateRangeRef;
82
+ export declare function convertToDateRangeRef(value: DateRangeLike): DateRangeRef | undefined;
79
83
  /**
80
84
  * This function is for the sole purpose of facilitating testing. This should not be
81
85
  * used for any other purpose. An incorrect value set here will result in incorrect
@@ -83,3 +87,31 @@ export declare function convertToDateRangeRef(value: DateRangeLike): DateRangeRe
83
87
  * @param dateFormat The date format to set in cache.
84
88
  */
85
89
  export declare function __test__setlocaleDateFormatInCache(dateFormat: string): void;
90
+ export declare function loadLocale(host: FormPresenterHost): Promise<Locale>;
91
+ declare type Partial = void | boolean | number | string | {
92
+ [name: string]: any;
93
+ format?: Partial | void;
94
+ locale?: string;
95
+ timezone?: string;
96
+ refValueType?: string;
97
+ value?: number;
98
+ };
99
+ export declare function makeProperFormat(value: Partial, format: Partial): defs.DateTimeFormat;
100
+ export declare function makeProperValue(value: number | string | Partial, calendar: Calendar): Date;
101
+ export declare function isInvalidDate(date: Date | null): boolean;
102
+ export declare function hasErrorChanged(element: defs.Element, error: defs.StatusRef | undefined): boolean;
103
+ /**
104
+ * Updates `element.value` with a new `DateTimeRef` using the supplied parameters.
105
+ *
106
+ * Care is taken to ensure we don't replace `element.value` with an identical
107
+ * `DateTimeRef` as this can lead to infinite loops in react components
108
+ * when `element.value` is a dependency of a hook such as `useEffect`.
109
+ * @param element The element to be updated.
110
+ * @param date The new `Date` value to use.
111
+ * @param refValueType The type of value that this represents.
112
+ * @param format The format of the value.
113
+ * @param calendar A calendar to use to get a text representation of the date.
114
+ * @returns True if the value was updated, false otherwise.
115
+ */
116
+ export declare function updateElementValue(element: defs.Element, date: Date | undefined | null, refValueType: DateTimeType, format: DateTimeFormat, calendar: Calendar): boolean;
117
+ export {};
@@ -1 +1 @@
1
- import{parse,isAfter}from"date-fns";import{parseLocale}from"../definition/ProgramInspector.js";const CURRENT_CENTURY_YEAR_CUTOFF=29,SUPPORTED_DATE_FNS_LOCALES=["cs","da","de","de-AT","en-AU","en-CA","en-GB","en-IN","en-NZ","en-US","en-ZA","fr","fr-CA","fr-CH","it","nb","nl","nl-BE","nn","pt","pt-BR"];let localeDateFormat="",dateFormatSeparator;function isValidDate(e){return e instanceof Date&&!isNaN(e.valueOf())}function tryParseYear(e){if(/^\d+$/.test(e)&&!(4<e.length)){for(2===e.length&&(e=`${CURRENT_CENTURY_YEAR_CUTOFF>=parseInt(e,10)?20:19}${e}`);e.length<4;)e=`0${e}`;return e}}function tryParseMonth(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var a=parseInt(e,10);if(!(a<1||12<a))return e}}function tryParseDay(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var a=parseInt(e,10);if(!(a<1||31<a))return e}}function tryParseDateText(e){if(e){const r=(e=e.replace(/\\/g,"\\\\")).match(/(\d+)/g);if(3===r?.length){var e=getLocaleDateFormatSeparator(),a=getLocaleDateFormatTokenPosition("yyyy"),t=getLocaleDateFormatTokenPosition("MM");for(let e=0;e<3;e++){switch(e){case a:r[e]=tryParseYear(r[e]);break;case t:r[e]=tryParseMonth(r[e]);break;default:r[e]=tryParseDay(r[e])}if(void 0===r[e])return}return`${r[0]}${e}${r[1]}${e}${r[2]}`}}}async function getDateFnsLocale(e){const a=[];e=parseLocale(e);if(e){e.territory&&a.push(`${e.language}-${e.territory}`),a.push(e.language);for(const t of a)if(-1!==SUPPORTED_DATE_FNS_LOCALES.indexOf(t)){let e;try{switch(t){case"cs":e=(await import("date-fns/locale/cs")).default;break;case"da":e=(await import("date-fns/locale/da")).default;break;case"de":e=(await import("date-fns/locale/de")).default;break;case"de-AT":e=(await import("date-fns/locale/de-AT")).default;break;case"en-AU":e=(await import("date-fns/locale/en-AU")).default;break;case"en-CA":e=(await import("date-fns/locale/en-CA")).default;break;case"en-GB":e=(await import("date-fns/locale/en-GB")).default;break;case"en-IN":e=(await import("date-fns/locale/en-IN")).default;break;case"en-NZ":e=(await import("date-fns/locale/en-NZ")).default;break;case"en-US":e=(await import("date-fns/locale/en-US")).default;break;case"en-ZA":e=(await import("date-fns/locale/en-ZA")).default;break;case"fr":e=(await import("date-fns/locale/fr")).default;break;case"fr-CA":e=(await import("date-fns/locale/fr-CA")).default;break;case"fr-CH":e=(await import("date-fns/locale/fr-CH")).default;break;case"it":e=(await import("date-fns/locale/it")).default;break;case"nb":e=(await import("date-fns/locale/nb")).default;break;case"nl":e=(await import("date-fns/locale/nl")).default;break;case"nl-BE":e=(await import("date-fns/locale/nl-BE")).default;break;case"nn":e=(await import("date-fns/locale/nn")).default;break;case"pt":e=(await import("date-fns/locale/pt")).default;break;case"pt-BR":e=(await import("date-fns/locale/pt-BR")).default}}catch{continue}if(e?.localize)return e}}}function getLocaleDateFormat(){if(localeDateFormat)return localeDateFormat;const e=new Date(1999,11,31,0,0,0);return localeDateFormat=e.toLocaleDateString(void 0,{year:"numeric",month:"numeric",day:"numeric"}),localeDateFormat=localeDateFormat.replace("1999","yyyy"),localeDateFormat=localeDateFormat.replace("99","yyyy"),localeDateFormat=localeDateFormat.replace("12","MM"),localeDateFormat=localeDateFormat.replace("31","dd"),localeDateFormat}function getLocaleDateFormatSeparator(){var e;return void 0===dateFormatSeparator&&(e=/[^dMy]+/.exec(getLocaleDateFormat()),dateFormatSeparator=e?e[0]:""),dateFormatSeparator}function getLocaleDateFormatTokenPosition(e){const a=getLocaleDateFormat();var t=a.indexOf("yyyy"),r=a.indexOf("MM"),o=a.indexOf("dd");return"yyyy"===e?0===t?0:r<t&&o<t?2:1:"MM"===e?0===r?0:o<r&&t<r?2:1:0===o?0:r<o&&t<o?2:1}function getDateAsLocaleFormattedString(e){if(!isValidDate(e))return"";var a=tryParseYear(e.getFullYear().toString()),t=tryParseMonth((e.getMonth()+1).toString()),e=tryParseDay(e.getDate().toString());let r=getLocaleDateFormat();return r=r.replace("yyyy",a),r=r.replace("MM",t),r=r.replace("dd",e),r}const coerceIntoDate=e=>{if(e instanceof Date&&isValidDate(e))return new Date(e.valueOf());if("string"==typeof e)if(/^\d+$/.test(e))e=Number(e);else{var a=tryParseDateText(e);if(a){var t=getLocaleDateFormat(),t=parse(a,t,0);if(isValidDate(t))return t}}if("number"==typeof e){e=new Date(e);if(isValidDate(e))return e}};function convertToDateRangeRef(e){let a=void 0,t=void 0,r=!1;Array.isArray(e)?(a=coerceIntoDate(e[0]),t=coerceIntoDate(e[1]),r=!0):"object"==typeof e&&(a=coerceIntoDate(e.startDate),t=coerceIntoDate(e.endDate));var o=!!a&&!!t;let n=o&&!isAfter(a,t);return r&&o&&!n&&(e=a,a=t,t=e,n=!0),o&&n?{refValueType:"daterange",startDate:a,endDate:t}:void 0}function __test__setlocaleDateFormatInCache(e){localeDateFormat=e,dateFormatSeparator=void 0}export{isValidDate,tryParseYear,tryParseMonth,tryParseDay,tryParseDateText,getDateFnsLocale,getLocaleDateFormat,getLocaleDateFormatSeparator,getLocaleDateFormatTokenPosition,getDateAsLocaleFormattedString,convertToDateRangeRef,__test__setlocaleDateFormatInCache};
1
+ import{parse,isAfter}from"date-fns";import{DEFAULT_LOCALE}from"../constants.js";import{parseLocale}from"../definition/ProgramInspector.js";import{Calendar}from"./Calendar.js";import{isStatus}from"./textUtilities.js";import{isDateRangeRef,isDateTimeRef}from"./utils.js";const CURRENT_CENTURY_YEAR_CUTOFF=29,SUPPORTED_DATE_FNS_LOCALES=["cs","da","de","de-AT","en-AU","en-CA","en-GB","en-IN","en-NZ","en-US","en-ZA","fr","fr-CA","fr-CH","it","nb","nl","nl-BE","nn","pt","pt-BR"];let localeDateFormat="",dateFormatSeparator;function areValuesEqual(e,a){const t=e.value;return void 0===t&&void 0===a||null===t&&null===a||(isDateTimeRef(t)&&isDateTimeRef(a)?t.display===a.display&&t.format===a.format&&t.refValueType===a.refValueType&&t.value===a.value:!(!isDateRangeRef(t)||!isDateRangeRef(a))&&(t.endDate?.valueOf()===a.endDate?.valueOf()&&t.refValueType===a.refValueType&&t.startDate?.valueOf()===a.startDate?.valueOf()))}function isValidDate(e){return e instanceof Date&&!isNaN(e.valueOf())}function tryParseYear(e){if(/^\d+$/.test(e)&&!(4<e.length)){for(2===e.length&&(e=`${CURRENT_CENTURY_YEAR_CUTOFF>=parseInt(e,10)?20:19}${e}`);e.length<4;)e=`0${e}`;return e}}function tryParseMonth(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var a=parseInt(e,10);if(!(a<1||12<a))return e}}function tryParseDay(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var a=parseInt(e,10);if(!(a<1||31<a))return e}}function tryParseDateText(e){if(e){const r=(e=e.replace(/\\/g,"\\\\")).match(/(\d+)/g);if(3===r?.length){var e=getLocaleDateFormatSeparator(),a=getLocaleDateFormatTokenPosition("yyyy"),t=getLocaleDateFormatTokenPosition("MM");for(let e=0;e<3;e++){switch(e){case a:r[e]=tryParseYear(r[e]);break;case t:r[e]=tryParseMonth(r[e]);break;default:r[e]=tryParseDay(r[e])}if(void 0===r[e])return}return`${r[0]}${e}${r[1]}${e}${r[2]}`}}}async function getDateFnsLocale(e){const a=[];e=parseLocale(e);if(e){e.territory&&a.push(`${e.language}-${e.territory}`),a.push(e.language);for(const t of a)if(-1!==SUPPORTED_DATE_FNS_LOCALES.indexOf(t)){let e;try{switch(t){case"cs":e=(await import("date-fns/locale/cs")).default;break;case"da":e=(await import("date-fns/locale/da")).default;break;case"de":e=(await import("date-fns/locale/de")).default;break;case"de-AT":e=(await import("date-fns/locale/de-AT")).default;break;case"en-AU":e=(await import("date-fns/locale/en-AU")).default;break;case"en-CA":e=(await import("date-fns/locale/en-CA")).default;break;case"en-GB":e=(await import("date-fns/locale/en-GB")).default;break;case"en-IN":e=(await import("date-fns/locale/en-IN")).default;break;case"en-NZ":e=(await import("date-fns/locale/en-NZ")).default;break;case"en-US":e=(await import("date-fns/locale/en-US")).default;break;case"en-ZA":e=(await import("date-fns/locale/en-ZA")).default;break;case"fr":e=(await import("date-fns/locale/fr")).default;break;case"fr-CA":e=(await import("date-fns/locale/fr-CA")).default;break;case"fr-CH":e=(await import("date-fns/locale/fr-CH")).default;break;case"it":e=(await import("date-fns/locale/it")).default;break;case"nb":e=(await import("date-fns/locale/nb")).default;break;case"nl":e=(await import("date-fns/locale/nl")).default;break;case"nl-BE":e=(await import("date-fns/locale/nl-BE")).default;break;case"nn":e=(await import("date-fns/locale/nn")).default;break;case"pt":e=(await import("date-fns/locale/pt")).default;break;case"pt-BR":e=(await import("date-fns/locale/pt-BR")).default}}catch{continue}if(e?.localize)return e}}}function getLocaleDateFormat(){if(localeDateFormat)return localeDateFormat;const e=new Date(1999,11,31,0,0,0);return localeDateFormat=e.toLocaleDateString(void 0,{year:"numeric",month:"numeric",day:"numeric"}),localeDateFormat=localeDateFormat.replace("1999","yyyy"),localeDateFormat=localeDateFormat.replace("99","yyyy"),localeDateFormat=localeDateFormat.replace("12","MM"),localeDateFormat=localeDateFormat.replace("31","dd"),localeDateFormat}function getLocaleDateFormatSeparator(){var e;return void 0===dateFormatSeparator&&(e=/[^dMy]+/.exec(getLocaleDateFormat()),dateFormatSeparator=e?e[0]:""),dateFormatSeparator}function getLocaleDateFormatTokenPosition(e){const a=getLocaleDateFormat();var t=a.indexOf("yyyy"),r=a.indexOf("MM"),o=a.indexOf("dd");return"yyyy"===e?0===t?0:r<t&&o<t?2:1:"MM"===e?0===r?0:o<r&&t<r?2:1:0===o?0:r<o&&t<o?2:1}const coerceIntoDate=e=>{if(e instanceof Date&&isValidDate(e))return new Date(e.valueOf());if("string"==typeof e)if(/^\d+$/.test(e))e=Number(e);else{var a=tryParseDateText(e);if(a){var t=getLocaleDateFormat(),t=parse(a,t,0);if(isValidDate(t))return t}}if("number"==typeof e){e=new Date(e);if(isValidDate(e))return e}};function convertToDateRangeRef(e){let a,t,r=!1;Array.isArray(e)?(a=coerceIntoDate(e[0]),t=coerceIntoDate(e[1]),r=!0):"object"==typeof e&&(a=coerceIntoDate(e.startDate),t=coerceIntoDate(e.endDate));var o=!!a&&!!t;let n=o&&!isAfter(a,t);return r&&o&&!n&&(e=a,a=t,t=e,n=!0),o&&n?{refValueType:"daterange",startDate:a,endDate:t}:void 0}function __test__setlocaleDateFormatInCache(e){localeDateFormat=e,dateFormatSeparator=void 0}async function loadLocale(e){e=e.deriveLocale();if("inv"!==e&&"en"!==e&&e!==DEFAULT_LOCALE)return getDateFnsLocale(e)}function makeProperFormat(e,a){if("object"==typeof e&&null!==e)switch(e.refValueType){case"date":case"time":case"datetime":a=e.format}if("object"!=typeof a)return"app"===a?a:"device";if(null===a)return"device";var t=a.locale,r=a.timezone;return"string"==typeof t&&"string"==typeof r?{locale:t,timezone:r}:"device"}function makeProperValue(e,a){if("object"==typeof e){if(null===e)return;switch(e.refValueType){case"date":case"time":case"datetime":break;default:return}e=e.value}if("number"==typeof e||"string"==typeof e){const t=a.coerceIntoValue(e);if(void 0!==t&&null!==t&&isFinite(t.valueOf()))return t}}function isInvalidDate(e){return e instanceof Date&&isNaN(e.getDate())}function hasErrorChanged(e,a){e=e.error;return(void 0!==e||void 0!==a)&&((null!==e||null!==a)&&(!isStatus(e)||!isStatus(a)||e.status!==a.status))}function updateElementValue(e,a,t,r,o){if(null!=a&&isFinite(a.valueOf())){a={refValueType:t,format:r,display:o.format(a,Calendar.fullFormat),value:a.valueOf()};if(!areValuesEqual(e,a))return e.value=a,!0}else if(void 0!==e.value)return!(e.value=void 0);return!1}export{areValuesEqual,isValidDate,tryParseYear,tryParseMonth,tryParseDay,tryParseDateText,getDateFnsLocale,getLocaleDateFormat,getLocaleDateFormatSeparator,getLocaleDateFormatTokenPosition,convertToDateRangeRef,__test__setlocaleDateFormatInCache,loadLocale,makeProperFormat,makeProperValue,isInvalidDate,hasErrorChanged,updateElementValue};
@@ -1,6 +1,13 @@
1
+ import { FormElementPropertyConstraints, PropertyConstraintsWithDefault, PropertyConstraintsWithMinimum } from "../utils";
1
2
  import * as types from "./types";
2
3
  export interface AutoComplete extends types.ElementBase, types.EditableElement, types.ElementWithItems<Item>, types.ElementWithStringLabel, types.ElementWithRequire {
3
4
  /** Indicates the current value. */
4
5
  readonly value?: any;
5
6
  }
6
7
  export declare type Item = types.ElementItemBase<any>;
8
+ interface AutoCompletePropertyConstraints extends FormElementPropertyConstraints {
9
+ delay: PropertyConstraintsWithDefault<number> & PropertyConstraintsWithMinimum<number>;
10
+ minLength: PropertyConstraintsWithDefault<number> & PropertyConstraintsWithMinimum<number>;
11
+ }
12
+ export declare const autoCompletePropertyConstraints: AutoCompletePropertyConstraints;
13
+ export {};
@@ -0,0 +1 @@
1
+ const autoCompletePropertyConstraints={delay:{default:300,minimum:1},minLength:{default:3,minimum:1}};export{autoCompletePropertyConstraints};
@@ -1,6 +1,11 @@
1
1
  import { NumberRef } from "../FormDefinition";
2
+ import { NumberFormatConfiguration } from "../numberUtilities";
2
3
  import * as types from "./types";
3
4
  export interface Number extends types.ElementBase, types.EditableElement, types.ElementWithRequire {
4
5
  /** Indicates the current value. */
5
6
  readonly value: NumberRef;
6
7
  }
8
+ /**
9
+ * Constraints that the Number element enforces on the bounds.
10
+ */
11
+ export declare const numberFormatConfiguration: Partial<NumberFormatConfiguration>;
@@ -0,0 +1 @@
1
+ const numberFormatConfiguration={lowerBound:{default:void 0},upperBound:{default:void 0}};export{numberFormatConfiguration};
@@ -1,8 +1,10 @@
1
+ import { NumberFormatConfiguration } from "../numberUtilities";
1
2
  import * as types from "./types";
2
3
  export interface NumberRangeSlider extends types.ElementBase, types.EditableElement {
3
4
  /** Indicates the current value. */
4
5
  readonly value: number[];
5
6
  }
6
- export declare const MIN_DECIMALS = 0;
7
- export declare const DEFAULT_DECIMALS = 0;
8
- export declare const DEFAULT_STEP = 0;
7
+ /**
8
+ * Constraints that the Number Range Slider enforces on the precision.
9
+ */
10
+ export declare const numberFormatConfiguration: Partial<NumberFormatConfiguration>;
@@ -1 +1 @@
1
- const MIN_DECIMALS=0,DEFAULT_DECIMALS=0,DEFAULT_STEP=0;export{MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP};
1
+ const numberFormatConfiguration={precision:{default:0,minimum:0}};export{numberFormatConfiguration};
@@ -4,6 +4,3 @@ export interface NumberSlider extends types.ElementBase, types.EditableElement {
4
4
  /** Indicates the current value. */
5
5
  readonly value: NumberRef;
6
6
  }
7
- export declare const MIN_DECIMALS = -20;
8
- export declare const DEFAULT_DECIMALS = 3;
9
- export declare const DEFAULT_STEP = 1;
@@ -1 +0,0 @@
1
- const MIN_DECIMALS=-20,DEFAULT_DECIMALS=3,DEFAULT_STEP=1;export{MIN_DECIMALS,DEFAULT_DECIMALS,DEFAULT_STEP};
@@ -1,4 +1,5 @@
1
1
  import { ScanRef } from "../FormDefinition";
2
+ import { FormElementPropertyConstraints, PropertyConstraintsWithDefault, PropertyConstraintsWithMinimum } from "../utils";
2
3
  import * as types from "./types";
3
4
  export interface Scanner extends types.ElementBase, types.EditableElement, types.ElementWithAutoActivate, types.ElementWithRequire {
4
5
  /** True if this element should support manual user entry, false otherwise. */
@@ -8,3 +9,11 @@ export interface Scanner extends types.ElementBase, types.EditableElement, types
8
9
  /** Indicates the current value. */
9
10
  readonly value: ScanRef;
10
11
  }
12
+ interface ScannerConfiguration extends FormElementPropertyConstraints {
13
+ rows: PropertyConstraintsWithDefault<number> & PropertyConstraintsWithMinimum<number>;
14
+ }
15
+ /**
16
+ * Constraints that the Scanner enforces on the rows.
17
+ */
18
+ export declare const scannerConfiguration: ScannerConfiguration;
19
+ export {};
@@ -0,0 +1 @@
1
+ const scannerConfiguration={rows:{default:5,minimum:1}};export{scannerConfiguration};
@@ -0,0 +1,16 @@
1
+ import { SignatureRef } from "../FormDefinition";
2
+ import { FormElementPropertyConstraints, PropertyConstraintsWithDefault, PropertyConstraintsWithMaximum, PropertyConstraintsWithMinimum } from "../utils";
3
+ import * as types from "./types";
4
+ export interface Signature extends types.ElementBase, types.EditableElement, types.ElementWithRequire {
5
+ /** Indicates the current value. */
6
+ readonly value: SignatureRef;
7
+ }
8
+ interface SignatureConfiguration extends FormElementPropertyConstraints {
9
+ height: PropertyConstraintsWithDefault<number>;
10
+ width: PropertyConstraintsWithDefault<number> & PropertyConstraintsWithMaximum<number> & PropertyConstraintsWithMinimum<number>;
11
+ }
12
+ /**
13
+ * Constraints that the Signature enforces on the size.
14
+ */
15
+ export declare const signatureConfiguration: SignatureConfiguration;
16
+ export {};
@@ -0,0 +1 @@
1
+ const signatureConfiguration={height:{default:160},width:{default:400,maximum:550,minimum:200}};export{signatureConfiguration};
@@ -1,6 +1,8 @@
1
1
  import * as defs from "../FormDefinition";
2
- /** We re-define Text here to hide defs.StatusRef from the end user.
3
- * It is only for internal use, and adds no value in this context.
2
+ /**
3
+ * We re-define Text here to hide defs.StatusRef from the end user.
4
+ * It is only for internal use, and adds no value in this context.
5
+ * @public
4
6
  */
5
7
  export declare type Text = string | defs.MarkdownRef;
6
8
  /** Properties common to all Elements, except the Header. */
package/forms/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /// <reference types="react" />
2
- export * from "./constants";
3
- import { Text } from "./elements/types";
2
+ export { Orientation, TitleLocation } from "./constants";
3
+ export type { Text } from "./elements/types";
4
+ /** @public */
4
5
  export interface FormElementProps<TValue = undefined> extends FormElementSettableProps<TValue> {
5
6
  /** The description of the element. */
6
7
  description?: Text;
@@ -35,12 +36,14 @@ export interface FormElementProps<TValue = undefined> extends FormElementSettabl
35
36
  */
36
37
  setValue: (value: this["value"]) => void;
37
38
  }
39
+ /** @public */
38
40
  export interface FormElementSettableProps<TValue = undefined> {
39
41
  /** The value of the element. */
40
42
  value: TValue;
41
43
  }
42
44
  declare type SettablePropsFromProps<TProps extends FormElementProps> = Omit<TProps, keyof FormElementProps> & FormElementSettableProps<TProps["value"]>;
43
45
  declare type Unionize<T> = T[keyof T];
46
+ /** @public */
44
47
  export declare type PropertyChangeEvent<TSettableProps, TSetProperty> = Unionize<{
45
48
  [K in keyof Required<TSettableProps>]: {
46
49
  properties: Readonly<TSettableProps>;
@@ -48,6 +51,7 @@ export declare type PropertyChangeEvent<TSettableProps, TSetProperty> = Unionize
48
51
  setProperty: TSetProperty;
49
52
  };
50
53
  }>;
54
+ /** @public */
51
55
  export interface FormElementRegistration<TProps extends FormElementProps<any> = FormElementProps, TSettableProps extends SettablePropsFromProps<TProps> = SettablePropsFromProps<TProps>> {
52
56
  /** The React component definition of the form element. */
53
57
  component: React.ComponentType<TProps>;
package/forms/index.js CHANGED
@@ -1 +1 @@
1
- export*from"./constants.js";
1
+ export{Orientation,TitleLocation}from"./constants.js";
@@ -5,4 +5,5 @@ export interface KeyboardEvent {
5
5
  shiftKey: boolean;
6
6
  key: string;
7
7
  }
8
+ /** @product This is intended for internal use only within VertiGIS Studio products. */
8
9
  export declare function getKeyString(event: KeyboardEvent): string;
@@ -24,7 +24,7 @@ export declare enum NumberDisplayFormat {
24
24
  */
25
25
  ACCOUNTING = "a",
26
26
  /**
27
- * A localized representation of a percentage (e.g. 0.99 -> "99%" in the
27
+ * A localized representation of a percentage (e.g. 0.99 -\> "99%" in the
28
28
  * en-US locale).
29
29
  */
30
30
  PERCENT = "p",
@@ -48,16 +48,15 @@ export declare enum NumberDisplayFormat {
48
48
  */
49
49
  export interface FormatOptions {
50
50
  /**
51
- * The locale to use when formatting the number. If not specified, the
52
- * current locale is used (see locale module).
51
+ * The locale to use when formatting the number.
53
52
  */
54
- locale?: string;
53
+ locale: string;
55
54
  /**
56
55
  * The number format. See {@link NumberFormatter.format}.
57
56
  */
58
57
  format?: NumberDisplayFormat;
59
58
  /**
60
- * See {@link NumberSettings.currency}.
59
+ * See NumberFormat.currency.
61
60
  */
62
61
  currency?: string;
63
62
  /**
@@ -65,7 +64,7 @@ export interface FormatOptions {
65
64
  */
66
65
  customDisplayFormat?: string;
67
66
  /**
68
- * See {@link NumberSettings.fractionalDigits}.
67
+ * See NumberFormat.precision.
69
68
  */
70
69
  fractionalDigits?: number;
71
70
  }