@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
package/forms/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import Box from"@vertigis/react-ui/Box";import FormHelperText from"@vertigis/react-ui/FormHelperText";import FormLabel from"@vertigis/react-ui/FormLabel";import{useCallback}from"react";import*as React from"react";import{formClasses}from"./components/Form.js";import Markdown from"./components/Markdown.js";import{hasContent,isMarkdown,markdownToText}from"./textUtilities.js";const ERROR_SUFFIX="-error",DESCRIPTION_SUFFIX="-description",TITLE_SUFFIX="-title";function getTitleId(e){return`${e}${TITLE_SUFFIX}`}function getDescriptionId(e){return`${e}${DESCRIPTION_SUFFIX}`}function getErrorId(e){return`${e}${ERROR_SUFFIX}`}function renderTitle(e,r,t,n){return hasContent(r.title)?React.createElement(FormLabel,{className:formClasses.formElementTitle,htmlFor:n,id:`${t}-label
|
|
1
|
+
import Box from"@vertigis/react-ui/Box";import FormHelperText from"@vertigis/react-ui/FormHelperText";import FormLabel from"@vertigis/react-ui/FormLabel";import{useCallback}from"react";import*as React from"react";import{formClasses}from"./components/Form.js";import Markdown from"./components/Markdown.js";import{hasContent,isMarkdown,markdownToText}from"./textUtilities.js";const ERROR_SUFFIX="-error",DESCRIPTION_SUFFIX="-description",TITLE_SUFFIX="-title";function getTitleId(e){return`${e}${TITLE_SUFFIX}`}function getDescriptionId(e){return`${e}${DESCRIPTION_SUFFIX}`}function getErrorId(e){return`${e}${ERROR_SUFFIX}`}function renderTitle(e,r,t,n){return hasContent(r.title)?React.createElement(FormLabel,{className:formClasses.formElementTitle,htmlFor:n,id:`${t}-label`,required:!!r.require},React.createElement(Markdown,{host:e,inline:!0,text:r.title})):null}function renderDescription(e,r,t,n){return hasContent(r.description)?React.createElement(FormHelperText,{className:n,component:"div",disabled:!r.enabled,error:!1,id:`${t}-description`},React.createElement(Markdown,{host:e,text:r.description})):null}function renderAccessibleDescription(e,r,t){let n=e.translateText(r.accessibleDescription);return n||(r=e.translateText(r.description),n=isMarkdown(r)?markdownToText(r.markdown):r),n?React.createElement(Box,{sx:{display:"none"},id:`${t}-accessible-description`},n):null}function renderError(e,r){return hasContent(r.error)?React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},React.createElement(Markdown,{host:e,text:r.error})):null}function renderFocus(e,r,t){null===e||e.disabled||t.renderFocus(e,r)}function useFocusCallback(e){const{host:r,name:t}=e.props;return useCallback(e=>{null===(e=Array.isArray(e?.thumbRefs)&&0<e.thumbRefs.length?e.thumbRefs[0].current:e)||e.disabled||r.renderFocus(e,t)},[e.enabled,t,r])}export{getTitleId,getDescriptionId,getErrorId,renderTitle,renderDescription,renderAccessibleDescription,renderError,renderFocus,useFocusCallback};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import BaseAutoComplete,{HighlightOption}from"@vertigis/react-ui/Autocomplete";import FormLabelTextField from"@vertigis/react-ui/FormLabelTextField";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import{useEffect,useMemo,useRef,useState}from"react";import*as React from"react";import{ExclusiveTimer}from"../ExclusiveTimer.js";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{autoCompletePropertyConstraints}from"../elements/AutoComplete.js";import{getKeyString}from"../keyboard.js";import{getItemId,makeSafeClassName,makeUniqueId,
|
|
1
|
+
import BaseAutoComplete,{autocompleteClasses,HighlightOption}from"@vertigis/react-ui/Autocomplete";import FormLabelTextField from"@vertigis/react-ui/FormLabelTextField";import Popper from"@vertigis/react-ui/Popper";import Skeleton from"@vertigis/react-ui/Skeleton";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import{useEffect,useMemo,useRef,useState}from"react";import*as React from"react";import{ExclusiveTimer}from"../ExclusiveTimer.js";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{autoCompletePropertyConstraints}from"../elements/AutoComplete.js";import{getKeyString}from"../keyboard.js";import{getItemId,makeSafeClassName,makeUniqueId,sortAndFilterItems}from"../utils.js";const StyledAutoComplete=styled(BaseAutoComplete)(()=>({[`.${autocompleteClasses.endAdornment}`]:{right:1}})),popperClasses={skeletonOption:"skeleton-option"},StyledPopper=styled(Popper)(()=>({[`.${autocompleteClasses.listbox}`]:{[`.${autocompleteClasses.option}`]:{display:"block",[`&.${popperClasses.skeletonOption}`]:{'&[data-option-index="0"]':{span:{width:"70%"}},'&[data-option-index="1"]':{span:{width:"85%"}},'&[data-option-index="2"]':{span:{width:"55%"}}}}}})),StyledSkeleton=styled(Skeleton)(()=>({fontSize:"1.25rem",lineHeight:"inherit"})),pendingOption={enabled:!1,label:""},pendingOptions=[pendingOption,pendingOption,pendingOption],AutoComplete=({className:e,component:m,element:c})=>{const{host:d,name:r}=m.props,[t,o]=useState(),[n,a]=useState(""),[l,f]=useState([]),[s,g]=useState(null),i=useRef(!1),p=useRef(!1),u=`${makeUniqueId(r)}-input`;var v=useRef(d.renderText({status:"trivial"}));const y=d.renderText(c.prompt),C=d.renderText(c.tooltip),h=useFocusCallback(m),x=useRef({}),b=useRef({}),S=useMemo(()=>{let e=c.delay;return"number"==typeof e&&!isNaN(e)||(e=autoCompletePropertyConstraints.delay.default),Math.max(e,autoCompletePropertyConstraints.delay.minimum)},[c.delay]),k=useMemo(()=>{let e=c.minLength;return"number"==typeof e&&!isNaN(e)||(e=autoCompletePropertyConstraints.minLength.default),Math.max(e,autoCompletePropertyConstraints.minLength.minimum)},[c.minLength]),E=m.timer||(m.timer=new ExclusiveTimer),O=()=>{d.post("suggest",{name:r,value:c.value,argument:n,cancellationToken:E.cancellationToken}),f(pendingOptions)},T=()=>{c.items={},f([])};return useEffect(()=>{"clear"===t?T():"input"===t&&(i.current=!0,n.length>=k?(c.current=void 0,m.forceUpdate(),E.reset(),E.start(S,O)):0<Object.keys(c.items||{}).length&&T())},[t,n]),useEffect(()=>{var e,t=s?.value;c.value!==t&&(e=getItemId(s,x.current),e=(c.current=e)?b.current[e]:void 0,c.label=e,c.value=t,m.forceUpdate(),d.post("changed",{name:r,value:t,argument:e}))},[s]),useEffect(()=>{var{current:e,items:t,label:r,value:o}=sortAndFilterItems(c);c.current=e,c.label=r,c.value=o,m.forceUpdate();const n={};var a="string"==typeof e?e:void 0;let l=null;const s=[];for(const u in t){var i=t[u];s.push(i);var p=d.renderText(i.label);n[u]=p,a&&u===a&&(l=i)}b.current=n,x.current=t,f(s),g(l)},[c.items]),useEffect(()=>{var e="string"==typeof c.current?c.current:void 0,t=e?x.current[e]:void 0,e=e?b.current[e]:void 0;t?(c.label=e,c.value=t.value,m.forceUpdate(),a(e||"")):(c.value=void 0,m.forceUpdate(),i.current||a("")),g(t||null)},[c.current]),useEffect(()=>{i.current||p.current||a(""),i.current=!1,p.current=!1},[c.label]),React.createElement(FormElement,{className:e,component:m,element:c,inputId:u},React.createElement(StyledAutoComplete,{autoSelect:!0,clearOnEscape:!0,clearOnBlur:!1,disabled:!m.enabled,filterOptions:e=>e,getOptionDisabled:e=>!1===e.enabled,inputValue:n,noOptionsText:v.current,onBlur:()=>{1===l.length&&n.toLowerCase()===b.current[0]?.toLowerCase()?(a(b.current[0]),g(l[0])):(c.label=n,m.forceUpdate())},onChange:(e,t,r,o)=>{p.current=!0,g(t)},onInputChange:(e,t,r)=>{a(t),o(r)},onKeyDown:e=>{"enter"===getKeyString(e)&&e.stopPropagation()},options:l,PopperComponent:StyledPopper,renderOption:(e,t,{inputValue:r})=>{if(t===pendingOption){var o=clsx(e.className,popperClasses.skeletonOption);return React.createElement("li",{...e,className:o,key:e.id},React.createElement(StyledSkeleton,null))}o=getItemId(t,x.current),o={...e,className:clsx(e.className,t.styleName?makeSafeClassName(t.styleName):void 0),title:t.tooltip?d.renderText(t.tooltip):void 0,inputText:r,optionText:o?b.current[o]:""};return React.createElement(HighlightOption,{...o})},renderInput:e=>(e.inputProps={...e.inputProps,id:u,placeholder:y,title:C},React.createElement(FormLabelTextField,{error:!!c.error,...e,fullWidth:!0,inputRef:h})),value:s}))};export default AutoComplete;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Button from"@vertigis/react-ui/Button";import Stack
|
|
1
|
+
import Button from"@vertigis/react-ui/Button";import Stack,{stackClasses}from"@vertigis/react-ui/Stack";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import FormElement from"../FormElement.js";import{Orientation}from"../constants.js";import{makeSafeClassName,sort}from"../utils.js";import Markdown from"./Markdown.js";const Root=styled(FormElement)(({theme:{spacing:e}})=>({[`.${stackClasses.root}`]:{alignItems:"flex-start",flexWrap:"wrap",marginTop:e(1),marginBottom:e(1)}})),ButtonBar=({className:e,component:c,element:t,spacing:a})=>{const{host:p,name:u}=c.props,d=sort(t.items);let f;void 0===a&&(a=1);return React.createElement(Root,{className:e,component:c,element:t},React.createElement(Stack,{direction:t.orientation===Orientation.VERTICAL?"column":"row",spacing:a},Object.keys(d).map(e=>{var t,a,o,r=d[e],n=r.styleName?makeSafeClassName(r.styleName):void 0,i=!1!==r.visible,s=c.enabled&&!1!==r.enabled&&i,m=p.renderText(r.tooltip),l=d[e]["value"];return s&&void 0===f&&(f=e),i?React.createElement(Button,{onClick:(a=e,o=l,function(e){p.post("clicked",{name:u,item:a,value:o})}),className:n,color:r.default?"primary":"inherit",disabled:!s,key:e,ref:(t=e,function(e){null!==e&&t===f&&p.renderFocus(e,u)}),title:m,variant:r.default?"contained":"outlined"},React.createElement(Markdown,{host:p,inline:!0,text:r.label||""})):null})))};export default ButtonBar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Checkbox from"@vertigis/react-ui/Checkbox";import FormControlLabel from"@vertigis/react-ui/FormControlLabel";import FormGroup
|
|
1
|
+
import Checkbox from"@vertigis/react-ui/Checkbox";import FormControlLabel from"@vertigis/react-ui/FormControlLabel";import FormGroup,{formGroupClasses}from"@vertigis/react-ui/FormGroup";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{useEffect,useState}from"react";import FormElement from"../FormElement.js";import{Orientation}from"../constants.js";import{makeSafeClassName,sortItems}from"../utils.js";import Markdown from"./Markdown.js";const Root=styled(FormElement)(({theme:{spacing:e}})=>({[`.${formGroupClasses.root}`]:{paddingBottom:e(2)}})),CheckGroup=({className:e,component:t,element:a})=>{const[n,m]=useState([]),{host:o,name:s}=t.props,c=sortItems(a);useEffect(()=>{l()});var r=e=>{null===e||e.disabled||o.renderFocus(e,s)};function l(){const e=[],t=[];for(const o in c){var r=c[o];r.checked&&(e.push(r),t.push(o))}0===e.length?a.value=void 0:a.value={refValueType:"items",items:e},a.current=void 0,i(t,n)||m(t)}const i=(t,r)=>{if(!t&&!r)return!0;if(!t||!r)return!1;if(t.length!==r.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==r[e])return!1;return!0};const u=[];for(const v in c){var f=c[v],p=-1!==n.indexOf(v),d=t.enabled&&!1!==f.enabled,h=o.renderText(f.tooltip),k=f.styleName?makeSafeClassName(f.styleName):void 0;u.push(React.createElement(FormControlLabel,{className:k,control:React.createElement(Checkbox,{checked:p,onChange:((t,r)=>function(e){e=c[t].checked=e.currentTarget.checked;l(),o.post("changed",{name:s,item:t,value:e?r:void 0,argument:e})})(v,f.value),inputRef:r}),disabled:!d,key:v,label:React.createElement(Markdown,{host:o,text:f.label}),title:h}))}return React.createElement(Root,{className:e,component:t,element:a},React.createElement(FormGroup,{row:a.orientation===Orientation.HORIZONTAL},u))};export default CheckGroup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Box from"@vertigis/react-ui/Box";import BaseDateRangePicker from"@vertigis/react-ui/DateRangePicker";import FormHelperText from"@vertigis/react-ui/FormHelperText";import FormLabelTextField from"@vertigis/react-ui/FormLabelTextField";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import{useEffect,useRef,useState}from"react";import*as React from"react";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{areValuesEqual,convertToDateRangeRef,hasErrorChanged,isInvalidDate}from"../dateUtilities.js";import{makeUniqueId}from"../utils.js";const PREFIX="DateRangePicker",dateRangePickerClasses={root:`${PREFIX}-root`,toLabel:`${PREFIX}-toLabel`},Root=styled(FormElement)(({theme:{spacing:e}})=>({
|
|
1
|
+
import Box from"@vertigis/react-ui/Box";import BaseDateRangePicker from"@vertigis/react-ui/DateRangePicker";import{formControlClasses}from"@vertigis/react-ui/FormControl";import FormHelperText from"@vertigis/react-ui/FormHelperText";import FormLabelTextField from"@vertigis/react-ui/FormLabelTextField";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import{useEffect,useRef,useState}from"react";import*as React from"react";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{areValuesEqual,convertToDateRangeRef,hasErrorChanged,isInvalidDate}from"../dateUtilities.js";import{makeUniqueId}from"../utils.js";const PREFIX="DateRangePicker",dateRangePickerClasses={root:`${PREFIX}-root`,toLabel:`${PREFIX}-toLabel`},Root=styled(FormElement)(({theme:{spacing:e}})=>({[`.${formControlClasses.root}`]:{flexGrow:1},[`.${dateRangePickerClasses.toLabel}`]:{marginLeft:e(2),marginRight:e(2),paddingTop:e(2),alignSelf:"center"}})),DateRangePicker=({className:e,component:t,element:r})=>{const[a,o]=useState(-1),[n,l]=useState([!1,!1]),s=useRef(),[i,c]=useState(!1),[m,u]=useState([null,null]),p=useRef(!0);useEffect(()=>{var e=convertToDateRangeRef(r.value),e=[e?.startDate||null,e?.endDate||null];u(e),E(e)},[r.value]),useEffect(()=>{var e,t;p.current?p.current=!1:(e=0===a?n[0]:isInvalidDate(m[0]),t=1===a?n[1]:isInvalidDate(m[1]),l([e,t]),e||t?d({status:"invalid"}):d(),i||-1!==a||r.error||E(m)&&R.post("changed",{name:g,value:r.value}))},[i,a]);const d=e=>{hasErrorChanged(r,e)&&(r.error=e,t.forceUpdate())};var f=!t.enabled;const{host:R,name:g}=t.props,v=R.renderText(r.tooltip),F=useFocusCallback(t),E=e=>{if(e[0]&&e[1]){e={refValueType:"daterange",startDate:e[0],endDate:e[1]};if(!areValuesEqual(r,e))return r.value=e,!0}else if(void 0!==r.value)return!(r.value=void 0);return!1},P=`${makeUniqueId(g)}-input`;return React.createElement(Root,{className:clsx(e,dateRangePickerClasses.root),component:t,element:r,inputId:P},r.error&&React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},s.current),React.createElement(BaseDateRangePicker,{disabled:f,onChange:e=>{u(e)},onOpen:()=>{c(!0)},onClose:()=>{c(!1)},renderInput:(e,t)=>(s.current=e.inputProps?.placeholder,e.error=!!r.error&&n[0],e.inputProps={...e.inputProps,id:P,title:v,onBlur:()=>{o(-1)},onFocus:()=>{o(0)}},e.inputRef=F,t.error=!!r.error&&n[1],t.inputProps={...t.inputProps,title:v,onBlur:()=>{o(-1)},onFocus:()=>{o(1)}},React.createElement(React.Fragment,null,React.createElement(FormLabelTextField,{...e}),React.createElement(Box,{className:dateRangePickerClasses.toLabel}," ",R.renderText("@common-to")," "),React.createElement(FormLabelTextField,{...t}))),value:m}))};export default DateRangePicker;export{dateRangePickerClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import BaseDateTimePicker from"@vertigis/react-ui/DateTimePicker";import FormHelperText from"@vertigis/react-ui/FormHelperText";import FormLabelTextField from"@vertigis/react-ui/FormLabelTextField";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{hasErrorChanged,isInvalidDate,makeProperFormat,makeProperValue,updateElementValue}from"../dateUtilities.js";import{makeUniqueId}from"../utils.js";const StylableDateTimePicker=e=>{const{PopperProps:t={},className:r,...a}=e;return React.createElement(BaseDateTimePicker,{PopperProps:{...t,className:clsx(t.className,r)},...a})},StyledDateTimePicker=styled(StylableDateTimePicker)(({theme:{palette:e}})=>({
|
|
1
|
+
import{buttonBaseClasses}from"@vertigis/react-ui/ButtonBase";import{clockClasses}from"@vertigis/react-ui/ClockPicker";import BaseDateTimePicker from"@vertigis/react-ui/DateTimePicker";import FormHelperText from"@vertigis/react-ui/FormHelperText";import FormLabelTextField from"@vertigis/react-ui/FormLabelTextField";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{hasErrorChanged,isInvalidDate,makeProperFormat,makeProperValue,updateElementValue}from"../dateUtilities.js";import{makeUniqueId}from"../utils.js";const StylableDateTimePicker=e=>{const{PopperProps:t={},className:r,...a}=e;return React.createElement(BaseDateTimePicker,{PopperProps:{...t,className:clsx(t.className,r)},...a})},StyledDateTimePicker=styled(StylableDateTimePicker)(({theme:{palette:e}})=>({[`& .${clockClasses.amButton}, .${clockClasses.pmButton}`]:{[`&.${buttonBaseClasses.focusVisible}`]:{color:e.action.active}}})),DateTimePicker=({className:e,component:t,element:r})=>{const[a,o]=useState(!1),[l,s]=useState(!1),[i,m]=useState(null),c=useRef(),n=useRef(!0),{host:u,name:p}=t.props;var d=useFocusCallback(t);const f=u.renderText(r.tooltip),k=makeProperFormat(r.value,r.format),P=Calendar.useNative(),v="datetime";useEffect(()=>{var e=makeProperValue(r.value,P);updateElementValue(r,e,v,k,P),m(e||null)},[r.value]),useEffect(()=>{n.current?n.current=!1:l||a||(isInvalidDate(i)?F({status:"invalid"}):(F(),updateElementValue(r,i,v,k,P)&&u.post("changed",{name:p,value:r.value})))},[l,a]);const F=e=>{hasErrorChanged(r,e)&&(r.error=e,t.forceUpdate())},T=`${makeUniqueId(p)}-input`,E=u.renderText(r.prompt);return React.createElement(FormElement,{className:e,component:t,element:r,inputId:T},r.error&&React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},c.current),React.createElement(StyledDateTimePicker,{disabled:!t.enabled,key:"date-picker",inputRef:d,onChange:e=>{m(e)},onOpen:()=>{s(!0)},onClose:()=>{s(!1)},renderInput:e=>(c.current=e.inputProps?.placeholder,e.error=!!r.error,e.inputProps={...e.inputProps,id:T,onBlur:()=>{o(!1)},onFocus:()=>{o(!0)},placeholder:E||e.inputProps?.placeholder,title:f},React.createElement(FormLabelTextField,{...e})),value:i}))};export default DateTimePicker;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { InputBaseProps } from "@vertigis/react-ui/InputBase";
|
|
3
|
+
interface FormLabelNumberFieldProps {
|
|
4
|
+
disabled: boolean;
|
|
5
|
+
id?: string;
|
|
6
|
+
inputProps: InputBaseProps["inputProps"];
|
|
7
|
+
onChange: (value: number | undefined) => void;
|
|
8
|
+
label: string;
|
|
9
|
+
value: number;
|
|
10
|
+
max: number;
|
|
11
|
+
maxDecimalPlaces: number;
|
|
12
|
+
min: number;
|
|
13
|
+
}
|
|
14
|
+
declare const FormLabelNumberField: (props: FormLabelNumberFieldProps) => JSX.Element;
|
|
15
|
+
export default FormLabelNumberField;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import FormControl from"@vertigis/react-ui/FormControl";import FormLabel from"@vertigis/react-ui/FormLabel";import NumberInput from"@vertigis/react-ui/NumberInput";import{useId}from"@vertigis/react-ui/utils/react";import*as React from"react";const FormLabelNumberField=e=>{var{disabled:r,id:t,inputProps:a,label:m,max:i,maxDecimalPlaces:o,min:l,onChange:u,value:n}=e,e=useId(t),t=`${e}-label`;return React.createElement(FormControl,{disabled:r},React.createElement(FormLabel,{htmlFor:e,id:t},m),React.createElement(NumberInput,{id:e,inputProps:a,max:i,maxDecimalPlaces:o,min:l,onChange:u,size:"small",value:n}))};export default FormLabelNumberField;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Button from"@vertigis/react-ui/Button";import ButtonGroup from"@vertigis/react-ui/ButtonGroup";import Checkbox from"@vertigis/react-ui/Checkbox";import IconButton from"@vertigis/react-ui/IconButton";import Input from"@vertigis/react-ui/Input";import InputAdornment from"@vertigis/react-ui/InputAdornment";import List from"@vertigis/react-ui/List";import ListItem from"@vertigis/react-ui/ListItem";import ListItemButton from"@vertigis/react-ui/ListItemButton";import ListItemIcon from"@vertigis/react-ui/ListItemIcon";import ListItemText
|
|
1
|
+
import Button from"@vertigis/react-ui/Button";import ButtonGroup from"@vertigis/react-ui/ButtonGroup";import Checkbox from"@vertigis/react-ui/Checkbox";import IconButton from"@vertigis/react-ui/IconButton";import Input from"@vertigis/react-ui/Input";import InputAdornment from"@vertigis/react-ui/InputAdornment";import List from"@vertigis/react-ui/List";import ListItem from"@vertigis/react-ui/ListItem";import ListItemButton from"@vertigis/react-ui/ListItemButton";import ListItemIcon from"@vertigis/react-ui/ListItemIcon";import ListItemText,{listItemTextClasses}from"@vertigis/react-ui/ListItemText";import Radio from"@vertigis/react-ui/Radio";import Stack from"@vertigis/react-ui/Stack";import Close from"@vertigis/react-ui/icons/Close";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import FormElement from"../FormElement.js";import{renderFocus}from"../common.js";import{Orientation}from"../constants.js";import{getKeyString}from"../keyboard.js";import{isDataRef,isGeometryRef,makeSafeClassName}from"../utils.js";import Markdown from"./Markdown.js";const PREFIX="ItemPicker",itemPickerClasses={button:`${PREFIX}-list-item-button`,clearIcon:`${PREFIX}-clear-button`,horizontal:`${PREFIX}-horizontal`,item:`${PREFIX}-list-item`,items:`${PREFIX}-list-items`},Root=styled(FormElement)(({theme:{typography:e}})=>({[`.${itemPickerClasses.clearIcon}`]:{height:e.pxToRem(20),width:e.pxToRem(20)},[`.${itemPickerClasses.items}`]:{[`&.${itemPickerClasses.horizontal}`]:{display:"flex",flexWrap:"wrap",[`.${itemPickerClasses.item}`]:{width:"auto"}},[`.${itemPickerClasses.item}`]:{[`.${itemPickerClasses.button}`]:{paddingBottom:0,paddingTop:0,[`.${listItemTextClasses.primary}`]:{fontWeight:e.fontWeightRegular}}}}})),ItemPicker=({className:e,component:r,element:n,spacing:t})=>{const a=r.props["host"],i=r.props.name;void 0===t&&(t=1);const s=n.items||{};let c,m,l,d=n.state;function u(){const e=[];for(const o in s){var t=s[o];t.checked&&e.push(t)}c=0===e.length?n.value=void 0:n.value={refValueType:"items",items:e}}function p(e,t=!0){let o=d.keyToIndex[e];if(null==o||null===o){if(!t)return;d.keyToIndex[e]=d.length,d.push({}),o=d.keyToIndex[e]}return d[o]}function f(e,t){s[e].checked=t;const o=p(e);o&&(o.checked=t)}function o(t){return function(e){null!==e&&(e.disabled||a.renderFocus(e,i),e=!0===s[t].checked,p(t).checked=e)}}u(),function(){void 0!==d&&null!==d||(d=n.state=[]),d.keyToIndex||(d.keyToIndex={});const e={};for(const o in n.items){var t=p(o,!1);t&&(e[o]=t)}d=n.state=[],d.keyToIndex={};for(const i in e)d.keyToIndex[i]=d.length,d.push(e[i])}();const g=[];let k;switch(n.selectionMode){case"single":k="radio";break;case"multiple":k="checkbox"}for(const P in s){var I,v,h,R,x=s[P];p(P).content=function(e){if(e){if(isGeometryRef(e))return e.geometry;if(isDataRef(e)&&e.data)return e.data.geometry}}(x.value),!1!==x.visible&&(v=(I=r.enabled&&!1!==x.enabled)&&!!k,h=a.renderText(x.tooltip),R=clsx(itemPickerClasses.item,x.styleName?makeSafeClassName(x.styleName):void 0),x=React.createElement(Markdown,{host:a,text:x.label}),g.push(React.createElement(ListItem,{className:R,disabled:!I,disablePadding:!0,key:P},React.createElement(ListItemButton,{className:itemPickerClasses.button,onClick:v?(o=>()=>{var e=s[o].checked;if("single"===n.selectionMode){if(!e)for(const t in s)f(t,t===o)}else f(o,!e);u(),r.forceUpdate(),a.post("changed",{name:i,value:c}),a.renderState(i,"geometry",d)})(P):void 0,tabIndex:I?void 0:-1,title:h,"data-id":P,onBlur:I?e=>{delete p(e.currentTarget.dataset.id).focused,a.renderState(i,"geometry",d)}:void 0,onFocus:I?e=>{p(e.currentTarget.dataset.id).focused=!0,a.renderState(i,"geometry",d)}:void 0,onMouseOver:I?e=>{p(e.currentTarget.dataset.id).pending=!0,a.renderState(i,"geometry",d)}:void 0,onMouseOut:I?e=>{delete p(e.currentTarget.dataset.id).pending,a.renderState(i,"geometry",d)}:void 0},"checkbox"===k&&React.createElement(ListItemIcon,null,React.createElement(Checkbox,{edge:"start",checked:!0===s[P]?.checked,disableRipple:!0,inputRef:o(P),tabIndex:-1,value:P})),"radio"===k&&React.createElement(ListItemIcon,null,React.createElement(Radio,{edge:"start",checked:!0===s[P]?.checked,disableRipple:!0,inputRef:o(P),name:r.id,tabIndex:-1,value:P})),React.createElement(ListItemText,null,x)))))}var b=a.renderText(n.prompt);function y(){var e=m.value.toLowerCase();for(const t in s){const o=s[t];if(e){const i=a.renderText(o.label).toLowerCase();o.visible=-1!==i.indexOf(e)}else o.visible=!0}l.hidden=!e,r.forceUpdate()}function C(){m.value="",y()}var E="multiple"===n.selectionMode&&0<g.length,T=clsx(itemPickerClasses.items,{[itemPickerClasses.horizontal]:n.orientation===Orientation.HORIZONTAL});return React.createElement(Root,{className:e,component:r,element:n,ref:function(e){null===e?a.renderState(i,"geometry"):a.renderState(i,"geometry",d)}},React.createElement(Stack,{spacing:t},n.showFilter&&React.createElement(Input,{disabled:!r.enabled,endAdornment:React.createElement(InputAdornment,{position:"end"},React.createElement(IconButton,{disabled:!r.enabled,onClick:C,ref:e=>l=e,title:a.renderText("@common-clear")},React.createElement(Close,{className:itemPickerClasses.clearIcon}))),error:!1,fullWidth:!0,inputRef:e=>{m=e,renderFocus(e,i,a)},onChange:y,onKeyDown:e=>{"escape"===getKeyString(e)&&C()},placeholder:b,type:"text"}),E&&React.createElement(ButtonGroup,{color:"primary",variant:"outlined"},React.createElement(Button,{disabled:!r.enabled,onClick:function(){for(const e in s)f(e,!0);u(),r.forceUpdate(),a.post("changed",{name:i,value:c})}},a.renderText("@common-all")),React.createElement(Button,{disabled:!r.enabled,onClick:function(){for(const e in s)f(e,!1);u(),r.forceUpdate(),a.post("changed",{name:i,value:c})}},a.renderText("@common-none"))),React.createElement(List,{className:T,dense:!0},g)))};export default ItemPicker;export{itemPickerClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Select from"@vertigis/react-ui/Select";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import FormElement from"../FormElement.js";import{renderFocus}from"../common.js";import{makeSafeClassName,makeUniqueId,sortItems}from"../utils.js";const PREFIX="ListBox",listBoxClasses={select:`${PREFIX}-select`},Root=styled(FormElement)(({theme:{spacing:e}})=>({[
|
|
1
|
+
import{inputClasses}from"@vertigis/react-ui/Input";import{inputBaseClasses}from"@vertigis/react-ui/InputBase";import{nativeSelectClasses}from"@vertigis/react-ui/NativeSelect";import Select from"@vertigis/react-ui/Select";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import FormElement from"../FormElement.js";import{renderFocus}from"../common.js";import{makeSafeClassName,makeUniqueId,sortItems}from"../utils.js";const PREFIX="ListBox",listBoxClasses={select:`${PREFIX}-select`},Root=styled(FormElement)(({theme:{spacing:e}})=>({[`.${nativeSelectClasses.select}.${nativeSelectClasses.standard}.${nativeSelectClasses.multiple}.${inputBaseClasses.input}.${inputClasses.input}.${listBoxClasses.select}`]:{paddingRight:e(1)}})),ListBox=({className:e,component:i,element:a})=>{const{host:l,name:o}=i.props;var t=`${makeUniqueId(o)}-input`;const r=sortItems(a);!function(){const e=[];for(const s in r){var t=r[s];t.checked&&e.push(t)}0===e.length?a.value=void 0:a.value={refValueType:"items",items:e}}();const s=[],n=[];for(const v in r){const f=r[v];var c=l.renderText(f.label);const u=l.renderText(f.tooltip);f.checked=!0===f.checked;var m=clsx(f.styleName?makeSafeClassName(f.styleName):void 0);f.checked&&n.push(v);var p=!1===f.enabled?void 0:!!f.checked;s.push(React.createElement("option",{"aria-selected":p,className:m,key:v,title:u,value:v,disabled:!1===f.enabled},c))}s.length<1&&(i.enabled=!1);const u=l.renderText(a.tooltip)||void 0;let d;return"number"==typeof a.size&&(d=a.size),React.createElement(Root,{className:e,component:i,element:a,inputId:t},React.createElement(Select,{disabled:!i.enabled,inputProps:{"aria-multiselectable":!0,"aria-orientation":"vertical","aria-required":a.require,className:listBoxClasses.select,id:t,role:"listbox",size:d,title:u},inputRef:e=>renderFocus(e,o,l),multiple:!0,native:!0,onChange:e=>{const t=e.target["options"];for(let e=0;e<t.length;e++){var s=t.item(e),a=s.value;r[a].checked=s.selected}i.forceUpdate(),l.post("changed",{name:o})},value:n},s))};export default ListBox;export{listBoxClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{NumberFormatContext}from"@vertigis/react-ui/NumberFormatContext";import NumberInput from"@vertigis/react-ui/NumberInput";import*as React from"react";import{useEffect,useMemo,useRef,useState}from"react";import FormElement from"../FormElement.js";import{numberFormatConfiguration}from"../elements/Number.js";import{getKeyString}from"../keyboard.js";import{areValuesEqual,enforceConstraints,getNumberConstraints,sanitizePrecision}from"../numberUtilities.js";import{isNumber,isNumberRef,isString,makeUniqueId}from"../utils.js";const NumberComponent=({className:e,component:r,element:n})=>{const{host:t,name:o}=r.props;var a=!r.enabled;const[m,i]=useState(!1),[u,s]=useState(),l=useRef(!0);var c=`${makeUniqueId(o)}-input`,p=t.deriveLocale();const{decimals:f,numberConstraints:b}=useMemo(()=>{var e=n.format,r=getNumberConstraints(e,numberFormatConfiguration);return{decimals:sanitizePrecision(e?.precision,r.step,numberFormatConfiguration),numberConstraints:r}},[n.format]),{maximum:d,minimum:v,step:N}=b,g={fractionalDigits:f,locale:p},C=e=>{if("number"==typeof e)return{refValueType:"number",format:{lowerBound:v,precision:f,step:N,upperBound:d},display:t.formatNumber(e,g),numeric:e}},E=()=>{e=void 0===(e=u)?void 0:enforceConstraints(e,b),e=C(e);areValuesEqual(n,e)||(n.value=e,t.post("changed",{name:o,value:e}));var e=e?.numeric;e!==u&&s(e)};useEffect(()=>{l.current?l.current=!1:m||E()},[m,u]),useEffect(()=>{var e=F(n.value),r=void 0===e?void 0:C(e);areValuesEqual(n,r)||(n.value=r),e!==u&&s(e)},[n.value]);const F=e=>{let r=void 0;if(isNumber(e))r=e;else if(isString(e)){if(!e)return;r=t.coerceNumber(e)}else"number"==typeof e?.numeric&&(r=e.numeric);return"number"==typeof r&&0*r!=0&&(r=void 0),void 0===r?r:enforceConstraints(r,b)};var x=t.renderText(n.prompt),p=t.renderText(n.tooltip);return React.createElement(FormElement,{className:e,component:r,element:n,inputId:c},React.createElement(NumberFormatContext.Provider,{value:{formatNumber:e=>t.formatNumber(e,g),parseNumber:e=>t.coerceNumber(e)}},React.createElement(NumberInput,{allowUndefined:!0,correctOnBlur:!0,disabled:a,error:!!n.error,inputProps:{id:c,onKeyDown:e=>{var r,t=getKeyString(e);return"enter"===t?(r=e,E(),r.currentTarget.select(),r.stopPropagation(),r.preventDefault(),!1):"escape"===t?(t=e,(e=isNumberRef(n.value)?n.value.numeric:void 0)!==u&&s(e),t.currentTarget.select(),t.stopPropagation(),t.preventDefault(),!1):void 0}},inputRef:e=>{null===e||e.disabled||t.renderFocus(e,o)},max:d,maxDecimalPlaces:f,min:v,onBlur:()=>{i(!1)},onChange:e=>s(e),onFocus:()=>{i(!0)},placeholder:x,required:n.require,size:"small",title:p,value:u})))};export default NumberComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Box from"@vertigis/react-ui/Box";import
|
|
1
|
+
import Box from"@vertigis/react-ui/Box";import{formControlClasses}from"@vertigis/react-ui/FormControl";import{NumberFormatContext}from"@vertigis/react-ui/NumberFormatContext";import Slider,{sliderClasses}from"@vertigis/react-ui/Slider";import Stack from"@vertigis/react-ui/Stack";import{styled}from"@vertigis/react-ui/styles";import{useEffect,useMemo,useRef,useState}from"react";import*as React from"react";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{numberFormatConfiguration}from"../elements/NumberRangeSlider.js";import{DEFAULT_CURRENCY}from"../numberFormatter.js";import{getMarks,getNumberConstraints,getNumberSliderValues,sanitizePrecision}from"../numberUtilities.js";import{makeUniqueId,throttle}from"../utils.js";import FormLabelNumberField from"./FormLabelNumberField.js";const PREFIX="NumberRangeSlider",numberRangeSliderClasses={container:`${PREFIX}-container`,inputContainer:`${PREFIX}-input-container`,toLabel:`${PREFIX}-to-label`},Root=styled(FormElement)(({theme:{spacing:e}})=>({[`.${numberRangeSliderClasses.container}`]:{display:"inline-flex",flexDirection:"column",paddingLeft:e(2),paddingRight:e(2),paddingTop:e(4),width:"100%",[`.${sliderClasses.markLabel}`]:{transform:"translateX(-100%)",'&[data-index="0"]':{transform:"none"}},[`.${numberRangeSliderClasses.inputContainer}`]:{marginTop:e(1),[`.${formControlClasses.root}`]:{flexGrow:1},[`.${numberRangeSliderClasses.toLabel}`]:{marginLeft:e(2),marginRight:e(2),paddingTop:e(2),alignSelf:"center"}}}})),NumberRangeSlider=({className:e,component:r,element:a})=>{const{host:t,name:o}=r.props;var n=!r.enabled;const{currency:i,customDisplayFormat:m,decimals:s,displayFormat:l,numberConstraints:u}=useMemo(()=>{var e=a.format,r=getNumberConstraints(e,numberFormatConfiguration),t=sanitizePrecision(e?.precision,r.step,numberFormatConfiguration);return{currency:e?.currency||DEFAULT_CURRENCY,customDisplayFormat:e?.customDisplayFormat,decimals:t,displayFormat:e?.displayFormat,numberConstraints:r}},[a.format]);var c=u["step"];const d=u.maximum,p=u.minimum,[b,g]=useState(!1),[f,v]=useState(!1),[C,F]=useState([p,d]),R=useRef(!0);var N=makeUniqueId(o);const x=`${N}-slider-input`;var S=!1!==a.showMinMaxLabels,E=!!a.showTickMarks,y=!1!==a.manualEntry;const L={currency:i,customDisplayFormat:m,format:l,fractionalDigits:s,locale:t.deriveLocale()};useEffect(()=>{var e;R.current?R.current=!1:f?$(C):b||(e=getNumberSliderValues(C,u),C[0]===e[0]&&C[1]===e[1]||F(e),h(a.value,e)||(a.value=e,t.post("changed",{name:o,value:a.value})))},[b,f,C]),useEffect(()=>{var e=getNumberSliderValues(a.value,u);h(a.value,e)||(a.value=e),h(C,e)||F(e)},[a.value]);const h=(e,r)=>void 0===e&&void 0===r[0]&&void 0===r[1]||(void 0===e&&null===r[0]&&null===r[1]||!(!Array.isArray(e)||2!==e.length||e[0]!==r[0]||e[1]!==r[1])),$=useMemo(()=>throttle(e=>{t.post("dragged",{name:o,value:e})}),[]),k=useFocusCallback(r);var D=t.renderText(a.tooltip),P=n&&!f,T=y?{max:d,min:p,onBlur:()=>{g(!1)},onFocus:()=>{g(!0)},step:c,title:D}:void 0;return React.createElement(Root,{className:e,component:r,element:a,inputId:`${x}-0`},React.createElement(Box,{className:numberRangeSliderClasses.container},React.createElement(Slider,{disabled:P,getAriaLabel:()=>t.renderText(a.title),getAriaValueText:e=>t.formatNumber(e,L),marks:getMarks(d,p,c,L,S,E),max:d,min:p,onChange:(e,r)=>{v(!0),Array.isArray(r)&&F(r)},onChangeCommitted:()=>{v(!1)},slotProps:{input:()=>({ref:e=>(null===e||e.id||(e.id=`${x}-${e.attributes["data-index"].value}`),k(e))})},step:c,title:D,value:C,valueLabelDisplay:"on",valueLabelFormat:(e,r)=>t.formatNumber(e,L)}),!1!=y&&React.createElement(NumberFormatContext.Provider,{value:{formatNumber:e=>{var r={fractionalDigits:L.fractionalDigits,locale:L.locale};return t.formatNumber(e,r)},parseNumber:e=>t.coerceNumber(e)}},React.createElement(Stack,{direction:"row",className:numberRangeSliderClasses.inputContainer},React.createElement(FormLabelNumberField,{disabled:n,id:`${N}-startInput`,inputProps:T,label:t.renderText("@common-start"),max:d,maxDecimalPlaces:s,min:p,onChange:e=>{void 0===e&&(e=p),F([e,C[1]])},value:C[0]}),React.createElement(Box,{className:numberRangeSliderClasses.toLabel}," ",t.renderText("@common-to")," "),React.createElement(FormLabelNumberField,{disabled:n,id:`${N}-endInput`,inputProps:T,label:t.renderText("@common-end"),max:d,maxDecimalPlaces:s,min:p,onChange:e=>{void 0===e&&(e=d),F([C[0],e])},value:C[1]})))))};export default NumberRangeSlider;export{numberRangeSliderClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Box from"@vertigis/react-ui/Box";import
|
|
1
|
+
import Box from"@vertigis/react-ui/Box";import{inputBaseClasses}from"@vertigis/react-ui/InputBase";import{NumberFormatContext}from"@vertigis/react-ui/NumberFormatContext";import NumberInput from"@vertigis/react-ui/NumberInput";import Slider,{sliderClasses}from"@vertigis/react-ui/Slider";import{styled}from"@vertigis/react-ui/styles";import{useEffect,useMemo,useRef,useState}from"react";import*as React from"react";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{DEFAULT_CURRENCY}from"../numberFormatter.js";import{getNumberSliderValues,areValuesEqual,getMarks,getNumberConstraints,sanitizePrecision}from"../numberUtilities.js";import{makeUniqueId,throttle}from"../utils.js";const PREFIX="NumberSlider",numberSliderClasses={container:`${PREFIX}-container`},Root=styled(FormElement)(({theme:{spacing:e}})=>({[`.${numberSliderClasses.container}`]:{display:"inline-flex",flexDirection:"column",paddingLeft:e(2),paddingRight:e(2),paddingTop:e(4),width:"100%",[`.${sliderClasses.markLabel}`]:{transform:"translateX(-100%)",'&[data-index="0"]':{transform:"none"}},[`.${inputBaseClasses.root}`]:{marginTop:e(1)}}})),NumberSlider=({className:e,component:r,element:a})=>{const{host:t,name:s}=r.props;var o=!r.enabled;const{currency:m,customDisplayFormat:i,decimals:l,displayFormat:n,numberConstraints:u}=useMemo(()=>{var e=a.format,r=getNumberConstraints(e),t=sanitizePrecision(e?.precision,r.step);return{currency:e?.currency||DEFAULT_CURRENCY,customDisplayFormat:e?.customDisplayFormat,decimals:t,displayFormat:e?.displayFormat,numberConstraints:r}},[a.format]),c=u["step"],p=u.maximum,d=u.minimum,[f,b]=useState(!1),[g,v]=useState(!1),[N,y]=useState(d),C=useRef(!0);var F=`${makeUniqueId(s)}-input`,E=t.deriveLocale(),x=!1!==a.showMinMaxLabels,R=!!a.showTickMarks,S=!1!==a.manualEntry;const D={currency:m,customDisplayFormat:i,format:n,fractionalDigits:l,locale:E},h=e=>({refValueType:"number",format:{currency:m,customDisplayFormat:i,displayFormat:n,lowerBound:d,precision:l,step:c,upperBound:p},display:t.formatNumber(e,D),numeric:e});useEffect(()=>{var e;C.current?C.current=!1:g?k(N):f||((e=getNumberSliderValues(N,u,!0)[0])!==N&&y(e),e=h(e),areValuesEqual(a,e)||(a.value=e,t.post("changed",{name:s,value:a.value})))},[f,g,N]),useEffect(()=>{var e=getNumberSliderValues(a.value,u,!0)[0],r=h(e);areValuesEqual(a,r)||(a.value=r),N!==e&&y(e)},[a.value]);const k=useMemo(()=>throttle(e=>{t.post("dragged",{name:s,value:h(e)})}),[]);var B=useFocusCallback(r),I=t.renderText(a.tooltip),E=o&&!g,o=o;return React.createElement(Root,{className:e,component:r,element:a,inputId:F},React.createElement(Box,{className:numberSliderClasses.container},React.createElement(Slider,{disabled:E,getAriaLabel:()=>t.renderText(a.title),getAriaValueText:e=>t.formatNumber(e,D),marks:getMarks(p,d,c,D,x,R),max:p,min:d,onChange:(e,r)=>{v(!0);r=Array.isArray(r)?r[0]:r;y(r)},onChangeCommitted:()=>{v(!1)},slotProps:{input:{id:F,ref:B}},step:c,title:I,value:"number"==typeof N?N:0,valueLabelDisplay:"on",valueLabelFormat:(e,r)=>t.formatNumber(e,D)}),!1!=S&&React.createElement(NumberFormatContext.Provider,{value:{formatNumber:e=>{var r={fractionalDigits:D.fractionalDigits,locale:D.locale};return t.formatNumber(e,r)},parseNumber:e=>t.coerceNumber(e)}},React.createElement(NumberInput,{correctOnBlur:!0,disabled:o,error:!!a.error,inputProps:{step:c,title:I},max:p,maxDecimalPlaces:l,min:d,onChange:e=>{void 0===e?y(d):y(e)},onFocus:()=>{b(!0)},onBlur:()=>{b(!1)},size:"small",value:N}))))};export default NumberSlider;export{numberSliderClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Accordion
|
|
1
|
+
import Accordion,{accordionClasses}from"@vertigis/react-ui/Accordion";import AccordionSummary from"@vertigis/react-ui/AccordionSummary";import Box from"@vertigis/react-ui/Box";import FormLabel from"@vertigis/react-ui/FormLabel";import ChevronDown from"@vertigis/react-ui/icons/ChevronDown";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect}from"react";import{defs}from"../FormHost.js";import{renderAccessibleDescription,renderDescription,renderError}from"../common.js";import{makeSafeClassName,makeUniqueId}from"../utils.js";import Markdown from"./Markdown.js";const PREFIX="WorkflowSection",sectionClasses={root:`${PREFIX}-root`,basicSection:`${PREFIX}-basicSection`,fieldSetSection:`${PREFIX}-fieldSetSection`,title:`${PREFIX}-title`,description:`${PREFIX}-description`},AccordionRoot=styled(Accordion)(({theme:{spacing:e}})=>({[`.${accordionClasses.region}`]:{padding:e(1),[`.${sectionClasses.description} p`]:{marginBottom:0,marginTop:0,padding:e(.5)}}})),BoxRoot=styled(Box)(({theme:{palette:e,spacing:o,typography:{pxToRem:t}}})=>({marginBottom:o(4),marginTop:o(4),[`.${sectionClasses.description} p`]:{marginBottom:0,marginTop:0,padding:o(.5)},[`&.${sectionClasses.basicSection}`]:{borderLeft:`6px solid ${e.primary[500]}`,paddingLeft:o(1),paddingRight:o(1)},[`&.${sectionClasses.fieldSetSection}`]:{position:"relative",border:`3px solid ${e.primary[500]}`,borderLeft:"none",borderRight:"none",paddingTop:o(3),paddingBottom:o(2),[`.${sectionClasses.title}`]:{backgroundColor:e.background.default,position:"absolute",top:t(-22),left:0,padding:0,"& span":{paddingRight:o(1)}}}})),Section=({className:e,component:t,element:i})=>{const r=t.props["host"],s=t.props.name;let o;null!=i&&i.format&&(o=i.format),o=void 0!==o&&null!==o?o:defs.DEFAULT_SECTION_FORMAT;const a=r.isAccordionSection(i),n=a||r.isCollapsibleSection(i);var c=`${makeUniqueId(s)}-input`;useEffect(()=>(r.refs[s]=t,()=>{r.refs[s]=void 0}),[]);var l,d,m=(l=i,d=c,React.createElement(FormLabel,{className:sectionClasses.title,error:n&&r.hasInvalidChild(l),id:`${d}-label`,component:"h6"},React.createElement(Markdown,{host:r,inline:!0,text:l.title}))),p=renderDescription(r,i,c,sectionClasses.description),f=renderAccessibleDescription(r,i,c),g=renderError(r,i),c={"aria-labelledby":m?.props?.id,"aria-details":p?.props?.id,"aria-describedby":f?.props?.id},g=[p,f,g,t.props.children],e=clsx(e,i.type,sectionClasses.root,{[sectionClasses.basicSection]:"basic-section"===o,[sectionClasses.fieldSetSection]:"fieldset-section"===o,[makeSafeClassName(s)]:!!s,[makeSafeClassName(i.styleName)]:!!i.styleName});return n?React.createElement(AccordionRoot,{className:e,expanded:!0!==i.collapsed,onChange:(e,o)=>{a&&o?r.updateAccordionSections(s):(i.collapsed=!o,t.forceUpdate())},...c},React.createElement(AccordionSummary,{expandIcon:React.createElement(ChevronDown,null),ref:e=>{null!==e&&i.collapsed&&r.renderFocus(e,s)}},m),...g):React.createElement(BoxRoot,{className:e,component:"section",...c},m,React.createElement(Box,null,...g))};export default Section;export{sectionClasses};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { BaseFormElementProps } from "../FormElement";
|
|
3
|
+
export declare const signatureClasses: {
|
|
4
|
+
button: string;
|
|
5
|
+
image: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* The component for the "Signature" Form Element.
|
|
9
|
+
*/
|
|
10
|
+
declare const Signature: ({ className, component, element }: BaseFormElementProps) => JSX.Element;
|
|
11
|
+
export default Signature;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import Box from"@vertigis/react-ui/Box";import Button from"@vertigis/react-ui/Button";import Dialog from"@vertigis/react-ui/Dialog";import IconButton from"@vertigis/react-ui/IconButton";import SignatureIcon from"@vertigis/react-ui/icons/Signature";import Trash from"@vertigis/react-ui/icons/Trash";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{useEffect,useState}from"react";import FormElement from"../FormElement.js";import{renderTitle}from"../common.js";import{signatureConfiguration}from"../elements/Signature.js";import{makeUniqueId}from"../utils.js";import Markdown from"./Markdown.js";import SignatureDialog from"./SignatureDialog.js";const PREFIX="Signature",signatureClasses={button:`${PREFIX}-button`,image:`${PREFIX}-image`},Root=styled(FormElement)(({theme:{spacing:e}})=>({[`.${signatureClasses.button}`]:{marginBottom:e(1),marginTop:e(1)},[`.${signatureClasses.image}`]:{alignItems:"flex-start",display:"flex",flexDirection:"row",gap:e(1),img:{border:"solid 1px grey",flexShrink:1,minWidth:0}}})),Signature=({className:e,component:t,element:i})=>{const r=t.props["host"],o=t.props.name,[a,n]=useState(),[s,l]=useState(500),m=r.renderText(i.tooltip),c=r.renderText("@common-clear");useEffect(()=>{var e=i.size;let t=signatureConfiguration.width.default;"number"!=typeof e||isNaN(e)?"object"!=typeof e||void 0===e.width||isNaN(e.width)||(t=e.width):t=e,t=Math.max(t,signatureConfiguration.width.minimum),t=Math.min(t,signatureConfiguration.width.maximum),l(t)},[i.size]),useEffect(()=>{var e=i.value;n(e?.dataUrl)},[i.value]);const u=async e=>{if(e){const a=await fetch(e);var t=await a.blob(),t=new File([t],`${o}.png`,{type:t.type});i.value={refValueType:"signature",dataUrl:e,file:t}}else i.value=void 0;n(e)};return React.createElement(Root,{className:e,component:t,element:i},a?React.createElement(Box,{className:signatureClasses.image},React.createElement("img",{src:a,alt:m}),React.createElement(IconButton,{"aria-label":c,disabled:!t.enabled,onClick:()=>u(void 0),title:c},React.createElement(Trash,null))):null,a?null:React.createElement(Box,{className:signatureClasses.button},React.createElement(Button,{color:"primary",disabled:!1===i.enabled,onClick:async()=>{const e=Math.round(.4*s);await r.displayDialog(a=>React.createElement(SignatureDialog,{cancelCaption:r.renderText("@common-cancel"),clearCaption:c,doneCaption:r.renderText("@common-done"),format:"image/png",height:e,helperText:React.createElement(Markdown,{host:r,inline:!0,text:i.label}),onClose:(e,t)=>{e&&u(t),a()},title:renderTitle(r,i,makeUniqueId(t.props.name+"-dialog")),undoCaption:r.renderText("@common-undo"),width:s}),Dialog)},startIcon:React.createElement(SignatureIcon,null),title:m,variant:"outlined"},React.createElement(Markdown,{host:r,inline:!0,text:i.prompt||""}))))};export default Signature;export{signatureClasses};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const signatureDialogClasses: {
|
|
3
|
+
canvas: string;
|
|
4
|
+
canvasAnnotations: string;
|
|
5
|
+
container: string;
|
|
6
|
+
mark: string;
|
|
7
|
+
titleText: string;
|
|
8
|
+
};
|
|
9
|
+
export interface StyledDialogProps {
|
|
10
|
+
cancelCaption: string;
|
|
11
|
+
clearCaption: string;
|
|
12
|
+
doneCaption: string;
|
|
13
|
+
format: string;
|
|
14
|
+
helperText: JSX.Element | null;
|
|
15
|
+
height: number;
|
|
16
|
+
title: JSX.Element | null;
|
|
17
|
+
undoCaption: string;
|
|
18
|
+
width: number;
|
|
19
|
+
onClose: (confirm: boolean, dataUrl: string | undefined) => void;
|
|
20
|
+
}
|
|
21
|
+
declare const SignatureDialog: ({ cancelCaption, clearCaption, doneCaption, format, height, helperText, title, undoCaption, width, onClose, }: StyledDialogProps) => JSX.Element;
|
|
22
|
+
export default SignatureDialog;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import Box from"@vertigis/react-ui/Box";import Button from"@vertigis/react-ui/Button";import DialogActions from"@vertigis/react-ui/DialogActions";import DialogContent from"@vertigis/react-ui/DialogContent";import DialogTitle from"@vertigis/react-ui/DialogTitle";import IconButton from"@vertigis/react-ui/IconButton";import Skeleton from"@vertigis/react-ui/Skeleton";import Stack from"@vertigis/react-ui/Stack";import Typography from"@vertigis/react-ui/Typography";import Trash from"@vertigis/react-ui/icons/Trash";import Undo from"@vertigis/react-ui/icons/Undo";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{lazy,Suspense}from"react";const SignaturePadWrapper=lazy(()=>import("react-signature-pad-wrapper")),DialogPrefix="SignatureDialog",signatureDialogClasses={canvas:`${DialogPrefix}-canvas`,canvasAnnotations:`${DialogPrefix}-canvas-annotations`,container:`${DialogPrefix}-container`,mark:`${DialogPrefix}-mark`,titleText:`${DialogPrefix}-title-text`},StyledDialogTitle=styled(DialogTitle)(()=>({display:"flex",[`.${signatureDialogClasses.titleText}`]:{flexGrow:1,flexShrink:1}})),StyledDialogContent=styled(DialogContent)(({theme:{spacing:e,typography:t}})=>({[`.${signatureDialogClasses.container}`]:{backgroundColor:"#eee",filter:"drop-shadow(2px 2px 2px grey)",[`.${signatureDialogClasses.canvas}`]:{position:"relative",zIndex:1},[`.${signatureDialogClasses.canvasAnnotations}`]:{alignItems:"center",display:"flex",flexDirection:"column",marginTop:t.pxToRem(-64),paddingLeft:e(1),paddingRight:e(1),position:"relative",zIndex:0,[`.${signatureDialogClasses.mark}`]:{fontSize:"large",borderBottom:"solid 1px black",width:"100%"}}}})),SignatureDialog=({cancelCaption:e,clearCaption:t,doneCaption:a,format:i,height:o,helperText:r,title:n,undoCaption:l,width:s,onClose:c})=>{let g,m,p;return React.createElement(React.Fragment,null,React.createElement(StyledDialogTitle,null,React.createElement("div",{className:signatureDialogClasses.titleText},n),React.createElement(Stack,{direction:"row"},React.createElement(IconButton,{"aria-label":l,onClick:async()=>{if(g){const e=g.toData();e.pop(),g.fromData(e)}},title:l},React.createElement(Undo,null)),React.createElement(IconButton,{"aria-label":t,onClick:async()=>{m&&m.clear()},title:t},React.createElement(Trash,null)))),React.createElement(StyledDialogContent,null,React.createElement(Box,{className:signatureDialogClasses.container,sx:{height:`${o}px`,width:`${s}px`}},React.createElement(Suspense,{fallback:React.createElement(Skeleton,{variant:"rectangular",width:s,height:o})},React.createElement(SignaturePadWrapper,{canvasProps:{className:signatureDialogClasses.canvas},ref:e=>{g=e||void 0,m=g?.instance||void 0,p=g?.canvas?.current||void 0,p&&(p.oncontextmenu=()=>!1,p.height=o,p.width=s)}}),React.createElement(Box,{className:signatureDialogClasses.canvasAnnotations},React.createElement(Typography,{"aria-hidden":!0,className:signatureDialogClasses.mark},"X"),React.createElement(Typography,{variant:"caption"},r))))),React.createElement(DialogActions,null,React.createElement(Button,{color:"primary",onClick:()=>{let e;m&&!m.isEmpty()&&(e=m.toDataURL(i)),c(!0,e)},variant:"contained"},React.createElement(Typography,null,a)),React.createElement(Button,{color:"inherit",onClick:()=>{c(!1,void 0)},variant:"outlined"},React.createElement(Typography,null,e))))};export default SignatureDialog;export{signatureDialogClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Input from"@vertigis/react-ui/Input";import{useEffect,useState}from"react";import*as React from"react";import FormElement from"../FormElement.js";import{makeUniqueId}from"../utils.js";const TextArea=({className:e,component:
|
|
1
|
+
import Input from"@vertigis/react-ui/Input";import{useEffect,useState}from"react";import*as React from"react";import FormElement from"../FormElement.js";import{makeUniqueId}from"../utils.js";const TextArea=({className:e,component:a,element:r})=>{const[t,n]=useState(8),[o,u]=useState(""),[l,s]=useState("soft"),{host:p,name:m}=a.props;var i=`${makeUniqueId(m)}-input`,f=r.maxLength,c=p.renderText(r.prompt),d=r.readOnly,v=p.renderText(r.tooltip);useEffect(()=>{"number"==typeof r.size&&n(r.size)},[r.size]),useEffect(()=>{let e="";var t=r.value;"string"==typeof t&&(e=t),r.value!==e&&(r.value=e,a.forceUpdate()),u(e)},[r.value]),useEffect(()=>{"string"==typeof r.wrap&&-1!==["hard","soft","off"].indexOf(r.wrap)&&s(r.wrap)},[r.wrap]);return React.createElement(FormElement,{className:e,component:a,element:r,inputId:i},React.createElement(Input,{disabled:!a.enabled,fullWidth:!0,id:i,inputProps:{maxLength:f,onKeyDown:e=>{e.stopPropagation()},title:v,wrap:l},inputRef:e=>{null===e||e.disabled||p.renderFocus(e,m)},multiline:!0,onBlur:e=>{e=e.target.value;e!=r.value&&(r.value=e,p.post("changed",{name:m,value:e}),u(e))},onChange:e=>{e=e.target.value;e!=o&&u(e)},placeholder:c,readOnly:d,required:r.require,rows:t,value:o}))};export default TextArea;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Input from"@vertigis/react-ui/Input";import*as React from"react";import{useEffect,useState}from"react";import FormElement from"../FormElement.js";import{getKeyString}from"../keyboard.js";import{makeUniqueId}from"../utils.js";const TextBox=({className:e,component:r,element:a,type:t})=>{const[n,o]=useState(""),{host:u,name:l}=r.props;var p=`${makeUniqueId(l)}-input`,m="password"===t,i=m?void 0:a.maxLength,s=u.renderText(a.prompt),c=m?void 0:a.readOnly,m=u.renderText(a.tooltip);useEffect(()=>{let e="";var t=a.value;"string"==typeof t?e=t:"number"==typeof t&&(e=u.formatNumber(t)),a.value!==e&&(a.value=e,r.forceUpdate()),o(e)},[a.value]);const d=e=>{a.value=e,u.post("changed",{name:l,value:e})};return React.createElement(FormElement,{className:e,component:r,element:a,inputId:p},React.createElement(Input,{disabled:!r.enabled,fullWidth:!0,id:p,inputProps:{maxLength:i,onKeyDown:e=>{var t=getKeyString(e);return"enter"===t?(e=>{const t=e.currentTarget;var r=t.value;if(r!==a.value)return d(r),t.select(),e.stopPropagation(),e.preventDefault(),!1})(e):"escape"===t?(e=>{const t=e.currentTarget;if(t.value!==a.value)return o(a.value),t.select(),e.stopPropagation(),e.preventDefault(),!1})(e):void 0},title:m},inputRef:e=>{null===e||e.disabled||u.renderFocus(e,l)},onBlur:e=>{e=e.target.value;e!=a.value&&d(e)},onChange:e=>{e=e.target.value;e!=n&&o(e)},placeholder:s,readOnly:c,required:a.require,type:t,value:n}))};export default TextBox;
|
|
1
|
+
import Input from"@vertigis/react-ui/Input";import*as React from"react";import{useEffect,useState}from"react";import FormElement from"../FormElement.js";import{getKeyString}from"../keyboard.js";import{makeUniqueId}from"../utils.js";const TextBox=({className:e,component:r,element:a,type:t})=>{const[n,o]=useState(""),{host:u,name:l}=r.props;var p=`${makeUniqueId(l)}-input`,m="password"===t,i=m?void 0:a.maxLength,s=u.renderText(a.prompt),c=m?void 0:a.readOnly,m=u.renderText(a.tooltip);useEffect(()=>{let e="";var t=a.value;"string"==typeof t?e=t:"number"==typeof t&&(e=u.formatNumber(t)),a.value!==e&&(a.value=e,r.forceUpdate()),o(e)},[a.value]);const d=e=>{a.value=e,u.post("changed",{name:l,value:e}),o(e)};return React.createElement(FormElement,{className:e,component:r,element:a,inputId:p},React.createElement(Input,{disabled:!r.enabled,fullWidth:!0,id:p,inputProps:{maxLength:i,onKeyDown:e=>{var t=getKeyString(e);return"enter"===t?(e=>{const t=e.currentTarget;var r=t.value;if(r!==a.value)return d(r),t.select(),e.stopPropagation(),e.preventDefault(),!1})(e):"escape"===t?(e=>{const t=e.currentTarget;if(t.value!==a.value)return o(a.value),t.select(),e.stopPropagation(),e.preventDefault(),!1})(e):void 0},title:m},inputRef:e=>{null===e||e.disabled||u.renderFocus(e,l)},onBlur:e=>{e=e.target.value;e!=a.value&&d(e)},onChange:e=>{e=e.target.value;e!=n&&o(e)},placeholder:s,readOnly:c,required:a.require,type:t,value:n}))};export default TextBox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import FormHelperText from"@vertigis/react-ui/FormHelperText";import FormLabelTextField from"@vertigis/react-ui/FormLabelTextField";import BaseTimePicker from"@vertigis/react-ui/TimePicker";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{hasErrorChanged,isInvalidDate,makeProperFormat,makeProperValue,updateElementValue}from"../dateUtilities.js";import{makeUniqueId}from"../utils.js";const StylableTimePicker=e=>{const{PopperProps:r={},className:t,...a}=e;return React.createElement(BaseTimePicker,{PopperProps:{...r,className:clsx(r.className,t)},...a})},StyledTimePicker=styled(StylableTimePicker)(({theme:{palette:e}})=>({
|
|
1
|
+
import{buttonBaseClasses}from"@vertigis/react-ui/ButtonBase";import{clockClasses}from"@vertigis/react-ui/ClockPicker";import FormHelperText from"@vertigis/react-ui/FormHelperText";import FormLabelTextField from"@vertigis/react-ui/FormLabelTextField";import BaseTimePicker from"@vertigis/react-ui/TimePicker";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import FormElement from"../FormElement.js";import{useFocusCallback}from"../common.js";import{hasErrorChanged,isInvalidDate,makeProperFormat,makeProperValue,updateElementValue}from"../dateUtilities.js";import{makeUniqueId}from"../utils.js";const StylableTimePicker=e=>{const{PopperProps:r={},className:t,...a}=e;return React.createElement(BaseTimePicker,{PopperProps:{...r,className:clsx(r.className,t)},...a})},StyledTimePicker=styled(StylableTimePicker)(({theme:{palette:e}})=>({[`& .${clockClasses.amButton}, .${clockClasses.pmButton}`]:{[`&.${buttonBaseClasses.focusVisible}`]:{color:e.action.active}}})),TimePicker=({className:e,component:r,element:t})=>{const[a,o]=useState(!1),[l,s]=useState(!1),[i,m]=useState(null),c=useRef(),n=useRef(!0),{host:u,name:p}=r.props;var d=useFocusCallback(r);const f=u.renderText(t.tooltip),k=makeProperFormat(t.value,t.format),P=Calendar.useNative(),v="time";useEffect(()=>{var e=makeProperValue(t.value,P);updateElementValue(t,e,v,k,P),m(e||null)},[t.value]),useEffect(()=>{n.current?n.current=!1:l||a||(isInvalidDate(i)?F({status:"invalid"}):(F(),updateElementValue(t,i,v,k,P)&&u.post("changed",{name:p,value:t.value})))},[l,a]);const F=e=>{hasErrorChanged(t,e)&&(t.error=e,r.forceUpdate())},T=`${makeUniqueId(p)}-input`,E=u.renderText(t.prompt);return React.createElement(FormElement,{className:e,component:r,element:t,inputId:T},t.error&&React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},c.current),React.createElement(StyledTimePicker,{disabled:!r.enabled,key:"date-picker",inputRef:d,onChange:e=>{m(e)},onOpen:()=>{s(!0)},onClose:()=>{s(!1)},renderInput:e=>(c.current=e.inputProps?.placeholder,e.error=!!t.error,e.inputProps={...e.inputProps,id:T,onBlur:()=>{o(!1)},onFocus:()=>{o(!0)},placeholder:E||e.inputProps?.placeholder,title:f},React.createElement(FormLabelTextField,{...e})),value:i}))};export default TimePicker;
|
package/forms/constants.d.ts
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* All of the types of component used in forms within VertiGIS Studio Workflow.
|
|
3
|
+
* Most are containers that hold other things. In the case of "element",
|
|
4
|
+
* we use `FormElementTypes` to specify which type of element it represents.
|
|
5
|
+
*/
|
|
6
|
+
export declare const FormComponentTypes: {
|
|
7
|
+
ACCORDIONGROUP: string;
|
|
8
|
+
BODY: string;
|
|
9
|
+
ELEMENT: string;
|
|
10
|
+
FOOTER: string;
|
|
11
|
+
FORM: string;
|
|
12
|
+
HEADER: string;
|
|
13
|
+
MAIN: string;
|
|
14
|
+
ROW: string;
|
|
15
|
+
SECTION: string;
|
|
16
|
+
};
|
|
1
17
|
/**
|
|
2
18
|
* All of the types of Form Element that are included in VertiGIS Studio Workflow.
|
|
3
19
|
*
|
|
@@ -29,6 +45,7 @@ export declare const FormElementTypes: {
|
|
|
29
45
|
RADIOGROUP: string;
|
|
30
46
|
SCANNER: string;
|
|
31
47
|
SECTION: string;
|
|
48
|
+
SIGNATURE: string;
|
|
32
49
|
TEXT: string;
|
|
33
50
|
TEXTAREA: string;
|
|
34
51
|
TEXTBOX: string;
|
package/forms/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const FormElementTypes={AUTOCOMPLETE:"AutoComplete",BUTTONBAR:"ButtonBar",CHECKBOX:"CheckBox",CHECKGROUP:"CheckGroup",CUSTOM:"Custom",DATEPICKER:"DatePicker",DATERANGEPICKER:"DateRangePicker",DATETIMEPICKER:"DateTimePicker",DROPDOWNLIST:"DropDownList",FILEPICKER:"FilePicker",GEOMETRYPICKER:"GeometryPicker",HEADER:"Header",HORIZONTALRULE:"HorizontalRule",IMAGE:"Image",ITEMPICKER:"ItemPicker",LISTBOX:"ListBox",NUMBER:"Number",NUMBERRANGESLIDER:"NumberRangeSlider",NUMBERSLIDER:"NumberSlider",PASSWORDBOX:"PasswordBox",RADIOGROUP:"RadioGroup",SCANNER:"Scanner",SECTION:"Section",TEXT:"Text",TEXTAREA:"TextArea",TEXTBOX:"TextBox",TIMEPICKER:"TimePicker"},Orientation={HORIZONTAL:"horizontal",VERTICAL:"vertical"};var ScanType;!function(e){e.BarCode="barcode",e.QrCode="qrcode"}(ScanType=ScanType||{});const TitleLocation={ABOVE:"above",BESIDE:"beside"};export{FormElementTypes,Orientation,ScanType,TitleLocation};
|
|
1
|
+
const FormComponentTypes={ACCORDIONGROUP:"accordionGroup",BODY:"body",ELEMENT:"element",FOOTER:"footer",FORM:"form",HEADER:"header",MAIN:"main",ROW:"row",SECTION:"section"},FormElementTypes={AUTOCOMPLETE:"AutoComplete",BUTTONBAR:"ButtonBar",CHECKBOX:"CheckBox",CHECKGROUP:"CheckGroup",CUSTOM:"Custom",DATEPICKER:"DatePicker",DATERANGEPICKER:"DateRangePicker",DATETIMEPICKER:"DateTimePicker",DROPDOWNLIST:"DropDownList",FILEPICKER:"FilePicker",GEOMETRYPICKER:"GeometryPicker",HEADER:"Header",HORIZONTALRULE:"HorizontalRule",IMAGE:"Image",ITEMPICKER:"ItemPicker",LISTBOX:"ListBox",NUMBER:"Number",NUMBERRANGESLIDER:"NumberRangeSlider",NUMBERSLIDER:"NumberSlider",PASSWORDBOX:"PasswordBox",RADIOGROUP:"RadioGroup",SCANNER:"Scanner",SECTION:"Section",SIGNATURE:"Signature",TEXT:"Text",TEXTAREA:"TextArea",TEXTBOX:"TextBox",TIMEPICKER:"TimePicker"},Orientation={HORIZONTAL:"horizontal",VERTICAL:"vertical"};var ScanType;!function(e){e.BarCode="barcode",e.QrCode="qrcode"}(ScanType=ScanType||{});const TitleLocation={ABOVE:"above",BESIDE:"beside"};export{FormComponentTypes,FormElementTypes,Orientation,ScanType,TitleLocation};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SignatureRef } from "../FormDefinition";
|
|
2
|
+
import { FormElementPropertyConstraints, PropertyConstraintsWithDefault, PropertyConstraintsWithMaximum, PropertyConstraintsWithMinimum } from "../utils";
|
|
3
|
+
import * as types from "./types";
|
|
4
|
+
export interface Signature extends types.ElementBase, types.EditableElement, types.ElementWithRequire {
|
|
5
|
+
/** Indicates the current value. */
|
|
6
|
+
readonly value: SignatureRef;
|
|
7
|
+
}
|
|
8
|
+
interface SignatureConfiguration extends FormElementPropertyConstraints {
|
|
9
|
+
height: PropertyConstraintsWithDefault<number>;
|
|
10
|
+
width: PropertyConstraintsWithDefault<number> & PropertyConstraintsWithMaximum<number> & PropertyConstraintsWithMinimum<number>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Constraints that the Signature enforces on the size.
|
|
14
|
+
*/
|
|
15
|
+
export declare const signatureConfiguration: SignatureConfiguration;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const signatureConfiguration={height:{default:160},width:{default:400,maximum:550,minimum:200}};export{signatureConfiguration};
|
package/forms/presenter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createElement}from"react";import*as React from"react";import{unmountComponentAtNode,render as reactRender}from"react-dom";import{FormComponent}from"./FormComponent.js";import
|
|
1
|
+
import{createElement}from"react";import*as React from"react";import{unmountComponentAtNode,render as reactRender}from"react-dom";import{FormComponent}from"./FormComponent.js";import{FormComponentTypes,FormElementTypes}from"./constants.js";import{renderComponent,renderElement,renderNone as renderers_renderNone}from"./renderers.js";import{getElementProps}from"./utils.js";function refresh(e){e instanceof FormComponent&&e.forceUpdate()}function refreshForm(e,r){reactRender(React.createElement(FormComponent,{host:e,type:"form"}),r)}function releaseForm(e){unmountComponentAtNode(e)}function render(e){if(e instanceof FormComponent){if(e.props.type!==FormComponentTypes.ELEMENT)return renderComponent(e);var r=e.prepare();if(null==r)return;var n=r.type;return"string"!=typeof n?void 0:n===FormElementTypes.CUSTOM?e.props.host.renderCustom(e,r):e.elementRegistration?createElement(e.elementRegistration.component,getElementProps(e,r)):renderElement(n,e,r)}}function renderNone(e){if(e instanceof FormComponent)return renderers_renderNone(e)}export{refresh,refreshForm,releaseForm,render,renderNone};
|
package/forms/renderers.d.ts
CHANGED
|
@@ -1,40 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { FormComponent } from "./FormComponent";
|
|
3
3
|
import { Element } from "./FormDefinition";
|
|
4
|
-
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function renderFooter(component: FormComponent): JSX.Element;
|
|
7
|
-
export declare function renderBody(component: FormComponent): JSX.Element;
|
|
8
|
-
export declare function renderRow(component: FormComponent): JSX.Element;
|
|
9
|
-
export declare function renderMain(component: FormComponent): JSX.Element;
|
|
10
|
-
export declare function renderAccordionGroup(component: FormComponent): JSX.Element;
|
|
4
|
+
/** @product This is intended for internal use only within VertiGIS Studio products. */
|
|
5
|
+
export declare function renderComponent(component: FormComponent): JSX.Element;
|
|
11
6
|
export declare function renderNone(component: FormComponent): any;
|
|
12
7
|
/** @product This is intended for internal use only within VertiGIS Studio products. */
|
|
13
|
-
export declare
|
|
14
|
-
function renderAutoComplete(component: FormComponent, element: Element): JSX.Element;
|
|
15
|
-
function renderButtonBar(component: FormComponent, element: Element): JSX.Element;
|
|
16
|
-
function renderCheckBox(component: FormComponent, element: Element): JSX.Element;
|
|
17
|
-
function renderCheckGroup(component: FormComponent, element: Element): JSX.Element;
|
|
18
|
-
function renderCustom(component: FormComponent, element: Element): JSX.Element;
|
|
19
|
-
function renderDatePicker(component: FormComponent, element: Element): JSX.Element;
|
|
20
|
-
function renderDateRangePicker(component: FormComponent, element: Element): JSX.Element;
|
|
21
|
-
function renderDateTimePicker(component: FormComponent, element: Element): JSX.Element;
|
|
22
|
-
function renderDropDownList(component: FormComponent, element: Element): JSX.Element;
|
|
23
|
-
function renderFilePicker(component: FormComponent, element: Element): JSX.Element;
|
|
24
|
-
function renderGeometryPicker(component: FormComponent, element: Element): JSX.Element;
|
|
25
|
-
function renderHorizontalRule(component: FormComponent, element: Element): JSX.Element;
|
|
26
|
-
function renderImage(component: FormComponent, element: Element): JSX.Element;
|
|
27
|
-
function renderItemPicker(component: FormComponent, element: Element): JSX.Element;
|
|
28
|
-
function renderListBox(component: FormComponent, element: Element): JSX.Element;
|
|
29
|
-
function renderNumber(component: FormComponent, element: Element): JSX.Element;
|
|
30
|
-
function renderNumberRangeSlider(component: FormComponent, element: Element): JSX.Element;
|
|
31
|
-
function renderNumberSlider(component: FormComponent, element: Element): JSX.Element;
|
|
32
|
-
function renderPasswordBox(component: FormComponent, element: Element): JSX.Element;
|
|
33
|
-
function renderRadioGroup(component: FormComponent, element: Element): JSX.Element;
|
|
34
|
-
function renderScanner(component: FormComponent, element: Element): JSX.Element;
|
|
35
|
-
function renderSection(component: FormComponent, element: Element): JSX.Element;
|
|
36
|
-
function renderText(component: FormComponent, element: Element): JSX.Element;
|
|
37
|
-
function renderTextArea(component: FormComponent, element: Element): JSX.Element;
|
|
38
|
-
function renderTextBox(component: FormComponent, element: Element): JSX.Element;
|
|
39
|
-
function renderTimePicker(component: FormComponent, element: Element): JSX.Element;
|
|
40
|
-
}
|
|
8
|
+
export declare function renderElement(type: string, component: FormComponent, element: Element): JSX.Element;
|
package/forms/renderers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import Box from"@vertigis/react-ui/Box";import*as React from"react";import AccordionGroup from"./components/AccordionGroup.js";import AutoComplete from"./components/AutoComplete.js";import ButtonBar from"./components/ButtonBar.js";import CheckBox from"./components/CheckBox.js";import CheckGroup from"./components/CheckGroup.js";import Custom from"./components/Custom.js";import DatePicker from"./components/DatePicker.js";import DateRangePicker from"./components/DateRangePicker.js";import DateTimePicker from"./components/DateTimePicker.js";import DropDownList from"./components/DropDownList.js";import FilePicker from"./components/FilePicker.js";import Form,{formClasses}from"./components/Form.js";import GeometryPicker from"./components/GeometryPicker.js";import HorizontalRule from"./components/HorizontalRule.js";import Image from"./components/Image.js";import ItemPicker from"./components/ItemPicker.js";import ListBox from"./components/ListBox.js";import Number from"./components/Number.js";import NumberRangeSlider from"./components/NumberRangeSlider.js";import NumberSlider from"./components/NumberSlider.js";import RadioGroup from"./components/RadioGroup.js";import Scanner from"./components/Scanner.js";import Section from"./components/Section.js";import Text from"./components/Text.js";import TextArea from"./components/TextArea.js";import TextBox from"./components/TextBox.js";import TimePicker from"./components/TimePicker.js";function
|
|
1
|
+
import Box from"@vertigis/react-ui/Box";import*as React from"react";import AccordionGroup from"./components/AccordionGroup.js";import AutoComplete from"./components/AutoComplete.js";import ButtonBar from"./components/ButtonBar.js";import CheckBox from"./components/CheckBox.js";import CheckGroup from"./components/CheckGroup.js";import Custom from"./components/Custom.js";import DatePicker from"./components/DatePicker.js";import DateRangePicker from"./components/DateRangePicker.js";import DateTimePicker from"./components/DateTimePicker.js";import DropDownList from"./components/DropDownList.js";import FilePicker from"./components/FilePicker.js";import Form,{formClasses}from"./components/Form.js";import GeometryPicker from"./components/GeometryPicker.js";import HorizontalRule from"./components/HorizontalRule.js";import Image from"./components/Image.js";import ItemPicker from"./components/ItemPicker.js";import ListBox from"./components/ListBox.js";import Number from"./components/Number.js";import NumberRangeSlider from"./components/NumberRangeSlider.js";import NumberSlider from"./components/NumberSlider.js";import RadioGroup from"./components/RadioGroup.js";import Scanner from"./components/Scanner.js";import Section from"./components/Section.js";import Signature from"./components/Signature.js";import Text from"./components/Text.js";import TextArea from"./components/TextArea.js";import TextBox from"./components/TextBox.js";import TimePicker from"./components/TimePicker.js";import{FormComponentTypes,FormElementTypes}from"./constants.js";function renderComponent(e){switch(e.props.type){case FormComponentTypes.FORM:return React.createElement(Form,{component:e});case FormComponentTypes.HEADER:return renderBox(e.props.children,formClasses.header);case FormComponentTypes.MAIN:return renderBox(e.props.children,formClasses.main);case FormComponentTypes.FOOTER:return renderBox(e.props.children,formClasses.footer);case FormComponentTypes.BODY:return renderBox(e.props.children,formClasses.body);case FormComponentTypes.ROW:return renderBox(e.props.children,formClasses.row);case FormComponentTypes.SECTION:return renderElement(FormElementTypes.SECTION,e,e.prepare());case FormComponentTypes.ACCORDIONGROUP:return React.createElement(AccordionGroup,{component:e});default:return null}}function renderNone(e){return renderBox([`--- Unsupported Form Element (name=${e.props.name}) ---`],"None")}function renderBox(e,t){return React.createElement(Box,{className:t},e)}function renderElement(e,t,r){switch(e){case FormElementTypes.AUTOCOMPLETE:return React.createElement(AutoComplete,{component:t,element:r});case FormElementTypes.BUTTONBAR:return React.createElement(ButtonBar,{component:t,element:r});case FormElementTypes.CHECKBOX:return React.createElement(CheckBox,{component:t,element:r});case FormElementTypes.CHECKGROUP:return React.createElement(CheckGroup,{component:t,element:r});case FormElementTypes.CUSTOM:return React.createElement(Custom,{component:t,element:r});case FormElementTypes.DATEPICKER:return React.createElement(DatePicker,{component:t,element:r});case FormElementTypes.DATERANGEPICKER:return React.createElement(DateRangePicker,{component:t,element:r});case FormElementTypes.DATETIMEPICKER:return React.createElement(DateTimePicker,{component:t,element:r});case FormElementTypes.DROPDOWNLIST:return React.createElement(DropDownList,{component:t,element:r});case FormElementTypes.FILEPICKER:return React.createElement(FilePicker,{component:t,element:r});case FormElementTypes.GEOMETRYPICKER:return React.createElement(GeometryPicker,{component:t,element:r});case FormElementTypes.HORIZONTALRULE:return React.createElement(HorizontalRule,{component:t,element:r});case FormElementTypes.IMAGE:return React.createElement(Image,{component:t,element:r});case FormElementTypes.ITEMPICKER:return React.createElement(ItemPicker,{component:t,element:r});case FormElementTypes.LISTBOX:return React.createElement(ListBox,{component:t,element:r});case FormElementTypes.NUMBER:return React.createElement(Number,{component:t,element:r});case FormElementTypes.NUMBERRANGESLIDER:return React.createElement(NumberRangeSlider,{component:t,element:r});case FormElementTypes.NUMBERSLIDER:return React.createElement(NumberSlider,{component:t,element:r});case FormElementTypes.PASSWORDBOX:return React.createElement(TextBox,{component:t,element:r,type:"password"});case FormElementTypes.RADIOGROUP:return React.createElement(RadioGroup,{component:t,element:r});case FormElementTypes.SCANNER:return React.createElement(Scanner,{component:t,element:r});case FormElementTypes.SECTION:return React.createElement(Section,{component:t,element:r});case FormElementTypes.SIGNATURE:return React.createElement(Signature,{component:t,element:r});case FormElementTypes.TEXT:return React.createElement(Text,{component:t,element:r});case FormElementTypes.TEXTAREA:return React.createElement(TextArea,{component:t,element:r});case FormElementTypes.TEXTBOX:return React.createElement(TextBox,{component:t,element:r});case FormElementTypes.TIMEPICKER:return React.createElement(TimePicker,{component:t,element:r});default:return null}}export{renderComponent,renderNone,renderElement};
|
package/forms/utils.d.ts
CHANGED
|
@@ -17,6 +17,12 @@ export interface PropertyConstraints<T> {
|
|
|
17
17
|
export interface PropertyConstraintsWithDefault<T> extends PropertyConstraints<T> {
|
|
18
18
|
default: T;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Constraints for a property that specifies a maximum value.
|
|
22
|
+
*/
|
|
23
|
+
export interface PropertyConstraintsWithMaximum<T> extends PropertyConstraints<T> {
|
|
24
|
+
maximum: T;
|
|
25
|
+
}
|
|
20
26
|
/**
|
|
21
27
|
* Constraints for a property that specifies a minimum value.
|
|
22
28
|
*/
|
|
@@ -54,9 +60,32 @@ export declare function sort<T>(items: T | undefined, predicate?: (item: T[keyof
|
|
|
54
60
|
* @param element The element whose items are to be sorted.
|
|
55
61
|
* @returns An array of visible items, sorted by index.
|
|
56
62
|
*/
|
|
57
|
-
export declare function sortItems(element: defs.Element):
|
|
58
|
-
|
|
63
|
+
export declare function sortItems(element: defs.Element): Lookup<defs.Item>;
|
|
64
|
+
/**
|
|
65
|
+
* Details returned by `sortAndFilterItems()`.
|
|
66
|
+
*/
|
|
67
|
+
declare type sortAndFilterItemsResult = {
|
|
68
|
+
/** The index of the now-selected item, based on the new value of `items`. */
|
|
69
|
+
current: string | undefined;
|
|
70
|
+
/** The sorted and filtered items. */
|
|
71
|
+
items: Lookup<defs.Item>;
|
|
72
|
+
/** The new `label` of the element, based on the new value of `current`. */
|
|
73
|
+
label: defs.Text | undefined;
|
|
74
|
+
/** The new `value` of the element, based on the new value of `current`. */
|
|
75
|
+
value: defs.Value | undefined;
|
|
59
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* This function produces a set of `items` based on the supplied `element`.
|
|
79
|
+
* They are sorted based on `element.index` or the ordinal position.
|
|
80
|
+
* They are filtered to exclude `undefined`, `null` or elements with `visible` set to `false.`
|
|
81
|
+
*
|
|
82
|
+
* Unlike `sortItems()`, this function does not attempt to change `element`.
|
|
83
|
+
* Instead, new values for `current`, `label` and `value` are included in the result.
|
|
84
|
+
* It is then the responsibility of the caller to update them in the original `element` if necessary.
|
|
85
|
+
* @param element The element whose items are to be sorted.
|
|
86
|
+
* @returns A sorted and filtered set if items, along with a few properties that should be updated on `element`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function sortAndFilterItems(element: defs.Element): sortAndFilterItemsResult;
|
|
60
89
|
/** @product This is intended for internal use only within VertiGIS Studio products. */
|
|
61
90
|
export declare function makeSafeClassName(elementName: string | undefined): string;
|
|
62
91
|
/** @public */
|