@vertigis/workflow 5.34.0 → 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.
- package/IActivityHandler.d.ts +1 -1
- package/LanguageStringUtils.js +1 -1
- package/activities/app/GetApplicationData.d.ts +2 -2
- package/activities/app/GetApplicationInfo.d.ts +2 -2
- package/activities/app/GetUserInfo.d.ts +2 -2
- package/activities/app/PublishEvent.d.ts +2 -2
- package/activities/app/RemoveApplicationData.d.ts +2 -2
- package/activities/app/RunCommand.d.ts +2 -2
- package/activities/app/RunOperation.d.ts +2 -2
- package/activities/app/SetApplicationData.d.ts +2 -2
- package/activities/arcgis/AddAttachment.d.ts +2 -2
- package/activities/arcgis/AddFeatureLayer.d.ts +2 -2
- package/activities/arcgis/AddFeatures.d.ts +2 -2
- package/activities/arcgis/AddFeatures.js +1 -1
- package/activities/arcgis/AddGraphics.d.ts +2 -2
- package/activities/arcgis/ArcadeScript.d.ts +2 -2
- package/activities/arcgis/AreaEngineTask.d.ts +2 -2
- package/activities/arcgis/BufferEngineTask.d.ts +2 -2
- package/activities/arcgis/BufferServiceTask.d.ts +2 -2
- package/activities/arcgis/CastGeometry.d.ts +2 -2
- package/activities/arcgis/ClearGraphics.d.ts +2 -2
- package/activities/arcgis/ClipEngineTask.d.ts +2 -2
- package/activities/arcgis/ClosestFacilityTask.d.ts +2 -2
- package/activities/arcgis/CompareGeometries.d.ts +2 -2
- package/activities/arcgis/CreateGraphic.d.ts +2 -2
- package/activities/arcgis/CreatePoint.d.ts +2 -2
- package/activities/arcgis/CutEngineTask.d.ts +2 -2
- package/activities/arcgis/DeleteAttachments.d.ts +2 -2
- package/activities/arcgis/DeleteFeatures.d.ts +2 -2
- package/activities/arcgis/DensifyEngineTask.d.ts +2 -2
- package/activities/arcgis/DifferenceEngineTask.d.ts +2 -2
- package/activities/arcgis/DistanceEngineTask.d.ts +2 -2
- package/activities/arcgis/DistanceServiceTask.d.ts +2 -2
- package/activities/arcgis/ExtendedSpatialReferenceInfoEngineTask.d.ts +2 -2
- package/activities/arcgis/FeatureSetFromJson.d.ts +2 -2
- package/activities/arcgis/FlipEngineTask.d.ts +2 -2
- package/activities/arcgis/FromGeoCoordinateStringServiceTask.d.ts +2 -2
- package/activities/arcgis/GeneralizeEngineTask.d.ts +2 -2
- package/activities/arcgis/GenerateArcGisToken.d.ts +2 -2
- package/activities/arcgis/GenerateWebmapForReport.d.ts +2 -2
- package/activities/arcgis/Geocode.d.ts +2 -2
- package/activities/arcgis/GeometryFromJson.d.ts +2 -2
- package/activities/arcgis/Geoprocessing.d.ts +2 -2
- package/activities/arcgis/GeoprocessingAsync.d.ts +2 -2
- package/activities/arcgis/GetAttributeValue.d.ts +2 -2
- package/activities/arcgis/GetAttributeValues.d.ts +2 -2
- package/activities/arcgis/GetCentroid.d.ts +2 -2
- package/activities/arcgis/GetCodedValueDomain.d.ts +2 -2
- package/activities/arcgis/GetCurrentPosition.d.ts +2 -2
- package/activities/arcgis/GetFeatureGeometries.d.ts +2 -2
- package/activities/arcgis/GetFeatureGeometry.d.ts +2 -2
- package/activities/arcgis/GetFeatureLayerInfo.d.ts +2 -2
- package/activities/arcgis/GetFeatureSetExtent.d.ts +2 -2
- package/activities/arcgis/GetFeatureSetObjectIds.d.ts +2 -2
- package/activities/arcgis/GetFormElementItemsFromFeatures.d.ts +2 -2
- package/activities/arcgis/GetGeometryExtent.d.ts +2 -2
- package/activities/arcgis/GetGraphics.d.ts +2 -2
- package/activities/arcgis/GetLayer.d.ts +2 -2
- package/activities/arcgis/GetLayerDefinitionExpression.d.ts +2 -2
- package/activities/arcgis/GetLayerProperty.d.ts +2 -2
- package/activities/arcgis/GetLayerVisibility.d.ts +2 -2
- package/activities/arcgis/GetMap.d.ts +2 -2
- package/activities/arcgis/GetMapScreenshot.d.ts +2 -2
- package/activities/arcgis/GetPortalUser.d.ts +2 -2
- package/activities/arcgis/GetTable.d.ts +2 -2
- package/activities/arcgis/GetViewExtent.d.ts +2 -2
- package/activities/arcgis/GetViewpoint.d.ts +2 -2
- package/activities/arcgis/IntersectEngineTask.d.ts +2 -2
- package/activities/arcgis/LabelPointsServiceTask.d.ts +2 -2
- package/activities/arcgis/LengthEngineTask.d.ts +2 -2
- package/activities/arcgis/NearestCoordinateEngineTask.d.ts +2 -2
- package/activities/arcgis/NearestVertexEngineTask.d.ts +2 -2
- package/activities/arcgis/NearestVerticesEngineTask.d.ts +2 -2
- package/activities/arcgis/OffsetEngineTask.d.ts +2 -2
- package/activities/arcgis/ProjectServiceTask.d.ts +2 -2
- package/activities/arcgis/QueryAttachmentInfos.d.ts +2 -2
- package/activities/arcgis/QueryTask.d.ts +2 -2
- package/activities/arcgis/RefreshLayer.d.ts +2 -2
- package/activities/arcgis/RegisterCorsUrl.d.ts +2 -2
- package/activities/arcgis/RelateEngineTask.d.ts +2 -2
- package/activities/arcgis/RelationServiceTask.d.ts +2 -2
- package/activities/arcgis/RelationshipQueryTask.d.ts +2 -2
- package/activities/arcgis/RemoveFeatureSetFields.d.ts +2 -2
- package/activities/arcgis/RemoveGraphics.d.ts +2 -2
- package/activities/arcgis/RemoveLayer.d.ts +2 -2
- package/activities/arcgis/RendererFromJson.d.ts +2 -2
- package/activities/arcgis/ReshapeServiceTask.d.ts +2 -2
- package/activities/arcgis/ReverseGeocode.d.ts +2 -2
- package/activities/arcgis/RotateEngineTask.d.ts +2 -2
- package/activities/arcgis/RouteTask.d.ts +2 -2
- package/activities/arcgis/RunPrint.d.ts +2 -2
- package/activities/arcgis/RunReport.d.ts +2 -2
- package/activities/arcgis/RunWorkflow.d.ts +21 -3
- package/activities/arcgis/RunWorkflow.js +1 -1
- package/activities/arcgis/SendLayerToAttributeTable.d.ts +2 -2
- package/activities/arcgis/ServiceAreaTask.d.ts +2 -2
- package/activities/arcgis/SetFeatureAttribute.d.ts +2 -2
- package/activities/arcgis/SetFeatureGeometry.d.ts +2 -2
- package/activities/arcgis/SetFeaturePopup.d.ts +2 -2
- package/activities/arcgis/SetFeatureSymbol.d.ts +2 -2
- package/activities/arcgis/SetImageryLayerOptions.d.ts +2 -2
- package/activities/arcgis/SetLayerDefinitionExpression.d.ts +2 -2
- package/activities/arcgis/SetLayerPopup.d.ts +2 -2
- package/activities/arcgis/SetLayerProperty.d.ts +2 -2
- package/activities/arcgis/SetLayerVisibility.d.ts +2 -2
- package/activities/arcgis/SetMap.d.ts +2 -2
- package/activities/arcgis/SetViewExtent.d.ts +2 -2
- package/activities/arcgis/SetViewpoint.d.ts +2 -2
- package/activities/arcgis/ShowFeaturePopup.d.ts +2 -2
- package/activities/arcgis/ShowResults.d.ts +2 -2
- package/activities/arcgis/SimplifyEngineTask.d.ts +2 -2
- package/activities/arcgis/SortFeatureSet.d.ts +2 -2
- package/activities/arcgis/SymbolFromJson.d.ts +2 -2
- package/activities/arcgis/ToGeoCoordinateStringServiceTask.d.ts +2 -2
- package/activities/arcgis/UnionEngineTask.d.ts +2 -2
- package/activities/arcgis/UnionServiceTask.d.ts +2 -2
- package/activities/arcgis/UpdateAttachment.d.ts +2 -2
- package/activities/arcgis/UpdateFeatures.d.ts +2 -2
- package/activities/arcgis/runUtils.d.ts +1 -1
- package/activities/browser/GetBrowserInfo.d.ts +2 -2
- package/activities/browser/InjectCss.d.ts +2 -2
- package/activities/core/AddItem.d.ts +2 -2
- package/activities/core/AddItems.d.ts +2 -2
- package/activities/core/Annotation.d.ts +2 -2
- package/activities/core/Cast.d.ts +2 -2
- package/activities/core/ClearItems.d.ts +2 -2
- package/activities/core/Container.d.ts +2 -2
- package/activities/core/ConvertBytesToText.d.ts +2 -2
- package/activities/core/ConvertDataTableToFeatureSet.d.ts +2 -2
- package/activities/core/ConvertTextToBytes.d.ts +2 -2
- package/activities/core/ConvertToJson.d.ts +2 -2
- package/activities/core/CreateFile.d.ts +2 -2
- package/activities/core/CreateValue.d.ts +2 -2
- package/activities/core/DecodeUriComponent.d.ts +2 -2
- package/activities/core/Delay.d.ts +2 -2
- package/activities/core/EncodeUriComponent.d.ts +2 -2
- package/activities/core/Evaluate.d.ts +2 -2
- package/activities/core/EvaluateAsync.d.ts +2 -2
- package/activities/core/Exit.d.ts +2 -2
- package/activities/core/ForEach.d.ts +2 -2
- package/activities/core/FormatDate.d.ts +5 -5
- package/activities/core/FormatDate.js +1 -1
- package/activities/core/GetBase64StringFromBytes.d.ts +2 -2
- package/activities/core/GetBase64StringFromFile.d.ts +2 -2
- package/activities/core/GetBytesFromBase64String.d.ts +2 -2
- package/activities/core/GetFirstItem.d.ts +2 -2
- package/activities/core/GetItemAtIndex.d.ts +2 -2
- package/activities/core/GetLastItem.d.ts +2 -2
- package/activities/core/GetLogLevel.d.ts +2 -2
- package/activities/core/GetTextFromFile.d.ts +2 -2
- package/activities/core/GetWorkflowInputs.d.ts +2 -2
- package/activities/core/If.d.ts +2 -2
- package/activities/core/Log.d.ts +2 -2
- package/activities/core/Loop.d.ts +2 -2
- package/activities/core/ParseJson.d.ts +2 -2
- package/activities/core/ParseNumber.d.ts +2 -2
- package/activities/core/ParseUrl.d.ts +2 -2
- package/activities/core/Placeholder.d.ts +2 -2
- package/activities/core/RegexMatches.d.ts +2 -2
- package/activities/core/RegexReplace.d.ts +2 -2
- package/activities/core/RemoveItem.d.ts +2 -2
- package/activities/core/RunActivity.d.ts +2 -2
- package/activities/core/RunSubworkflow.d.ts +2 -2
- package/activities/core/SetLogLevel.d.ts +2 -2
- package/activities/core/SetProperty.d.ts +2 -2
- package/activities/core/SetWorkflowOutput.d.ts +2 -2
- package/activities/core/Subworkflow.d.ts +2 -2
- package/activities/core/Switch.d.ts +2 -2
- package/activities/core/TextReplace.d.ts +2 -2
- package/activities/core/Throw.d.ts +2 -2
- package/activities/core/TryCatch.d.ts +2 -2
- package/activities/core/WebRequest.d.ts +2 -2
- package/activities/csv/ConvertCsvToDataTable.d.ts +2 -2
- package/activities/csv/ConvertDataTableToCsv.d.ts +2 -2
- package/activities/essentials/GetEssentialsSite.d.ts +2 -2
- package/activities/essentials/RunEssentialsWorkflow.d.ts +2 -2
- package/activities/essentials/RunEssentialsWorkflowActivity.d.ts +2 -2
- package/activities/forms/ActivateFormElement.d.ts +2 -2
- package/activities/forms/AddFormElement.d.ts +2 -2
- package/activities/forms/ClearFormElementError.d.ts +2 -2
- package/activities/forms/CompleteForm.d.ts +2 -2
- package/activities/forms/DisplayForm.d.ts +2 -2
- package/activities/forms/FilterFormElementItems.d.ts +2 -2
- package/activities/forms/FormRenderer.js +1 -1
- package/activities/forms/GetFormElementItemsFromCollection.d.ts +2 -2
- package/activities/forms/GetFormElementProperty.d.ts +2 -2
- package/activities/forms/GetFormElementValue.d.ts +2 -2
- package/activities/forms/GetFormEventData.d.ts +2 -2
- package/activities/forms/HideFormElement.d.ts +2 -2
- package/activities/forms/PropagateFormEvent.d.ts +2 -2
- package/activities/forms/SetCurrentFormElementItem.d.ts +2 -2
- package/activities/forms/SetFormElementError.d.ts +2 -2
- package/activities/forms/SetFormElementEvent.d.ts +2 -2
- package/activities/forms/SetFormElementItemProperty.d.ts +2 -2
- package/activities/forms/SetFormElementItems.d.ts +2 -2
- package/activities/forms/SetFormElementProperty.d.ts +2 -2
- package/activities/forms/ShowFormElement.d.ts +2 -2
- package/activities/image/GetImageMetadata.d.ts +2 -2
- package/activities/image/RotateImage.d.ts +2 -2
- package/activities/math/Abs.d.ts +2 -2
- package/activities/math/Cos.d.ts +2 -2
- package/activities/math/Max.d.ts +2 -2
- package/activities/math/Min.d.ts +2 -2
- package/activities/math/Pow.d.ts +2 -2
- package/activities/math/Random.d.ts +2 -2
- package/activities/math/Sin.d.ts +2 -2
- package/activities/math/Sqrt.d.ts +2 -2
- package/activities/math/Tan.d.ts +2 -2
- package/activities/pdf/AddGeoreferenceToPdf.d.ts +2 -2
- package/activities/pdf/ExtractPdfPages.d.ts +2 -2
- package/activities/pdf/MergePdfs.d.ts +2 -2
- package/activities/server/CopyFile.d.ts +2 -2
- package/activities/server/CreateDirectory.d.ts +2 -2
- package/activities/server/CreateDownload.d.ts +2 -2
- package/activities/server/CreateEmailAttachment.d.ts +2 -2
- package/activities/server/CreateZipFromDirectory.d.ts +2 -2
- package/activities/server/DeleteDirectory.d.ts +2 -2
- package/activities/server/DeleteFile.d.ts +2 -2
- package/activities/server/DirectoryExists.d.ts +2 -2
- package/activities/server/ExtractZipToDirectory.d.ts +2 -2
- package/activities/server/FileExists.d.ts +2 -2
- package/activities/server/GetDirectoriesInDirectory.d.ts +2 -2
- package/activities/server/GetFilesInDirectory.d.ts +2 -2
- package/activities/server/MoveFile.d.ts +2 -2
- package/activities/server/ReadFile.d.ts +2 -2
- package/activities/server/ReadFileBytes.d.ts +2 -2
- package/activities/server/RunApplication.d.ts +2 -2
- package/activities/server/RunPython.d.ts +2 -2
- package/activities/server/SendEmail.d.ts +2 -2
- package/activities/server/SqlNonQuery.d.ts +2 -2
- package/activities/server/SqlQuery.d.ts +2 -2
- package/activities/server/SqlQueryUnsafe.d.ts +2 -2
- package/activities/server/WriteFile.d.ts +2 -2
- package/activities/server/WriteFileBytes.d.ts +2 -2
- package/activities/ui/Alert.d.ts +2 -2
- package/activities/ui/Confirm.d.ts +2 -2
- package/activities/ui/Prompt.d.ts +2 -2
- package/activities/wab/OpenWidget.d.ts +2 -2
- package/activities/wab/PublishWidgetData.d.ts +2 -2
- package/activities/xlsx/ConvertDataTableToXlsx.d.ts +2 -2
- package/activities/xlsx/ConvertXlsxToDataSet.d.ts +2 -2
- package/execution/ProgramRunner.js +1 -1
- package/forms/FormDefinition.d.ts +9 -4
- package/forms/FormHost.d.ts +9 -2
- package/forms/FormHost.js +1 -1
- package/forms/FormPresenterHost.d.ts +18 -5
- package/forms/common.js +1 -1
- package/forms/components/AutoComplete.js +1 -1
- package/forms/components/ButtonBar.js +1 -1
- package/forms/components/CheckGroup.js +1 -1
- package/forms/components/DateRangePicker.js +1 -1
- package/forms/components/DateTimePicker.js +1 -1
- package/forms/components/FormLabelNumberField.d.ts +15 -0
- package/forms/components/FormLabelNumberField.js +1 -0
- package/forms/components/ItemPicker.js +1 -1
- package/forms/components/ListBox.js +1 -1
- package/forms/components/Number.js +1 -1
- package/forms/components/NumberRangeSlider.js +1 -1
- package/forms/components/NumberSlider.js +1 -1
- package/forms/components/Section.js +1 -1
- package/forms/components/Signature.d.ts +11 -0
- package/forms/components/Signature.js +1 -0
- package/forms/components/SignatureDialog.d.ts +22 -0
- package/forms/components/SignatureDialog.js +1 -0
- package/forms/components/TextArea.js +1 -1
- package/forms/components/TextBox.js +1 -1
- package/forms/components/TimePicker.js +1 -1
- package/forms/constants.d.ts +17 -0
- package/forms/constants.js +1 -1
- package/forms/elements/Signature.d.ts +16 -0
- package/forms/elements/Signature.js +1 -0
- package/forms/presenter.js +1 -1
- package/forms/renderers.d.ts +3 -35
- package/forms/renderers.js +1 -1
- package/forms/utils.d.ts +31 -2
- package/forms/utils.js +1 -1
- package/libs/version.d.ts +1 -1
- package/libs/version.js +1 -1
- package/package.json +4 -3
- package/app/ActivityPackUtils.d.ts +0 -10
- package/app/ActivityPackUtils.js +0 -1
- package/app/AppActivity.d.ts +0 -82
- package/app/AppActivity.js +0 -1
- package/app/RegisterCustomFormElementBase.d.ts +0 -34
- package/app/RegisterCustomFormElementBase.js +0 -1
|
@@ -4,7 +4,7 @@ export interface CopyFileInputs {
|
|
|
4
4
|
destinationPath: string;
|
|
5
5
|
}
|
|
6
6
|
export declare class CopyFile implements IActivityHandler {
|
|
7
|
-
static action:
|
|
8
|
-
static suite:
|
|
7
|
+
static readonly action = "gcx:wf:server::CopyFile";
|
|
8
|
+
static readonly suite = "gcx:wf:builtin";
|
|
9
9
|
execute(inputs: CopyFileInputs): EmptyOutputs;
|
|
10
10
|
}
|
|
@@ -3,7 +3,7 @@ export interface CreateDirectoryInputs {
|
|
|
3
3
|
path: string;
|
|
4
4
|
}
|
|
5
5
|
export declare class CreateDirectory implements IActivityHandler {
|
|
6
|
-
static action:
|
|
7
|
-
static suite:
|
|
6
|
+
static readonly action = "gcx:wf:server::CreateDirectory";
|
|
7
|
+
static readonly suite = "gcx:wf:builtin";
|
|
8
8
|
execute(inputs: CreateDirectoryInputs): EmptyOutputs;
|
|
9
9
|
}
|
|
@@ -12,7 +12,7 @@ export interface CreateDownloadOutputs {
|
|
|
12
12
|
url: string;
|
|
13
13
|
}
|
|
14
14
|
export declare class CreateDownload implements IActivityHandler {
|
|
15
|
-
static action:
|
|
16
|
-
static suite:
|
|
15
|
+
static readonly action = "gcx:wf:server::CreateDownload";
|
|
16
|
+
static readonly suite = "gcx:wf:builtin";
|
|
17
17
|
execute(inputs: CreateDownloadInputs): CreateDownloadOutputs;
|
|
18
18
|
}
|
|
@@ -10,7 +10,7 @@ export interface CreateEmailAttachmentOutputs {
|
|
|
10
10
|
result: object;
|
|
11
11
|
}
|
|
12
12
|
export declare class CreateEmailAttachment implements IActivityHandler {
|
|
13
|
-
static action:
|
|
14
|
-
static suite:
|
|
13
|
+
static readonly action = "gcx:wf:server::CreateEmailAttachment";
|
|
14
|
+
static readonly suite = "gcx:wf:builtin";
|
|
15
15
|
execute(inputs: CreateEmailAttachmentInputs): CreateEmailAttachmentOutputs;
|
|
16
16
|
}
|
|
@@ -6,7 +6,7 @@ export interface CreateZipFromDirectoryInputs {
|
|
|
6
6
|
includeSourceDirectoryName?: boolean;
|
|
7
7
|
}
|
|
8
8
|
export declare class CreateZipFromDirectory implements IActivityHandler {
|
|
9
|
-
static action:
|
|
10
|
-
static suite:
|
|
9
|
+
static readonly action = "gcx:wf:server::CreateZipFromDirectory";
|
|
10
|
+
static readonly suite = "gcx:wf:builtin";
|
|
11
11
|
execute(inputs: CreateZipFromDirectoryInputs): EmptyOutputs;
|
|
12
12
|
}
|
|
@@ -3,7 +3,7 @@ export interface DeleteDirectoryInputs {
|
|
|
3
3
|
path: string;
|
|
4
4
|
}
|
|
5
5
|
export declare class DeleteDirectory implements IActivityHandler {
|
|
6
|
-
static action:
|
|
7
|
-
static suite:
|
|
6
|
+
static readonly action = "gcx:wf:server::DeleteDirectory";
|
|
7
|
+
static readonly suite = "gcx:wf:builtin";
|
|
8
8
|
execute(inputs: DeleteDirectoryInputs): EmptyOutputs;
|
|
9
9
|
}
|
|
@@ -3,7 +3,7 @@ export interface DeleteFileInputs {
|
|
|
3
3
|
path: string;
|
|
4
4
|
}
|
|
5
5
|
export declare class DeleteFile implements IActivityHandler {
|
|
6
|
-
static action:
|
|
7
|
-
static suite:
|
|
6
|
+
static readonly action = "gcx:wf:server::DeleteFile";
|
|
7
|
+
static readonly suite = "gcx:wf:builtin";
|
|
8
8
|
execute(inputs: DeleteFileInputs): EmptyOutputs;
|
|
9
9
|
}
|
|
@@ -7,7 +7,7 @@ export interface DirectoryExistsOutputs {
|
|
|
7
7
|
exists: boolean;
|
|
8
8
|
}
|
|
9
9
|
export declare class DirectoryExists implements IActivityHandler {
|
|
10
|
-
static action:
|
|
11
|
-
static suite:
|
|
10
|
+
static readonly action = "gcx:wf:server::DirectoryExists";
|
|
11
|
+
static readonly suite = "gcx:wf:builtin";
|
|
12
12
|
execute(inputs: DirectoryExistsInputs): DirectoryExistsOutputs;
|
|
13
13
|
}
|
|
@@ -5,7 +5,7 @@ export interface ExtractZipToDirectoryInputs {
|
|
|
5
5
|
destinationDirectory: string;
|
|
6
6
|
}
|
|
7
7
|
export declare class ExtractZipToDirectory implements IActivityHandler {
|
|
8
|
-
static action:
|
|
9
|
-
static suite:
|
|
8
|
+
static readonly action = "gcx:wf:server::ExtractZipToDirectory";
|
|
9
|
+
static readonly suite = "gcx:wf:builtin";
|
|
10
10
|
execute(inputs: ExtractZipToDirectoryInputs): EmptyOutputs;
|
|
11
11
|
}
|
|
@@ -7,7 +7,7 @@ export interface FileExistsOutputs {
|
|
|
7
7
|
exists: boolean;
|
|
8
8
|
}
|
|
9
9
|
export declare class FileExists implements IActivityHandler {
|
|
10
|
-
static action:
|
|
11
|
-
static suite:
|
|
10
|
+
static readonly action = "gcx:wf:server::FileExists";
|
|
11
|
+
static readonly suite = "gcx:wf:builtin";
|
|
12
12
|
execute(inputs: FileExistsInputs): FileExistsOutputs;
|
|
13
13
|
}
|
|
@@ -8,7 +8,7 @@ export interface GetDirectoriesInDirectoryOutputs {
|
|
|
8
8
|
directories: string[];
|
|
9
9
|
}
|
|
10
10
|
export declare class GetDirectoriesInDirectory implements IActivityHandler {
|
|
11
|
-
static action:
|
|
12
|
-
static suite:
|
|
11
|
+
static readonly action = "gcx:wf:server::GetDirectoriesInDirectory";
|
|
12
|
+
static readonly suite = "gcx:wf:builtin";
|
|
13
13
|
execute(inputs: GetDirectoriesInDirectoryInputs): GetDirectoriesInDirectoryOutputs;
|
|
14
14
|
}
|
|
@@ -8,7 +8,7 @@ export interface GetFilesInDirectoryOutputs {
|
|
|
8
8
|
files: string[];
|
|
9
9
|
}
|
|
10
10
|
export declare class GetFilesInDirectory implements IActivityHandler {
|
|
11
|
-
static action:
|
|
12
|
-
static suite:
|
|
11
|
+
static readonly action = "gcx:wf:server::GetFilesInDirectory";
|
|
12
|
+
static readonly suite = "gcx:wf:builtin";
|
|
13
13
|
execute(inputs: GetFilesInDirectoryInputs): GetFilesInDirectoryOutputs;
|
|
14
14
|
}
|
|
@@ -4,7 +4,7 @@ export interface MoveFileInputs {
|
|
|
4
4
|
destinationPath: string;
|
|
5
5
|
}
|
|
6
6
|
export declare class MoveFile implements IActivityHandler {
|
|
7
|
-
static action:
|
|
8
|
-
static suite:
|
|
7
|
+
static readonly action = "gcx:wf:server::MoveFile";
|
|
8
|
+
static readonly suite = "gcx:wf:builtin";
|
|
9
9
|
execute(inputs: MoveFileInputs): EmptyOutputs;
|
|
10
10
|
}
|
|
@@ -8,7 +8,7 @@ export interface ReadFileOutputs {
|
|
|
8
8
|
text: string;
|
|
9
9
|
}
|
|
10
10
|
export declare class ReadFile implements IActivityHandler {
|
|
11
|
-
static action:
|
|
12
|
-
static suite:
|
|
11
|
+
static readonly action = "gcx:wf:server::ReadFile";
|
|
12
|
+
static readonly suite = "gcx:wf:builtin";
|
|
13
13
|
execute(inputs: ReadFileInputs): ReadFileOutputs;
|
|
14
14
|
}
|
|
@@ -7,7 +7,7 @@ export interface ReadFileBytesOutputs {
|
|
|
7
7
|
bytes: number[];
|
|
8
8
|
}
|
|
9
9
|
export declare class ReadFileBytes implements IActivityHandler {
|
|
10
|
-
static action:
|
|
11
|
-
static suite:
|
|
10
|
+
static readonly action = "gcx:wf:server::ReadFileBytes";
|
|
11
|
+
static readonly suite = "gcx:wf:builtin";
|
|
12
12
|
execute(inputs: ReadFileBytesInputs): ReadFileBytesOutputs;
|
|
13
13
|
}
|
|
@@ -16,7 +16,7 @@ export interface RunApplicationOutputs {
|
|
|
16
16
|
errorData: string;
|
|
17
17
|
}
|
|
18
18
|
export declare class RunApplication implements IActivityHandler {
|
|
19
|
-
static action:
|
|
20
|
-
static suite:
|
|
19
|
+
static readonly action = "gcx:wf:server::RunApplication";
|
|
20
|
+
static readonly suite = "gcx:wf:builtin";
|
|
21
21
|
execute(inputs: RunApplicationInputs): RunApplicationOutputs;
|
|
22
22
|
}
|
|
@@ -17,7 +17,7 @@ export interface RunPythonOutputs {
|
|
|
17
17
|
exitCode: number;
|
|
18
18
|
}
|
|
19
19
|
export declare class RunPython implements IActivityHandler {
|
|
20
|
-
static action:
|
|
21
|
-
static suite:
|
|
20
|
+
static readonly action = "gcx:wf:server::RunPython";
|
|
21
|
+
static readonly suite = "gcx:wf:builtin";
|
|
22
22
|
execute(inputs: RunPythonInputs): RunPythonOutputs;
|
|
23
23
|
}
|
|
@@ -10,7 +10,7 @@ export interface SendEmailInputs {
|
|
|
10
10
|
isBodyHtml: boolean;
|
|
11
11
|
}
|
|
12
12
|
export declare class SendEmail implements IActivityHandler {
|
|
13
|
-
static action:
|
|
14
|
-
static suite:
|
|
13
|
+
static readonly action = "gcx:wf:server::SendEmail";
|
|
14
|
+
static readonly suite = "gcx:wf:builtin";
|
|
15
15
|
execute(inputs: SendEmailInputs): EmptyOutputs;
|
|
16
16
|
}
|
|
@@ -12,7 +12,7 @@ export interface SqlNonQueryOutputs {
|
|
|
12
12
|
rowsAffected: number;
|
|
13
13
|
}
|
|
14
14
|
export declare class SqlNonQuery implements IActivityHandler {
|
|
15
|
-
static action:
|
|
16
|
-
static suite:
|
|
15
|
+
static readonly action = "gcx:wf:server::SqlNonQuery";
|
|
16
|
+
static readonly suite = "gcx:wf:builtin";
|
|
17
17
|
execute(inputs: SqlNonQueryInputs): SqlNonQueryOutputs;
|
|
18
18
|
}
|
|
@@ -12,7 +12,7 @@ export interface SqlQueryOutputs {
|
|
|
12
12
|
dataTable: object;
|
|
13
13
|
}
|
|
14
14
|
export declare class SqlQuery implements IActivityHandler {
|
|
15
|
-
static action:
|
|
16
|
-
static suite:
|
|
15
|
+
static readonly action = "gcx:wf:server::SqlQuery";
|
|
16
|
+
static readonly suite = "gcx:wf:builtin";
|
|
17
17
|
execute(inputs: SqlQueryInputs): SqlQueryOutputs;
|
|
18
18
|
}
|
|
@@ -12,7 +12,7 @@ export interface SqlQueryUnsafeOutputs {
|
|
|
12
12
|
dataTable: object;
|
|
13
13
|
}
|
|
14
14
|
export declare class SqlQueryUnsafe implements IActivityHandler {
|
|
15
|
-
static action:
|
|
16
|
-
static suite:
|
|
15
|
+
static readonly action = "gcx:wf:server::SqlQueryUnsafe";
|
|
16
|
+
static readonly suite = "gcx:wf:builtin";
|
|
17
17
|
execute(inputs: SqlQueryUnsafeInputs): SqlQueryUnsafeOutputs;
|
|
18
18
|
}
|
|
@@ -5,7 +5,7 @@ export interface WriteFileInputs {
|
|
|
5
5
|
encoding: "ASCII" | "Unicode" | "utf-7" | "utf-8" | "utf-16" | "utf-16BE" | "utf-32" | string;
|
|
6
6
|
}
|
|
7
7
|
export declare class WriteFile implements IActivityHandler {
|
|
8
|
-
static action:
|
|
9
|
-
static suite:
|
|
8
|
+
static readonly action = "gcx:wf:server::WriteFile";
|
|
9
|
+
static readonly suite = "gcx:wf:builtin";
|
|
10
10
|
execute(inputs: WriteFileInputs): EmptyOutputs;
|
|
11
11
|
}
|
|
@@ -4,7 +4,7 @@ export interface WriteFileBytesInputs {
|
|
|
4
4
|
bytes: number[];
|
|
5
5
|
}
|
|
6
6
|
export declare class WriteFileBytes implements IActivityHandler {
|
|
7
|
-
static action:
|
|
8
|
-
static suite:
|
|
7
|
+
static readonly action = "gcx:wf:server::WriteFileBytes";
|
|
8
|
+
static readonly suite = "gcx:wf:builtin";
|
|
9
9
|
execute(inputs: WriteFileBytesInputs): EmptyOutputs;
|
|
10
10
|
}
|
package/activities/ui/Alert.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface AlertInputs {
|
|
|
11
11
|
}
|
|
12
12
|
/** Presents an alert dialog to the user. */
|
|
13
13
|
export declare class Alert implements IActivityHandler {
|
|
14
|
-
static action:
|
|
15
|
-
static suite:
|
|
14
|
+
static readonly action = "gcx:wf:ui::Alert";
|
|
15
|
+
static readonly suite = "gcx:wf:builtin";
|
|
16
16
|
execute(inputs: AlertInputs): PromiseLike<EmptyOutputs>;
|
|
17
17
|
}
|
|
@@ -18,7 +18,7 @@ export interface ConfirmOutputs {
|
|
|
18
18
|
}
|
|
19
19
|
/** Presents a confirmation dialog to the user. */
|
|
20
20
|
export declare class Confirm implements IActivityHandler {
|
|
21
|
-
static action:
|
|
22
|
-
static suite:
|
|
21
|
+
static readonly action = "gcx:wf:ui::Confirm";
|
|
22
|
+
static readonly suite = "gcx:wf:builtin";
|
|
23
23
|
execute(inputs: ConfirmInputs): PromiseLike<ConfirmOutputs>;
|
|
24
24
|
}
|
|
@@ -20,7 +20,7 @@ export interface PromptOutputs {
|
|
|
20
20
|
}
|
|
21
21
|
/** Presents a text prompt dialog to the user. */
|
|
22
22
|
export declare class Prompt implements IActivityHandler {
|
|
23
|
-
static action:
|
|
24
|
-
static suite:
|
|
23
|
+
static readonly action = "gcx:wf:ui::Prompt";
|
|
24
|
+
static readonly suite = "gcx:wf:builtin";
|
|
25
25
|
execute(inputs: PromptInputs): PromiseLike<PromptOutputs>;
|
|
26
26
|
}
|
|
@@ -4,7 +4,7 @@ export interface OpenWidgetInputs {
|
|
|
4
4
|
widgetId: string;
|
|
5
5
|
}
|
|
6
6
|
export declare class OpenWidget implements IActivityHandler {
|
|
7
|
-
static action:
|
|
8
|
-
static suite:
|
|
7
|
+
static readonly action = "gcx:wf:wab::OpenWidget";
|
|
8
|
+
static readonly suite = "gcx:wf:builtin";
|
|
9
9
|
execute(inputs: OpenWidgetInputs, context: IActivityContext): EmptyOutputs;
|
|
10
10
|
}
|
|
@@ -5,7 +5,7 @@ export interface PublishWidgetDataInputs {
|
|
|
5
5
|
keepHistory?: boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare class PublishWidgetData implements IActivityHandler {
|
|
8
|
-
static action:
|
|
9
|
-
static suite:
|
|
8
|
+
static readonly action = "gcx:wf:wab::PublishWidgetData";
|
|
9
|
+
static readonly suite = "gcx:wf:builtin";
|
|
10
10
|
execute(inputs: PublishWidgetDataInputs, context: IActivityContext): EmptyOutputs;
|
|
11
11
|
}
|
|
@@ -9,7 +9,7 @@ export interface ConvertDataTableToXlsxOutputs {
|
|
|
9
9
|
result: number[];
|
|
10
10
|
}
|
|
11
11
|
export declare class ConvertDataTableToXlsx implements IActivityHandler {
|
|
12
|
-
static action:
|
|
13
|
-
static suite:
|
|
12
|
+
static readonly action = "gcx:wf:xlsx::ConvertDataTableToXlsx";
|
|
13
|
+
static readonly suite = "gcx:wf:builtin";
|
|
14
14
|
execute(inputs: ConvertDataTableToXlsxInputs): ConvertDataTableToXlsxOutputs;
|
|
15
15
|
}
|
|
@@ -9,7 +9,7 @@ export interface ConvertXlsxToDataSetOutputs {
|
|
|
9
9
|
result: object;
|
|
10
10
|
}
|
|
11
11
|
export declare class ConvertXlsxToDataSet implements IActivityHandler {
|
|
12
|
-
static action:
|
|
13
|
-
static suite:
|
|
12
|
+
static readonly action = "gcx:wf:xlsx::ConvertXlsxToDataSet";
|
|
13
|
+
static readonly suite = "gcx:wf:builtin";
|
|
14
14
|
execute(inputs: ConvertXlsxToDataSetInputs): ConvertXlsxToDataSetOutputs;
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Bluebird from"bluebird";import{ActivityActivationError,ActivityBindingError,ActivityCancellationError,ActivityError,AggregateActivityError,EngineRuntimeError,ExpressionAccessorError,ExpressionEvaluationError,ExpressionSyntaxError,GenericActivityError,ProgramStartError}from"../Errors.js";import{query}from"../Hooks.js";import{Task}from"../Task.js";function isExpression(t){var e=t.type;return null==e&&"string"==typeof t.code}function createLinkedCancellationToken(t,e){const r=Task.race([new Task(e),t]),i=new AbortController;return r.signal=i.signal,r.finally(()=>i.abort()),r}function isInvalidHandler(t){return null==t||"function"!=typeof t.execute}function isLiteral(t){switch(typeof t){case"boolean":case"number":case"string":return!0}return!1}let evaluators={};function clearExpressionCache(){evaluators={}}const reservedIdentifiers=["resources","values","Date","Math","Object","parseInt","parseFloat","decodeURIComponent","encodeURIComponent"];function isAccessor(e){return!("string"!=typeof e||e.length<1)&&(!(0<=e.indexOf("."))&&!reservedIdentifiers.some(t=>t===e))}function compileExpression(t,e){var r=t.code;let i=evaluators[r];if(void 0===i){const s=[],o={};s.push('"use strict"; ');var n=t.accessors;if(Array.isArray(n))for(const a of n)isAccessor(a)&&!o[a]&&(s.push(`var ${a} = this.${a};`),o[a]=!0);s.push("return "),s.push(r),s.push(";"),i=evaluators[r]=new Function("resources","values",s.join(""))}return function(){return i.call(this,e,t.values)}}function echo(t){return t}const echoHandler={execute:echo};function combine(t,e){return{...t||{},...e||{}}}function isError(t){return void 0!==t}function filterErrors(t){return t.filter(isError)}function reduceErrors(t){return t.isPending()?t.then(filterErrors):t.isFulfilled()?Bluebird.resolve(filterErrors(t.value())):t}let nextSymbol,nextSymbolPrefix;function newSymbol(){return void 0!==nextSymbol&&1073741824<=nextSymbol&&(nextSymbol=void 0),void 0===nextSymbol&&(nextSymbol=0,nextSymbolPrefix=(new Date).valueOf()+":"),nextSymbolPrefix+nextSymbol++}const immediate=Bluebird.resolve(void 0);let guard=!0;class Proxy{constructor(t){Object.defineProperty(this,"target",{get(){if(!1===guard)return guard=!0,t}})}}class AmbientStateProxy extends Proxy{get outputs(){return guard=!1,this.target.outputs}set outputs(t){guard=!1,this.target.outputs=t}get error(){return guard=!1,this.target.error}set error(t){guard=!1,this.target.error=t}get completion(){return guard=!1,this.target.completion}complete(t){return guard=!1,this.target.complete(t)}reject(t){return guard=!1,this.target.reject(t)}get environment(){return guard=!1,this.target.environment}get inputs(){return guard=!1,this.target.inputs}get activityContexts(){return guard=!1,this.target.activityContexts}get locale(){return guard=!1,this.target.locale}get logLevel(){return guard=!1,this.target.logLevel}set logLevel(t){guard=!1,this.target.logLevel=t}get resources(){return guard=!1,this.target.resources}get trivia(){return guard=!1,this.target.trivia}}class ActivityContextProxy extends Proxy{get luid(){return guard=!1,this.target.luid}get ambient(){return guard=!1,this.target.ambient.proxy}get action(){return guard=!1,this.target.action}get branch(){return guard=!1,this.target.branch}get cancellationToken(){return guard=!1,this.target.cancellationToken}get passes(){return guard=!1,this.target.passes}get caught(){return guard=!1,this.target.caught}call(t){return guard=!1,this.target.call(t)}fork(t){return guard=!1,this.target.fork(t)}jump(t){return guard=!1,this.target.jump(t)}hasBranch(t){return guard=!1,this.target.hasBranch(t)}get state(){return guard=!1,this.target.state}registerForErrors(){return guard=!1,this.target.registerForErrors()}persist(t){return guard=!1,this.target.persist(t)}goto(){return guard=!1,this.target.goto()}}class AmbientState{constructor(){this.frame=new MonikerFrame,this.stack=[],this.handlers={}}get activityContexts(){const t={};for(const e of[...this.stack,this.frame])for(const r in e.state)"$$"===r.substring(0,2)&&(t[r]=e.state[r]);return t}break(){this.halted=!0}continue(){this.halted=!1,void 0!==this.scheduler&&!this.scheduler.isFulfilled()||(this.scheduler=immediate.then(t=>{this.execute()}))}execute(t){if(this.inline)return!1;this.inline=!0;try{void 0!==t&&t();const e=this.completion;for(;e.isPending();){if(this.halted)return!1;const r=this.frame.current.execute();if(r.isPending())break;r.isRejected()&&this.fail(r.reason())}}catch(t){this.fail(t)}finally{this.inline=!1}return!0}complete(t){this.completion.isPending()&&(this.cancellationResolve(),this.resolveCompletion(t||this.outputs))}reject(t){this.completion.isPending()&&(this.cancellationResolve(),this.rejectCompletion(t||this.error))}fail(t){this.completion.isPending()&&(this.cancellationResolve(),this.rejectCompletion(new EngineRuntimeError(t)))}cancel(){this.completion.isPending()&&(this.cancellationResolve(),this.rejectCompletion(new ActivityCancellationError))}push(){const t=this.stack;t.push(this.frame);const e=this.frame=new MonikerFrame;return e.index=t.length,e}pop(t){const e=this.frame;if(void 0!==e){e.current=void 0;const i=e.cancellationResolve;void 0!==i&&i()}var r=this.frame=this.stack.pop();return void 0===r&&(void 0!==t?this.reject(t):this.complete()),r}call(){var t=this.frame;const e=this.push();e.cancellationToken=t.cancellationToken,e.state=t.state}fork(){const e=this.push();e.cancellationToken=createLinkedCancellationToken(this.cancellationToken,t=>e.cancellationResolve=t),e.state={}}bubble(t){let e=this.pop(t);for(;void 0!==e&&!e.current.registeredForErrors;)e=this.pop(t);var r;void 0!==e&&(r=e.current,this.start(r.activity,r,t))}next(){var t=this.queue.pop();void 0!==t?this.attempt(t):void 0!==(t=this.pop())&&(t=t.current,this.start(t.activity,t))}prepare(e,t,r){const i=e.frame=this.frame;if((i.current=e).luid=this.id+":"+e.activity.id,e.action=e.activity.action,e.ambient=this,e.id=newSymbol(),e.caught=r,e.cancellationToken=createLinkedCancellationToken(i.cancellationToken,t=>e.cancellationResolve=t),e.proxy=new ActivityContextProxy(e),void 0!==t){const n=e.recent=t.recent||(t.recent={});t=n.context||t;(n.context=e).passes=t.passes+1,e.stateToPersist=e.state=t.stateToPersist}else e.passes=0}attempt(t){const e=new TransitionContext;e.activity=t,e.branch=t.branch,this.prepare(e)}start(t,e,r){const i=new(t.async?AsyncContext:StepContext);i.activity=t,i.monikers.push("$"),this.prepare(i,e,r)}enqueue(t,e){const r=this.inspector;this.queue=r.relate(t,e).list(),this.next()}goto(t){for(var e=this.stack,r=t.index;e[r]===t;)this.pop();return t===this.frame}}class MonikerFrame{}class PromiseWrapper{}class ActivityContext{constructor(){this.inputs={},this.extras=[],this.monikers=[]}registerForErrors(){this.registeredForErrors=!0}persist(t){this.stateToPersist=t}call(t){this.callBranch=!0,this.forkBranch=!1,this.jumpBranch=t}fork(t){this.callBranch=!1,this.forkBranch=!0,this.jumpBranch=t}jump(t){this.callBranch=!1,this.forkBranch=!1,this.jumpBranch=t}hasBranch(t){var e=this.activity;const r=this.ambient.inspector;return r.isStep(e)&&void 0!==r.relate(e,t).peek()}emitExpressionEvaluationError(t,e){var r=this.activity.id,i=this.activity.inputs[t];return new ExpressionEvaluationError(r,t,i.source||i.code,e)}emitExpressionSyntaxError(t,e){var r=this.activity.id,i=this.activity.inputs[t];return new ExpressionSyntaxError(r,t,i.source||i.code,e)}emitExpressionAccessorError(t,e,r){return new ExpressionAccessorError(this.activity.id,t,e,r)}emitActivityBindingError(t){var e=this.activity;return new ActivityBindingError(e.id,e.action,t)}emitActivityActivationError(t,e){return new ActivityActivationError(this.activity.id,t,e)}emitActivityError(t){if(t instanceof ActivityError)return t;var e=this.activity;const r=new GenericActivityError(void 0,t?.message);return r.activityId=e.id,r.error=t,r}executeHandlerInline(e){if(0<e.length||this.cancellationToken.isFulfilled())return e;const r=this.extras;for(let t=0;t<r.length;t++)r[t]=Bluebird.resolve(r[t]).value();const i=this.inputs;for(const o in i){let t=Bluebird.resolve(i[o]).value();t instanceof PromiseWrapper&&(t=t.result),i[o]=t}const t=this.proxy,n=this.handler.value(),s=Bluebird.attempt(function(){return n.execute(i,t,...r)});return s.isPending()?s.then(t=>(this.outputs=t,e),t=>[this.emitActivityError(t)]):s.isRejected()?[this.emitActivityError(s.reason())]:(this.outputs=s.value(),e)}resolveExtrasInline(){for(const e of query(this.handler.value())){const t=this.ambient.engine.activator,r=t.activate(e);if(this.extras.push(r),r.isPending())return r.then(t=>{},t=>this.emitActivityActivationError(e.type,t));if(r.isRejected())return this.emitActivityActivationError(e.type,r.reason())}}resolveInputsInline(t){if(0<t.length||this.cancellationToken.isFulfilled())return t;const e=[];e.push(this.resolveExtrasInline());const r=this.evaluators;if(void 0!==r){const i=this.scope;for(const s in i)i[s]=Bluebird.resolve(i[s]).value();const n=this.inputs;for(const o in r){const a=n[o]=Bluebird.attempt(function(){var t=r[o].call(i);if(t&&"function"==typeof t.then){const e=new PromiseWrapper;return e.result=t,e}return t});a.isPending()&&e.push(a.then(t=>{},t=>this.emitExpressionEvaluationError(o,t))),a.isRejected()&&e.push(this.emitExpressionEvaluationError(o,a.reason()))}}return reduceErrors(Bluebird.all(e))}resolveHandlerInline(){const e=this.activity.action;if("string"==typeof e){var r=this.ambient;const i=r.handlers;let t=this.handler=i[e];if(void 0===t){const n=r.engine,s=r.inspector;t=this.handler=i[e]=Bluebird.attempt(function(){return n.createHandler(e,s)})}return t.isPending()?t.then(t=>isInvalidHandler(t)?this.emitActivityBindingError():void 0,t=>this.emitActivityBindingError(t)):t.isRejected()?this.emitActivityBindingError(t.reason()):isInvalidHandler(t.value())?this.emitActivityBindingError():void 0}this.handler=Bluebird.resolve(echoHandler)}findContext(t){var e=this.ambient,r=e.stack;let i=e.frame;for(;void 0!==i;){var n=i.state[t];if(void 0!==n)return n;i=r[i.index-1]}}resolveOutputsInline(){const t=this.promise;if(t.isPending())return t.then(t=>void 0!==t&&0<t.length?Bluebird.reject(t):this.outputs,t=>{});if(t.isRejected())return immediate;var e=t.value();return void 0!==e&&0<e.length?Bluebird.reject(e):Bluebird.resolve(this.outputs)}resolveAccessorInline(e){const t=this.findContext(e);if(void 0!==t){const r=this.scope[e]=t.resolveOutputsInline();return r.isPending()?r.then(t=>{},t=>this.emitExpressionAccessorError(e,void 0,t)):r.isRejected()?this.emitExpressionAccessorError(e,void 0,r.reason()):void 0}const r=this.scope[e]=Bluebird.resolve(this.ambient.environment[e]);return r.isPending()?r.then(t=>{},t=>this.emitExpressionAccessorError(e,t)):r.isRejected()?this.emitExpressionAccessorError(e,r.reason()):void 0}resolveAssetsInline(){const r=[];r.push(this.resolveHandlerInline());var i=this.activity.inputs;if(null!=i){let t,e;const s=this.ambient;for(const o in i){const a=i[o];if(void 0!==a&&null!==a)if(isLiteral(a))this.inputs[o]=Bluebird.resolve(a);else if(isExpression(a)){void 0===t&&(this.scope=t={}),void 0===e&&(this.evaluators=e={});var n=a.accessors;if(Array.isArray(n))for(const l of n)"string"==typeof l&&void 0===t[l]&&r.push(this.resolveAccessorInline(l));const c=Bluebird.attempt(function(){return compileExpression(a,s.resources)});c.isFulfilled()?e[o]=c.value():r.push(this.emitExpressionSyntaxError(o,c.reason()))}else r.push(this.emitExpressionSyntaxError(o))}}return reduceErrors(Bluebird.all(r))}concludeInline(t){return this.cancellationResolve(),t}generateMonikers(){const t=this.monikers;var e=this.activity;t.push("$"+e.id),"string"==typeof e.name&&t.push("$"+e.name);const r=e.action;"string"!=typeof r||1<(e=r.split(":")).length&&(0<(e=e[e.length-2]).length&&t.push("$$"+e))}marshalError(){var t=this.promise.value();return 1<t.length?new AggregateActivityError(this.activity.id,t):0<t.length?t[0]:void 0}execute(){let t=this.promise;const e=this.ambient;if(void 0!==t)return e.debug(e),e.halted||this.transferInline(),t;{if(t=this.resolveAssetsInline(),t.isRejected())return t;if(t=t.isPending()?t.then(t=>this.resolveInputsInline(t)):Bluebird.resolve(this.resolveInputsInline(t.value())),t.isRejected())return t;if(t=t.isPending()?t.then(t=>this.executeHandlerInline(t)):Bluebird.resolve(this.executeHandlerInline(t.value())),t.isRejected())return t;if(t=t.isPending()?t.then(t=>this.concludeInline(t)):Bluebird.resolve(this.concludeInline(t.value())),t.isRejected())return t;t.isPending()&&(t=t.catch(t=>e.fail(t)),t.then(t=>e.execute())),this.generateMonikers();const r=e.frame.state;for(const i of this.monikers)r[i]=this;return this.promise=t,immediate}}goto(){}}class StepContext extends ActivityContext{transferInline(){const t=this.promise;if(t.isFulfilled()){const r=this.ambient;var e=this.marshalError();void 0!==e?r.bubble(e):this.repeat?r.start(this.activity,this):(this.callBranch&&r.call(),this.forkBranch&&r.fork(),r.enqueue(this.activity,this.jumpBranch))}}goto(){const t=this.frame,e=this.ambient;if(e.goto(t)){var r=this.recent;const i=void 0!==r?r.context:this;t.current=i,i.repeat=!0,e.halted=!1,e.execute()}}}class TransitionContext extends ActivityContext{test(){let t=void 0,e=void 0;var r=this.outputs;for(const i in r){if(void 0!==t&&void 0!==e)return!1;if(e=r[i],!isLiteral(e))return!1;if(void 0===t)t=e,e=void 0;else if(t!==e)return!1}return void 0===t||(void 0!==e||("boolean"==typeof t?t:"number"==typeof t?0<t:"string"==typeof t&&0<t.length))}transferInline(){const t=this.promise;if(t.isFulfilled()){const r=this.ambient;var e=this.marshalError();void 0!==e?r.bubble(e):this.test()?r.start(this.activity.target):r.next()}}}class AsyncContext extends ActivityContext{transferInline(){this.ambient.enqueue(this.activity)}execute(){return super.execute(),immediate}}function run(n,s,o,a){const c=t=>{var e=s.findStep(t);if(!e)throw new GenericActivityError(`The workflow does not contain a step with the id ${t}.`);return e},l=(t,e,r,i)=>{t=c(t);const n=c(e);if(!n.transitions.some(t=>"content"===t.branch||"try"===t.branch))throw new GenericActivityError(`The ${e} step is not a Container, Subworkflow, or Try Catch activity.`);r=`${i}$${r}`;h(t,n,r)},u=t=>{var e=d.frame.current.activity,r=c(t);if("gcx:wf:core::Subworkflow"!==r.action)throw new GenericActivityError(`The target step ${t} is not a Subworkflow activity.`);h(e,r,"default")},h=(t,e,r)=>{var i=s.relate(t,r).peek();void 0!==i&&s.remove(i);const n=s.addTransition(t,e);n.branch=r},d=new AmbientState;return d.completion=new Bluebird((t,e)=>{d.resolveCompletion=t,d.rejectCompletion=e}),d.cancellationToken=new Task(t=>d.cancellationResolve=t),d.execute(function(){if(s.isStep(a)){o=o||{},d.engine=n,d.inspector=s,d.id=newSymbol(),d.debug=o.debug||(()=>{}),d.environment=combine(n.environment,o.environment),d.inputs=o.inputs||{},d.locale=o.locale,d.logLevel=o.logLevel,d.resources={forms:s.cacheForms()},d.outputs={},d.trivia=combine(n.trivia,o.trivia),d.trivia.setFormElementEvent=l,d.trivia.setSubworkflowTransition=u,d.proxy=new AmbientStateProxy(d);const e=d.trivia.isDescendantOf;e?d.trivia.isDescendantOf=t=>t===d.proxy||e(t):d.trivia.isDescendantOf=t=>t===d.proxy;const r=d.frame;r.index=0,r.cancellationToken=d.cancellationToken,r.state=o.state||{};var t=o.cancellationToken;if(null!=t){const i=Task.race([t,d.cancellationToken]);i.isPending()?(t=()=>d.cancel(),i.then(t,t)):d.cancel()}d.start(a)}else d.reject(new ProgramStartError)}),d.completion}export{clearExpressionCache,run};
|
|
1
|
+
import Bluebird from"bluebird";import{ActivityActivationError,ActivityBindingError,ActivityCancellationError,ActivityError,AggregateActivityError,EngineRuntimeError,ExpressionAccessorError,ExpressionEvaluationError,ExpressionSyntaxError,GenericActivityError,ProgramStartError}from"../Errors.js";import{query}from"../Hooks.js";import{Task}from"../Task.js";function isExpression(t){var e=t.type;return null==e&&"string"==typeof t.code}function createLinkedCancellationToken(t,e){const r=Task.race([new Task(e),t]),i=new AbortController;return r.signal=i.signal,r.finally(()=>i.abort()),r}function isInvalidHandler(t){return null==t||"function"!=typeof t.execute}function isLiteral(t){switch(typeof t){case"boolean":case"number":case"string":return!0}return!1}let evaluators={};function clearExpressionCache(){evaluators={}}const reservedIdentifiers=["resources","values","Date","Math","Object","parseInt","parseFloat","decodeURIComponent","encodeURIComponent"];function isAccessor(e){return!("string"!=typeof e||e.length<1)&&(!(0<=e.indexOf("."))&&!reservedIdentifiers.some(t=>t===e))}function compileExpression(t,e){var r=t.code;let i=evaluators[r];if(void 0===i){const s=[],o={};s.push('"use strict"; ');var n=t.accessors;if(Array.isArray(n))for(const a of n)isAccessor(a)&&!o[a]&&(s.push(`var ${a} = this.${a};`),o[a]=!0);s.push("return "),s.push(r),s.push(";"),i=evaluators[r]=new Function("resources","values",s.join(""))}return function(){return i.call(this,e,t.values)}}function echo(t){return t}const echoHandler={execute:echo};function combine(t,e){return{...t||{},...e||{}}}function isError(t){return void 0!==t}function filterErrors(t){return t.filter(isError)}function reduceErrors(t){return t.isPending()?t.then(filterErrors):t.isFulfilled()?Bluebird.resolve(filterErrors(t.value())):t}let nextSymbol,nextSymbolPrefix;function newSymbol(){return void 0!==nextSymbol&&1073741824<=nextSymbol&&(nextSymbol=void 0),void 0===nextSymbol&&(nextSymbol=0,nextSymbolPrefix=(new Date).valueOf()+":"),nextSymbolPrefix+nextSymbol++}const immediate=Bluebird.resolve(void 0);let guard=!0;class Proxy{constructor(t){Object.defineProperty(this,"target",{get(){if(!1===guard)return guard=!0,t}})}}class AmbientStateProxy extends Proxy{get outputs(){return guard=!1,this.target.outputs}set outputs(t){guard=!1,this.target.outputs=t}get error(){return guard=!1,this.target.error}set error(t){guard=!1,this.target.error=t}get completion(){return guard=!1,this.target.completion}complete(t){return guard=!1,this.target.complete(t)}reject(t){return guard=!1,this.target.reject(t)}get environment(){return guard=!1,this.target.environment}get inputs(){return guard=!1,this.target.inputs}get activityContexts(){return guard=!1,this.target.activityContexts}get locale(){return guard=!1,this.target.locale}get logLevel(){return guard=!1,this.target.logLevel}set logLevel(t){guard=!1,this.target.logLevel=t}get resources(){return guard=!1,this.target.resources}get trivia(){return guard=!1,this.target.trivia}}class ActivityContextProxy extends Proxy{get luid(){return guard=!1,this.target.luid}get ambient(){return guard=!1,this.target.ambient.proxy}get action(){return guard=!1,this.target.action}get branch(){return guard=!1,this.target.branch}get cancellationToken(){return guard=!1,this.target.cancellationToken}get passes(){return guard=!1,this.target.passes}get caught(){return guard=!1,this.target.caught}call(t){return guard=!1,this.target.call(t)}fork(t){return guard=!1,this.target.fork(t)}jump(t){return guard=!1,this.target.jump(t)}hasBranch(t){return guard=!1,this.target.hasBranch(t)}get state(){return guard=!1,this.target.state}registerForErrors(){return guard=!1,this.target.registerForErrors()}persist(t){return guard=!1,this.target.persist(t)}goto(){return guard=!1,this.target.goto()}}class AmbientState{constructor(){this.frame=new MonikerFrame,this.stack=[],this.handlers={}}get activityContexts(){const t={};for(const e of[...this.stack,this.frame])for(const r in e.state)"$$"===r.substring(0,2)&&(t[r]=e.state[r]);return t}break(){this.halted=!0}continue(){this.halted=!1,void 0!==this.scheduler&&!this.scheduler.isFulfilled()||(this.scheduler=immediate.then(t=>{this.execute()}))}execute(t){if(this.inline)return!1;this.inline=!0;try{void 0!==t&&t();const e=this.completion;for(;e.isPending();){if(this.halted)return!1;const r=this.frame.current.execute();if(r.isPending())break;r.isRejected()&&this.fail(r.reason())}}catch(t){this.fail(t)}finally{this.inline=!1}return!0}complete(t){this.completion.isPending()&&(this.cancellationResolve(),this.resolveCompletion(t||this.outputs))}reject(t){this.completion.isPending()&&(this.cancellationResolve(),this.rejectCompletion(t||this.error))}fail(t){this.completion.isPending()&&(this.cancellationResolve(),this.rejectCompletion(new EngineRuntimeError(t)))}cancel(){this.completion.isPending()&&(this.cancellationResolve(),this.rejectCompletion(new ActivityCancellationError))}push(){const t=this.stack;t.push(this.frame);const e=this.frame=new MonikerFrame;return e.index=t.length,e}pop(t){const e=this.frame;if(void 0!==e){e.current=void 0;const i=e.cancellationResolve;void 0!==i&&i()}var r=this.frame=this.stack.pop();return void 0===r&&(void 0!==t?this.reject(t):this.complete()),r}call(){var t=this.frame;const e=this.push();e.cancellationToken=t.cancellationToken,e.state=t.state}fork(){const e=this.push();e.cancellationToken=createLinkedCancellationToken(this.cancellationToken,t=>e.cancellationResolve=t),e.state={}}bubble(t){let e=this.pop(t);for(;void 0!==e&&!e.current.registeredForErrors;)e=this.pop(t);var r;void 0!==e&&(r=e.current,this.start(r.activity,r,t))}next(){var t=this.queue.pop();void 0!==t?this.attempt(t):void 0!==(t=this.pop())&&(t=t.current,this.start(t.activity,t))}prepare(e,t,r){const i=e.frame=this.frame;if((i.current=e).luid=this.id+":"+e.activity.id,e.action=e.activity.action,e.ambient=this,e.id=newSymbol(),e.caught=r,e.cancellationToken=createLinkedCancellationToken(i.cancellationToken,t=>e.cancellationResolve=t),e.proxy=new ActivityContextProxy(e),void 0!==t){const n=e.recent=t.recent||(t.recent={});t=n.context||t;(n.context=e).passes=t.passes+1,e.stateToPersist=e.state=t.stateToPersist}else e.passes=0}attempt(t){const e=new TransitionContext;e.activity=t,e.branch=t.branch,this.prepare(e)}start(t,e,r){const i=new(t.async?AsyncContext:StepContext);i.activity=t,i.monikers.push("$"),this.prepare(i,e,r)}enqueue(t,e){const r=this.inspector;this.queue=r.relate(t,e).list(),this.next()}goto(t){for(var e=this.stack,r=t.index;e[r]===t;)this.pop();return t===this.frame}}class MonikerFrame{}class PromiseWrapper{}class ActivityContext{constructor(){this.inputs={},this.extras=[],this.monikers=[]}registerForErrors(){this.registeredForErrors=!0}persist(t){this.stateToPersist=t}call(t){this.callBranch=!0,this.forkBranch=!1,this.jumpBranch=t}fork(t){this.callBranch=!1,this.forkBranch=!0,this.jumpBranch=t}jump(t){this.callBranch=!1,this.forkBranch=!1,this.jumpBranch=t}hasBranch(t){var e=this.activity;const r=this.ambient.inspector;return r.isStep(e)&&void 0!==r.relate(e,t).peek()}emitExpressionEvaluationError(t,e){var r=this.activity.id,i=this.activity.inputs[t];return new ExpressionEvaluationError(r,t,i.source||i.code,e)}emitExpressionSyntaxError(t,e){var r=this.activity.id,i=this.activity.inputs[t];return new ExpressionSyntaxError(r,t,i.source||i.code,e)}emitExpressionAccessorError(t,e,r){return new ExpressionAccessorError(this.activity.id,t,e,r)}emitActivityBindingError(t){var e=this.activity;return new ActivityBindingError(e.id,e.action,t)}emitActivityActivationError(t,e){return new ActivityActivationError(this.activity.id,t,e)}emitActivityError(t){if(t instanceof ActivityError)return t;var e=this.activity;const r=new GenericActivityError(void 0,t?.message);return r.activityId=e.id,r.error=t,r}executeHandlerInline(e){if(0<e.length||this.cancellationToken.isFulfilled())return e;const r=this.extras;for(let t=0;t<r.length;t++)r[t]=Bluebird.resolve(r[t]).value();const i=this.inputs;for(const o in i){let t=Bluebird.resolve(i[o]).value();t instanceof PromiseWrapper&&(t=t.result),i[o]=t}const t=this.proxy,n=this.handler.value(),s=Bluebird.attempt(function(){return n.execute(i,t,...r)});return s.isPending()?s.then(t=>(this.outputs=t,e),t=>[this.emitActivityError(t)]):s.isRejected()?[this.emitActivityError(s.reason())]:(this.outputs=s.value(),e)}resolveExtrasInline(){for(const e of query(this.handler.value())){const t=this.ambient.engine.activator,r=t.activate(e);if(this.extras.push(r),r.isPending())return r.then(t=>{},t=>this.emitActivityActivationError(e.type,t));if(r.isRejected())return this.emitActivityActivationError(e.type,r.reason())}}resolveInputsInline(t){if(0<t.length||this.cancellationToken.isFulfilled())return t;const e=[];e.push(this.resolveExtrasInline());const r=this.evaluators;if(void 0!==r){const i=this.scope;for(const s in i)i[s]=Bluebird.resolve(i[s]).value();const n=this.inputs;for(const o in r){const a=n[o]=Bluebird.attempt(function(){var t=r[o].call(i);if(t&&"function"==typeof t.then){const e=new PromiseWrapper;return e.result=t,e}return t});a.isPending()&&e.push(a.then(t=>{},t=>this.emitExpressionEvaluationError(o,t))),a.isRejected()&&e.push(this.emitExpressionEvaluationError(o,a.reason()))}}return reduceErrors(Bluebird.all(e))}resolveHandlerInline(){const e=this.activity.action;if("string"==typeof e){var r=this.ambient;const i=r.handlers;let t=this.handler=i[e];if(void 0===t){const n=r.engine,s=r.inspector;t=this.handler=i[e]=Bluebird.attempt(function(){return n.createHandler(e,s)})}return t.isPending()?t.then(t=>isInvalidHandler(t)?this.emitActivityBindingError():void 0,t=>this.emitActivityBindingError(t)):t.isRejected()?this.emitActivityBindingError(t.reason()):isInvalidHandler(t.value())?this.emitActivityBindingError():void 0}this.handler=Bluebird.resolve(echoHandler)}findContext(t){var e=this.ambient,r=e.stack;let i=e.frame;for(;void 0!==i;){var n=i.state[t];if(void 0!==n)return n;i=r[i.index-1]}}resolveOutputsInline(){const t=this.promise;if(t.isPending())return t.then(t=>void 0!==t&&0<t.length?Bluebird.reject(t):this.outputs,t=>{});if(t.isRejected())return immediate;var e=t.value();return void 0!==e&&0<e.length?Bluebird.reject(e):Bluebird.resolve(this.outputs)}resolveAccessorInline(e){const t=this.findContext(e);if(void 0!==t){const r=this.scope[e]=t.resolveOutputsInline();return r.isPending()?r.then(t=>{},t=>this.emitExpressionAccessorError(e,void 0,t)):r.isRejected()?this.emitExpressionAccessorError(e,void 0,r.reason()):void 0}const r=this.scope[e]=Bluebird.resolve(this.ambient.environment[e]);return r.isPending()?r.then(t=>{},t=>this.emitExpressionAccessorError(e,t)):r.isRejected()?this.emitExpressionAccessorError(e,r.reason()):void 0}resolveAssetsInline(){const r=[];r.push(this.resolveHandlerInline());var i=this.activity.inputs;if(null!=i){let t,e;const s=this.ambient;for(const o in i){const a=i[o];if(void 0!==a&&null!==a)if(isLiteral(a))this.inputs[o]=Bluebird.resolve(a);else if(isExpression(a)){void 0===t&&(this.scope=t={}),void 0===e&&(this.evaluators=e={});var n=a.accessors;if(Array.isArray(n))for(const l of n)"string"==typeof l&&void 0===t[l]&&r.push(this.resolveAccessorInline(l));const c=Bluebird.attempt(function(){return compileExpression(a,s.resources)});c.isFulfilled()?e[o]=c.value():r.push(this.emitExpressionSyntaxError(o,c.reason()))}else r.push(this.emitExpressionSyntaxError(o))}}return reduceErrors(Bluebird.all(r))}concludeInline(t){return this.cancellationResolve(),t}generateMonikers(){const t=this.monikers;var e=this.activity;t.push("$"+e.id),"string"==typeof e.name&&t.push("$"+e.name);const r=e.action;"string"!=typeof r||1<(e=r.split(":")).length&&(0<(e=e[e.length-2]).length&&t.push("$$"+e))}marshalError(){var t=this.promise.value();return 1<t.length?new AggregateActivityError(this.activity.id,t):0<t.length?t[0]:void 0}execute(){let t=this.promise;const e=this.ambient;if(void 0!==t)return e.debug(e),e.halted||this.transferInline(),t;{if(t=this.resolveAssetsInline(),t.isRejected())return t;if(t=t.isPending()?t.then(t=>this.resolveInputsInline(t)):Bluebird.resolve(this.resolveInputsInline(t.value())),t.isRejected())return t;if(t=t.isPending()?t.then(t=>this.executeHandlerInline(t)):Bluebird.resolve(this.executeHandlerInline(t.value())),t.isRejected())return t;if(t=t.isPending()?t.then(t=>this.concludeInline(t)):Bluebird.resolve(this.concludeInline(t.value())),t.isRejected())return t;t.isPending()&&(t=t.catch(t=>e.fail(t)),t.then(t=>e.execute())),this.generateMonikers();const r=e.frame.state;for(const i of this.monikers)r[i]=this;return this.promise=t,immediate}}goto(){}}class StepContext extends ActivityContext{transferInline(){const t=this.promise;if(t.isFulfilled()){const r=this.ambient;var e=this.marshalError();void 0!==e?r.bubble(e):this.repeat?r.start(this.activity,this):(this.callBranch&&r.call(),this.forkBranch&&r.fork(),r.enqueue(this.activity,this.jumpBranch))}}goto(){const t=this.frame,e=this.ambient;if(e.goto(t)){var r=this.recent;const i=void 0!==r?r.context:this;t.current=i,i.repeat=!0,e.halted=!1,e.execute()}}}class TransitionContext extends ActivityContext{test(){let t=void 0,e=void 0;var r=this.outputs;for(const i in r){if(void 0!==t&&void 0!==e)return!1;if(e=r[i],!isLiteral(e))return!1;if(void 0===t)t=e,e=void 0;else if(t!==e)return!1}return void 0===t||(void 0!==e||("boolean"==typeof t?t:"number"==typeof t?0<t:"string"==typeof t&&0<t.length))}transferInline(){const t=this.promise;if(t.isFulfilled()){const r=this.ambient;var e=this.marshalError();void 0!==e?r.bubble(e):this.test()?r.start(this.activity.target):r.next()}}}class AsyncContext extends ActivityContext{transferInline(){this.ambient.enqueue(this.activity)}execute(){return super.execute(),immediate}}function run(n,s,o,a){const c=t=>{var e=s.findStep(t);if(!e)throw new GenericActivityError(`The workflow does not contain a step with the id ${t}.`);return e},l=()=>{const e=v.frame.current.action;return s.allReferences().filter(t=>t.suite&&e.startsWith(t.suite)).peek()?.path},u=(t,e,r,i)=>{t=c(t);const n=c(e);if(!n.transitions.some(t=>"content"===t.branch||"try"===t.branch))throw new GenericActivityError(`The ${e} step is not a Container, Subworkflow, or Try Catch activity.`);r=`${i}$${r}`;d(t,n,r)},h=t=>{var e=v.frame.current.activity,r=c(t);if("gcx:wf:core::Subworkflow"!==r.action)throw new GenericActivityError(`The target step ${t} is not a Subworkflow activity.`);d(e,r,"default")},d=(t,e,r)=>{var i=s.relate(t,r).peek();void 0!==i&&s.remove(i);const n=s.addTransition(t,e);n.branch=r},v=new AmbientState;return v.completion=new Bluebird((t,e)=>{v.resolveCompletion=t,v.rejectCompletion=e}),v.cancellationToken=new Task(t=>v.cancellationResolve=t),v.execute(function(){if(s.isStep(a)){o=o||{},v.engine=n,v.inspector=s,v.id=newSymbol(),v.debug=o.debug||(()=>{}),v.environment=combine(n.environment,o.environment),v.inputs=o.inputs||{},v.locale=o.locale,v.logLevel=o.logLevel,v.resources={forms:s.cacheForms()},v.outputs={},v.trivia=combine(n.trivia,o.trivia),v.trivia.getActivityPackUrl=l,v.trivia.setFormElementEvent=u,v.trivia.setSubworkflowTransition=h,v.proxy=new AmbientStateProxy(v);const e=v.trivia.isDescendantOf;e?v.trivia.isDescendantOf=t=>t===v.proxy||e(t):v.trivia.isDescendantOf=t=>t===v.proxy;const r=v.frame;r.index=0,r.cancellationToken=v.cancellationToken,r.state=o.state||{};var t=o.cancellationToken;if(null!=t){const i=Task.race([t,v.cancellationToken]);i.isPending()?(t=()=>v.cancel(),i.then(t,t)):v.cancel()}v.start(a)}else v.reject(new ProgramStartError)}),v.completion}export{clearExpressionCache,run};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Lookup } from "../Collections";
|
|
1
2
|
import { NumberDisplayFormat } from "./numberFormatter";
|
|
2
3
|
/**
|
|
3
4
|
* References a container.
|
|
@@ -96,6 +97,12 @@ export interface ScanRef {
|
|
|
96
97
|
/** Indicates the returned scanner data. */
|
|
97
98
|
value: string;
|
|
98
99
|
}
|
|
100
|
+
export interface SignatureRef {
|
|
101
|
+
/** A Data URL describing the image as a PNG. */
|
|
102
|
+
dataUrl: string;
|
|
103
|
+
/** A File object for a PNG image of the signature. */
|
|
104
|
+
file: File;
|
|
105
|
+
}
|
|
99
106
|
/**
|
|
100
107
|
* References an error, warnings, and statuses.
|
|
101
108
|
* @product This is intended for internal use only within VertiGIS Studio products.
|
|
@@ -121,7 +128,7 @@ export declare type TitleLocation = "above" | "beside";
|
|
|
121
128
|
* References any kind of value appropriate for a form element.
|
|
122
129
|
* @product This is intended for internal use only within VertiGIS Studio products.
|
|
123
130
|
*/
|
|
124
|
-
export declare type Value = boolean | number | number[] | string | DataRef | DateRangeRef | DateTimeRef | FilesRef | GeometryRef | ItemsRef | NumberRef | ScanRef;
|
|
131
|
+
export declare type Value = boolean | number | number[] | string | DataRef | DateRangeRef | DateTimeRef | FilesRef | GeometryRef | ItemsRef | NumberRef | ScanRef | SignatureRef;
|
|
125
132
|
/** Types of matching that can be performed when finding an Item within a Form Element. */
|
|
126
133
|
export declare type ItemMatchType = "index" | "item" | "key" | "label" | "value";
|
|
127
134
|
/**
|
|
@@ -281,9 +288,7 @@ export interface Element {
|
|
|
281
288
|
/** Indicates the item label for items which are opaquely constructed such as geometries in the Geometry Picker. */
|
|
282
289
|
itemLabel?: Text | Text[];
|
|
283
290
|
/** Indicates the items. */
|
|
284
|
-
items?:
|
|
285
|
-
[key: string]: Item;
|
|
286
|
-
};
|
|
291
|
+
items?: Lookup<Item>;
|
|
287
292
|
/** Indicates the label for the element. */
|
|
288
293
|
label?: Text;
|
|
289
294
|
/** Indicates the locally unique identifier for application specific use. */
|
package/forms/FormHost.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import Bluebird from "bluebird";
|
|
3
2
|
import { Lookup } from "../Collections";
|
|
3
|
+
import { FormComponent } from "./FormComponent";
|
|
4
4
|
import * as defs from "./FormDefinition";
|
|
5
5
|
import { FormPresenterHost } from "./FormPresenterHost";
|
|
6
6
|
import { FormatOptions } from "./numberFormatter";
|
|
7
|
+
import type { ComponentType, ReactNode } from "react";
|
|
7
8
|
export { defs };
|
|
8
9
|
export interface FormEventSubscription {
|
|
9
10
|
(): boolean;
|
|
@@ -20,7 +21,9 @@ export declare abstract class FormHost implements FormPresenterHost {
|
|
|
20
21
|
/** Indicates all errors to be assigned. */
|
|
21
22
|
errors: Lookup<defs.Text>;
|
|
22
23
|
/** Indicates any reference information relevant to components. */
|
|
23
|
-
refs: {
|
|
24
|
+
refs: {
|
|
25
|
+
[name: string]: FormComponent | undefined;
|
|
26
|
+
};
|
|
24
27
|
/** Indicates if the form is enabled. */
|
|
25
28
|
enabled: boolean;
|
|
26
29
|
/** Indicates if the form is visible. */
|
|
@@ -77,6 +80,9 @@ export declare abstract class FormHost implements FormPresenterHost {
|
|
|
77
80
|
focus(name: string): void;
|
|
78
81
|
/** Shows the form. */
|
|
79
82
|
show(): boolean;
|
|
83
|
+
private isInvalid;
|
|
84
|
+
private getInvalidElements;
|
|
85
|
+
hasInvalidChild(element: defs.Element): boolean;
|
|
80
86
|
/** Shows the form in a disabled state. */
|
|
81
87
|
spin(): boolean;
|
|
82
88
|
/** Hides the form in a disabled state. */
|
|
@@ -223,4 +229,5 @@ export declare abstract class FormHost implements FormPresenterHost {
|
|
|
223
229
|
*/
|
|
224
230
|
updateAccordionSections(expandedAccordionSectionName: string): void;
|
|
225
231
|
private enforceAccordionConstraints;
|
|
232
|
+
displayDialog(children: (closeDialog: () => void) => ReactNode, DialogComponent: ComponentType<any>): Promise<void>;
|
|
226
233
|
}
|
package/forms/FormHost.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import Bluebird from"bluebird";import{Task}from"../Task.js";import{DEFAULT_LOCALE}from"../constants.js";import{FormComponent}from"./FormComponent.js";import*as defs from"./FormDefinition.js";import MutuallyExclusiveSectionGroup from"./MutuallyExclusiveSectionGroup.js";import NumberParser from"./NumberParser.js";import{FormElementTypes}from"./constants.js";import{format}from"./numberFormatter.js";import*as presenter from"./presenter.js";import*as renderers from"./renderers.js";import{sort,text}from"./utils.js";const guid="C0166F74-982A-464E-9FB6-9605CB7649C1:",eventName=guid+"FormEvent";function createEvent(e,t){return new CustomEvent(e,{bubbles:!1,cancelable:!1,detail:t})}function overlay(i,s){switch(typeof i){case"boolean":case"number":case"string":return i;case"object":break;default:return s}if(null===i)return s;if(i instanceof Array){let e=s;void 0!==e&&null!==e||(e=[]);let t=0;for(const r of i){var n=overlay(r,e[t]);void 0!==n&&(t<i.length?e[t]=n:e.push(n),++t)}return e}let e=s;void 0===e&&(e={});for(const t in i)e[t]=overlay(i[t],e[t]);return e}function createSubscription(e){function t(){return void 0!==e&&(t.active=!1,e(),!0)}return t.active=!0,t}class FormHost{constructor(){this.form={defaults:{},elements:{}},this.errors={},this.refs={},this.enabled=!1,this.visible=!1,this.dismiss=!1,this.custom=!1,this.container=document.createElement("div"),this.eventIndex=0,this.eventQueue=[],this.mutuallyExclusiveSections={},this.nextFocus=!1,this.nextRefresh=!1,this.style=void 0}deriveLocale(){return DEFAULT_LOCALE}mount(){var e=this.container,t=e.parentNode;null==t&&document.body.appendChild(e),this.update()}unmount(){var e=this.container;const t=e.parentNode;void 0!==t&&null!==t&&t.removeChild(e)}observeFocus(e){this.enabled&&e instanceof HTMLElement&&(this.lastFocus&&this.lastFocus.target===e||this.setLastFocus(e))}focus(e){!0===(e=null==e?!1:e)&&(this.lastFocus=void 0),!1===e&&!1===(e=this.nextFocus)&&(e=!0),this.nextFocus=e,this.invalidate(!0!==e?e:void 0)}show(){const e=this.container;if(void 0===e)return!1;this.custom||void 0!==this.focusObserver||e.addEventListener("focus",this.focusObserver=e=>this.observeFocus(e.target),!0),this.enabled||(this.nextRefresh=!0,this.focus()),this.enforceAccordionConstraints();var t=this.errors;for(const r in t){const o=this.form.elements[r];void 0!==o&&null!==o&&(o.error=t[r],this.invalidate(r))}const i=[];let s=!1;for(const a of Object.keys(this.form.elements).map(e=>this.form.elements[e]).filter(e=>!!e.error&&!1!==e.visible)){const l=this.getParentSection(a);if(this.isAccordionSection(l)){var n=this.findName(l);const u=this.getMutuallyExclusiveSectionGroup(n);if(u){const c=i.find(e=>e.group===u);c?c.element.rowNumber>l.rowNumber&&(c.element=l):(i.push({group:u,element:l}),s=!0)}}else this.isSectionCollapsed(l)&&(l.collapsed=!1,s=!0)}for(const h of i)h.group.expandedSection=h.element;return s&&this.invalidate(),this.errors={},this.idle(),!1!==this.nextRefresh&&(this.enabled=!0,this.visible=!0,this.mount()),this.enabled}spin(){return void 0!==this.container&&(this.idle(),this.visible&&!this.enabled||(this.nextRefresh=!0,this.enabled=!1,this.visible=!0,this.mount()),this.visible)}hide(){return void 0!==this.container&&(this.idle(),this.visible&&(this.enabled=!1,this.visible=!1,this.unmount()),!0)}dispose(){if(this.dismiss)return!1;{this.dismiss=!0;const t=this.container;t.dispatchEvent(createEvent(eventName));var e=this.focusObserver;return void 0!==e&&t.removeEventListener("focus",e,!0),this.idle(),this.unmount(),this.refs={},presenter.releaseForm(this.container),this.container=void 0,this.lastFocus=void 0,!(this.eventTask=void 0)}}renderFocus(e,t){var i=this.nextFocus;if(this.enabled&&e instanceof HTMLElement)if(!1!==i)if(void 0!==t){if(t===i||!0===i&&void 0===this.lastFocus)return this.nextFocus=!1,this.setLastFocus(e,t),e.focus(),!0}else{const s=this.lastFocus?.target;if(!0===i&&s instanceof HTMLElement&&e.contains(s))return this.nextFocus=!1,s.focus(),!0}else if(!1===i&&t&&t!==this.lastFocus?.name&&this.isElementPositionBeforeLastFocused(t))return this.setLastFocus(e,t),e.focus(),!0;return!1}renderHtml(e,t){return"string"==typeof e?text.textToHtml(e):text.isMarkdown(e)?text.markdownToSafeHtml(e.markdown,{inline:t===defs.HTMLContentCategory.Phrasing}):""}renderText(e){return"string"==typeof e?e:text.isMarkdown(e)?text.markdownToText(e.markdown):""}translateText(e){return"string"==typeof e||text.isMarkdown(e)?e:text.isStatus(e)?e.status:void 0}renderVisual(e){return presenter.render(e)||presenter.renderNone(e)}qualifyDefault(e){var t=sort(this.form.elements);for(const r in t){var i=t[r];if(null!=i&&!1!==i.visible&&i.enabled){if(i.default)return e.value=i.value,r;var s=sort(i.items);if(null!=s)for(const o in s){var n=s[o];if(null!=n&&n.visible&&n.enabled&&n.default)return e.item=o,e.value=n.value,r}}}}qualify(e,t){var i;return null==t&&(t={}),"clicked"===e&&void 0===t.name&&(t.name=this.qualifyDefault(t)),t.type=e,void 0===t.routingKey&&(i=t.name,t.routingKey=void 0!==i?e+"$"+i:e),t}post(e,t){t=this.publish(e,t);const i=this.container;void 0!==i&&i.dispatchEvent(createEvent(eventName,t))}subscribe(i){const e=this.container;if(void 0===e)return createSubscription();const s=function(){i=void 0,e.removeEventListener(eventName,t)},t=function(e){const t=e.detail;void 0!==t?Bluebird.resolve().then(function(){"function"==typeof i&&i(t)}):s()};return e.addEventListener(eventName,t),createSubscription(s)}refresh(e){this.custom||("string"==typeof e?(e=this.refs[e],presenter.refresh(e)):(this.refs={},presenter.refreshForm(this,this.container)))}invalidate(e){const t=this.nextRefresh;"string"==typeof e&&!0!==t&&(!1===t?this.nextRefresh={[e]:!0}:t[e]=!0),void 0!==e&&!0!==e||(this.nextRefresh=!0),!1===e&&!1===t&&(this.nextRefresh={})}update(){var e=this.nextRefresh;if(!0===e&&(this.nextRefresh=!1,this.refresh()),"object"==typeof e){this.nextRefresh=!1;for(const t in e)!0===e[t]&&this.refresh(t)}}idle(){const e=this.timerHandle;void 0!==e&&(this.timerHandle=void 0,e())}busy(){if(void 0===this.timerHandle&&void 0!==this.container){let e=setTimeout(()=>this.spin());this.timerHandle=function(){void 0!==e&&(clearTimeout(e),e=void 0)}}}publish(e,t){return this.enabled?(t=this.enqueue(e,t),0<this.eventQueue.length&&this.spin(),t):this.qualify(e,t)}enqueue(e,t){return t=this.qualify(e,t),void 0!==this.eventTask?(this.resolveEvent(t),this.eventTask=void 0):this.eventQueue.push(t),t}dequeue(){const e=this.eventQueue;if(0<e.length){var t=this.eventIndex,i=e[t++];return t>=e.length?e.length=this.eventIndex=0:this.eventIndex=t,i}}observe(){const t=this;return Bluebird.attempt(function(){if(void 0!==t.eventTask)return t.eventTask;var e=t.dequeue();return void 0!==e?e:t.show()?(t.eventTask=new Task(e=>{t.resolveEvent=e}),t.eventTask):void 0})}load(e,t){if(void 0===this.container)return!1;if(this.eventQueue.length=this.eventIndex=0,this.eventTask=void 0,this.errors={},this.lastFocus=void 0,this.nextFocus=!0,this.nextRefresh=!0,this.enqueue("load"),this.enqueue("prepare"),null!=e){e=overlay(e,e={defaults:{},elements:{}});this.form=overlay(t,e);for(const i in this.form.elements){let e=this.form.elements[i];if(e=overlay(e,{showFilter:!1,checked:!1,enabled:!0,hoisted:!1,visible:!0,overlay:!1,default:!1,validates:!1,readOnly:!1,require:!1,autoActivate:!1}),e.items)for(const s in e.items)e.items[s]=overlay(e.items[s],{enabled:!0,checked:!1,visible:!0,default:!1,validates:!1});this.form.elements[i]=e}}return!0}route(e){switch(e.type){case"changed":return this.cascade(e.name);case"prepare":return this.hydrate(e);case"suggest":return this.suggest(e);case"clicked":return this.click(e);case"validate":return this.verify(e);case"verify":return this.submit(e);case"checked":return this.changed(e)}return!1}changed(e){return this.enqueue("changed",{name:e.name,item:e.item,value:e.value}),!0}isElementValid(e,t=!0,i={status:void 0}){return null!=e&&(i.status=void 0,text.isStatus(e.error)&&"invalid"===e.error.status?!(i.status="invalid"):!0!==e.require||(this.isElementEffectivelyVisible(e)?!!this.isElementValueDefined(e)||!(i.status="missing"):t))}isElementEffectivelyVisible(e){return null!=e&&(!1!==this.getParentSection(e)?.visible&&!1!==e.visible)}isElementValueDefined(e){if(null==e)return!1;if("CheckBox"===e.type)return!0;var t=e.current;if(null!=t)return!0;t=e.value;if(null!=t&&""!==t)return!0;t=e.label;if(null!=t&&""!==t)return!0;var i=e.items;if(null!=i)for(const n in i){var s=i[n];if(null!=s&&!0===s.checked)return!0}return!1}trap(e){switch(e.type){case"populate":case"load":case"suggest":break;default:return!1}var t=e.name;const i=this.find(t);if(void 0===i||null===i)return!1;e=i.dependsOn;if("string"!=typeof e)return!1;e=this.find(e);return i.enabled=this.isElementEffectivelyVisible(e)&&this.isElementValueDefined(e),this.invalidate(t),!i.enabled}cascade(e){var t=this.find(e);if(null==t||!1===t.dependsOn)return!1;const i={[e]:!0};var s=sort(this.form.elements);for(const r in s){const o=s[r];var n=o.dependsOn;if("string"==typeof n){const a=this.find(n);void 0!==a&&"string"!=typeof a.dependsOn&&(a.dependsOn=!0),!0===i[n]&&(i[r]=!0,o.checked=!1,o.current=void 0,o.label=void 0,o.items=void 0,o.value=void 0,this.invalidate(r),o.dependsOn===e&&this.enqueue("populate",{name:r}))}else o.dependsOn=!1}return!0}click(e){var t=this.form.elements[e.name];return null!=t&&"ButtonBar"==t.type&&this.validate(e)}hasInitialSelectionToDependOn(e){e=this.form.elements[e];return e.type===FormElementTypes.DROPDOWNLIST&&(void 0!==e.current&&null!==e.current)}hydrate(e){for(const i in sort(this.form.elements)){var t=this.form.elements[i].dependsOn;"string"==typeof t&&!this.hasInitialSelectionToDependOn(t)||this.enqueue("populate",{name:i}),this.enqueue("load",{name:i})}return!0}shouldTriggerValidation(e){var t=this.find(e.name);if(null!=t&&"string"==typeof e.value){e=e.item;if("string"!=typeof e)return!0===t.validates;t=t.items;if(null!=t){e=t[e];if(null!=e)return!0===e.validates}}}validate(e){var t=this.shouldTriggerValidation(e);if(!0!==t)return!1===t&&(this.enqueue("end",{name:e.name,item:e.item,value:e.value,routingKey:"end"}),!0);{const n=this.errors={};var i=sort(this.form.elements);for(const r in i){var s=i[r];null!=s&&(n[r]=void 0,this.enqueue("validate",{name:r}))}return this.enqueue("verify",{name:e.name,item:e.item,value:e.value,routingKey:"verify"}),!0}}verify(e){var t=e.name,i=this.form.elements[t],e={status:void 0};return!this.isElementValid(i,!0,e)&&(e.status&&(this.errors[t]={status:e.status}),!1===this.nextFocus&&this.focus(t),!0)}suggest(e){const t=this.form.elements[e.name];return void 0!==t&&null!==t&&(t.items={message:{label:{status:"trivial"},enabled:!1}},this.invalidate(e.name),!0)}submit(e){return!this.hasErrors()&&(this.enqueue("submit",{name:e.name,item:e.item,value:e.value}),!0)}hasErrors(){var e=this.errors;for(const i in e){var t=e[i];if(null!=t)return!0}return!1}find(e){if(null!=e)return"string"==typeof(e="object"==typeof e?e.name:e)?this.form.elements[e]:void 0}findName(e){for(const t in this.form.elements)if(this.form.elements[t]===e)return t}coerceNumber(e){var t=this.deriveLocale();return new NumberParser(t).parse(e)}formatNumber(e,t){return t=t||{locale:this.deriveLocale()},format(t,e)}renderCustom(e,t){if(e instanceof FormComponent)return renderers.element.renderCustom(e,t)}renderState(e,t,i){return!1}getParentSection(e){e=e.section;if(e){e="string"==typeof e?e:e.name;return this.form.elements[e]}}isSectionCollapsed(e){return!(!e||"Section"!==e.type||!this.isCollapsibleSection(e)&&!this.isAccordionSection(e))&&!0===e.collapsed}isElementPositionBeforeLastFocused(e){var t=this.lastFocus;if(e&&void 0!==t?.rowNumber&&void 0!==t.rowIndex){e=this.form.elements?.[e];if(e)return void 0!==e.rowNumber&&void 0!==e.rowIndex?e.rowNumber<t.rowNumber||e.rowNumber===t.rowNumber&&e.rowIndex<t.rowIndex:e.index<t.rowNumber||e.index===t.rowNumber&&0<t.rowIndex}return!1}setLastFocus(e,t){this.lastFocus={target:e},t&&(this.lastFocus.name=t,(t=this.form.elements?.[t])&&(void 0!==t.rowNumber&&void 0!==t.rowIndex?(this.lastFocus.rowNumber=t.rowNumber,this.lastFocus.rowIndex=t.rowIndex):(this.lastFocus.rowNumber=t.index,this.lastFocus.rowIndex=0)))}isSection(e){return"Section"===e?.type}isAccordionSection(e){return this.isSection(e)&&"accordion-section"===e.format}isCollapsibleSection(e){return this.isSection(e)&&"collapsible-section"===e.format}getAllSectionElements(){const e={};for(const i in this.form.elements){var t=this.form.elements[i];this.isSection(t)&&(e[i]=t)}return e}getMutuallyExclusiveSectionGroup(t){let i=this.mutuallyExclusiveSections[t];if(!i){var e=this.find(t);if(!this.isAccordionSection(e))return;i=new MutuallyExclusiveSectionGroup({elementName:t,element:e});e=this.getAllSectionElements();const r=Object.keys(sort(e,e=>e.rowNumber));t=r.indexOf(t);for(let e=t-1;0<=e;e--){const o=r[e];var s=this.find(o);if(!this.isAccordionSection(s))break;i.unshift({elementName:o,element:s})}for(let e=t+1;e<r.length;e++){const o=r[e];var n=this.find(o);if(!this.isAccordionSection(n))break;i.push({elementName:o,element:n})}i.forEach(e=>{this.mutuallyExclusiveSections[e.elementName]=i})}return i}updateAccordionSections(t){const e=this.getMutuallyExclusiveSectionGroup(t);e.forEach(e=>{e.element.collapsed=e.elementName!==t}),presenter.refreshForm(this,this.container)}enforceAccordionConstraints(){const e=[];for(const i of Object.keys(this.form.elements).map(e=>({elementName:e,element:this.form.elements[e]})).filter(e=>this.isAccordionSection(e.element)&&!1!==e.element.visible&&!0!==e.element.collapsed).sort((e,t)=>e.element.rowNumber-t.element.rowNumber)){var t=this.getMutuallyExclusiveSectionGroup(i.elementName);-1===e.indexOf(t)?e.push(t):i.element.collapsed=!0}}}export{defs,FormHost};
|
|
1
|
+
import Bluebird from"bluebird";import{Task}from"../Task.js";import{DEFAULT_LOCALE}from"../constants.js";import{FormComponent}from"./FormComponent.js";import*as defs from"./FormDefinition.js";import MutuallyExclusiveSectionGroup from"./MutuallyExclusiveSectionGroup.js";import NumberParser from"./NumberParser.js";import{FormElementTypes}from"./constants.js";import{format}from"./numberFormatter.js";import*as presenter from"./presenter.js";import{renderElement}from"./renderers.js";import{sort,text}from"./utils.js";const guid="C0166F74-982A-464E-9FB6-9605CB7649C1:",eventName=guid+"FormEvent";function createEvent(e,t){return new CustomEvent(e,{bubbles:!1,cancelable:!1,detail:t})}function overlay(i,s){switch(typeof i){case"boolean":case"number":case"string":return i;case"object":break;default:return s}if(null===i)return s;if(i instanceof Array){let e=s;void 0!==e&&null!==e||(e=[]);let t=0;for(const r of i){var n=overlay(r,e[t]);void 0!==n&&(t<i.length?e[t]=n:e.push(n),++t)}return e}let e=s;void 0===e&&(e={});for(const t in i)e[t]=overlay(i[t],e[t]);return e}function createSubscription(e){function t(){return void 0!==e&&(t.active=!1,e(),!0)}return t.active=!0,t}class FormHost{constructor(){this.form={defaults:{},elements:{}},this.errors={},this.refs={},this.enabled=!1,this.visible=!1,this.dismiss=!1,this.custom=!1,this.container=document.createElement("div"),this.eventIndex=0,this.eventQueue=[],this.mutuallyExclusiveSections={},this.nextFocus=!1,this.nextRefresh=!1,this.style=void 0}deriveLocale(){return DEFAULT_LOCALE}mount(){var e=this.container,t=e.parentNode;null==t&&document.body.appendChild(e),this.update()}unmount(){var e=this.container;const t=e.parentNode;void 0!==t&&null!==t&&t.removeChild(e)}observeFocus(e){this.enabled&&e instanceof HTMLElement&&(this.lastFocus&&this.lastFocus.target===e||this.setLastFocus(e))}focus(e){!0===(e=null==e?!1:e)&&(this.lastFocus=void 0),!1===e&&!1===(e=this.nextFocus)&&(e=!0),this.nextFocus=e,this.invalidate(!0!==e?e:void 0)}show(){const e=this.container;if(void 0===e)return!1;this.custom||void 0!==this.focusObserver||e.addEventListener("focus",this.focusObserver=e=>this.observeFocus(e.target),!0),this.enabled||(this.nextRefresh=!0,this.focus()),this.enforceAccordionConstraints();var t=this.errors;for(const i in t){const s=this.form.elements[i];void 0!==s&&null!==s&&(s.error=t[i],this.invalidate(i))}return this.idle(),!1!==this.nextRefresh&&(this.enabled=!0,this.visible=!0,this.mount()),this.enabled}isInvalid(e){return!!e.error&&!1!==e.visible}getInvalidElements(){return Object.keys(this.form.elements).map(e=>this.form.elements[e]).filter(this.isInvalid)}hasInvalidChild(e){for(const i in this.form.elements){var t=this.form.elements[i];if(this.isInvalid(t)&&this.getParentSection(t)===e)return!0}return!1}spin(){return void 0!==this.container&&(this.idle(),this.visible&&!this.enabled||(this.nextRefresh=!0,this.enabled=!1,this.visible=!0,this.mount()),this.visible)}hide(){return void 0!==this.container&&(this.idle(),this.visible&&(this.enabled=!1,this.visible=!1,this.unmount()),!0)}dispose(){if(this.dismiss)return!1;{this.dismiss=!0;const t=this.container;t.dispatchEvent(createEvent(eventName));var e=this.focusObserver;return void 0!==e&&t.removeEventListener("focus",e,!0),this.idle(),this.unmount(),this.refs={},presenter.releaseForm(this.container),this.container=void 0,this.lastFocus=void 0,!(this.eventTask=void 0)}}renderFocus(e,t){var i=this.nextFocus;if(this.enabled&&e instanceof HTMLElement)if(!1!==i)if(void 0!==t){if(t===i||!0===i&&void 0===this.lastFocus)return this.nextFocus=!1,this.setLastFocus(e,t),e.focus(),!0}else{const s=this.lastFocus?.target;if(!0===i&&s instanceof HTMLElement&&e.contains(s))return this.nextFocus=!1,s.focus(),!0}else if(!1===i&&t&&t!==this.lastFocus?.name&&this.isElementPositionBeforeLastFocused(t))return this.setLastFocus(e,t),e.focus(),!0;return!1}renderHtml(e,t){return"string"==typeof e?text.textToHtml(e):text.isMarkdown(e)?text.markdownToSafeHtml(e.markdown,{inline:t===defs.HTMLContentCategory.Phrasing}):""}renderText(e){return"string"==typeof e?e:text.isMarkdown(e)?text.markdownToText(e.markdown):""}translateText(e){return"string"==typeof e||text.isMarkdown(e)?e:text.isStatus(e)?e.status:void 0}renderVisual(e){return presenter.render(e)||presenter.renderNone(e)}qualifyDefault(e){var t=sort(this.form.elements);for(const r in t){var i=t[r];if(null!=i&&!1!==i.visible&&i.enabled){if(i.default)return e.value=i.value,r;var s=sort(i.items);if(null!=s)for(const o in s){var n=s[o];if(null!=n&&n.visible&&n.enabled&&n.default)return e.item=o,e.value=n.value,r}}}}qualify(e,t){var i;return null==t&&(t={}),"clicked"===e&&void 0===t.name&&(t.name=this.qualifyDefault(t)),t.type=e,void 0===t.routingKey&&(i=t.name,t.routingKey=void 0!==i?e+"$"+i:e),t}post(e,t){t=this.publish(e,t);const i=this.container;void 0!==i&&i.dispatchEvent(createEvent(eventName,t))}subscribe(i){const e=this.container;if(void 0===e)return createSubscription();const s=function(){i=void 0,e.removeEventListener(eventName,t)},t=function(e){const t=e.detail;void 0!==t?Bluebird.resolve().then(function(){"function"==typeof i&&i(t)}):s()};return e.addEventListener(eventName,t),createSubscription(s)}refresh(e){this.custom||("string"==typeof e?(e=this.refs[e],presenter.refresh(e)):(this.refs={},presenter.refreshForm(this,this.container)))}invalidate(e){const t=this.nextRefresh;"string"==typeof e&&!0!==t&&(!1===t?this.nextRefresh={[e]:!0}:t[e]=!0),void 0!==e&&!0!==e||(this.nextRefresh=!0),!1===e&&!1===t&&(this.nextRefresh={})}update(){var e=this.nextRefresh;if(!0===e&&(this.nextRefresh=!1,this.refresh()),"object"==typeof e){this.nextRefresh=!1;for(const t in e)!0===e[t]&&this.refresh(t)}}idle(){const e=this.timerHandle;void 0!==e&&(this.timerHandle=void 0,e())}busy(){if(void 0===this.timerHandle&&void 0!==this.container){let e=setTimeout(()=>this.spin());this.timerHandle=function(){void 0!==e&&(clearTimeout(e),e=void 0)}}}publish(e,t){return this.enabled?(t=this.enqueue(e,t),0<this.eventQueue.length&&this.spin(),t):this.qualify(e,t)}enqueue(e,t){return t=this.qualify(e,t),void 0!==this.eventTask?(this.resolveEvent(t),this.eventTask=void 0):this.eventQueue.push(t),t}dequeue(){const e=this.eventQueue;if(0<e.length){var t=this.eventIndex,i=e[t++];return t>=e.length?e.length=this.eventIndex=0:this.eventIndex=t,i}}observe(){const t=this;return Bluebird.attempt(function(){if(void 0!==t.eventTask)return t.eventTask;var e=t.dequeue();return void 0!==e?e:t.show()?(t.eventTask=new Task(e=>{t.resolveEvent=e}),t.eventTask):void 0})}load(e,t){if(void 0===this.container)return!1;if(this.eventQueue.length=this.eventIndex=0,this.eventTask=void 0,this.errors={},this.lastFocus=void 0,this.nextFocus=!0,this.nextRefresh=!0,this.enqueue("load"),this.enqueue("prepare"),null!=e){e=overlay(e,e={defaults:{},elements:{}});this.form=overlay(t,e);for(const i in this.form.elements){let e=this.form.elements[i];if(e=overlay(e,{showFilter:!1,checked:!1,enabled:!0,hoisted:!1,visible:!0,overlay:!1,default:!1,validates:!1,readOnly:!1,require:!1,autoActivate:!1}),e.items)for(const s in e.items)e.items[s]=overlay(e.items[s],{enabled:!0,checked:!1,visible:!0,default:!1,validates:!1});this.form.elements[i]=e}}return!0}route(e){switch(e.type){case"changed":return this.cascade(e.name);case"prepare":return this.hydrate(e);case"suggest":return this.suggest(e);case"clicked":return this.click(e);case"validate":return this.verify(e);case"verify":return this.submit(e);case"checked":return this.changed(e)}return!1}changed(e){return this.enqueue("changed",{name:e.name,item:e.item,value:e.value}),!0}isElementValid(e,t=!0,i={status:void 0}){return null!=e&&(i.status=void 0,text.isStatus(e.error)&&"invalid"===e.error.status?!(i.status="invalid"):!0!==e.require||(this.isElementEffectivelyVisible(e)?!!this.isElementValueDefined(e)||!(i.status="missing"):t))}isElementEffectivelyVisible(e){return null!=e&&(!1!==this.getParentSection(e)?.visible&&!1!==e.visible)}isElementValueDefined(e){if(null==e)return!1;if("CheckBox"===e.type)return!0;var t=e.current;if(null!=t)return!0;t=e.value;if(null!=t&&""!==t)return!0;if("Signature"!==e.type){t=e.label;if(null!=t&&""!==t)return!0}var i=e.items;if(null!=i)for(const n in i){var s=i[n];if(null!=s&&!0===s.checked)return!0}return!1}trap(e){switch(e.type){case"populate":case"load":case"suggest":break;default:return!1}var t=e.name;const i=this.find(t);if(void 0===i||null===i)return!1;e=i.dependsOn;if("string"!=typeof e)return!1;e=this.find(e);return i.enabled=this.isElementEffectivelyVisible(e)&&this.isElementValueDefined(e),this.invalidate(t),!i.enabled}cascade(e){var t=this.find(e);if(null==t||!1===t.dependsOn)return!1;const i={[e]:!0};var s=sort(this.form.elements);for(const r in s){const o=s[r];var n=o.dependsOn;if("string"==typeof n){const l=this.find(n);void 0!==l&&"string"!=typeof l.dependsOn&&(l.dependsOn=!0),!0===i[n]&&(i[r]=!0,o.checked=!1,o.current=void 0,o.label=void 0,o.items=void 0,o.value=void 0,this.invalidate(r),o.dependsOn===e&&this.enqueue("populate",{name:r}))}else o.dependsOn=!1}return!0}click(e){var t=this.form.elements[e.name];return null!=t&&"ButtonBar"==t.type&&this.validate(e)}hasInitialSelectionToDependOn(e){e=this.form.elements[e];return e.type===FormElementTypes.DROPDOWNLIST&&(void 0!==e.current&&null!==e.current)}hydrate(e){for(const i in sort(this.form.elements)){var t=this.form.elements[i].dependsOn;"string"==typeof t&&!this.hasInitialSelectionToDependOn(t)||this.enqueue("populate",{name:i}),this.enqueue("load",{name:i})}return!0}shouldTriggerValidation(e){var t=this.find(e.name);if(null!=t&&"string"==typeof e.value){e=e.item;if("string"!=typeof e)return!0===t.validates;t=t.items;if(null!=t){e=t[e];if(null!=e)return!0===e.validates}}}validate(e){var t=this.shouldTriggerValidation(e);if(!0!==t)return!1===t&&(this.enqueue("end",{name:e.name,item:e.item,value:e.value,routingKey:"end"}),!0);{const n=this.errors={};var i=sort(this.form.elements);for(const r in i){var s=i[r];null!=s&&(n[r]=void 0,this.enqueue("validate",{name:r}))}return this.enqueue("verify",{name:e.name,item:e.item,value:e.value,routingKey:"verify"}),!0}}verify(e){var t=e.name,i=this.form.elements[t],e={status:void 0};return!this.isElementValid(i,!0,e)&&(e.status&&(this.errors[t]={status:e.status}),!1===this.nextFocus&&this.focus(t),!0)}suggest(e){const t=this.form.elements[e.name];return void 0!==t&&null!==t&&(t.items={message:{label:{status:"trivial"},enabled:!1}},this.invalidate(e.name),!0)}submit(e){if(!this.hasErrors()){for(const r in this.form.elements)this.form.elements[r].error=void 0;return this.enqueue("submit",{name:e.name,item:e.item,value:e.value}),!0}var t=this.errors;for(const o in t){const l=this.form.elements[o];void 0!==l&&null!==l&&(l.error=t[o],this.invalidate(o))}const i=[];let s=!1;for(const a of this.getInvalidElements()){const u=this.getParentSection(a);if(this.isAccordionSection(u)){var n=this.findName(u);const h=this.getMutuallyExclusiveSectionGroup(n);if(h){const c=i.find(e=>e.group===h);c?c.element.rowNumber>u.rowNumber&&(c.element=u):(i.push({group:h,element:u}),s=!0)}}else this.isSectionCollapsed(u)&&(u.collapsed=!1,s=!0)}for(const d of i)d.group.expandedSection=d.element;return s&&this.invalidate(),!(this.errors={})}hasErrors(){var e=this.errors;for(const i in e){var t=e[i];if(null!=t)return!0}return!1}find(e){if(null!=e)return"string"==typeof(e="object"==typeof e?e.name:e)?this.form.elements[e]:void 0}findName(e){for(const t in this.form.elements)if(this.form.elements[t]===e)return t}coerceNumber(e){var t=this.deriveLocale();return new NumberParser(t).parse(e)}formatNumber(e,t){return t=t||{locale:this.deriveLocale()},format(t,e)}renderCustom(e,t){if(e instanceof FormComponent)return renderElement(FormElementTypes.CUSTOM,e,t)}renderState(e,t,i){return!1}getParentSection(e){e=e.section;if(e){e="string"==typeof e?e:e.name;return this.form.elements[e]}}isSectionCollapsed(e){return!(!e||"Section"!==e.type||!this.isCollapsibleSection(e)&&!this.isAccordionSection(e))&&!0===e.collapsed}isElementPositionBeforeLastFocused(e){var t=this.lastFocus;if(e&&void 0!==t?.rowNumber&&void 0!==t.rowIndex){e=this.form.elements?.[e];if(e)return void 0!==e.rowNumber&&void 0!==e.rowIndex?e.rowNumber<t.rowNumber||e.rowNumber===t.rowNumber&&e.rowIndex<t.rowIndex:e.index<t.rowNumber||e.index===t.rowNumber&&0<t.rowIndex}return!1}setLastFocus(e,t){this.lastFocus={target:e},t&&(this.lastFocus.name=t,(t=this.form.elements?.[t])&&(void 0!==t.rowNumber&&void 0!==t.rowIndex?(this.lastFocus.rowNumber=t.rowNumber,this.lastFocus.rowIndex=t.rowIndex):(this.lastFocus.rowNumber=t.index,this.lastFocus.rowIndex=0)))}isSection(e){return"Section"===e?.type}isAccordionSection(e){return this.isSection(e)&&"accordion-section"===e.format}isCollapsibleSection(e){return this.isSection(e)&&"collapsible-section"===e.format}getAllSectionElements(){const e={};for(const i in this.form.elements){var t=this.form.elements[i];this.isSection(t)&&(e[i]=t)}return e}getMutuallyExclusiveSectionGroup(t){let i=this.mutuallyExclusiveSections[t];if(!i){var e=this.find(t);if(!this.isAccordionSection(e))return;i=new MutuallyExclusiveSectionGroup({elementName:t,element:e});e=this.getAllSectionElements();const r=Object.keys(sort(e,e=>e.rowNumber));t=r.indexOf(t);for(let e=t-1;0<=e;e--){const o=r[e];var s=this.find(o);if(!this.isAccordionSection(s))break;i.unshift({elementName:o,element:s})}for(let e=t+1;e<r.length;e++){const o=r[e];var n=this.find(o);if(!this.isAccordionSection(n))break;i.push({elementName:o,element:n})}i.forEach(e=>{this.mutuallyExclusiveSections[e.elementName]=i})}return i}updateAccordionSections(t){const e=this.getMutuallyExclusiveSectionGroup(t);e.forEach(e=>{e.element.collapsed=e.elementName!==t}),presenter.refreshForm(this,this.container)}enforceAccordionConstraints(){const e=[];for(const i of Object.keys(this.form.elements).map(e=>({elementName:e,element:this.form.elements[e]})).filter(e=>this.isAccordionSection(e.element)&&!1!==e.element.visible&&!0!==e.element.collapsed).sort((e,t)=>e.element.rowNumber-t.element.rowNumber)){var t=this.getMutuallyExclusiveSectionGroup(i.elementName);-1===e.indexOf(t)?e.push(t):i.element.collapsed=!0}}async displayDialog(e,t){await Promise.resolve()}}export{defs,FormHost};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { FormComponent } from "./FormComponent";
|
|
1
2
|
import * as defs from "./FormDefinition";
|
|
2
3
|
import { FormatOptions } from "./numberFormatter";
|
|
4
|
+
import type { ComponentType, ReactNode } from "react";
|
|
3
5
|
/**
|
|
4
6
|
* Exposes various features to components that require features of the environment.
|
|
5
7
|
* @product This is intended for internal use only within VertiGIS Studio products.
|
|
@@ -16,9 +18,9 @@ export interface FormPresenterHost {
|
|
|
16
18
|
/** Translates the supplied value. */
|
|
17
19
|
translateText(content: defs.Text | undefined): string | defs.MarkdownRef | undefined;
|
|
18
20
|
/** References all elements. */
|
|
19
|
-
refs: {
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
refs: {
|
|
22
|
+
[name: string]: FormComponent | undefined;
|
|
23
|
+
};
|
|
22
24
|
/** Renders a custom element. */
|
|
23
25
|
renderCustom(component: {}, element: defs.Element): any;
|
|
24
26
|
/** Renders the focus. */
|
|
@@ -51,13 +53,24 @@ export interface FormPresenterHost {
|
|
|
51
53
|
*/
|
|
52
54
|
updateAccordionSections(expandedAccordionSection: string): void;
|
|
53
55
|
/**
|
|
54
|
-
* Returns `true` if the element
|
|
56
|
+
* Returns `true` if the element has a `type` of `"Section"` and a `format` of `"accordion-section"`, `false` otherwise.
|
|
55
57
|
* @param element The element to be inspected.
|
|
56
58
|
*/
|
|
57
59
|
isAccordionSection(element: defs.Element): boolean;
|
|
58
60
|
/**
|
|
59
|
-
* Returns `true` if the element
|
|
61
|
+
* Returns `true` if the element has a `type` of `"Section"` and a `format` of `"collapsible-section"`, `false` otherwise.
|
|
60
62
|
* @param element The element to be inspected.
|
|
61
63
|
*/
|
|
62
64
|
isCollapsibleSection(element: defs.Element): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Shows a dialog in the context of the running application.
|
|
67
|
+
* @param children A function that produces the children for the dialog.
|
|
68
|
+
* @param DialogComponent The type of component to use as the dialog.
|
|
69
|
+
*/
|
|
70
|
+
displayDialog(children: (closeDialog: () => void) => ReactNode, DialogComponent: ComponentType<any>): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Returns `true` if the element has a `type` of `"Section"` and at least one visible child with `error` equal to `true`.
|
|
73
|
+
* @param element
|
|
74
|
+
*/
|
|
75
|
+
hasInvalidChild(element: defs.Element): boolean;
|
|
63
76
|
}
|