@vertigis/workflow 5.41.0 → 5.42.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/activities/arcgis/CreateFeatureSet.d.ts +1 -0
- package/activities/arcgis/CreateFeatureSet.js +1 -1
- package/activities/arcgis/MapProvider.js +1 -1
- package/activities/arcgis/QueryTask.d.ts +4 -2
- package/activities/arcgis/QueryTask.js +1 -1
- package/activities/arcgis/SymbolFromJson.js +1 -1
- package/activities/arcgis/TypeChecking.d.ts +1 -2
- package/activities/core/Subworkflow.d.ts +2 -0
- package/execution/Engine.js +1 -1
- package/execution/util.js +1 -1
- package/forms/FormDefinition.d.ts +1 -1
- package/forms/components/AccordionGroup.js +1 -1
- package/forms/components/AutoComplete.js +1 -1
- package/forms/components/DatePicker.js +1 -1
- package/forms/components/DateTimePicker.js +1 -1
- package/forms/components/Form.js +1 -1
- package/forms/components/FormElement.js +1 -1
- package/forms/components/ListBox.d.ts +1 -1
- package/forms/components/ListBox.js +1 -1
- package/forms/components/Markdown.js +1 -1
- package/forms/components/Scanner.js +1 -1
- package/forms/components/TimePicker.js +1 -1
- package/forms/dateUtilities.d.ts +9 -5
- package/forms/dateUtilities.js +1 -1
- package/forms/hostContext.d.ts +2 -1
- package/forms/utils.js +1 -1
- package/libs/version.d.ts +1 -1
- package/libs/version.js +1 -1
- package/package.json +5 -4
|
@@ -3,6 +3,7 @@ import type { IActivityHandler, IActivityContext } from "../../IActivityHandler"
|
|
|
3
3
|
export interface CreateFeatureSetInputs {
|
|
4
4
|
geometries?: __esri.Geometry | __esri.Geometry[];
|
|
5
5
|
features?: __esri.Graphic | __esri.Graphic[];
|
|
6
|
+
fields?: __esri.FieldProperties[];
|
|
6
7
|
}
|
|
7
8
|
/** Defines outputs for the Create Feature Set activity. */
|
|
8
9
|
export interface CreateFeatureSetOutputs {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Graphic from"@arcgis/core/Graphic";import FeatureSet from"@arcgis/core/rest/support/FeatureSet";import{validation}from"../../Validation.js";class CreateFeatureSet{async execute(e,t){var r=validation.array("geometry",e.geometries,[]).map(e=>new Graphic({geometry:e})),
|
|
1
|
+
import Graphic from"@arcgis/core/Graphic";import FeatureSet from"@arcgis/core/rest/support/FeatureSet";import{validation}from"../../Validation.js";class CreateFeatureSet{async execute(e,t){var r=validation.array("geometry",e.geometries,[]).map(e=>new Graphic({geometry:e})),a=validation.array("feature",e.features,[]),e=validation.array("fields",e.fields,[]);const i=new FeatureSet({features:[...r,...a],fields:e});for(const o of i.features)if(o?.geometry?.type){i.geometryType=o.geometry.type;break}return{featureSet:i}}}CreateFeatureSet.action="gcx:wf:arcgis::CreateFeatureSet",CreateFeatureSet.suite="gcx:wf:builtin";export{CreateFeatureSet};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import PopupTemplate from"@arcgis/core/PopupTemplate";import SpatialReference from"@arcgis/core/geometry/SpatialReference";import GraphicsLayer from"@arcgis/core/layers/GraphicsLayer";import*as TypeChecking from"./TypeChecking.js";import{extentOf}from"./tools.js";class MapProvider{static getOutSR(e){return"number"==typeof e?new SpatialReference({wkid:e}):"string"==typeof e?new SpatialReference({wkt:e}):e}static create(){return new this(this)}static register(e){e.factories.push(e=>this.type===e?this:void 0)}constructor(e,i,r){null!=i&&(this.map=i.map,this.view=i),this.mapName=r,this.type=e}loadMap(){}loadView(){const e=this.view;if(void 0!==e&&null!==e){if(e.isFulfilled())return Promise.resolve();return e.when(()=>{})}}loadLayer(){const e=this.layer||void 0;if(void 0!==e){if(e.loaded)return Promise.resolve();var i=e.loadError||void 0;return void 0!==i?Promise.reject(i):e.load().then(e=>{})}}load(){return this.loadLayer()||this.loadView()||this.loadMap()||Promise.resolve()}getExtent(){var e=this.view;if(null!=e){var i=e.extent;if(null!=i)return i}i=this.map;if(null!=i){i=i.extent;if(null!=i)return i}}getCenter(){var e=this.view;if(null!=e){var i=e.center;if(null!=i)return i}i=this.map||void 0;if(void 0!==i){i=i.extent;if(null!=i)return i.center}}getScale(){var e=this.view;if(null!=e){e=e.scale;if("number"==typeof e)return e}}getSpatialReference(){var e=this.view;if(null!=e)return e.spatialReference}getViewpoint(){var e=this.view;if(null!=e)return e.viewpoint}setExtent(e,i){let r;e=extentOf(e)||void 0;void 0!==e&&(r=e.center);const t=this.view||void 0;if(void 0!==t){if(void 0!==r&&"number"==typeof i)return t.goTo({center:r,scale:i});if(void 0!==e)return t.goTo(e);if(void 0!==r)return t.goTo(r)}return Promise.resolve()}setViewpoint(e,i){let r;e=extentOf(e)||void 0;void 0!==e&&(r=e.center);const t=this.view;if(void 0!==t&&null!==t){if(void 0!==r&&null!=i)return t.goTo(i).then(e=>t.goTo(r));if(void 0!==e)return t.goTo(e);if(void 0!==r)return t.goTo(r)}return Promise.resolve()}findLayer(i,
|
|
1
|
+
import PopupTemplate from"@arcgis/core/PopupTemplate";import SpatialReference from"@arcgis/core/geometry/SpatialReference";import GraphicsLayer from"@arcgis/core/layers/GraphicsLayer";import SubtypeGroupLayer from"@arcgis/core/layers/SubtypeGroupLayer";import*as TypeChecking from"./TypeChecking.js";import{extentOf}from"./tools.js";class MapProvider{static getOutSR(e){return"number"==typeof e?new SpatialReference({wkid:e}):"string"==typeof e?new SpatialReference({wkt:e}):e}static create(){return new this(this)}static register(e){e.factories.push(e=>this.type===e?this:void 0)}constructor(e,i,r){null!=i&&(this.map=i.map,this.view=i),this.mapName=r,this.type=e}loadMap(){}loadView(){const e=this.view;if(void 0!==e&&null!==e){if(e.isFulfilled())return Promise.resolve();return e.when(()=>{})}}loadLayer(){const e=this.layer||void 0;if(void 0!==e){if(e.loaded)return Promise.resolve();var i=e.loadError||void 0;return void 0!==i?Promise.reject(i):e.load().then(e=>{})}}load(){return this.loadLayer()||this.loadView()||this.loadMap()||Promise.resolve()}getExtent(){var e=this.view;if(null!=e){var i=e.extent;if(null!=i)return i}i=this.map;if(null!=i){i=i.extent;if(null!=i)return i}}getCenter(){var e=this.view;if(null!=e){var i=e.center;if(null!=i)return i}i=this.map||void 0;if(void 0!==i){i=i.extent;if(null!=i)return i.center}}getScale(){var e=this.view;if(null!=e){e=e.scale;if("number"==typeof e)return e}}getSpatialReference(){var e=this.view;if(null!=e)return e.spatialReference}getViewpoint(){var e=this.view;if(null!=e)return e.viewpoint}setExtent(e,i){let r;e=extentOf(e)||void 0;void 0!==e&&(r=e.center);const t=this.view||void 0;if(void 0!==t){if(void 0!==r&&"number"==typeof i)return t.goTo({center:r,scale:i});if(void 0!==e)return t.goTo(e);if(void 0!==r)return t.goTo(r)}return Promise.resolve()}setViewpoint(e,i){let r;e=extentOf(e)||void 0;void 0!==e&&(r=e.center);const t=this.view;if(void 0!==t&&null!==t){if(void 0!==r&&null!=i)return t.goTo(i).then(e=>t.goTo(r));if(void 0!==e)return t.goTo(e);if(void 0!==r)return t.goTo(r)}return Promise.resolve()}findLayer(i,r){if(null==r){const t=this.map;if(void 0!==t&&null!==t){const o=i.toString();let e=t.findLayerById(o)||void 0;if(void 0===e&&(e=t.allLayers.find(e=>e.title===o)||void 0),void 0!==e){const n=this.clone();return n.layer=e,n.sublayer=void 0,n}}}else{i=new Number(i).valueOf();let e;if(r instanceof SubtypeGroupLayer?e=r.findSublayerForSubtypeCode(i):TypeChecking.isLayerWithSublayers(r)&&(e=r.findSublayerById(i)),e){const s=this.clone();return s.layer=r,s.sublayer=e,s}}}findTable(e,i){if(e){const r=this.map;if(r){const t=e.toLowerCase();e=r.allTables.find(e=>void 0!==e.id&&null!==e.id&&e.id.toLowerCase()===t);if(e){const o=this.clone();return o.layer=e,o.sublayer=void 0,o}}}}formatSubLayerId(e){return e}getVisible(){var e=this.layer||void 0;if(void 0===e)return!1;var i=this.sublayer||void 0;return(void 0!==i?i:e).visible}setVisible(e){const i=this.layer||void 0;if(void 0===i)return!1;{const r=this.sublayer||void 0;return void 0!==r?(r.visible=!0===e,r.visible===(!0===e)):(i.visible=!0===e,i.visible===(!0===e))}}getProperty(e){var i=this.layer;if(null!=i)return i[e]}setProperty(e,i){const r=this.layer||void 0;return void 0!==r&&(r.set(e,i),this.getProperty(e)===i)}getDefinitionExpression(){var e=this.layer||void 0;if(void 0!==e){var i=this.sublayer||void 0;if(void 0!==i){if(TypeChecking.isSublayerWithDefinitionExpression(i)){i=i.definitionExpression;return"string"==typeof i?i:void 0}return}if(TypeChecking.isLayerWithDefinitionExpression(e))return e.definitionExpression}}setDefinitionExpression(e){const i=this.layer||void 0;if(void 0!==i){const r=this.sublayer||void 0;if(void 0!==r)return TypeChecking.isSublayerWithDefinitionExpression(r)?(r.definitionExpression=e,r.definitionExpression===e):void 0;if(TypeChecking.isLayerWithDefinitionExpression(i))return i.definitionExpression=e,i.definitionExpression===e}}clearFeatures(){const e=this.layer;return!(void 0===e||null===e||!TypeChecking.isGraphicsLayer(e))&&(e.removeAll(),!0)}removeFeatures(e){const i=this.layer;if(void 0!==i&&null!==i&&TypeChecking.isGraphicsLayer(i))return i.removeMany(e),!0}getFeatures(){const e=this.layer||void 0;if(void 0!==e&&TypeChecking.isGraphicsLayer(e))return e.graphics.toArray()}addFeatures(e,i){const r=this.map||void 0;if(void 0===r)return[];let t=this.layer||void 0;return void 0===t&&(t=new GraphicsLayer({id:i.toString()}),r.add(t)),TypeChecking.isGraphicsLayer(t)&&t.addMany(e),TypeChecking.isGraphicsLayer(t)?t.graphics.toArray():[]}removeLayer(){const e=this.map||void 0;if(void 0===e)return!1;var i=this.layer||void 0;return void 0!==i&&(e.remove(i),!0)}redraw(){const e=this.layer||void 0;void 0!==e&&TypeChecking.isLayerWithRedraw(e)&&e.redraw()}clone(){const e=new this.type(this.type,this.view||this.map,this.mapName);return e.layer=this.layer,e.sublayer=this.sublayer,e}static setPopup(e,i){if(i&&e){var r=new PopupTemplate(e);for(const t of i)t.popupTemplate=r}}setPopup(e){const i=this.layer;i&&e&&(e=new PopupTemplate(e),TypeChecking.isLayerWithPopupTemplate(i)&&(i.popupTemplate=e))}showPopup(e){if(e&&e.length){var i=e.filter(e=>e.geometry)[0],i=i?extentOf([i.geometry]):this.map.extent;const r=this.view?.popup;r&&r.open({features:e,location:i?.center})}}}MapProvider.type="5B3643D6-5FF4-4B30-B439-39C70AD68DE3:MapProvider";export{MapProvider};
|
|
@@ -14,13 +14,15 @@ export interface QueryTaskInputs {
|
|
|
14
14
|
geometry?: __esri.Geometry;
|
|
15
15
|
/** If true, each feature in the resulting Feature Set includes the geometry. Set to false (default) if you do not plan to include highlighted features on a map since the geometry takes up a significant portion of the response. */
|
|
16
16
|
returnGeometry?: boolean;
|
|
17
|
+
/** If true, the result will contain distinct values based on the fields specified in the Output Fields property. Only applies if supportsAdvancedQueries property of the layer or table is true. Requires ArcGIS Server 10.1.1+. */
|
|
18
|
+
returnDistinctValues?: boolean;
|
|
19
|
+
returnZ?: boolean;
|
|
20
|
+
returnM?: boolean;
|
|
17
21
|
/** The spatial reference for the returned geometry. If not specified, the geometry is returned in the spatial reference of the service being queried. */
|
|
18
22
|
outSpatialReference?: number | string | __esri.SpatialReference;
|
|
19
23
|
outFields?: string | string[];
|
|
20
24
|
/** The sorting order for the results. Specify ASC (ascending) or DESC (descending) after the field name to control the order. The default order is ASC. Order By Fields is only supported on dynamic layers and tables where supportsAdvancedQueries is true. Requires ArcGIS Server 10.1+. */
|
|
21
25
|
orderByFields?: string | string[];
|
|
22
|
-
/** If true, the result will contain distinct values based on the fields specified in the Output Fields property. Only applies if supportsAdvancedQueries property of the layer or table is true. Requires ArcGIS Server 10.1.1+. */
|
|
23
|
-
returnDistinctValues?: boolean;
|
|
24
26
|
/** The version of the geodatabase on which the query will be performed. This property applies to feature services. When querying dynamic layers, include gdbVersion in the layer definition rather than supplying it here. Requires ArcGIS Server 10.0+. */
|
|
25
27
|
gdbVersion?: string;
|
|
26
28
|
/** Distance to buffer input geometry. Query results will include features within the distance specified of the query geometry. Valid only for feature services hosted on ArcGIS Online. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{executeQueryJSON}from"@arcgis/core/rest/query";import Query from"@arcgis/core/rest/support/Query";import StatisticDefinition from"@arcgis/core/rest/support/StatisticDefinition";import{activate}from"../../Hooks.js";import{validation}from"../../Validation.js";import{MapProvider}from"./MapProvider.js";let QueryTask=class{static isToJSONMissing(t){return"object"==typeof t&&"function"!=typeof t.toJSON}async execute(t,i,e){var a=validation.urlOrLayer(t);const r=new Query({distance:validation.number("distance",t.distance,void 0),gdbVersion:validation.string("gdbVersion",t.gdbVersion,void 0),geometry:t.geometry,geometryPrecision:t.geometryPrecision,groupByFieldsForStatistics:validation.array("groupByFieldsForStatistics",t.groupByFieldsForStatistics),maxAllowableOffset:validation.number("maxAllowableOffset",t.maxAllowableOffset,void 0),multipatchOption:validation.string("multipatchOption",t.multipatchOption,void 0),num:validation.number("count",t.count,void 0),objectIds:validation.array("ids",t.ids),orderByFields:validation.array("orderByFields",t.orderByFields),outFields:validation.array("outFields",t.outFields),outSpatialReference:e.getOutSR(t.outSpatialReference),pixelSize:t.pixelSize,quantizationParameters:t.quantizationParameters,returnDistinctValues:validation.boolean("returnDistinctValues",t.returnDistinctValues,!1),returnGeometry:validation.boolean("returnGeometry",t.returnGeometry,!1),start:validation.number("start",t.start,void 0),text:validation.string("text",t.text,void 0),where:validation.string("where",t.where,void 0)});e=validation.array("outStatistics",t.outStatistics);if(e){r.outStatistics=[];for(const s of e)r.outStatistics.push(new StatisticDefinition({onStatisticField:s.onStatisticField,outStatisticFieldName:s.outStatisticFieldName,statisticType:s.statisticType}))}const o=validation.string("spatialRelationship",t.spatialRelationship,void 0);void 0!==o&&(o.match(/^[TF012\*]{9}$/)?(r.spatialRelationship="relation",r.relationParameter=o):r.spatialRelationship=o);i={signal:i.cancellationToken.signal},i=await executeQueryJSON(a,r,i);return{feature:i.features[0],features:i.features,results:i}}};QueryTask.action="gcx:wf:arcgis:query:QueryTask",QueryTask.suite="gcx:wf:builtin",QueryTask=__decorate([activate(MapProvider)],QueryTask);export{QueryTask};
|
|
1
|
+
import{__decorate}from"tslib";import{executeQueryJSON}from"@arcgis/core/rest/query";import Query from"@arcgis/core/rest/support/Query";import StatisticDefinition from"@arcgis/core/rest/support/StatisticDefinition";import{activate}from"../../Hooks.js";import{validation}from"../../Validation.js";import{MapProvider}from"./MapProvider.js";let QueryTask=class{static isToJSONMissing(t){return"object"==typeof t&&"function"!=typeof t.toJSON}async execute(t,i,e){var a=validation.urlOrLayer(t);const r=new Query({distance:validation.number("distance",t.distance,void 0),gdbVersion:validation.string("gdbVersion",t.gdbVersion,void 0),geometry:t.geometry,geometryPrecision:t.geometryPrecision,groupByFieldsForStatistics:validation.array("groupByFieldsForStatistics",t.groupByFieldsForStatistics),maxAllowableOffset:validation.number("maxAllowableOffset",t.maxAllowableOffset,void 0),multipatchOption:validation.string("multipatchOption",t.multipatchOption,void 0),num:validation.number("count",t.count,void 0),objectIds:validation.array("ids",t.ids),orderByFields:validation.array("orderByFields",t.orderByFields),outFields:validation.array("outFields",t.outFields),outSpatialReference:e.getOutSR(t.outSpatialReference),pixelSize:t.pixelSize,quantizationParameters:t.quantizationParameters,returnDistinctValues:validation.boolean("returnDistinctValues",t.returnDistinctValues,!1),returnGeometry:validation.boolean("returnGeometry",t.returnGeometry,!1),returnM:validation.boolean("returnM",t.returnM,!1),returnZ:validation.boolean("returnZ",t.returnZ,!1),start:validation.number("start",t.start,void 0),text:validation.string("text",t.text,void 0),where:validation.string("where",t.where,void 0)});e=validation.array("outStatistics",t.outStatistics);if(e){r.outStatistics=[];for(const s of e)r.outStatistics.push(new StatisticDefinition({onStatisticField:s.onStatisticField,outStatisticFieldName:s.outStatisticFieldName,statisticType:s.statisticType}))}const o=validation.string("spatialRelationship",t.spatialRelationship,void 0);void 0!==o&&(o.match(/^[TF012\*]{9}$/)?(r.spatialRelationship="relation",r.relationParameter=o):r.spatialRelationship=o);i={signal:i.cancellationToken.signal},i=await executeQueryJSON(a,r,i);return{feature:i.features[0],features:i.features,results:i}}};QueryTask.action="gcx:wf:arcgis:query:QueryTask",QueryTask.suite="gcx:wf:builtin",QueryTask=__decorate([activate(MapProvider)],QueryTask);export{QueryTask};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fromJSON}from"@arcgis/core/symbols/support/jsonUtils";class SymbolFromJson{execute(o,s){if(!o.json)return{symbol:void 0};
|
|
1
|
+
import CIMSymbol from"@arcgis/core/symbols/CIMSymbol";import{fromJSON}from"@arcgis/core/symbols/support/jsonUtils";class SymbolFromJson{execute(o,s){if(!o.json)return{symbol:void 0};var m="string"==typeof o.json?JSON.parse(o.json):o.json;let r;switch(m.type){case"CIMLineSymbol":case"CIMPointSymbol":case"CIMPolygonSymbol":r=CIMSymbol.fromJSON(m);break;default:r=fromJSON(m)}return{symbol:r}}}SymbolFromJson.action="gcx:wf:arcgis::SymbolFromJson",SymbolFromJson.suite="gcx:wf:builtin";export{SymbolFromJson};
|
|
@@ -26,8 +26,7 @@ export declare function isLayerWithDefinitionExpression(layer: __esri.Layer): la
|
|
|
26
26
|
*/
|
|
27
27
|
export declare function isLayerWithPopupTemplate(layer: __esri.Layer): layer is __esri.Layer & LayerWithPopupTemplate;
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
30
|
-
* `ArcGISDynamicService`.
|
|
29
|
+
* Checks if the supplied layer has a `findSublayerById` method.
|
|
31
30
|
* @param layer The layer to be checked.
|
|
32
31
|
*/
|
|
33
32
|
export declare function isLayerWithSublayers(layer: __esri.Layer): layer is __esri.Layer & LayerWithSublayers;
|
|
@@ -2,6 +2,8 @@ import type { RunSubworkflowOutputs } from "./RunSubworkflow";
|
|
|
2
2
|
import type { IActivityContext, IActivityHandler } from "../../IActivityHandler";
|
|
3
3
|
export interface SubworkflowInputs {
|
|
4
4
|
subworkflow: RunSubworkflowOutputs;
|
|
5
|
+
argumentsType?: "any" | "{ addressCandidate: esri.AddressCandidate }" | "{ extent: esri.Extent }" | "{ featureSet: esri.FeatureSet }" | "{ geometry: esri.Geometry }" | "{ graphic: esri.Graphic }" | "{ id: number; name: string; location: esri.Point; }" | "{ layer: esri.Layer }" | "{ multiPoint: esri.Multipoint }" | "{ point: esri.Point }" | "{ polygon: esri.Polygon }" | "{ polyline: esri.Polyline }" | "{ portalGroup: esri.PortalGroup }" | "{ portalUser: esri.PortalUser }" | "{ spatialReference: esri.SpatialReference }" | "{ symbol: esri.Symbol }" | string;
|
|
6
|
+
resultType?: "any" | "ArrayBuffer" | "boolean" | "Date" | "Error" | "Function" | "number" | "number[]" | "Object" | "string" | "string[]" | "esri.Graphic" | "esri.Extent" | "esri.Geometry" | "esri.Multipoint" | "esri.Point" | "esri.Polygon" | "esri.Polyline" | "esri.PortalGroup" | "esri.PortalUser" | "esri.SpatialReference" | "esri.Layer" | "esri.Symbol" | "esri.AddressCandidate" | "esri.FeatureSet" | "{ id: number; name: string; location: esri.Point; }" | string;
|
|
5
7
|
}
|
|
6
8
|
export interface SubworkflowOutputs {
|
|
7
9
|
arguments?: Record<string, any>;
|
package/execution/Engine.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import Bluebird from"bluebird";import{Activator}from"../Activator.js";import{getStringsForProgram}from"../LanguageStringUtils.js";import{Task}from"../Task.js";import{
|
|
1
|
+
import Bluebird from"bluebird";import{Activator}from"../Activator.js";import{getStringsForProgram}from"../LanguageStringUtils.js";import{Task}from"../Task.js";import{ProgramInspector,canonicalizeLocale}from"../definition/ProgramInspector.js";import{getCachedFormElements}from"../execution/ActivityLoader.js";import{BuiltInFormElements}from"../forms/manifest.js";import{check as checkLicense}from"../licensing/LicenseChecker.js";import{run}from"./ProgramRunner.js";class Engine{constructor(e){this._getFormElementRegistration=e=>this.formElements[e],this._registerFormElement=e=>{var t,r=e["id"];this.formElements[r]?(t={...this.formElements[r],...e},this.formElements[r]=t):this.formElements[r]=e},this.activator=new Activator,this.environment={},this.trivia={getFormElementRegistration:this._getFormElementRegistration,registerFormElement:this._registerFormElement},this.factories=[],this.implementations={},this.formElements={...getCachedFormElements(),...BuiltInFormElements},this.appSkuCode=e}setExternalEventHandler(e){this.externalEventCallback=e}removeExternalEventHandler(e){e===this.externalEventCallback&&(this.externalEventCallback=void 0)}static buildOptions(e,t){(t={...t||{}}).locale=canonicalizeLocale(t.locale),t.locale||(t.locale=e.getDefaultLocale()),t.logLevel=t.logLevel||"log";var r=new Proxy({},{get(e,t,r){return t}});const n=getStringsForProgram(e,t);return t.environment={activities:r,encodeHtml:function(e){return"string"==typeof e?e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"):""},getText:function(e){if("string"==typeof e&&"@"===e.charAt(0)){var t=e.slice(1);if(t in n)return n[t]}return e},strings:n,...t.environment||{}},t}createHandler(e,t){var r=this.implementations[e];if(void 0!==r){const i=Bluebird.resolve(r);return i.isFulfilled()?new(i.value()):i.then(function(e){return Bluebird.attempt(function(){return new e})})}for(const o of this.factories){var n=o.create(e,this._registerFormElement,t);if(void 0!==n)return n}}run(r,n){return Task.attempt(()=>{let e;r instanceof ProgramInspector?e=r:(e=new ProgramInspector,e.import(r)),checkLicense(e.program,this.appSkuCode),n=Engine.buildOptions(e,n);var t=e.resolveStart(n?n.start:void 0);return run(this,e,n,t)})}enqueueExternalEvent(e){this.externalEventCallback&&this.externalEventCallback(e)}}export{Engine};
|
package/execution/util.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const reservedIdentifiers=["
|
|
1
|
+
const reservedIdentifiers=["Array","Date","Intl","JSON","Math","Object","Set","decodeURIComponent","document","encodeURIComponent","isNaN","parseFloat","parseInt","resources","values","window"];function isAccessor(n){return!("string"!=typeof n||n.length<1)&&(!(0<=n.indexOf("."))&&!reservedIdentifiers.some(e=>e===n))}function isExpression(e){var n=e.type;return null==n&&"string"==typeof e.code}function isLiteral(e){switch(typeof e){case"boolean":case"number":case"string":return!0}return!1}let nextSymbol,nextSymbolPrefix;function newSymbol(){return void 0!==nextSymbol&&1073741824<=nextSymbol&&(nextSymbol=void 0),void 0===nextSymbol&&(nextSymbol=0,nextSymbolPrefix=(new Date).valueOf()+":"),nextSymbolPrefix+nextSymbol++}export{isAccessor,isExpression,isLiteral,newSymbol};
|
|
@@ -27,7 +27,7 @@ export type FormatRef = DateTimeFormat | NumberFormat | GeometryFormat | Section
|
|
|
27
27
|
* References geometry format.
|
|
28
28
|
* @product This is intended for internal use only within VertiGIS Studio products.
|
|
29
29
|
*/
|
|
30
|
-
export type GeometryFormat = "polygon" | "polyline" | "point" | "polygon-freehand" | "polyline-freehand" | "extent" | "line";
|
|
30
|
+
export type GeometryFormat = "multipoint" | "polygon" | "polyline" | "point" | "polygon-freehand" | "polyline-freehand" | "extent" | "line";
|
|
31
31
|
/** Types of matching that can be performed when finding an Item within a Form Element. */
|
|
32
32
|
export type ItemMatchType = "index" | "item" | "key" | "label" | "value";
|
|
33
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Box from"@vertigis/react-ui/Box";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";const StyledBox=styled(Box)(({theme:{spacing:e}})=>({marginBottom:e(
|
|
1
|
+
import Box from"@vertigis/react-ui/Box";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";const StyledBox=styled(Box)(({theme:{spacing:e}})=>({marginBottom:e(2),marginTop:e(2)})),AccordionGroup=({className:e,component:o})=>{var o=o.props["children"];return React.createElement(StyledBox,{className:e},o)};export default AccordionGroup;
|
|
@@ -1 +1 @@
|
|
|
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{useContext,useEffect,useMemo,useRef,useState}from"react";import*as React from"react";import{ExclusiveTimer}from"../ExclusiveTimer.js";import{autoCompletePropertyConstraints}from"../elements/AutoComplete.js";import HostContext from"../hostContext.js";import{getKeyString}from"../keyboard.js";import{getItemId,inspectItems,makeSafeClassName
|
|
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{useContext,useEffect,useMemo,useRef,useState}from"react";import*as React from"react";import{ExclusiveTimer}from"../ExclusiveTimer.js";import{autoCompletePropertyConstraints}from"../elements/AutoComplete.js";import HostContext from"../hostContext.js";import{getKeyString}from"../keyboard.js";import{getItemId,inspectItems,makeSafeClassName}from"../utils.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.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:t,current:u,delay:r,element:o,enabled:n,error:l,items:p,label:m,minLength:s,name:i,prompt:a,tooltip:c,raiseEvent:d,setProperty:f,setValue:g,value:C})=>{const v=useContext(HostContext),[y,x]=useState(),[b,h]=useState(""),[S,O]=useState([]),[E,k]=useState(null),P=useRef(!1),T=useRef(),R=useRef(!1),N=useRef(v.renderText({status:"trivial"})),I=v.renderText(a),F=v.renderText(c),A=useFocusCallback(n,i,v),L=useRef({}),j=useRef({}),w=useMemo(()=>{let e=r;return"number"==typeof e&&!isNaN(e)||(e=autoCompletePropertyConstraints.delay.default),Math.max(e,autoCompletePropertyConstraints.delay.minimum)},[r]),H=useMemo(()=>{let e=s;return"number"==typeof e&&!isNaN(e)||(e=autoCompletePropertyConstraints.minLength.default),Math.max(e,autoCompletePropertyConstraints.minLength.minimum)},[s]),M=t.timer||(t.timer=new ExclusiveTimer),B=()=>{d("suggest",C,b,void 0,M.cancellationToken),O(pendingOptions)},K=()=>{f("items",{}),f("label",void 0)};useEffect(()=>{"clear"===y?K():"input"===y&&(m&&f("label",void 0),P.current=!0,b.length>=H?(f("current",void 0),M.reset(),M.start(w,B)):0<Object.keys(p||{}).length&&K())},[y,b]),useEffect(()=>{var e,t,r=E?.value;C!==r&&(t=(e=getItemId(E,L.current))?j.current[e]:void 0,f("current",e),f("label",t),g(r,{argument:t}))},[E]),useEffect(()=>{const{current:e,items:t,label:r,value:o}=inspectItems(u,p,C);f("current",e),f("label",r||m),f("value",o,!1);const n={};let l=null;const s=[];for(const a in t){var i=t[a];s.push(i);const r=v.renderText(i.label).trim();n[a]=r,e&&a===e&&(l=i)}j.current=n,L.current=t,O(s),k(l)},[p]),useEffect(()=>{var e="string"==typeof u?u:void 0,t=e?L.current[e]:void 0,e=e?j.current[e]:void 0;t?(f("label",e),f("value",t.value),h(e||"")):(f("value",void 0),P.current||h("")),k(t||null)},[u]),useEffect(()=>{P.current||R.current||h(""),P.current=!1,R.current=!1},[m]);const $=v.renderText(m);return React.createElement(FormElement,{className:e,element:o,inputId:T.current,name:i},t=>React.createElement(StyledAutoComplete,{autoSelect:!0,clearOnEscape:!0,clearOnBlur:!1,disabled:!n,filterOptions:e=>e,getOptionDisabled:e=>!1===e.enabled,getOptionKey:e=>(e.index??-1).toString(),getOptionLabel:e=>{e=getItemId(e,L.current);return e?j.current[e]:""},inputValue:b,noOptionsText:N.current,onBlur:()=>{1===S.length&&b.toLowerCase()===j.current[0]?.toLowerCase()?(h(j.current[0]),k(S[0])):f("label",b)},onChange:(e,t,r,o)=>{R.current=!0,k(t)},onInputChange:(e,t,r)=>{h(t),x(r)},onKeyDown:e=>{"enter"===getKeyString(e)&&e.stopPropagation()},options:S,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,L.current),o={...e,className:clsx(e.className,t.styleName?makeSafeClassName(t.styleName):void 0),title:t.tooltip?v.renderText(t.tooltip):void 0,inputText:r,optionText:o?j.current[o]:""};return React.createElement(HighlightOption,{...o})},renderInput:e=>(e.inputProps={...e.inputProps,...t,value:e.inputProps.value||$,placeholder:I,title:F},T.current=e.id,React.createElement(FormLabelTextField,{error:!!l,...e,fullWidth:!0,inputRef:A})),value:E}))};export default AutoComplete;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import BaseDatePicker from"@vertigis/react-ui/DatePicker";import FormHelperText from"@vertigis/react-ui/FormHelperText";import*as React from"react";import{useContext,useEffect,useMemo,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import{areValuesEqual,getDateBounds,getNewElementValue,makeProperValue}from"../dateUtilities.js";import HostContext from"../hostContext.js";import{isInvalidError}from"../textUtilities.js";import{isDateTimeRef,makeUniqueId,useLocale}from"../utils.js";import DateTimeTextField from"./DateTimeTextField.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const DatePicker=({className:e,element:t,enabled:r,error:a,format:o,name:s,prompt:
|
|
1
|
+
import BaseDatePicker from"@vertigis/react-ui/DatePicker";import FormHelperText from"@vertigis/react-ui/FormHelperText";import*as React from"react";import{useContext,useEffect,useMemo,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import{areValuesEqual,getDateBounds,getNewElementValue,makeProperValue}from"../dateUtilities.js";import HostContext from"../hostContext.js";import{isInvalidError}from"../textUtilities.js";import{isDateTimeRef,makeUniqueId,useLocale}from"../utils.js";import DateTimeTextField from"./DateTimeTextField.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const DatePicker=({className:e,element:t,enabled:r,error:a,format:o,name:s,prompt:i,setProperty:l,setValue:n,tooltip:m,value:u})=>{const c=useContext(HostContext),[d,p]=useState(!1),[f,x]=useState(!1),[E,D]=useState(!1),[v,F]=useState(null),g=useRef(),T=useRef(!0),k=useFocusCallback(r,s,c),C=c.renderText(m);const R={locale:useLocale(),timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone},P=Calendar.useNative(),V="date",j=isInvalidError(a);useEffect(()=>{var e=makeProperValue(u,P),t=getNewElementValue(e,V,R,P);areValuesEqual(u,t)||n(t,!1),F(e||null)},[u]),useEffect(()=>{if(!E&&!f)if(d)j||l("error",{status:"invalid"});else{if(j&&l("error",void 0),T.current)return void(T.current=!1);let e=v||void 0;if(e&&isDateTimeRef(u)){const r=new Date(u.value);e=new Date(e),e.setHours(r.getHours()),e.setMinutes(r.getMinutes()),e.setSeconds(r.getSeconds()),e.setMilliseconds(r.getMilliseconds())}var t=getNewElementValue(e,V,R,P);areValuesEqual(u,t)||n(t)}T.current=!1},[d,f,E]);const{min:S,max:H}=getDateBounds(o),w=useMemo(()=>`${makeUniqueId(s)}-input`,[s]),I=c.renderText(i);return React.createElement(FormElement,{className:e,element:t,inputId:w,name:s},e=>React.createElement(React.Fragment,null,j&&React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},g.current),React.createElement(BaseDatePicker,{disabled:!r,inputRef:e=>{e&&(g.current=e.dataset.formatString,k(e))},key:"date-picker",maxDate:H,minDate:S,onChange:e=>F(e),onClose:()=>D(!1),onError:e=>p(!!e),onOpen:()=>D(!0),slots:{textField:DateTimeTextField},slotProps:{textField:{error:!!a,id:w,inputProps:{...e,placeholder:I},onBlur:()=>x(!1),onFocus:()=>x(!0),title:C}},value:v})))};export default DatePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{buttonBaseClasses}from"@vertigis/react-ui/ButtonBase";import BaseDateTimePicker from"@vertigis/react-ui/DateTimePicker";import FormHelperText from"@vertigis/react-ui/FormHelperText";import{clockClasses}from"@vertigis/react-ui/TimeClock";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{useContext,useEffect,useMemo,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import{areValuesEqual,getDateBounds,getNewElementValue,makeProperValue}from"../dateUtilities.js";import HostContext from"../hostContext.js";import{isInvalidError}from"../textUtilities.js";import{makeUniqueId,useLocale}from"../utils.js";import DateTimeTextField from"./DateTimeTextField.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const StylableDateTimePicker=e=>{let{className:t,slotProps:r,...a}=e;return r=r||{},React.createElement(BaseDateTimePicker,{slotProps:{...r,actionBar:{sx:{display:"none"}},popper:{...r.popper,className:t}},...a})},StyledDateTimePicker=styled(StylableDateTimePicker)(({theme:{palette:e}})=>({[`& .${clockClasses.amButton}, .${clockClasses.pmButton}`]:{[`&.${buttonBaseClasses.focusVisible}`]:{color:e.action.active}}})),DateTimePicker=({className:e,element:t,enabled:r,error:a,format:o,name:s,prompt:i,setProperty:l,setValue:m,tooltip:n,value:u})=>{const c=useContext(HostContext),[p,d]=useState(!1),[f,T]=useState(!1),[k,x]=useState(!1),[E,v]=useState(null),C=useRef();const D={locale:useLocale(),timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone},F=useRef(!0),P=useFocusCallback(r,s,c),g=c.renderText(n),B=Calendar.useNative(),R="datetime",y=isInvalidError(a);useEffect(()=>{var e=makeProperValue(u,B),t=getNewElementValue(e,R,D,B);areValuesEqual(u,t)||m(t,!1),v(e||null)},[u]),useEffect(()=>{if(!k&&!f)if(p)y||l("error",{status:"invalid"});else{if(y&&l("error",void 0),F.current)return void(F.current=!1);var e=getNewElementValue(E,R,D,B);areValuesEqual(u,e)||m(e)}F.current=!1},[p,f,k]);const{min:S,max:V}=getDateBounds(o),b=useMemo(()=>`${makeUniqueId(s)}-input`,[s]),j=c.renderText(i);return React.createElement(FormElement,{className:e,element:t,inputId:b,name:s},e=>React.createElement(React.Fragment,null,y&&React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},C.current),React.createElement(StyledDateTimePicker,{disabled:!r,key:"date-picker",inputRef:e=>{e&&(C.current=e.dataset.formatString,P(e))},maxDateTime:V,minDateTime:S,onChange:e=>v(e),onClose:()=>x(!1),onError:
|
|
1
|
+
import{buttonBaseClasses}from"@vertigis/react-ui/ButtonBase";import BaseDateTimePicker from"@vertigis/react-ui/DateTimePicker";import FormHelperText from"@vertigis/react-ui/FormHelperText";import{clockClasses}from"@vertigis/react-ui/TimeClock";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{useContext,useEffect,useMemo,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import{areValuesEqual,getDateBounds,getNewElementValue,makeProperValue}from"../dateUtilities.js";import HostContext from"../hostContext.js";import{isInvalidError}from"../textUtilities.js";import{makeUniqueId,useLocale}from"../utils.js";import DateTimeTextField from"./DateTimeTextField.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const StylableDateTimePicker=e=>{let{className:t,slotProps:r,...a}=e;return r=r||{},React.createElement(BaseDateTimePicker,{slotProps:{...r,actionBar:{sx:{display:"none"}},popper:{...r.popper,className:t}},...a})},StyledDateTimePicker=styled(StylableDateTimePicker)(({theme:{palette:e}})=>({[`& .${clockClasses.amButton}, .${clockClasses.pmButton}`]:{[`&.${buttonBaseClasses.focusVisible}`]:{color:e.action.active}}})),DateTimePicker=({className:e,element:t,enabled:r,error:a,format:o,name:s,prompt:i,setProperty:l,setValue:m,tooltip:n,value:u})=>{const c=useContext(HostContext),[p,d]=useState(!1),[f,T]=useState(!1),[k,x]=useState(!1),[E,v]=useState(null),C=useRef();const D={locale:useLocale(),timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone},F=useRef(!0),P=useFocusCallback(r,s,c),g=c.renderText(n),B=Calendar.useNative(),R="datetime",y=isInvalidError(a);useEffect(()=>{var e=makeProperValue(u,B),t=getNewElementValue(e,R,D,B);areValuesEqual(u,t)||m(t,!1),v(e||null)},[u]),useEffect(()=>{if(!k&&!f)if(p)y||l("error",{status:"invalid"});else{if(y&&l("error",void 0),F.current)return void(F.current=!1);var e=getNewElementValue(E,R,D,B);areValuesEqual(u,e)||m(e)}F.current=!1},[p,f,k]);const{min:S,max:V}=getDateBounds(o),b=useMemo(()=>`${makeUniqueId(s)}-input`,[s]),j=c.renderText(i);return React.createElement(FormElement,{className:e,element:t,inputId:b,name:s},e=>React.createElement(React.Fragment,null,y&&React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},C.current),React.createElement(StyledDateTimePicker,{disabled:!r,key:"date-picker",inputRef:e=>{e&&(C.current=e.dataset.formatString,P(e))},maxDateTime:V,minDateTime:S,onChange:e=>v(e),onClose:()=>x(!1),onError:e=>d(!!e),onOpen:()=>x(!0),slots:{textField:DateTimeTextField},slotProps:{textField:{error:!!a,id:b,inputProps:{...e,placeholder:j},onBlur:()=>T(!1),onFocus:()=>T(!0),title:g}},value:E})))};export default DateTimePicker;
|
package/forms/components/Form.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import AdapterDateFns from"@vertigis/react-ui/AdapterDateFns";import Box from"@vertigis/react-ui/Box";import{LicenseInfo}from"@vertigis/react-ui/LicenseInfo";import LocalizationProvider from"@vertigis/react-ui/LocalizationProvider";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect,useState}from"react";import{FormComponent,FormElementComponent}from"../FormComponent.js";import{FormElementTypes}from"../constants.js";import{getLocale}from"../dateUtilities.js";import{getKeyString}from"../keyboard.js";import{isMutuallyExclusiveSection,sortAndFilter}from"../utils.js";const PREFIX="Form",formClasses={body:`${PREFIX}-body`,footer:`${PREFIX}-footer`,formElementContent:`${PREFIX}-element-content`,formElementTitle:`${PREFIX}-element-title`,formElementWithTitleBeside:`${PREFIX}-element-with-title-beside`,header:`${PREFIX}-header`,main:`${PREFIX}-main`,root:`${PREFIX}-root`,row:`${PREFIX}-row`},StyledBox=styled(Box)(()=>({"h1, h2, h3":{margin:0},[`.${formClasses.formElementWithTitleBeside}`]:{alignItems:"start",display:"grid",gridTemplateColumns:"1fr 2fr",[`> .${formClasses.formElementTitle}`]:{gridColumnStart:1,margin:0,overflowWrap:"anywhere"},[`> .${formClasses.formElementContent}`]:{display:"inline-flex",flexDirection:"column",gridColumnStart:2,overflow:"auto"}},[`.${formClasses.row}`]:{display:"flex",gap:"0.5em","> *":{flexGrow:1},"> .CheckBox, > .CheckGroup, > .Image, > .Number, > .RadioGroup":{flexGrow:0},[`.${formClasses.formElementWithTitleBeside}`]:{gridTemplateColumns:"1fr 1fr"}}}));LicenseInfo.setLicenseKey("c14d2671e294e1c22b64a93ed8f2f0f9Tz04ODQ4NixFPTE3NDQ4MzUzNDMwMDAsUz1wcm8sTE09cGVycGV0dWFsLEtWPTI=");const Form=({className:e,component:t})=>{const[o,r]=useState(),l=t.props.host;if(useEffect(()=>{let t=!0;return getLocale(
|
|
1
|
+
import AdapterDateFns from"@vertigis/react-ui/AdapterDateFns";import Box from"@vertigis/react-ui/Box";import{LicenseInfo}from"@vertigis/react-ui/LicenseInfo";import LocalizationProvider from"@vertigis/react-ui/LocalizationProvider";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import*as React from"react";import{useEffect,useState}from"react";import{FormComponent,FormElementComponent}from"../FormComponent.js";import{FormElementTypes}from"../constants.js";import{getLocale,getLocaleText}from"../dateUtilities.js";import{getKeyString}from"../keyboard.js";import{isMutuallyExclusiveSection,sortAndFilter}from"../utils.js";const PREFIX="Form",formClasses={body:`${PREFIX}-body`,footer:`${PREFIX}-footer`,formElementContent:`${PREFIX}-element-content`,formElementTitle:`${PREFIX}-element-title`,formElementWithTitleBeside:`${PREFIX}-element-with-title-beside`,header:`${PREFIX}-header`,main:`${PREFIX}-main`,root:`${PREFIX}-root`,row:`${PREFIX}-row`},StyledBox=styled(Box)(()=>({"h1, h2, h3":{margin:0},[`.${formClasses.formElementWithTitleBeside}`]:{alignItems:"start",display:"grid",gridTemplateColumns:"1fr 2fr",[`> .${formClasses.formElementTitle}`]:{gridColumnStart:1,margin:0,overflowWrap:"anywhere"},[`> .${formClasses.formElementContent}`]:{display:"inline-flex",flexDirection:"column",gridColumnStart:2,overflow:"auto"}},[`.${formClasses.row}`]:{display:"flex",gap:"0.5em","> *":{flexGrow:1},"> .CheckBox, > .CheckGroup, > .Image, > .Number, > .RadioGroup":{flexGrow:0},[`.${formClasses.formElementWithTitleBeside}`]:{gridTemplateColumns:"1fr 1fr"}}}));LicenseInfo.setLicenseKey("c14d2671e294e1c22b64a93ed8f2f0f9Tz04ODQ4NixFPTE3NDQ4MzUzNDMwMDAsUz1wcm8sTE09cGVycGV0dWFsLEtWPTI=");const Form=({className:e,component:t})=>{const[o,r]=useState(),[n,i]=useState(),l=t.props.host;if(useEffect(()=>{let t=!0;var e=l.deriveLocale();return getLocale(e).then(e=>{t?r(e):console.warn("Component was unmounted while loading the locale.")}),getLocaleText(e).then(e=>{t?i(e):console.warn("Component was unmounted while loading the locale.")}),()=>{t=!1}},[]),!o)return null;const a={host:l,type:"header",children:[]},s={host:l,type:"body",children:[]},c={host:l,type:"main",children:[]},m={host:l,type:"footer",children:[]},d={host:l,type:"body",children:[]},f={},p=[];function h(e){return e!==FormElementTypes.SECTION}function u(e){return e===a||e===s||e===m?`${e.type}-section`:e.name}const y=sortAndFilter(t.props.host.form.elements);for(const I in y){var E,g=y[I];if(!0!==(F=g).hoisted&&(!1!==F.visible&&h(F.type)))if(!0!==g.overlay){let e=function(e){if(void 0===e)return s;if("header"===e)return a;if("footer"===e)return m;let t;t="object"==typeof e?e.name:e;let o=(e=>{for(const t of p)if(t.name===e)return t})(t);return void 0===o&&(o={host:l,name:t,type:"section",children:[]},p.push(o)),o}(g.section);void 0!==g.rowNumber&&(E=u(e),e=function(e,t){let o=f[t];o=o||(f[t]=[]);let r=o[e];return void 0===r&&(r=o[e]={host:l,type:"row",children:[]}),r}(g.rowNumber,E)),e.children.push(React.createElement(FormElementComponent,{key:I,host:l,type:"element",name:I,children:[]}))}else d.children.push(React.createElement(FormElementComponent,{key:I,host:l,type:"element",name:I,children:[]}))}var F,v;const C=[];if(0<a.children.length&&C.push(React.createElement(FormComponent,{key:"header",...a})),0<d.children.length)C.push(React.createElement(FormComponent,{key:"main",...d}));else{$(s);let e,t,o=0;var x=()=>{if(e){switch(t){case"accordion-section":k(e,++o,"accordionGroup");break;case"tab-section":k(e,++o,"tabGroup")}e=void 0,t=void 0}};for(const L of p){var T=L.name,w=y[T],R=w.format;t&&R!==t&&x(),null!=(v=y[v=T])&&(h(v.type)||!0===v.hoisted||!1===v.visible)||(isMutuallyExclusiveSection(w)?e?e.push(L):(e=[L],t=R):$(L))}x(),0<c.children.length&&C.push(React.createElement(FormComponent,{key:"main",...c}))}function b(e){if(!function(e){var t=u(e),o=f[t];if(o)for(const i of Object.keys(o).sort((e,t)=>parseInt(e)-parseInt(t))){var r,n=o[i];1<n.children.length?(r=`row-${i}`,e.children.push(React.createElement(FormComponent,{key:r,...n}))):1===n.children.length&&e.children.push(...n.children)}}(e),0<e.children.length){var t=e===s?"body":`$${e.name}`;return React.createElement(FormComponent,{key:t,...e})}}function $(e){e=b(e);e&&c.children.push(e)}function k(e,t,o){const r=[];for(const i of e){var n=b(i);n&&r.push(n)}t=`${o}${t}`,o={children:r,host:l,name:t,type:o};c.children.push(React.createElement(FormComponent,{key:t,...o}))}return 0<m.children.length&&C.push(React.createElement(FormComponent,{key:"footer",...m})),React.createElement(StyledBox,{className:clsx(e,formClasses.root),onKeyDown:function(e){"enter"===getKeyString(e)&&(e.target instanceof HTMLButtonElement||l.post("clicked"))},ref:function(e){l.renderFocus(e)}},React.createElement(LocalizationProvider,{dateAdapter:AdapterDateFns,adapterLocale:o,localeText:{...n,start:l.renderText("@date-range-picker-start-text"),end:l.renderText("@date-range-picker-end-text"),cancelButtonLabel:l.renderText("@common-cancel"),clearButtonLabel:l.renderText("@common-clear"),okButtonLabel:l.renderText("@common-ok"),todayButtonLabel:l.renderText("@common-today")}},C))};export default Form;export{formClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import FormControl from"@vertigis/react-ui/FormControl";import clsx from"clsx";import{forwardRef,useContext}from"react";import*as React from"react";import{TitleLocation}from"../constants.js";import HostContext from"../hostContext.js";import{makeSafeClassName,makeUniqueId}from"../utils.js";import{formClasses}from"./Form.js";import{renderAccessibleDescription,renderDescription,renderError,renderTitle}from"./common.js";export default forwardRef((e,r)=>{var{children:
|
|
1
|
+
import FormControl from"@vertigis/react-ui/FormControl";import{styled}from"@vertigis/react-ui/styles";import clsx from"clsx";import{forwardRef,useContext}from"react";import*as React from"react";import{TitleLocation}from"../constants.js";import HostContext from"../hostContext.js";import{makeSafeClassName,makeUniqueId}from"../utils.js";import{formClasses}from"./Form.js";import{renderAccessibleDescription,renderDescription,renderError,renderTitle}from"./common.js";const StyledFormControl=styled(FormControl)(({theme:{palette:e,spacing:r}})=>({code:{backgroundColor:"rgba(0, 0, 0, .06)",fontFamily:'"Consolas", monospace'},table:{borderCollapse:"collapse","td, th":{border:`1px solid ${e.grey[400]}`,padding:r(.5)},th:{backgroundColor:e.grey[100]}}}));export default forwardRef((e,r)=>{var{children:o,className:t,component:s,element:i,inputId:a,name:n}=e,l=useContext(HostContext),m=makeUniqueId(n),c=renderTitle(m,i.require,i.title,a,"fieldset"===s?"legend":void 0),e=renderDescription(i.description,m,i.enabled),a=renderAccessibleDescription(i.accessibleDescription,i.description,m,l),l=renderError(i.error);const d={className:clsx(t,i.type,{[formClasses.formElementWithTitleBeside]:i.titleLocation===TitleLocation.BESIDE,[makeSafeClassName(n)]:!!n,[makeSafeClassName(i.styleName)]:!!i.styleName}),component:s,error:!!l,id:m,ref:r,required:i.require};m=c?.props?.id,r=a?.props?.id;const p=o instanceof Function?o:void 0;let f=o instanceof Function?void 0:o;p?f=p({"aria-labelledby":m,"aria-describedby":r}):(d["aria-labelledby"]=m,d["aria-describedby"]=r);let u=[c];return i.titleLocation===TitleLocation.BESIDE?u.push(React.createElement("div",{className:formClasses.formElementContent},e,a,l,f)):(u.push(e),u.push(a),u.push(l),u.push(f)),React.createElement(StyledFormControl,{fullWidth:!0,...d},...u)});
|
|
@@ -7,5 +7,5 @@ export declare const listBoxClasses: {
|
|
|
7
7
|
/**
|
|
8
8
|
* The component for the "List Box" Form Element.
|
|
9
9
|
*/
|
|
10
|
-
declare const ListBox: ({ className, current, element, enabled, items: elementItems, name, require,
|
|
10
|
+
declare const ListBox: ({ className, current, element, enabled, items: elementItems, name, require, setValue: setElementValue, size: elementSize, tooltip: elementTooltip, value: elementValue, }: FormElementProps<defs.ItemsRef | undefined>) => React.JSX.Element;
|
|
11
11
|
export default ListBox;
|
|
@@ -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{useContext,useEffect,useState}from"react";import HostContext from"../hostContext.js";import{areValuesEqual,arrayEqual}from"../listUtilities.js";import{makeSafeClassName,makeUniqueId,inspectItems}from"../utils.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const PREFIX="ListBox",listBoxClasses={select:`${PREFIX}-select`},StyledFormElement=styled(FormElement)(({theme:{spacing:e}})=>({"&&&":{[`.${listBoxClasses.select}`]:{paddingRight:e(1)}}})),ListBox=({className:e,current:t,element:s,enabled:a,items:l,name:o,require:
|
|
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{useContext,useEffect,useState}from"react";import HostContext from"../hostContext.js";import{areValuesEqual,arrayEqual}from"../listUtilities.js";import{makeSafeClassName,makeUniqueId,inspectItems}from"../utils.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const PREFIX="ListBox",listBoxClasses={select:`${PREFIX}-select`},StyledFormElement=styled(FormElement)(({theme:{spacing:e}})=>({"&&&":{[`.${listBoxClasses.select}`]:{paddingRight:e(1)}}})),ListBox=({className:e,current:t,element:s,enabled:a,items:l,name:o,require:i,setValue:r,size:c,tooltip:m,value:n})=>{const u=useContext(HostContext),d=`${makeUniqueId(o)}-input`,p=inspectItems(t,l,n)["items"],[f,x]=useState([]),h=useFocusCallback(a,o,u);useEffect(()=>{const e=[];for(const t in l)l[t].checked&&e.push(t);arrayEqual(f,e)||x(e),v(e,!1)});const v=(e,t)=>{e=0===e.length?void 0:{refValueType:"items",items:e.map(e=>p[e])};areValuesEqual(n,e)||r(e,t)},E=e=>{const t=e.target["options"],s=[];for(let e=0;e<t.length;e++){var a=t.item(e),l=a.value;a.selected&&s.push(l)}for(const r in p){var o=p[r].checked,i=-1!==s.indexOf(r);o!==i&&(p[r].checked=i)}v(s,!0)},C=[];for(const S in p){const q=p[S];var k=u.renderText(q.label);const g=u.renderText(q.tooltip);q.checked=!0===q.checked;var y=clsx(q.styleName?makeSafeClassName(q.styleName):void 0),b=!1===q.enabled?void 0:!!q.checked;C.push(React.createElement("option",{"aria-selected":b,className:y,key:S,title:g,value:S,disabled:!1===q.enabled},k))}const g=u.renderText(m)||void 0;let F;return"number"==typeof c&&(F=c),React.createElement(StyledFormElement,{className:e,element:s,inputId:d,name:o},e=>React.createElement(Select,{disabled:!a||0===C.length,inputProps:{...e,"aria-multiselectable":!0,"aria-orientation":"vertical","aria-required":i,className:listBoxClasses.select,id:d,role:"listbox",size:F,title:g},inputRef:h,multiple:!0,native:!0,onChange:E,value:f},C))};export default ListBox;export{listBoxClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import BaseMarkdown from"@vertigis/react-ui/Markdown";import*as React from"react";import{useContext}from"react";import HostContext from"../hostContext.js";import{hasContent,isMarkdown}from"../textUtilities.js";const Markdown=({text:t,escapeHtml:e=!0,linkTarget:a="_blank",...o})=>{const r=useContext(HostContext);t=r.translateText(t);return hasContent(t)?isMarkdown(t)?React.createElement(BaseMarkdown,{markdown:t.markdown,escapeHtml:e,linkTarget:a,...o}):React.createElement(React.
|
|
1
|
+
import BaseMarkdown from"@vertigis/react-ui/Markdown";import*as React from"react";import{useContext}from"react";import HostContext from"../hostContext.js";import{hasContent,isMarkdown}from"../textUtilities.js";const Markdown=({text:t,escapeHtml:e=!0,linkTarget:a="_blank",...o})=>{const r=useContext(HostContext);t=r.translateText(t);return hasContent(t)?isMarkdown(t)?React.createElement(BaseMarkdown,{markdown:t.markdown,escapeHtml:e,linkTarget:a,...o}):React.createElement("div",{className:o.className,role:o.role},React.createElement("p",null,t)):null};export default Markdown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Button from"@vertigis/react-ui/Button";import Input from"@vertigis/react-ui/Input";import Stack from"@vertigis/react-ui/Stack";import{Close as CloseIcon,ScanBarcode,ScanMulti,ScanQr}from"@vertigis/react-ui/icons";import{styled}from"@vertigis/react-ui/styles";import{useState,useEffect,useRef,useContext}from"react";import*as React from"react";import{ScanType}from"../constants.js";import{scannerConfiguration}from"../elements/Scanner.js";import HostContext from"../hostContext.js";import{getKeyString}from"../keyboard.js";import{isScanRef,makeUniqueId}from"../utils.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const PREFIX="Scanner",scannerClasses={container:`${PREFIX}-container`,button:`${PREFIX}-button`,inputContainer:`${PREFIX}-inner`},StyledFormElement=styled(FormElement)(({theme:{spacing:e}})=>({[`.${scannerClasses.container}`]:{gap:e(.5),video:{width:"100%"},[`.${scannerClasses.inputContainer}`]:{alignItems:"flex-start",gap:e(.5),[`.${scannerClasses.button}`]:{minWidth:0,padding:e(.5)}}}})),CAMERA_READY_TIMEOUT_MS=1500;var EntryMethod;!function(e){e.Camera="camera",e.Manual="manual"}(EntryMethod=EntryMethod||{});const convertToScanRef=(e,t,
|
|
1
|
+
import Button from"@vertigis/react-ui/Button";import Input from"@vertigis/react-ui/Input";import Stack from"@vertigis/react-ui/Stack";import{Close as CloseIcon,ScanBarcode,ScanMulti,ScanQr}from"@vertigis/react-ui/icons";import{styled}from"@vertigis/react-ui/styles";import{useState,useEffect,useRef,useContext}from"react";import*as React from"react";import{ScanType}from"../constants.js";import{scannerConfiguration}from"../elements/Scanner.js";import HostContext from"../hostContext.js";import{getKeyString}from"../keyboard.js";import{isScanRef,makeUniqueId}from"../utils.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const PREFIX="Scanner",scannerClasses={container:`${PREFIX}-container`,button:`${PREFIX}-button`,inputContainer:`${PREFIX}-inner`},StyledFormElement=styled(FormElement)(({theme:{spacing:e}})=>({[`.${scannerClasses.container}`]:{gap:e(.5),video:{width:"100%"},[`.${scannerClasses.inputContainer}`]:{alignItems:"flex-start",gap:e(.5),[`.${scannerClasses.button}`]:{minWidth:0,padding:e(.5)}}}})),CAMERA_READY_TIMEOUT_MS=1500;var EntryMethod;!function(e){e.Camera="camera",e.Manual="manual"}(EntryMethod=EntryMethod||{});const convertToScanRef=(e,t,n)=>{var a=typeof e,a="number"==a||"string"==a?e.toString():e?.value?.toString();if(a)return t=t||e?.entryMethod||EntryMethod.Manual,{refValueType:"scan",value:a,scanType:n=n||e?.scanType,entryMethod:t}},Scanner=({autoActivate:e,className:t,element:n,enabled:a,manualEntry:r,name:o,raiseEvent:c,require:s,scanType:i,setProperty:l,setValue:u,size:m,tooltip:d,value:p})=>{const E=useContext(HostContext),[f,C]=useState(!0),[S,v]=useState(null),[y,g]=useState(""),[R,T]=useState(!1),[M,w]=useState(scannerConfiguration.rows.default),h=useRef(null);var A=`${makeUniqueId(o)}-input`;const I="barcode"!==i;useEffect(()=>{let e=scannerConfiguration.rows.default;"number"==typeof m&&(e=Math.max(scannerConfiguration.rows.minimum,m)),w(e)},[m]),useEffect(()=>(T(!0),()=>T(!1)),[]),useEffect(()=>{R&&a&&e&&(l("autoActivate",!1),x())},[R]),useEffect(()=>{S&&(C(!1),setTimeout(()=>{R&&C(!0)},CAMERA_READY_TIMEOUT_MS))},[S]);var _=useFocusCallback(a,o,E);useEffect(()=>{let e=p;!isScanRef(e)&&e&&(e=convertToScanRef(e),u(e,!1));var t=e?.value||"";y!==t&&g(t)},[p]);var D=E.renderText(d),d=!a,r=d||!r;const F=(e,t,n)=>{e&&p?.value!==e&&(n=convertToScanRef(e,t,n),u(n),g(e))},b=async e=>{var t=(await import("@zxing/browser"))["BarcodeFormat"];let n;return e===ScanType.QrCode?n=[t.AZTEC,t.DATA_MATRIX,t.MAXICODE,t.PDF_417,t.QR_CODE]:e===ScanType.BarCode&&(n=[t.CODABAR,t.CODE_39,t.CODE_93,t.CODE_128,t.EAN_8,t.EAN_13,t.ITF,t.RSS_14,t.RSS_EXPANDED,t.UPC_A,t.UPC_E,t.UPC_EAN_EXTENSION]),n},x=async()=>{if(S)return v(null),void c("cancel",void 0);const{BrowserCodeReader:o,BrowserMultiFormatReader:e}=await import("@zxing/browser");var t;R&&(t=await(async e=>{var t=(await import("@zxing/library"))["DecodeHintType"],e=await b(e);const n=new Map;return n.set(t.POSSIBLE_FORMATS,e),n})(i),t=new e(t),v(t),await(async e=>{try{var t=await o.listVideoInputDevices();if(!t||0==t.length)throw new DOMException("No video input devices detected.");const a=await e.decodeOnceFromVideoDevice(void 0,h.current||void 0),r=await b(ScanType.QrCode);var n=r.indexOf(a.getBarcodeFormat())<0?ScanType.BarCode:ScanType.QrCode;F(a.toString(),EntryMethod.Camera,n),v(null)}catch(e){e instanceof DOMException&&(l("error",e.message),v(null))}})(t))};return React.createElement(StyledFormElement,{className:t,element:n,inputId:A,name:o},React.createElement(Stack,{className:scannerClasses.container},React.createElement("video",{hidden:!S,ref:h}),React.createElement(Stack,{className:scannerClasses.inputContainer,direction:"row"},React.createElement(Input,{disabled:r,fullWidth:!0,id:A,inputProps:{title:D},inputRef:_,multiline:I,onBlur:e=>{0<e.currentTarget.value.length&&(v(null),F(e.currentTarget.value,EntryMethod.Manual))},onChange:e=>{g(e.currentTarget.value)},onKeyDown:e=>{"enter"===getKeyString(e)&&e.stopPropagation(),I||(e=e.currentTarget,v(null),F(e.value,EntryMethod.Manual))},required:s,rows:I?M:void 0,spellCheck:!1,value:y}),React.createElement(Button,{className:scannerClasses.button,color:"primary",disabled:d||!f,onClick:x,ref:_,title:D},S?React.createElement(CloseIcon,null):i===ScanType.BarCode?React.createElement(ScanBarcode,null):i===ScanType.QrCode?React.createElement(ScanQr,null):React.createElement(ScanMulti,null)))))};export default Scanner;export{scannerClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{buttonBaseClasses}from"@vertigis/react-ui/ButtonBase";import FormHelperText from"@vertigis/react-ui/FormHelperText";import{clockClasses}from"@vertigis/react-ui/TimeClock";import BaseTimePicker from"@vertigis/react-ui/TimePicker";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{useContext,useEffect,useMemo,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import{areValuesEqual,getDateBounds,getNewElementValue,makeProperValue}from"../dateUtilities.js";import HostContext from"../hostContext.js";import{isInvalidError}from"../textUtilities.js";import{makeUniqueId,useLocale}from"../utils.js";import DateTimeTextField from"./DateTimeTextField.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const StylableTimePicker=e=>{let{className:t,slotProps:r,...o}=e;return r=r||{},React.createElement(BaseTimePicker,{slotProps:{...r,popper:{...r.popper,className:t}},...o})},StyledTimePicker=styled(StylableTimePicker)(({theme:{palette:e}})=>({[`& .${clockClasses.amButton}, .${clockClasses.pmButton}`]:{[`&.${buttonBaseClasses.focusVisible}`]:{color:e.action.active}}})),TimePicker=({className:e,element:t,enabled:r,error:o,format:a,name:s,prompt:i,setProperty:l,setValue:m,tooltip:n,value:u})=>{const c=useContext(HostContext),[p,d]=useState(!1),[f,T]=useState(!1),[k,E]=useState(!1),[x,v]=useState(null),C=useRef();const F={locale:useLocale(),timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone},P=useRef(!0),g=useFocusCallback(r,s,c),B=c.renderText(n),R=Calendar.useNative(),S="time",V=isInvalidError(o);useEffect(()=>{var e=makeProperValue(u,R),t=getNewElementValue(e,S,F,R);areValuesEqual(u,t)||m(t,!1),v(e||null)},[u]),useEffect(()=>{if(!k&&!f)if(p)V||l("error",{status:"invalid"});else{if(V&&l("error",void 0),P.current)return void(P.current=!1);var e=getNewElementValue(x,S,F,R);areValuesEqual(u,e)||m(e)}P.current=!1},[p,f,k]);const{min:b,max:y}=getDateBounds(a),j=useMemo(()=>`${makeUniqueId(s)}-input`,[s]),N=c.renderText(i);return React.createElement(FormElement,{className:e,element:t,inputId:j,name:s},e=>React.createElement(React.Fragment,null,V&&React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},C.current),React.createElement(StyledTimePicker,{disabled:!r,inputRef:e=>{e&&(C.current=e.dataset.formatString,g(e))},key:"date-picker",maxTime:y,minTime:b,onChange:e=>v(e),onClose:()=>E(!1),onError:
|
|
1
|
+
import{buttonBaseClasses}from"@vertigis/react-ui/ButtonBase";import FormHelperText from"@vertigis/react-ui/FormHelperText";import{clockClasses}from"@vertigis/react-ui/TimeClock";import BaseTimePicker from"@vertigis/react-ui/TimePicker";import{styled}from"@vertigis/react-ui/styles";import*as React from"react";import{useContext,useEffect,useMemo,useRef,useState}from"react";import{Calendar}from"../Calendar.js";import{areValuesEqual,getDateBounds,getNewElementValue,makeProperValue}from"../dateUtilities.js";import HostContext from"../hostContext.js";import{isInvalidError}from"../textUtilities.js";import{makeUniqueId,useLocale}from"../utils.js";import DateTimeTextField from"./DateTimeTextField.js";import FormElement from"./FormElement.js";import{useFocusCallback}from"./common.js";const StylableTimePicker=e=>{let{className:t,slotProps:r,...o}=e;return r=r||{},React.createElement(BaseTimePicker,{slotProps:{...r,popper:{...r.popper,className:t}},...o})},StyledTimePicker=styled(StylableTimePicker)(({theme:{palette:e}})=>({[`& .${clockClasses.amButton}, .${clockClasses.pmButton}`]:{[`&.${buttonBaseClasses.focusVisible}`]:{color:e.action.active}}})),TimePicker=({className:e,element:t,enabled:r,error:o,format:a,name:s,prompt:i,setProperty:l,setValue:m,tooltip:n,value:u})=>{const c=useContext(HostContext),[p,d]=useState(!1),[f,T]=useState(!1),[k,E]=useState(!1),[x,v]=useState(null),C=useRef();const F={locale:useLocale(),timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone},P=useRef(!0),g=useFocusCallback(r,s,c),B=c.renderText(n),R=Calendar.useNative(),S="time",V=isInvalidError(o);useEffect(()=>{var e=makeProperValue(u,R),t=getNewElementValue(e,S,F,R);areValuesEqual(u,t)||m(t,!1),v(e||null)},[u]),useEffect(()=>{if(!k&&!f)if(p)V||l("error",{status:"invalid"});else{if(V&&l("error",void 0),P.current)return void(P.current=!1);var e=getNewElementValue(x,S,F,R);areValuesEqual(u,e)||m(e)}P.current=!1},[p,f,k]);const{min:b,max:y}=getDateBounds(a),j=useMemo(()=>`${makeUniqueId(s)}-input`,[s]),N=c.renderText(i);return React.createElement(FormElement,{className:e,element:t,inputId:j,name:s},e=>React.createElement(React.Fragment,null,V&&React.createElement(FormHelperText,{component:"div",error:!0,role:"alert"},C.current),React.createElement(StyledTimePicker,{disabled:!r,inputRef:e=>{e&&(C.current=e.dataset.formatString,g(e))},key:"date-picker",maxTime:y,minTime:b,onChange:e=>v(e),onClose:()=>E(!1),onError:e=>d(!!e),onOpen:()=>E(!0),slots:{textField:DateTimeTextField},slotProps:{textField:{error:!!o,id:j,inputProps:{...e,placeholder:N},onBlur:()=>T(!1),onFocus:()=>T(!0),title:B}},value:x})))};export default TimePicker;
|
package/forms/dateUtilities.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { Calendar } from "./Calendar";
|
|
2
2
|
import type { DateRangeRef, DateTimeFormat, DateTimeRef, DateTimeType, FormatRef } from "./FormDefinition";
|
|
3
3
|
import type { defs } from "./FormHost";
|
|
4
|
-
import type {
|
|
4
|
+
import type { PickersLocaleText } from "@mui/x-date-pickers";
|
|
5
5
|
import type { Locale } from "date-fns";
|
|
6
|
+
/**
|
|
7
|
+
* A list of the locales we currently bundle from `date-fns`.
|
|
8
|
+
*/
|
|
6
9
|
export declare const SUPPORTED_DATE_FNS_LOCALES: string[];
|
|
7
10
|
/**
|
|
8
11
|
* Checks if a form element's value is equal to the supplied value.
|
|
@@ -64,6 +67,7 @@ export declare function getDateBounds(format: FormatRef | undefined): {
|
|
|
64
67
|
* @param language The target language to retrieve the locale for.
|
|
65
68
|
*/
|
|
66
69
|
export declare function getDateFnsLocale(language: string): Promise<Locale | undefined>;
|
|
70
|
+
export declare function getLocaleText(language: string): Promise<Partial<PickersLocaleText<any>> | undefined>;
|
|
67
71
|
/**
|
|
68
72
|
* Gets the date format based on the current browser locale. This function will always return four digit year tokens
|
|
69
73
|
* and two digit month and day tokens. The browser locale however, will determine their placement and the separator.
|
|
@@ -99,15 +103,15 @@ export declare function convertToDateRangeRef(value: DateRangeLike): DateRangeRe
|
|
|
99
103
|
* @param dateFormat The date format to set in cache.
|
|
100
104
|
*/
|
|
101
105
|
export declare function __test__setlocaleDateFormatInCache(dateFormat: string): void;
|
|
102
|
-
export declare function getLocale(
|
|
103
|
-
type
|
|
106
|
+
export declare function getLocale(language: string): Promise<Locale | undefined>;
|
|
107
|
+
type PartialValue = void | boolean | number | string | {
|
|
104
108
|
[name: string]: any;
|
|
105
|
-
format?:
|
|
109
|
+
format?: PartialValue | void;
|
|
106
110
|
locale?: string;
|
|
107
111
|
timezone?: string;
|
|
108
112
|
refValueType?: string;
|
|
109
113
|
value?: number;
|
|
110
114
|
};
|
|
111
|
-
export declare function makeProperValue(value: number | string |
|
|
115
|
+
export declare function makeProperValue(value: number | string | PartialValue, calendar: Calendar): Date | undefined;
|
|
112
116
|
export declare function getNewElementValue(date: Date | undefined | null, refValueType: DateTimeType, format: DateTimeFormat, calendar: Calendar): DateTimeRef | undefined;
|
|
113
117
|
export {};
|
package/forms/dateUtilities.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{parse,isAfter}from"date-fns";import{parseLocale}from"../definition/ProgramInspector.js";import{Calendar}from"./Calendar.js";import{isDateRangeRef,isDateTimeRef}from"./utils.js";const CURRENT_CENTURY_YEAR_CUTOFF=29,SUPPORTED_DATE_FNS_LOCALES=["cs","da","de","de-AT","en-AU","en-CA","en-GB","en-IN","en-NZ","en-US","en-ZA","fr","fr-CA","fr-CH","it","nb","nl","nl-BE","nn","pt","pt-BR"];let localeDateFormat="",dateFormatSeparator;function areValuesEqual(e,a){return void 0===e&&void 0===a||null===e&&null===a||(isDateTimeRef(e)&&a&&isDateTimeRef(a)?e.display===a.display&&e.refValueType===a.refValueType&&e.value===a.value&&areFormatsEqual(e.format,a.format):!!(isDateRangeRef(e)&&a&&isDateRangeRef(a))&&(e.endDate?.valueOf()===a.endDate?.valueOf()&&e.refValueType===a.refValueType&&e.startDate?.valueOf()===a.startDate?.valueOf()))}function areFormatsEqual(e,a){return void 0===e&&void 0===a||("string"==typeof e&&"string"==typeof a?e===a:"object"==typeof e&&"object"==typeof a&&(null===e||null===a?e===a:e.locale===a.locale&&e.timezone===a.timezone))}function isValidDate(e){return e instanceof Date&&!isNaN(e.valueOf())}function tryParseYear(e){if(/^\d+$/.test(e)&&!(4<e.length)){for(2===e.length&&(e=`${CURRENT_CENTURY_YEAR_CUTOFF>=parseInt(e,10)?20:19}${e}`);e.length<4;)e=`0${e}`;return e}}function tryParseMonth(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var a=parseInt(e,10);if(!(a<1||12<a))return e}}function tryParseDay(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var a=parseInt(e,10);if(!(a<1||31<a))return e}}function tryParseDateText(e){if(e){const r=(e=e.replace(/\\/g,"\\\\")).match(/(\d+)/g);if(3===r?.length){var e=getLocaleDateFormatSeparator(),a=getLocaleDateFormatTokenPosition("yyyy"),t=getLocaleDateFormatTokenPosition("MM");for(let e=0;e<3;e++){switch(e){case a:r[e]=tryParseYear(r[e]);break;case t:r[e]=tryParseMonth(r[e]);break;default:r[e]=tryParseDay(r[e])}if(void 0===r[e])return}return`${r[0]}${e}${r[1]}${e}${r[2]}`}}}function getDateBounds(e){var{lowerBound:a,upperBound:e}=e||{};return{min:"number"==typeof a?new Date(a):void 0,max:"number"==typeof e?new Date(e):void 0}}
|
|
1
|
+
import{parse,isAfter}from"date-fns";import{DEFAULT_LOCALE}from"../constants.js";import{parseLocale}from"../definition/ProgramInspector.js";import{Calendar}from"./Calendar.js";import{isDateRangeRef,isDateTimeRef}from"./utils.js";const CURRENT_CENTURY_YEAR_CUTOFF=29,SUPPORTED_DATE_FNS_LOCALES=["cs","da","de","de-AT","en-AU","en-CA","en-GB","en-IN","en-NZ","en-US","en-ZA","fr","fr-CA","fr-CH","it","nb","nl","nl-BE","nn","pt","pt-BR"];let localeDateFormat="",dateFormatSeparator;function areValuesEqual(e,a){return void 0===e&&void 0===a||null===e&&null===a||(isDateTimeRef(e)&&a&&isDateTimeRef(a)?e.display===a.display&&e.refValueType===a.refValueType&&e.value===a.value&&areFormatsEqual(e.format,a.format):!!(isDateRangeRef(e)&&a&&isDateRangeRef(a))&&(e.endDate?.valueOf()===a.endDate?.valueOf()&&e.refValueType===a.refValueType&&e.startDate?.valueOf()===a.startDate?.valueOf()))}function areFormatsEqual(e,a){return void 0===e&&void 0===a||("string"==typeof e&&"string"==typeof a?e===a:"object"==typeof e&&"object"==typeof a&&(null===e||null===a?e===a:e.locale===a.locale&&e.timezone===a.timezone))}function isValidDate(e){return e instanceof Date&&!isNaN(e.valueOf())}function tryParseYear(e){if(/^\d+$/.test(e)&&!(4<e.length)){for(2===e.length&&(e=`${CURRENT_CENTURY_YEAR_CUTOFF>=parseInt(e,10)?20:19}${e}`);e.length<4;)e=`0${e}`;return e}}function tryParseMonth(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var a=parseInt(e,10);if(!(a<1||12<a))return e}}function tryParseDay(e){if(/^\d+$/.test(e)&&!(2<e.length)){1===e.length&&(e=`0${e}`);var a=parseInt(e,10);if(!(a<1||31<a))return e}}function tryParseDateText(e){if(e){const r=(e=e.replace(/\\/g,"\\\\")).match(/(\d+)/g);if(3===r?.length){var e=getLocaleDateFormatSeparator(),a=getLocaleDateFormatTokenPosition("yyyy"),t=getLocaleDateFormatTokenPosition("MM");for(let e=0;e<3;e++){switch(e){case a:r[e]=tryParseYear(r[e]);break;case t:r[e]=tryParseMonth(r[e]);break;default:r[e]=tryParseDay(r[e])}if(void 0===r[e])return}return`${r[0]}${e}${r[1]}${e}${r[2]}`}}}function getDateBounds(e){var{lowerBound:a,upperBound:e}=e||{};return{min:"number"==typeof a?new Date(a):void 0,max:"number"==typeof e?new Date(e):void 0}}function getTargetLanguages(e){e=parseLocale(e);if(!e)return[DEFAULT_LOCALE];const a=[];return e.territory&&a.push(`${e.language}-${e.territory}`),a.push(e.language),a.push(DEFAULT_LOCALE),a}async function getDateFnsLocale(e){for(const a of getTargetLanguages(e))if(-1!==SUPPORTED_DATE_FNS_LOCALES.indexOf(a)){let e;try{switch(a){case"cs":e=(await import("date-fns/locale/cs")).cs;break;case"da":e=(await import("date-fns/locale/da")).da;break;case"de":e=(await import("date-fns/locale/de")).de;break;case"de-AT":e=(await import("date-fns/locale/de-AT")).deAT;break;case"en-AU":e=(await import("date-fns/locale/en-AU")).enAU;break;case"en-CA":e=(await import("date-fns/locale/en-CA")).enCA;break;case"en-GB":e=(await import("date-fns/locale/en-GB")).enGB;break;case"en-IN":e=(await import("date-fns/locale/en-IN")).enIN;break;case"en-NZ":e=(await import("date-fns/locale/en-NZ")).enNZ;break;case"en-US":e=(await import("date-fns/locale/en-US")).enUS;break;case"en-ZA":e=(await import("date-fns/locale/en-ZA")).enZA;break;case"fr":e=(await import("date-fns/locale/fr")).fr;break;case"fr-CA":e=(await import("date-fns/locale/fr-CA")).frCA;break;case"fr-CH":e=(await import("date-fns/locale/fr-CH")).frCH;break;case"it":e=(await import("date-fns/locale/it")).it;break;case"nb":e=(await import("date-fns/locale/nb")).nb;break;case"nl":e=(await import("date-fns/locale/nl")).nl;break;case"nl-BE":e=(await import("date-fns/locale/nl-BE")).nlBE;break;case"nn":e=(await import("date-fns/locale/nn")).nn;break;case"pt":e=(await import("date-fns/locale/pt")).pt;break;case"pt-BR":e=(await import("date-fns/locale/pt-BR")).ptBR}}catch{continue}if(e?.localize)return e}}async function getLocaleText(e){for(const a of getTargetLanguages(e))if(-1!==SUPPORTED_DATE_FNS_LOCALES.indexOf(a)){let e;try{switch(a){case"cs":e=(await import("@mui/x-date-pickers/locales/csCZ")).csCZ;break;case"da":e=(await import("@mui/x-date-pickers/locales/daDK")).daDK;break;case"de":case"de-AT":e=(await import("@mui/x-date-pickers/locales/deDE")).deDE;break;case"en-AU":case"en-CA":case"en-GB":case"en-IN":case"en-NZ":case"en-US":case"en-ZA":case"nn":e=(await import("@mui/x-date-pickers/locales/enUS")).enUS;break;case"fr":case"fr-CA":case"fr-CH":e=(await import("@mui/x-date-pickers/locales/frFR")).frFR;break;case"it":e=(await import("@mui/x-date-pickers/locales/itIT")).itIT;break;case"nb":e=(await import("@mui/x-date-pickers/locales/nbNO")).nbNO;break;case"nl":case"nl-BE":e=(await import("@mui/x-date-pickers/locales/nlNL")).nlNL;break;case"pt":case"pt-BR":e=(await import("@mui/x-date-pickers/locales/ptBR")).ptBR}}catch{continue}return e?e.components.MuiLocalizationProvider.defaultProps.localeText:{}}}function getLocaleDateFormat(){if(localeDateFormat)return localeDateFormat;const e=new Date(1999,11,31,0,0,0);return localeDateFormat=e.toLocaleDateString(void 0,{year:"numeric",month:"numeric",day:"numeric"}),localeDateFormat=localeDateFormat.replace("1999","yyyy"),localeDateFormat=localeDateFormat.replace("99","yyyy"),localeDateFormat=localeDateFormat.replace("12","MM"),localeDateFormat=localeDateFormat.replace("31","dd"),localeDateFormat}function getLocaleDateFormatSeparator(){var e;return void 0===dateFormatSeparator&&(e=/[^dMy]+/.exec(getLocaleDateFormat()),dateFormatSeparator=e?e[0]:""),dateFormatSeparator}function getLocaleDateFormatTokenPosition(e){const a=getLocaleDateFormat();var t=a.indexOf("yyyy"),r=a.indexOf("MM"),o=a.indexOf("dd");return"yyyy"===e?0===t?0:r<t&&o<t?2:1:"MM"===e?0===r?0:o<r&&t<r?2:1:0===o?0:r<o&&t<o?2:1}const coerceIntoDate=e=>{if(e instanceof Date&&isValidDate(e))return new Date(e.valueOf());if("string"==typeof e)if(/^\d+$/.test(e))e=Number(e);else{var a=tryParseDateText(e);if(a){var t=getLocaleDateFormat(),t=parse(a,t,0);if(isValidDate(t))return t}}if("number"==typeof e){e=new Date(e);if(isValidDate(e))return e}};function convertToDateRangeRef(e){let a,t,r=!1;Array.isArray(e)?(a=coerceIntoDate(e[0]),t=coerceIntoDate(e[1]),r=!0):"object"==typeof e&&(a=coerceIntoDate(e.startDate),t=coerceIntoDate(e.endDate));var o=!!a&&!!t;let n=o&&!isAfter(a,t);return r&&o&&!n&&(e=a,a=t,t=e,n=!0),o&&n?{refValueType:"daterange",startDate:a,endDate:t}:void 0}function __test__setlocaleDateFormatInCache(e){localeDateFormat=e,dateFormatSeparator=void 0}async function getLocale(e){return getDateFnsLocale(e)}function makeProperValue(e,a){if("object"==typeof e){if(null===e)return;switch(e.refValueType){case"date":case"time":case"datetime":break;default:return}e=e.value}if("number"==typeof e||"string"==typeof e){const t=a.coerceIntoValue(e);if(void 0!==t&&null!==t&&isFinite(t.valueOf()))return t}}function getNewElementValue(e,a,t,r){if(null!=e&&isFinite(e.valueOf()))return{refValueType:a,format:t,display:r.format(e,Calendar.fullFormat),value:e.valueOf()}}export{SUPPORTED_DATE_FNS_LOCALES,areValuesEqual,isValidDate,tryParseYear,tryParseMonth,tryParseDay,tryParseDateText,getDateBounds,getDateFnsLocale,getLocaleText,getLocaleDateFormat,getLocaleDateFormatSeparator,getLocaleDateFormatTokenPosition,convertToDateRangeRef,__test__setlocaleDateFormatInCache,getLocale,makeProperValue,getNewElementValue};
|
package/forms/hostContext.d.ts
CHANGED
package/forms/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{MuiPickersAdapterContext}from"@vertigis/react-ui/LocalizationProvider";import{useContext}from"react";import{FormElementTypes}from"./constants.js";import*as text from"./textUtilities.js";const DEFAULT_DEBOUNCE_DELAY=300,DEFAULT_THROTTLE_DELAY=100;let next=0,seed=(new Date).valueOf();const guid="5DDC9A38-AAAB-44C1-AD87-415160F43D75";function makeId(){return 2147483648<=next&&(seed=(new Date).valueOf(),next=0),`${guid}:${seed}:${next++}`}function indexOf(e,t){if(null!=e){e=e.index;return"number"==typeof e?e:t}}function compareIndex(e,t){return compareNumber(e.index,t.index)}function compareNumber(e,t){return e<t?-1:t<e?1:0}function sortAndFilter(e,t){void 0===t&&(t=indexOf);const i={};if("object"!=typeof e||null===e)return i;let n=0;const r=[];for(const a in e){var o=e[a],s=t(o,n++);"number"==typeof s&&r.push({key:a,index:s,item:o})}for(const c of r.sort(compareIndex))i[c.key]=c.item;return i}function inspectItems(e,t,i){let n;var r=sortAndFilter(t,function(e,t){if(null!=e&&!1!==e.visible){e=e.index;return"number"==typeof e?e:t}});if(void 0===(e=null==e||void 0===r[e]?void 0:e)&&null!=i)for(const o in r){if(r[o].value===i){e=o;break}e=void 0}return i=void 0!==e?(n=r[e].label,r[e].value):n=void 0,{current:e,items:r,label:n,value:i}}function stripClassName(e,t){return e.className.split(" ").filter(e=>0<e.length&&e!==t).join(" ")}function makeSafeClassName(e){return`gcx-forms-${e?.replace(/[\W]/g,"")||"element"}`}let idSuffix=0;function makeUniqueId(e){return`${makeSafeClassName(e)}-${++idSuffix}`}function addSuffix(e,t){return`${e}-${t}`}function getAccessibleDescriptionId(e){return addSuffix(e,"accessible-description")}function getDescriptionId(e){return addSuffix(e,"description")}function getErrorId(e){return addSuffix(e,"error")}function getInputId(e){return addSuffix(e,"input")}function getLabelId(e){return addSuffix(e,"label")}function addClass(e,t){void 0!==e.classList?e.classList.add(t):e.className=stripClassName(e,t)+" "+t}function removeClass(e,t){void 0!==e.classList?e.classList.remove(t):e.className=stripClassName(e,t)}function setClass(e,t,i){(i?addClass:removeClass)(e,t)}function isObjectType(e,t){return"object"==typeof e&&null!==e&&(!Array.isArray(e)&&e.refValueType===t)}function isSection(e){return e?.type===FormElementTypes.SECTION}function isAccordionSection(e){return isSection(e)&&"accordion-section"===e.format}function isCollapsibleSection(e){return isSection(e)&&"collapsible-section"===e.format}function isFieldsetSection(e){return isSection(e)&&"fieldset-section"===e.format}function isMutuallyExclusiveSection(e){return isAccordionSection(e)||isTabSection(e)}function isTabSection(e){return isSection(e)&&"tab-section"===e.format}function isBoolean(e){return"boolean"==typeof e}function isNumber(e){return"number"==typeof e}function isString(e){return"string"==typeof e}function isDataRef(e){return isObjectType(e,"data")}function isDateRangeRef(e){return isObjectType(e,"daterange")}function isDateTimeRef(e){return isObjectType(e,"date")||isObjectType(e,"time")||isObjectType(e,"datetime")}function isFilesRef(e){return isObjectType(e,"files")}function isScanRef(e){return isObjectType(e,"scan")}function isGeometryRef(e){return isObjectType(e,"geometry")}function isItemsRef(e){return isObjectType(e,"items")}function isNumberRef(e){return isObjectType(e,"number")}function isSketchRef(e){return isObjectType(e,"sketch")}function sanitizeGeometryRef(e){if(isGeometryRef(e)){var t=e.geometry;if(Array.isArray(t)&&0<t.length)switch(e.format){case"point":case"polygon":case"polyline":case"polygon-freehand":case"polyline-freehand":case"extent":case"line":return e}}}function createGeometryRef(e){return{refValueType:"geometry",format:e,geometry:[]}}function debounce(t,i=DEFAULT_DEBOUNCE_DELAY){let n;return function(){const e=()=>{n=void 0,t.apply(this,arguments)};return clearTimeout(n),n=setTimeout(e,i),{now:()=>{n&&(clearTimeout(n),e())},cancel:()=>{n&&(clearTimeout(n),n=void 0)}}}}function throttle(i,n=DEFAULT_THROTTLE_DELAY){let r,o;return function(){var e=Date.now(),t=()=>{o=void 0,r=Date.now(),i.apply(this,arguments)};r&&e<r+n?(clearTimeout(o),o=setTimeout(t,n)):t()}}function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}function getElementProps(e,t){var{enabled:i,id:n,raiseEvent:r,setItemProperty:o,setProperty:s,setValue:a}=e,{format:c,manualEntry:u,showMinMaxLabels:f,showTickMarks:l,size:m,type:d,value:p,wrap:y}=t;return{...t,enabled:!!i,id:n,raiseEvent:r,setItemProperty:o,setProperty:s,setValue:a,format:c,manualEntry:u,showMinMaxLabels:f,showTickMarks:l,size:m,type:d,value:p,wrap:y,element:t,name:e.props.name,component:e}}function getItemId(e,t){if(e)for(const i in t)if(t[i]===e)return i}function useLocale(){var e=useContext(MuiPickersAdapterContext)?.utils?.locale?.code;if(!e)throw new Error("Failed to detect locale. Ensure there is a LocalizationProvider in the ancestry of the component that is using this hook.");return e}export{text,makeId,sortAndFilter,inspectItems,makeSafeClassName,makeUniqueId,getAccessibleDescriptionId,getDescriptionId,getErrorId,getInputId,getLabelId,addClass,removeClass,setClass,isSection,isAccordionSection,isCollapsibleSection,isFieldsetSection,isMutuallyExclusiveSection,isTabSection,isBoolean,isNumber,isString,isDataRef,isDateRangeRef,isDateTimeRef,isFilesRef,isScanRef,isGeometryRef,isItemsRef,isNumberRef,isSketchRef,sanitizeGeometryRef,createGeometryRef,debounce,throttle,isNumeric,getElementProps,getItemId,useLocale};
|
|
1
|
+
import{MuiPickersAdapterContext}from"@vertigis/react-ui/LocalizationProvider";import{useContext}from"react";import{FormElementTypes}from"./constants.js";import*as text from"./textUtilities.js";const DEFAULT_DEBOUNCE_DELAY=300,DEFAULT_THROTTLE_DELAY=100;let next=0,seed=(new Date).valueOf();const guid="5DDC9A38-AAAB-44C1-AD87-415160F43D75";function makeId(){return 2147483648<=next&&(seed=(new Date).valueOf(),next=0),`${guid}:${seed}:${next++}`}function indexOf(e,t){if(null!=e){e=e.index;return"number"==typeof e?e:t}}function compareIndex(e,t){return compareNumber(e.index,t.index)}function compareNumber(e,t){return e<t?-1:t<e?1:0}function sortAndFilter(e,t){void 0===t&&(t=indexOf);const i={};if("object"!=typeof e||null===e)return i;let n=0;const r=[];for(const a in e){var o=e[a],s=t(o,n++);"number"==typeof s&&r.push({key:a,index:s,item:o})}for(const c of r.sort(compareIndex))i[c.key]=c.item;return i}function inspectItems(e,t,i){let n;var r=sortAndFilter(t,function(e,t){if(null!=e&&!1!==e.visible){e=e.index;return"number"==typeof e?e:t}});if(void 0===(e=null==e||void 0===r[e]?void 0:e)&&null!=i)for(const o in r){if(r[o].value===i){e=o;break}e=void 0}return i=void 0!==e?(n=r[e].label,r[e].value):n=void 0,{current:e,items:r,label:n,value:i}}function stripClassName(e,t){return e.className.split(" ").filter(e=>0<e.length&&e!==t).join(" ")}function makeSafeClassName(e){return`gcx-forms-${e?.replace(/[\W]/g,"")||"element"}`}let idSuffix=0;function makeUniqueId(e){return`${makeSafeClassName(e)}-${++idSuffix}`}function addSuffix(e,t){return`${e}-${t}`}function getAccessibleDescriptionId(e){return addSuffix(e,"accessible-description")}function getDescriptionId(e){return addSuffix(e,"description")}function getErrorId(e){return addSuffix(e,"error")}function getInputId(e){return addSuffix(e,"input")}function getLabelId(e){return addSuffix(e,"label")}function addClass(e,t){void 0!==e.classList?e.classList.add(t):e.className=stripClassName(e,t)+" "+t}function removeClass(e,t){void 0!==e.classList?e.classList.remove(t):e.className=stripClassName(e,t)}function setClass(e,t,i){(i?addClass:removeClass)(e,t)}function isObjectType(e,t){return"object"==typeof e&&null!==e&&(!Array.isArray(e)&&e.refValueType===t)}function isSection(e){return e?.type===FormElementTypes.SECTION}function isAccordionSection(e){return isSection(e)&&"accordion-section"===e.format}function isCollapsibleSection(e){return isSection(e)&&"collapsible-section"===e.format}function isFieldsetSection(e){return isSection(e)&&"fieldset-section"===e.format}function isMutuallyExclusiveSection(e){return isAccordionSection(e)||isTabSection(e)}function isTabSection(e){return isSection(e)&&"tab-section"===e.format}function isBoolean(e){return"boolean"==typeof e}function isNumber(e){return"number"==typeof e}function isString(e){return"string"==typeof e}function isDataRef(e){return isObjectType(e,"data")}function isDateRangeRef(e){return isObjectType(e,"daterange")}function isDateTimeRef(e){return isObjectType(e,"date")||isObjectType(e,"time")||isObjectType(e,"datetime")}function isFilesRef(e){return isObjectType(e,"files")}function isScanRef(e){return isObjectType(e,"scan")}function isGeometryRef(e){return isObjectType(e,"geometry")}function isItemsRef(e){return isObjectType(e,"items")}function isNumberRef(e){return isObjectType(e,"number")}function isSketchRef(e){return isObjectType(e,"sketch")}function sanitizeGeometryRef(e){if(isGeometryRef(e)){var t=e.geometry;if(Array.isArray(t)&&0<t.length)switch(e.format){case"multipoint":case"point":case"polygon":case"polyline":case"polygon-freehand":case"polyline-freehand":case"extent":case"line":return e}}}function createGeometryRef(e){return{refValueType:"geometry",format:e,geometry:[]}}function debounce(t,i=DEFAULT_DEBOUNCE_DELAY){let n;return function(){const e=()=>{n=void 0,t.apply(this,arguments)};return clearTimeout(n),n=setTimeout(e,i),{now:()=>{n&&(clearTimeout(n),e())},cancel:()=>{n&&(clearTimeout(n),n=void 0)}}}}function throttle(i,n=DEFAULT_THROTTLE_DELAY){let r,o;return function(){var e=Date.now(),t=()=>{o=void 0,r=Date.now(),i.apply(this,arguments)};r&&e<r+n?(clearTimeout(o),o=setTimeout(t,n)):t()}}function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}function getElementProps(e,t){var{enabled:i,id:n,raiseEvent:r,setItemProperty:o,setProperty:s,setValue:a}=e,{format:c,manualEntry:u,showMinMaxLabels:f,showTickMarks:l,size:m,type:d,value:p,wrap:y}=t;return{...t,enabled:!!i,id:n,raiseEvent:r,setItemProperty:o,setProperty:s,setValue:a,format:c,manualEntry:u,showMinMaxLabels:f,showTickMarks:l,size:m,type:d,value:p,wrap:y,element:t,name:e.props.name,component:e}}function getItemId(e,t){if(e)for(const i in t)if(t[i]===e)return i}function useLocale(){var e=useContext(MuiPickersAdapterContext)?.utils?.locale?.code;if(!e)throw new Error("Failed to detect locale. Ensure there is a LocalizationProvider in the ancestry of the component that is using this hook.");return e}export{text,makeId,sortAndFilter,inspectItems,makeSafeClassName,makeUniqueId,getAccessibleDescriptionId,getDescriptionId,getErrorId,getInputId,getLabelId,addClass,removeClass,setClass,isSection,isAccordionSection,isCollapsibleSection,isFieldsetSection,isMutuallyExclusiveSection,isTabSection,isBoolean,isNumber,isString,isDataRef,isDateRangeRef,isDateTimeRef,isFilesRef,isScanRef,isGeometryRef,isItemsRef,isNumberRef,isSketchRef,sanitizeGeometryRef,createGeometryRef,debounce,throttle,isNumeric,getElementProps,getItemId,useLocale};
|
package/libs/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "5.
|
|
1
|
+
export declare const VERSION = "5.42.0+49";
|
package/libs/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const VERSION="5.
|
|
1
|
+
const VERSION="5.42.0+49";export{VERSION};
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertigis/workflow",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.42.0",
|
|
4
4
|
"author": "VertiGIS",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@date-fns/utc": "^1.2.0",
|
|
7
|
-
"@zxing/
|
|
7
|
+
"@zxing/browser": "0.1.5",
|
|
8
|
+
"@zxing/library": "0.21.3",
|
|
8
9
|
"autosuggest-highlight": "^3.3.4",
|
|
9
10
|
"bluebird": "3.5.5",
|
|
10
11
|
"clsx": "^1.2.1",
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
"@types/react": "18.2.46",
|
|
24
25
|
"@types/react-dom": "18.2.18",
|
|
25
26
|
"@vertigis/licensing": "5.1.1",
|
|
26
|
-
"@vertigis/react-ui": "16.6.
|
|
27
|
+
"@vertigis/react-ui": "16.6.2",
|
|
27
28
|
"cross-env": "7.0.3",
|
|
28
29
|
"jest": "^29.7.0",
|
|
29
30
|
"jest-environment-jsdom": "^29.7.0",
|
|
@@ -38,7 +39,7 @@
|
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {
|
|
40
41
|
"@arcgis/core": ">= 4.29.0 < 5.0.0",
|
|
41
|
-
"@vertigis/react-ui": ">= 16.
|
|
42
|
+
"@vertigis/react-ui": ">= 16.3.1-0 < 17.0.0-0",
|
|
42
43
|
"react": ">= 18 < 19",
|
|
43
44
|
"react-dom": ">= 18 < 19"
|
|
44
45
|
},
|