@oneblink/apps-react 8.8.0 → 8.9.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/components/ArcGISWebMap.d.ts +6 -3
  2. package/dist/components/ArcGISWebMap.js +54 -14
  3. package/dist/components/ArcGISWebMap.js.map +1 -1
  4. package/dist/components/formStore/table/FormElementTableCell.js +13 -7
  5. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
  6. package/dist/components/renderer/attachments/DropdownMenu.d.ts +2 -1
  7. package/dist/components/renderer/attachments/DropdownMenu.js +2 -2
  8. package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
  9. package/dist/components/renderer/attachments/FileCard.d.ts +2 -1
  10. package/dist/components/renderer/attachments/FileCard.js +1 -1
  11. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  12. package/dist/form-elements/FormElementArcGISWebMap.d.ts +3 -1
  13. package/dist/form-elements/FormElementArcGISWebMap.js +129 -6
  14. package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
  15. package/dist/form-elements/FormElementFile.d.ts +2 -1
  16. package/dist/form-elements/FormElementFile.js +9 -4
  17. package/dist/form-elements/FormElementFile.js.map +1 -1
  18. package/dist/services/attachments.d.ts +1 -1
  19. package/dist/services/attachments.js.map +1 -1
  20. package/dist/services/checkIfAttachmentsExist.js +13 -0
  21. package/dist/services/checkIfAttachmentsExist.js.map +1 -1
  22. package/dist/services/form-validation/extensions.d.ts +0 -3
  23. package/dist/services/form-validation/extensions.js +1 -7
  24. package/dist/services/form-validation/extensions.js.map +1 -1
  25. package/dist/services/form-validation/validateSubmission.js +21 -5
  26. package/dist/services/form-validation/validateSubmission.js.map +1 -1
  27. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { FormTypes } from '@oneblink/types';
2
+ import { ArcGISTypes, FormTypes } from '@oneblink/types';
3
3
  import { ArcGISWebMapElementValue } from '@oneblink/types/typescript/arcgis';
4
4
  import { FormElementValueChangeHandler } from '../types/form';
5
5
  import '../styles/arcgis-external.css';
@@ -8,9 +8,12 @@ type Props = {
8
8
  id: string;
9
9
  value: ArcGISWebMapElementValue | undefined;
10
10
  onChange: FormElementValueChangeHandler<ArcGISWebMapElementValue>;
11
+ automatedSnapshotFileName: string;
11
12
  'aria-describedby'?: string;
12
- setIsDirty: () => void;
13
+ takeScreenShotRef: React.MutableRefObject<((view?: ArcGISTypes.ArcGISWebMapElementValue['view']) => Promise<{
14
+ dataUrl: string;
15
+ }>) | undefined>;
13
16
  };
14
- declare function FormElementArcGISWebMap({ element, id, value, onChange, setIsDirty, ...props }: Props): React.JSX.Element;
17
+ declare function FormElementArcGISWebMap({ element, id, value, onChange, takeScreenShotRef, automatedSnapshotFileName, ...props }: Props): React.JSX.Element;
15
18
  declare const _default: React.MemoExoticComponent<typeof FormElementArcGISWebMap>;
16
19
  export default _default;
@@ -42,7 +42,7 @@ function DrawingOptionsList({ options, sketchTool, onClose, sketchToolType, setS
42
42
  setSelectedGraphicAttributes({ value, label, description });
43
43
  } }, label))))));
44
44
  }
45
- function FormElementArcGISWebMap({ element, id, value, onChange, setIsDirty, ...props }) {
45
+ function FormElementArcGISWebMap({ element, id, value, onChange, takeScreenShotRef, automatedSnapshotFileName, ...props }) {
46
46
  var _a, _b;
47
47
  const ref = React.useRef(null);
48
48
  const layerPanelRef = React.useRef();
@@ -62,14 +62,18 @@ function FormElementArcGISWebMap({ element, id, value, onChange, setIsDirty, ...
62
62
  var _a;
63
63
  const updatedGraphics = (_a = drawingLayerRef.current) === null || _a === void 0 ? void 0 : _a.graphics.toArray().map((graphic) => graphic.toJSON());
64
64
  onChange(element, {
65
- value: {
66
- ...(value || {}),
67
- drawingLayer: updatedGraphics,
68
- userInput: updatedGraphics,
65
+ value: (existingValue) => {
66
+ var _a;
67
+ return ({
68
+ ...(existingValue || {}),
69
+ drawingLayer: updatedGraphics,
70
+ userInput: updatedGraphics,
71
+ // Remove automated snapshot images when drawing again
72
+ snapshotImages: (_a = existingValue === null || existingValue === void 0 ? void 0 : existingValue.snapshotImages) === null || _a === void 0 ? void 0 : _a.filter((snapshotImage) => snapshotImage.fileName !== automatedSnapshotFileName),
73
+ });
69
74
  },
70
75
  });
71
- setIsDirty();
72
- }, [element, onChange, setIsDirty, value]);
76
+ }, [automatedSnapshotFileName, element, onChange]);
73
77
  const updateMapViewSubmissionValue = React.useCallback(() => {
74
78
  var _a, _b, _c;
75
79
  const zoom = (_a = mapViewRef.current) === null || _a === void 0 ? void 0 : _a.zoom;
@@ -77,17 +81,17 @@ function FormElementArcGISWebMap({ element, id, value, onChange, setIsDirty, ...
77
81
  const longitude = (_c = mapViewRef.current) === null || _c === void 0 ? void 0 : _c.center.longitude;
78
82
  if (zoom && latitude && longitude) {
79
83
  onChange(element, {
80
- value: {
81
- ...(value || {}),
84
+ value: (existingValue) => ({
85
+ ...(existingValue || {}),
82
86
  view: {
83
87
  zoom,
84
88
  latitude,
85
89
  longitude,
86
90
  },
87
- },
91
+ }),
88
92
  });
89
93
  }
90
- }, [element, onChange, value]);
94
+ }, [element, onChange]);
91
95
  const getGeometryPoints = (geom, spatialRef) => {
92
96
  if (geom.type === 'polygon') {
93
97
  const polygon = geom;
@@ -337,7 +341,7 @@ function FormElementArcGISWebMap({ element, id, value, onChange, setIsDirty, ...
337
341
  }
338
342
  }
339
343
  }
340
- // add the web map's drawing layers back
344
+ // add the web map's drawing and measurement layers back
341
345
  const drawingLayer = drawingLayerRef.current;
342
346
  if ((value === null || value === void 0 ? void 0 : value.drawingLayer) && drawingLayer) {
343
347
  drawingLayer.removeAll();
@@ -345,6 +349,10 @@ function FormElementArcGISWebMap({ element, id, value, onChange, setIsDirty, ...
345
349
  map.layers.add(drawingLayer);
346
350
  map.layers.reorder(drawingLayer, map.layers.length - 1);
347
351
  }
352
+ if (measurementLayerRef.current) {
353
+ map.layers.add(measurementLayerRef.current);
354
+ map.layers.reorder(measurementLayerRef.current, map.layers.length - 1);
355
+ }
348
356
  if (value === null || value === void 0 ? void 0 : value.view) {
349
357
  view.zoom = value.view.zoom;
350
358
  view.center = new Point({
@@ -472,6 +480,37 @@ function FormElementArcGISWebMap({ element, id, value, onChange, setIsDirty, ...
472
480
  // once the view has loaded
473
481
  view.when(() => {
474
482
  mapViewRef.current = view;
483
+ takeScreenShotRef.current = async (viewToScreenShot) => {
484
+ if (viewToScreenShot) {
485
+ await view.goTo({
486
+ center: [
487
+ viewToScreenShot.longitude,
488
+ viewToScreenShot.latitude,
489
+ ],
490
+ zoom: viewToScreenShot.zoom,
491
+ }, {
492
+ animate: true,
493
+ });
494
+ console.log('waiting for view to render visible');
495
+ await new Promise((resolve) => {
496
+ if (!view.updating) {
497
+ resolve(undefined);
498
+ }
499
+ else {
500
+ const handle = view.watch('updating', (updating) => {
501
+ if (!updating) {
502
+ handle.remove();
503
+ resolve(undefined);
504
+ }
505
+ });
506
+ }
507
+ });
508
+ }
509
+ const screenshot = await view.takeScreenshot();
510
+ return {
511
+ dataUrl: screenshot.dataUrl,
512
+ };
513
+ };
475
514
  setIsLoading(false);
476
515
  });
477
516
  }
@@ -485,7 +524,7 @@ function FormElementArcGISWebMap({ element, id, value, onChange, setIsDirty, ...
485
524
  setIsLoading(true);
486
525
  loadMap();
487
526
  }
488
- }, [drawingOptionsContainerId, element, isLoading, value]);
527
+ }, [drawingOptionsContainerId, element, isLoading, takeScreenShotRef, value]);
489
528
  React.useEffect(() => {
490
529
  if (!isLoading) {
491
530
  if (isPageVisible) {
@@ -514,7 +553,8 @@ function FormElementArcGISWebMap({ element, id, value, onChange, setIsDirty, ...
514
553
  React.createElement("p", null, loadError.message))));
515
554
  }
516
555
  return (React.createElement(React.Fragment, null,
517
- isLoading && React.createElement(OnLoading, null),
556
+ isLoading && (React.createElement("div", { className: "figure-content-absolute-center" },
557
+ React.createElement(OnLoading, { small: true }))),
518
558
  React.createElement("div", { className: "arcgis-web-map", ref: ref, id: id, "aria-describedby": props['aria-describedby'] }),
519
559
  React.createElement("div", { id: drawingOptionsContainerId }, !!activeSketchToolMenu && sketchToolRef.current && (React.createElement(DrawingOptionsList, { options: ((_b = (_a = element.allowedDrawingTools) === null || _a === void 0 ? void 0 : _a.find((tool) => tool.type === activeSketchToolMenu)) === null || _b === void 0 ? void 0 : _b.graphicAttributeOptions) || [], onClose: () => setActiveSketchToolMenu(undefined), setSelectedGraphicAttributes: (opt) => {
520
560
  setSelectedGraphicAttributes(opt);
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGISWebMap.js","sourceRoot":"","sources":["../../src/components/ArcGISWebMap.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FormTypes } from '@oneblink/types'\nimport MapView from '@arcgis/core/views/MapView'\nimport WebMap from '@arcgis/core/WebMap'\nimport Home from '@arcgis/core/widgets/Home'\nimport Search from '@arcgis/core/widgets/Search'\nimport Zoom from '@arcgis/core/widgets/Zoom'\nimport LayerList from '@arcgis/core/widgets/LayerList'\nimport Expand from '@arcgis/core/widgets/Expand'\nimport BaseMapGallery from '@arcgis/core/widgets/BasemapGallery'\nimport Sketch from '@arcgis/core/widgets/Sketch'\nimport GraphicsLayer from '@arcgis/core/layers/GraphicsLayer'\nimport Graphic from '@arcgis/core/Graphic'\nimport Popup from '@arcgis/core/widgets/Popup'\nimport {\n Point,\n Polygon,\n SpatialReference,\n Polyline,\n} from '@arcgis/core/geometry'\nimport TextSymbol from '@arcgis/core/symbols/TextSymbol'\nimport * as geometryEngine from '@arcgis/core/geometry/geometryEngine'\nimport { Box, Divider, IconButton } from '@mui/material'\nimport throttle from 'lodash.throttle'\nimport { localisationService } from '@oneblink/apps'\nimport { v4 as uuid } from 'uuid'\n\nimport OnLoading from '../components/renderer/OnLoading'\nimport MaterialIcon from './MaterialIcon'\n\nimport useIsPageVisible from '../hooks/useIsPageVisible'\nimport { ArcGISWebMapElementValue } from '@oneblink/types/typescript/arcgis'\nimport { FormElementValueChangeHandler } from '../types/form'\nimport '../styles/arcgis-external.css'\n\ntype Props = {\n element: FormTypes.ArcGISWebMapElement\n id: string\n value: ArcGISWebMapElementValue | undefined\n onChange: FormElementValueChangeHandler<ArcGISWebMapElementValue>\n 'aria-describedby'?: string\n setIsDirty: () => void\n}\n\ntype SketchCreateTool = Parameters<Sketch['create']>[0]\n\nfunction DrawingOptionsList({\n options,\n sketchTool,\n onClose,\n sketchToolType,\n setSelectedGraphicAttributes,\n}: {\n options: { id: string; label: string; value: string; description?: string }[]\n onClose: () => void\n sketchTool: Sketch\n sketchToolType: SketchCreateTool\n setSelectedGraphicAttributes: (opt: {\n label: string\n value: string\n description?: string\n }) => void\n}) {\n return (\n <div className=\"esri-widget\">\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <b style={{ padding: '0.5rem' }}>Select an option</b>\n <IconButton\n onClick={(e) => {\n e.stopPropagation()\n onClose()\n }}\n size=\"small\"\n data-cypress=\"copy-to-clip-board-button\"\n >\n <MaterialIcon fontSize=\"small\">close</MaterialIcon>\n </IconButton>\n </Box>\n <Divider sx={{ backgroundColor: 'unset', margin: '0px 8px' }} />\n <Box sx={{ maxHeight: '200px', overflowY: 'auto' }}>\n {options?.map(({ id, value, label, description }) => (\n <div\n key={id}\n className=\"ob-list__item is-clickable\"\n style={{ alignItems: 'center' }}\n onClick={() => {\n onClose()\n sketchTool?.create(sketchToolType)\n setSelectedGraphicAttributes({ value, label, description })\n }}\n >\n {label}\n </div>\n ))}\n </Box>\n </div>\n )\n}\n\nfunction FormElementArcGISWebMap({\n element,\n id,\n value,\n onChange,\n setIsDirty,\n ...props\n}: Props) {\n const ref = React.useRef<HTMLDivElement | null>(null)\n const layerPanelRef = React.useRef<Expand>()\n const mapGalleryPanelRef = React.useRef<Expand>()\n const sketchToolRef = React.useRef<Sketch>()\n const drawingLayerRef = React.useRef<GraphicsLayer>()\n const selectedGraphicForUpdate = React.useRef<string>()\n const mapViewRef = React.useRef<MapView>()\n const measurementLayerRef = React.useRef<GraphicsLayer>()\n\n const [loadError, setLoadError] = React.useState<Error>()\n const [isLoading, setIsLoading] = React.useState<boolean>(false)\n const isPageVisible = useIsPageVisible()\n const [selectedGraphicAttributes, setSelectedGraphicAttributes] =\n React.useState<{\n value: string\n label: string\n description?: string\n }>()\n // only used when an allowed drawing tool also has a list of graphic attribute options to display to the user\n const [activeSketchToolMenu, setActiveSketchToolMenu] =\n React.useState<SketchCreateTool>()\n\n const updateDrawingInputSubmissionValue = React.useCallback(() => {\n const updatedGraphics = drawingLayerRef.current?.graphics\n .toArray()\n .map((graphic) => graphic.toJSON())\n\n onChange(element, {\n value: {\n ...(value || {}),\n drawingLayer: updatedGraphics,\n userInput: updatedGraphics,\n },\n })\n\n setIsDirty()\n }, [element, onChange, setIsDirty, value])\n\n const updateMapViewSubmissionValue = React.useCallback(() => {\n const zoom = mapViewRef.current?.zoom\n const latitude = mapViewRef.current?.center.latitude\n const longitude = mapViewRef.current?.center.longitude\n if (zoom && latitude && longitude) {\n onChange(element, {\n value: {\n ...(value || {}),\n view: {\n zoom,\n latitude,\n longitude,\n },\n },\n })\n }\n }, [element, onChange, value])\n\n const getGeometryPoints = (\n geom: __esri.Geometry,\n spatialRef: SpatialReference,\n ) => {\n if (geom.type === 'polygon') {\n const polygon = geom as Polygon\n return polygon.rings[0].map(\n (ring) =>\n new Point({\n x: ring[0],\n y: ring[1],\n spatialReference: spatialRef,\n }),\n )\n } else if (geom.type === 'polyline') {\n const polyline = geom as Polyline\n return polyline.paths[0].map(\n (path) =>\n new Point({\n x: path[0],\n y: path[1],\n spatialReference: spatialRef,\n }),\n )\n }\n }\n\n const addMeasurementLabels = React.useCallback(\n (graphics: __esri.Graphic[]) => {\n if (!element.measurementDimensionsEnabled) return\n const spatialRef = new SpatialReference({ wkid: 3857 })\n const measurementLayer = measurementLayerRef.current\n const mapView = mapViewRef.current\n if (!measurementLayer || !mapView) return\n measurementLayer.removeAll()\n\n for (const graphic of graphics) {\n const geom = graphic.geometry\n if (!geom || (geom.type !== 'polygon' && geom.type !== 'polyline'))\n continue\n\n const points = getGeometryPoints(geom, spatialRef)\n if (!points) continue\n\n const { distanceUnit, distanceUnitShortName } =\n localisationService.getDistanceUnits()\n if (distanceUnit !== 'meters' && distanceUnit !== 'feet') {\n console.warn(\n 'Unsupported distance unit provided in tenant configuration: ',\n distanceUnit,\n )\n return\n }\n const graphics: Graphic[] = []\n\n for (let i = 1; i < points.length; i++) {\n const x1 = points[i].x\n const x2 = points[i - 1].x\n const y1 = points[i].y\n const y2 = points[i - 1].y\n\n const midpoint = new Point({\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2,\n spatialReference: spatialRef,\n })\n\n // Angle of the measurement label - this will be rotated to be parallel with the polygon or polyline edge\n const dx = x2 - x1\n const dy = y2 - y1\n const radians = Math.atan2(dy, dx)\n let angle = radians * (-180 / Math.PI)\n if (angle > 90 || angle < -90) {\n angle += 180\n }\n\n // offset of the measurement label against the edge of the polygon/polyline it's measuring\n const pixelOffset = 10\n const normalAngle = radians + Math.PI / 2\n const offsetScreenX = pixelOffset * Math.cos(normalAngle)\n const offsetScreenY = pixelOffset * Math.sin(normalAngle)\n\n const screenPoint = mapView.toScreen(midpoint)\n screenPoint.x += offsetScreenX\n screenPoint.y -= offsetScreenY\n const offsetMapPoint = mapView.toMap(screenPoint)\n\n const polyline = new Polyline({\n paths: [\n [\n [points[i].longitude, points[i].latitude],\n [points[i - 1].longitude, points[i - 1].latitude],\n ],\n ],\n spatialReference: { wkid: 4326 },\n })\n const distance = geometryEngine.geodesicLength(polyline, distanceUnit)\n graphics.push(\n new Graphic({\n geometry: offsetMapPoint,\n symbol: new TextSymbol({\n text: distance.toFixed(0) + distanceUnitShortName,\n color: 'black',\n haloColor: 'white',\n haloSize: 1,\n angle,\n }),\n }),\n )\n }\n\n measurementLayer.addMany(graphics)\n mapViewRef.current?.map.reorder(\n measurementLayer,\n mapViewRef.current?.map.layers.length,\n )\n }\n },\n [element],\n )\n\n const clearMeasurementLabels = React.useCallback(() => {\n if (measurementLayerRef.current) {\n measurementLayerRef.current.removeAll()\n }\n }, [])\n\n React.useEffect(() => {\n if (element.readOnly) return\n // event listeners for drawing tool creates/updates/deletes\n // these need to be removed and recreated when the submission value changes\n // to ensure they always have access to the latest submission value\n const createListener = sketchToolRef.current?.on(\n 'create',\n throttle((sketchEvent: __esri.SketchCreateEvent) => {\n if (sketchEvent.state === 'active') {\n addMeasurementLabels([sketchEvent.graphic])\n }\n if (sketchEvent.state === 'complete') {\n if (selectedGraphicAttributes) {\n sketchEvent.graphic.attributes = {\n name: selectedGraphicAttributes.value,\n label: selectedGraphicAttributes.label,\n description: selectedGraphicAttributes.description,\n }\n setSelectedGraphicAttributes(undefined)\n }\n updateDrawingInputSubmissionValue()\n clearMeasurementLabels()\n }\n if (sketchEvent.state === 'cancel') {\n setSelectedGraphicAttributes(undefined)\n clearMeasurementLabels()\n }\n }, 100),\n )\n\n const updateListener = sketchToolRef.current?.on(\n 'update',\n throttle((sketchEvent: __esri.SketchUpdateEvent) => {\n if (sketchEvent.state === 'active') {\n addMeasurementLabels(sketchEvent.graphics)\n }\n if (sketchEvent.state === 'complete') {\n // only update the submission value if the graphic's geometry was actually changed\n if (\n JSON.stringify(sketchEvent.graphics[0].geometry.toJSON()) !==\n selectedGraphicForUpdate.current\n ) {\n updateDrawingInputSubmissionValue()\n }\n selectedGraphicForUpdate.current = undefined\n clearMeasurementLabels()\n }\n if (sketchEvent.state === 'start') {\n selectedGraphicForUpdate.current = JSON.stringify(\n sketchEvent.graphics[0].geometry.clone().toJSON(),\n )\n addMeasurementLabels(sketchEvent.graphics)\n }\n }, 100),\n )\n\n const deleteListener = sketchToolRef.current?.on('delete', () => {\n mapViewRef.current?.closePopup()\n updateDrawingInputSubmissionValue()\n clearMeasurementLabels()\n })\n\n const mapViewChangeListener = mapViewRef.current?.watch(\n 'stationary',\n () => {\n const mapView = mapViewRef.current\n if (mapView && mapView.stationary) {\n const hasViewChanged =\n mapView.zoom !== value?.view?.zoom ||\n mapView.center.longitude !== value?.view?.longitude ||\n mapView.center.latitude !== value?.view?.latitude\n if (hasViewChanged) {\n updateMapViewSubmissionValue()\n }\n }\n },\n )\n\n const sketchToolListener = sketchToolRef.current?.viewModel.watch(\n 'activeTool',\n () => {\n if (selectedGraphicAttributes) {\n return\n }\n const activeTool = sketchToolRef.current?.activeTool\n const hasGraphicAttributeOptions = !!element.allowedDrawingTools?.find(\n (tool) => tool.type === activeTool,\n )?.graphicAttributeOptions?.length\n\n if (activeTool) {\n if (\n hasGraphicAttributeOptions &&\n (activeTool === 'point' ||\n activeTool === 'polygon' ||\n activeTool === 'circle' ||\n activeTool === 'rectangle' ||\n activeTool === 'polyline')\n ) {\n // the sketch.create() fn only allows active tools of the above 5 types\n // hence we must check above to keep the types happy further down the line\n sketchToolRef.current?.cancel()\n setActiveSketchToolMenu(activeTool)\n } else {\n setActiveSketchToolMenu(undefined)\n }\n }\n },\n )\n\n mapViewRef.current?.on('click', (event) => {\n mapViewRef.current?.hitTest(event).then((response) => {\n // the \"hit test\" will typically yield the graphic we want to display the popup for,\n // and an ArcGIS built-in graphic which highlights the selected graphic.\n // By filtering for the graphic with the \"label\" attribute, we're able to reliably\n // get the graphic we want to display the popup for.\n const result = response.results\n .filter((r) => r.type === 'graphic')\n .find((r) => !!r.graphic.attributes?.label)\n\n if (result) {\n mapViewRef.current?.openPopup({\n title: result.graphic.attributes.label,\n content: result.graphic.attributes.description,\n })\n }\n })\n })\n\n return () => {\n createListener?.remove()\n updateListener?.remove()\n deleteListener?.remove()\n mapViewChangeListener?.remove()\n sketchToolListener?.remove()\n }\n }, [\n isLoading,\n value,\n updateDrawingInputSubmissionValue,\n updateMapViewSubmissionValue,\n element,\n selectedGraphicAttributes,\n addMeasurementLabels,\n clearMeasurementLabels,\n ])\n\n const stringifedLayersRef = React.useRef<string>('')\n\n const onSubmissionValueChange = React.useCallback(() => {\n const view = mapViewRef.current\n const map = mapViewRef.current?.map\n if (!view || !map) return\n\n // if the layers have changed or if the map has no layers, remove all layers and repaint\n const currentStringifedLayers = JSON.stringify(value?.layers)\n if (\n stringifedLayersRef.current !== currentStringifedLayers ||\n !map.layers.length\n ) {\n stringifedLayersRef.current = currentStringifedLayers\n // remove all layers and repaint\n map.layers.removeAll()\n\n if (value?.layers) {\n for (const layer of value.layers) {\n const newLayer = new GraphicsLayer({\n title: layer.title as string,\n id: layer.id,\n })\n newLayer.addMany(layer.graphics.map((g) => Graphic.fromJSON(g)))\n newLayer.visible =\n typeof layer.visible === 'boolean' ? layer.visible : true\n map.layers.add(newLayer)\n }\n }\n }\n\n // add the web map's drawing layers back\n const drawingLayer = drawingLayerRef.current\n if (value?.drawingLayer && drawingLayer) {\n drawingLayer.removeAll()\n drawingLayer.addMany(value.drawingLayer.map((g) => Graphic.fromJSON(g)))\n map.layers.add(drawingLayer)\n map.layers.reorder(drawingLayer, map.layers.length - 1)\n }\n if (value?.view) {\n view.zoom = value.view.zoom\n view.center = new Point({\n latitude: value.view.latitude,\n longitude: value.view.longitude,\n })\n }\n }, [value])\n\n React.useEffect(() => {\n if (!isLoading && mapViewRef.current) {\n onSubmissionValueChange()\n }\n // only run the above when the submission value changes or the map finishes loading\n }, [onSubmissionValueChange, isLoading])\n\n const drawingOptionsContainerId = `OneBlinkDrawingOptionsSelector-${element.id}`\n\n React.useEffect(() => {\n const loadMap = async () => {\n try {\n const map = new WebMap({\n portalItem: {\n id: element.webMapId,\n },\n basemap: element.basemapId || 'streets',\n })\n await map.load()\n\n const view = new MapView({\n map: map,\n container: ref.current || undefined,\n popup: new Popup({\n dockEnabled: true,\n dockOptions: {\n buttonEnabled: false,\n breakpoint: false,\n position: 'bottom-left',\n },\n }),\n })\n\n // remove default widgets\n const components = view.ui.getComponents()\n for (const component of components) {\n view.ui.remove(component)\n }\n\n if (element.addressSearchWidgetEnabled) {\n view.ui.add(\n new Search({\n view,\n }),\n 'top-left',\n )\n }\n\n if (element.homeWidgetEnabled) {\n view.ui.add(\n new Home({\n view,\n }),\n 'top-left',\n )\n }\n\n view.ui.add(\n new Zoom({\n view,\n }),\n 'bottom-right',\n )\n\n const layerList = new LayerList({\n view,\n })\n\n layerPanelRef.current = new Expand({\n expandIcon: 'layers',\n view,\n content: layerList,\n expanded: element.showLayerPanel,\n mode: 'floating',\n visible: false,\n })\n\n view.ui.add(layerPanelRef.current, 'top-right')\n\n const baseMapGallery = new BaseMapGallery({ view })\n\n mapGalleryPanelRef.current = new Expand({\n expandIcon: 'basemap',\n view,\n content: baseMapGallery,\n mode: 'floating',\n visible: false,\n })\n\n view.ui.add(mapGalleryPanelRef.current, 'top-left')\n\n if (!element.readOnly && element.allowedDrawingTools?.length) {\n const drawingLayer = new GraphicsLayer({\n id: uuid(),\n title: 'Drawing',\n })\n drawingLayerRef.current = drawingLayer\n map.layers.add(drawingLayer)\n\n // Add measurement layer above drawing layer\n if (element.measurementDimensionsEnabled) {\n const measurementLayer = new GraphicsLayer({\n id: uuid(),\n title: 'Measurements',\n listMode: 'hide',\n })\n measurementLayerRef.current = measurementLayer\n map.layers.add(measurementLayer)\n }\n\n const sketch = new Sketch({\n view,\n layer: drawingLayer,\n creationMode: 'single',\n layout: 'vertical',\n availableCreateTools: [\n 'point',\n 'polyline',\n 'polygon',\n 'rectangle',\n 'circle',\n ].filter((createTool) =>\n element.allowedDrawingTools?.find(\n (tool) => tool.type === createTool,\n ),\n ),\n // hiding the below by default\n visibleElements: {\n duplicateButton: false,\n settingsMenu: false,\n undoRedoMenu: false,\n selectionTools: {\n 'lasso-selection': false,\n 'rectangle-selection': false,\n },\n },\n })\n sketchToolRef.current = sketch\n view.ui.add(sketch, 'bottom-right')\n view.ui.add(drawingOptionsContainerId, 'bottom-right')\n }\n\n // once the view has loaded\n view.when(() => {\n mapViewRef.current = view\n setIsLoading(false)\n })\n } catch (e) {\n console.warn('Error while trying to load arcgis web map ', e)\n setLoadError(e as Error)\n setIsLoading(false)\n }\n }\n\n if (!mapViewRef.current && !isLoading) {\n setIsLoading(true)\n loadMap()\n }\n }, [drawingOptionsContainerId, element, isLoading, value])\n\n React.useEffect(() => {\n if (!isLoading) {\n if (isPageVisible) {\n if (layerPanelRef.current) {\n layerPanelRef.current.visible = true\n }\n if (mapGalleryPanelRef.current) {\n mapGalleryPanelRef.current.visible = true\n }\n } else {\n if (layerPanelRef.current) {\n layerPanelRef.current.visible = false\n }\n if (mapGalleryPanelRef.current) {\n mapGalleryPanelRef.current.visible = false\n }\n }\n }\n }, [isPageVisible, isLoading])\n\n if (loadError) {\n return (\n <figure className=\"ob-figure\">\n <div className=\"figure-content has-text-centered\">\n <MaterialIcon className=\"icon-large has-margin-bottom-6 has-text-warning\">\n error\n </MaterialIcon>\n <h4 className=\"title is-4\">We were unable to display your web map</h4>\n <p>{loadError.message}</p>\n </div>\n </figure>\n )\n }\n\n return (\n <>\n {isLoading && <OnLoading />}\n <div\n className=\"arcgis-web-map\"\n ref={ref}\n id={id}\n aria-describedby={props['aria-describedby']}\n />\n <div id={drawingOptionsContainerId}>\n {!!activeSketchToolMenu && sketchToolRef.current && (\n <DrawingOptionsList\n options={\n element.allowedDrawingTools?.find(\n (tool) => tool.type === activeSketchToolMenu,\n )?.graphicAttributeOptions || []\n }\n onClose={() => setActiveSketchToolMenu(undefined)}\n setSelectedGraphicAttributes={(opt) => {\n setSelectedGraphicAttributes(opt)\n }}\n sketchToolType={activeSketchToolMenu}\n sketchTool={sketchToolRef.current}\n />\n )}\n </div>\n </>\n )\n}\n\nexport default React.memo(FormElementArcGISWebMap)\n"]}
1
+ {"version":3,"file":"ArcGISWebMap.js","sourceRoot":"","sources":["../../src/components/ArcGISWebMap.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { ArcGISTypes, FormTypes } from '@oneblink/types'\nimport MapView from '@arcgis/core/views/MapView'\nimport WebMap from '@arcgis/core/WebMap'\nimport Home from '@arcgis/core/widgets/Home'\nimport Search from '@arcgis/core/widgets/Search'\nimport Zoom from '@arcgis/core/widgets/Zoom'\nimport LayerList from '@arcgis/core/widgets/LayerList'\nimport Expand from '@arcgis/core/widgets/Expand'\nimport BaseMapGallery from '@arcgis/core/widgets/BasemapGallery'\nimport Sketch from '@arcgis/core/widgets/Sketch'\nimport GraphicsLayer from '@arcgis/core/layers/GraphicsLayer'\nimport Graphic from '@arcgis/core/Graphic'\nimport Popup from '@arcgis/core/widgets/Popup'\nimport {\n Point,\n Polygon,\n SpatialReference,\n Polyline,\n} from '@arcgis/core/geometry'\nimport TextSymbol from '@arcgis/core/symbols/TextSymbol'\nimport * as geometryEngine from '@arcgis/core/geometry/geometryEngine'\nimport { Box, Divider, IconButton } from '@mui/material'\nimport throttle from 'lodash.throttle'\nimport { localisationService } from '@oneblink/apps'\nimport { v4 as uuid } from 'uuid'\n\nimport OnLoading from '../components/renderer/OnLoading'\nimport MaterialIcon from './MaterialIcon'\n\nimport useIsPageVisible from '../hooks/useIsPageVisible'\nimport { ArcGISWebMapElementValue } from '@oneblink/types/typescript/arcgis'\nimport { FormElementValueChangeHandler } from '../types/form'\nimport '../styles/arcgis-external.css'\n\ntype Props = {\n element: FormTypes.ArcGISWebMapElement\n id: string\n value: ArcGISWebMapElementValue | undefined\n onChange: FormElementValueChangeHandler<ArcGISWebMapElementValue>\n automatedSnapshotFileName: string\n 'aria-describedby'?: string\n takeScreenShotRef: React.MutableRefObject<\n | ((view?: ArcGISTypes.ArcGISWebMapElementValue['view']) => Promise<{\n dataUrl: string\n }>)\n | undefined\n >\n}\n\ntype SketchCreateTool = Parameters<Sketch['create']>[0]\n\nfunction DrawingOptionsList({\n options,\n sketchTool,\n onClose,\n sketchToolType,\n setSelectedGraphicAttributes,\n}: {\n options: { id: string; label: string; value: string; description?: string }[]\n onClose: () => void\n sketchTool: Sketch\n sketchToolType: SketchCreateTool\n setSelectedGraphicAttributes: (opt: {\n label: string\n value: string\n description?: string\n }) => void\n}) {\n return (\n <div className=\"esri-widget\">\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <b style={{ padding: '0.5rem' }}>Select an option</b>\n <IconButton\n onClick={(e) => {\n e.stopPropagation()\n onClose()\n }}\n size=\"small\"\n data-cypress=\"copy-to-clip-board-button\"\n >\n <MaterialIcon fontSize=\"small\">close</MaterialIcon>\n </IconButton>\n </Box>\n <Divider sx={{ backgroundColor: 'unset', margin: '0px 8px' }} />\n <Box sx={{ maxHeight: '200px', overflowY: 'auto' }}>\n {options?.map(({ id, value, label, description }) => (\n <div\n key={id}\n className=\"ob-list__item is-clickable\"\n style={{ alignItems: 'center' }}\n onClick={() => {\n onClose()\n sketchTool?.create(sketchToolType)\n setSelectedGraphicAttributes({ value, label, description })\n }}\n >\n {label}\n </div>\n ))}\n </Box>\n </div>\n )\n}\n\nfunction FormElementArcGISWebMap({\n element,\n id,\n value,\n onChange,\n takeScreenShotRef,\n automatedSnapshotFileName,\n ...props\n}: Props) {\n const ref = React.useRef<HTMLDivElement | null>(null)\n const layerPanelRef = React.useRef<Expand>()\n const mapGalleryPanelRef = React.useRef<Expand>()\n const sketchToolRef = React.useRef<Sketch>()\n const drawingLayerRef = React.useRef<GraphicsLayer>()\n const selectedGraphicForUpdate = React.useRef<string>()\n const mapViewRef = React.useRef<MapView>()\n const measurementLayerRef = React.useRef<GraphicsLayer>()\n\n const [loadError, setLoadError] = React.useState<Error>()\n const [isLoading, setIsLoading] = React.useState<boolean>(false)\n const isPageVisible = useIsPageVisible()\n const [selectedGraphicAttributes, setSelectedGraphicAttributes] =\n React.useState<{\n value: string\n label: string\n description?: string\n }>()\n // only used when an allowed drawing tool also has a list of graphic attribute options to display to the user\n const [activeSketchToolMenu, setActiveSketchToolMenu] =\n React.useState<SketchCreateTool>()\n\n const updateDrawingInputSubmissionValue = React.useCallback(() => {\n const updatedGraphics = drawingLayerRef.current?.graphics\n .toArray()\n .map((graphic) => graphic.toJSON())\n\n onChange(element, {\n value: (existingValue) => ({\n ...(existingValue || {}),\n drawingLayer: updatedGraphics,\n userInput: updatedGraphics,\n // Remove automated snapshot images when drawing again\n snapshotImages: existingValue?.snapshotImages?.filter(\n (snapshotImage) =>\n snapshotImage.fileName !== automatedSnapshotFileName,\n ),\n }),\n })\n }, [automatedSnapshotFileName, element, onChange])\n\n const updateMapViewSubmissionValue = React.useCallback(() => {\n const zoom = mapViewRef.current?.zoom\n const latitude = mapViewRef.current?.center.latitude\n const longitude = mapViewRef.current?.center.longitude\n if (zoom && latitude && longitude) {\n onChange(element, {\n value: (existingValue) => ({\n ...(existingValue || {}),\n view: {\n zoom,\n latitude,\n longitude,\n },\n }),\n })\n }\n }, [element, onChange])\n\n const getGeometryPoints = (\n geom: __esri.Geometry,\n spatialRef: SpatialReference,\n ) => {\n if (geom.type === 'polygon') {\n const polygon = geom as Polygon\n return polygon.rings[0].map(\n (ring) =>\n new Point({\n x: ring[0],\n y: ring[1],\n spatialReference: spatialRef,\n }),\n )\n } else if (geom.type === 'polyline') {\n const polyline = geom as Polyline\n return polyline.paths[0].map(\n (path) =>\n new Point({\n x: path[0],\n y: path[1],\n spatialReference: spatialRef,\n }),\n )\n }\n }\n\n const addMeasurementLabels = React.useCallback(\n (graphics: __esri.Graphic[]) => {\n if (!element.measurementDimensionsEnabled) return\n const spatialRef = new SpatialReference({ wkid: 3857 })\n const measurementLayer = measurementLayerRef.current\n const mapView = mapViewRef.current\n if (!measurementLayer || !mapView) return\n measurementLayer.removeAll()\n\n for (const graphic of graphics) {\n const geom = graphic.geometry\n if (!geom || (geom.type !== 'polygon' && geom.type !== 'polyline'))\n continue\n\n const points = getGeometryPoints(geom, spatialRef)\n if (!points) continue\n\n const { distanceUnit, distanceUnitShortName } =\n localisationService.getDistanceUnits()\n if (distanceUnit !== 'meters' && distanceUnit !== 'feet') {\n console.warn(\n 'Unsupported distance unit provided in tenant configuration: ',\n distanceUnit,\n )\n return\n }\n const graphics: Graphic[] = []\n\n for (let i = 1; i < points.length; i++) {\n const x1 = points[i].x\n const x2 = points[i - 1].x\n const y1 = points[i].y\n const y2 = points[i - 1].y\n\n const midpoint = new Point({\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2,\n spatialReference: spatialRef,\n })\n\n // Angle of the measurement label - this will be rotated to be parallel with the polygon or polyline edge\n const dx = x2 - x1\n const dy = y2 - y1\n const radians = Math.atan2(dy, dx)\n let angle = radians * (-180 / Math.PI)\n if (angle > 90 || angle < -90) {\n angle += 180\n }\n\n // offset of the measurement label against the edge of the polygon/polyline it's measuring\n const pixelOffset = 10\n const normalAngle = radians + Math.PI / 2\n const offsetScreenX = pixelOffset * Math.cos(normalAngle)\n const offsetScreenY = pixelOffset * Math.sin(normalAngle)\n\n const screenPoint = mapView.toScreen(midpoint)\n screenPoint.x += offsetScreenX\n screenPoint.y -= offsetScreenY\n const offsetMapPoint = mapView.toMap(screenPoint)\n\n const polyline = new Polyline({\n paths: [\n [\n [points[i].longitude, points[i].latitude],\n [points[i - 1].longitude, points[i - 1].latitude],\n ],\n ],\n spatialReference: { wkid: 4326 },\n })\n const distance = geometryEngine.geodesicLength(polyline, distanceUnit)\n graphics.push(\n new Graphic({\n geometry: offsetMapPoint,\n symbol: new TextSymbol({\n text: distance.toFixed(0) + distanceUnitShortName,\n color: 'black',\n haloColor: 'white',\n haloSize: 1,\n angle,\n }),\n }),\n )\n }\n\n measurementLayer.addMany(graphics)\n mapViewRef.current?.map.reorder(\n measurementLayer,\n mapViewRef.current?.map.layers.length,\n )\n }\n },\n [element],\n )\n\n const clearMeasurementLabels = React.useCallback(() => {\n if (measurementLayerRef.current) {\n measurementLayerRef.current.removeAll()\n }\n }, [])\n\n React.useEffect(() => {\n if (element.readOnly) return\n // event listeners for drawing tool creates/updates/deletes\n // these need to be removed and recreated when the submission value changes\n // to ensure they always have access to the latest submission value\n const createListener = sketchToolRef.current?.on(\n 'create',\n throttle((sketchEvent: __esri.SketchCreateEvent) => {\n if (sketchEvent.state === 'active') {\n addMeasurementLabels([sketchEvent.graphic])\n }\n if (sketchEvent.state === 'complete') {\n if (selectedGraphicAttributes) {\n sketchEvent.graphic.attributes = {\n name: selectedGraphicAttributes.value,\n label: selectedGraphicAttributes.label,\n description: selectedGraphicAttributes.description,\n }\n setSelectedGraphicAttributes(undefined)\n }\n updateDrawingInputSubmissionValue()\n clearMeasurementLabels()\n }\n if (sketchEvent.state === 'cancel') {\n setSelectedGraphicAttributes(undefined)\n clearMeasurementLabels()\n }\n }, 100),\n )\n\n const updateListener = sketchToolRef.current?.on(\n 'update',\n throttle((sketchEvent: __esri.SketchUpdateEvent) => {\n if (sketchEvent.state === 'active') {\n addMeasurementLabels(sketchEvent.graphics)\n }\n if (sketchEvent.state === 'complete') {\n // only update the submission value if the graphic's geometry was actually changed\n if (\n JSON.stringify(sketchEvent.graphics[0].geometry.toJSON()) !==\n selectedGraphicForUpdate.current\n ) {\n updateDrawingInputSubmissionValue()\n }\n selectedGraphicForUpdate.current = undefined\n clearMeasurementLabels()\n }\n if (sketchEvent.state === 'start') {\n selectedGraphicForUpdate.current = JSON.stringify(\n sketchEvent.graphics[0].geometry.clone().toJSON(),\n )\n addMeasurementLabels(sketchEvent.graphics)\n }\n }, 100),\n )\n\n const deleteListener = sketchToolRef.current?.on('delete', () => {\n mapViewRef.current?.closePopup()\n updateDrawingInputSubmissionValue()\n clearMeasurementLabels()\n })\n\n const mapViewChangeListener = mapViewRef.current?.watch(\n 'stationary',\n () => {\n const mapView = mapViewRef.current\n if (mapView && mapView.stationary) {\n const hasViewChanged =\n mapView.zoom !== value?.view?.zoom ||\n mapView.center.longitude !== value?.view?.longitude ||\n mapView.center.latitude !== value?.view?.latitude\n if (hasViewChanged) {\n updateMapViewSubmissionValue()\n }\n }\n },\n )\n\n const sketchToolListener = sketchToolRef.current?.viewModel.watch(\n 'activeTool',\n () => {\n if (selectedGraphicAttributes) {\n return\n }\n const activeTool = sketchToolRef.current?.activeTool\n const hasGraphicAttributeOptions = !!element.allowedDrawingTools?.find(\n (tool) => tool.type === activeTool,\n )?.graphicAttributeOptions?.length\n\n if (activeTool) {\n if (\n hasGraphicAttributeOptions &&\n (activeTool === 'point' ||\n activeTool === 'polygon' ||\n activeTool === 'circle' ||\n activeTool === 'rectangle' ||\n activeTool === 'polyline')\n ) {\n // the sketch.create() fn only allows active tools of the above 5 types\n // hence we must check above to keep the types happy further down the line\n sketchToolRef.current?.cancel()\n setActiveSketchToolMenu(activeTool)\n } else {\n setActiveSketchToolMenu(undefined)\n }\n }\n },\n )\n\n mapViewRef.current?.on('click', (event) => {\n mapViewRef.current?.hitTest(event).then((response) => {\n // the \"hit test\" will typically yield the graphic we want to display the popup for,\n // and an ArcGIS built-in graphic which highlights the selected graphic.\n // By filtering for the graphic with the \"label\" attribute, we're able to reliably\n // get the graphic we want to display the popup for.\n const result = response.results\n .filter((r) => r.type === 'graphic')\n .find((r) => !!r.graphic.attributes?.label)\n\n if (result) {\n mapViewRef.current?.openPopup({\n title: result.graphic.attributes.label,\n content: result.graphic.attributes.description,\n })\n }\n })\n })\n\n return () => {\n createListener?.remove()\n updateListener?.remove()\n deleteListener?.remove()\n mapViewChangeListener?.remove()\n sketchToolListener?.remove()\n }\n }, [\n isLoading,\n value,\n updateDrawingInputSubmissionValue,\n updateMapViewSubmissionValue,\n element,\n selectedGraphicAttributes,\n addMeasurementLabels,\n clearMeasurementLabels,\n ])\n\n const stringifedLayersRef = React.useRef<string>('')\n\n const onSubmissionValueChange = React.useCallback(() => {\n const view = mapViewRef.current\n const map = mapViewRef.current?.map\n if (!view || !map) return\n\n // if the layers have changed or if the map has no layers, remove all layers and repaint\n const currentStringifedLayers = JSON.stringify(value?.layers)\n if (\n stringifedLayersRef.current !== currentStringifedLayers ||\n !map.layers.length\n ) {\n stringifedLayersRef.current = currentStringifedLayers\n // remove all layers and repaint\n map.layers.removeAll()\n\n if (value?.layers) {\n for (const layer of value.layers) {\n const newLayer = new GraphicsLayer({\n title: layer.title as string,\n id: layer.id,\n })\n newLayer.addMany(layer.graphics.map((g) => Graphic.fromJSON(g)))\n newLayer.visible =\n typeof layer.visible === 'boolean' ? layer.visible : true\n map.layers.add(newLayer)\n }\n }\n }\n\n // add the web map's drawing and measurement layers back\n const drawingLayer = drawingLayerRef.current\n if (value?.drawingLayer && drawingLayer) {\n drawingLayer.removeAll()\n drawingLayer.addMany(value.drawingLayer.map((g) => Graphic.fromJSON(g)))\n map.layers.add(drawingLayer)\n map.layers.reorder(drawingLayer, map.layers.length - 1)\n }\n if (measurementLayerRef.current) {\n map.layers.add(measurementLayerRef.current)\n map.layers.reorder(measurementLayerRef.current, map.layers.length - 1)\n }\n if (value?.view) {\n view.zoom = value.view.zoom\n view.center = new Point({\n latitude: value.view.latitude,\n longitude: value.view.longitude,\n })\n }\n }, [value])\n\n React.useEffect(() => {\n if (!isLoading && mapViewRef.current) {\n onSubmissionValueChange()\n }\n // only run the above when the submission value changes or the map finishes loading\n }, [onSubmissionValueChange, isLoading])\n\n const drawingOptionsContainerId = `OneBlinkDrawingOptionsSelector-${element.id}`\n\n React.useEffect(() => {\n const loadMap = async () => {\n try {\n const map = new WebMap({\n portalItem: {\n id: element.webMapId,\n },\n basemap: element.basemapId || 'streets',\n })\n await map.load()\n\n const view = new MapView({\n map: map,\n container: ref.current || undefined,\n popup: new Popup({\n dockEnabled: true,\n dockOptions: {\n buttonEnabled: false,\n breakpoint: false,\n position: 'bottom-left',\n },\n }),\n })\n\n // remove default widgets\n const components = view.ui.getComponents()\n for (const component of components) {\n view.ui.remove(component)\n }\n\n if (element.addressSearchWidgetEnabled) {\n view.ui.add(\n new Search({\n view,\n }),\n 'top-left',\n )\n }\n\n if (element.homeWidgetEnabled) {\n view.ui.add(\n new Home({\n view,\n }),\n 'top-left',\n )\n }\n\n view.ui.add(\n new Zoom({\n view,\n }),\n 'bottom-right',\n )\n\n const layerList = new LayerList({\n view,\n })\n\n layerPanelRef.current = new Expand({\n expandIcon: 'layers',\n view,\n content: layerList,\n expanded: element.showLayerPanel,\n mode: 'floating',\n visible: false,\n })\n\n view.ui.add(layerPanelRef.current, 'top-right')\n\n const baseMapGallery = new BaseMapGallery({ view })\n\n mapGalleryPanelRef.current = new Expand({\n expandIcon: 'basemap',\n view,\n content: baseMapGallery,\n mode: 'floating',\n visible: false,\n })\n\n view.ui.add(mapGalleryPanelRef.current, 'top-left')\n\n if (!element.readOnly && element.allowedDrawingTools?.length) {\n const drawingLayer = new GraphicsLayer({\n id: uuid(),\n title: 'Drawing',\n })\n drawingLayerRef.current = drawingLayer\n map.layers.add(drawingLayer)\n\n // Add measurement layer above drawing layer\n if (element.measurementDimensionsEnabled) {\n const measurementLayer = new GraphicsLayer({\n id: uuid(),\n title: 'Measurements',\n listMode: 'hide',\n })\n measurementLayerRef.current = measurementLayer\n map.layers.add(measurementLayer)\n }\n\n const sketch = new Sketch({\n view,\n layer: drawingLayer,\n creationMode: 'single',\n layout: 'vertical',\n availableCreateTools: [\n 'point',\n 'polyline',\n 'polygon',\n 'rectangle',\n 'circle',\n ].filter((createTool) =>\n element.allowedDrawingTools?.find(\n (tool) => tool.type === createTool,\n ),\n ),\n // hiding the below by default\n visibleElements: {\n duplicateButton: false,\n settingsMenu: false,\n undoRedoMenu: false,\n selectionTools: {\n 'lasso-selection': false,\n 'rectangle-selection': false,\n },\n },\n })\n sketchToolRef.current = sketch\n view.ui.add(sketch, 'bottom-right')\n view.ui.add(drawingOptionsContainerId, 'bottom-right')\n }\n\n // once the view has loaded\n view.when(() => {\n mapViewRef.current = view\n takeScreenShotRef.current = async (\n viewToScreenShot?: ArcGISTypes.ArcGISWebMapElementValue['view'],\n ) => {\n if (viewToScreenShot) {\n await view.goTo(\n {\n center: [\n viewToScreenShot.longitude,\n viewToScreenShot.latitude,\n ],\n zoom: viewToScreenShot.zoom,\n },\n {\n animate: true,\n },\n )\n console.log('waiting for view to render visible')\n await new Promise((resolve) => {\n if (!view.updating) {\n resolve(undefined)\n } else {\n const handle = view.watch('updating', (updating) => {\n if (!updating) {\n handle.remove()\n resolve(undefined)\n }\n })\n }\n })\n }\n const screenshot = await view.takeScreenshot()\n return {\n dataUrl: screenshot.dataUrl,\n }\n }\n setIsLoading(false)\n })\n } catch (e) {\n console.warn('Error while trying to load arcgis web map ', e)\n setLoadError(e as Error)\n setIsLoading(false)\n }\n }\n\n if (!mapViewRef.current && !isLoading) {\n setIsLoading(true)\n loadMap()\n }\n }, [drawingOptionsContainerId, element, isLoading, takeScreenShotRef, value])\n\n React.useEffect(() => {\n if (!isLoading) {\n if (isPageVisible) {\n if (layerPanelRef.current) {\n layerPanelRef.current.visible = true\n }\n if (mapGalleryPanelRef.current) {\n mapGalleryPanelRef.current.visible = true\n }\n } else {\n if (layerPanelRef.current) {\n layerPanelRef.current.visible = false\n }\n if (mapGalleryPanelRef.current) {\n mapGalleryPanelRef.current.visible = false\n }\n }\n }\n }, [isPageVisible, isLoading])\n\n if (loadError) {\n return (\n <figure className=\"ob-figure\">\n <div className=\"figure-content has-text-centered\">\n <MaterialIcon className=\"icon-large has-margin-bottom-6 has-text-warning\">\n error\n </MaterialIcon>\n <h4 className=\"title is-4\">We were unable to display your web map</h4>\n <p>{loadError.message}</p>\n </div>\n </figure>\n )\n }\n\n return (\n <>\n {isLoading && (\n <div className=\"figure-content-absolute-center\">\n <OnLoading small />\n </div>\n )}\n <div\n className=\"arcgis-web-map\"\n ref={ref}\n id={id}\n aria-describedby={props['aria-describedby']}\n />\n <div id={drawingOptionsContainerId}>\n {!!activeSketchToolMenu && sketchToolRef.current && (\n <DrawingOptionsList\n options={\n element.allowedDrawingTools?.find(\n (tool) => tool.type === activeSketchToolMenu,\n )?.graphicAttributeOptions || []\n }\n onClose={() => setActiveSketchToolMenu(undefined)}\n setSelectedGraphicAttributes={(opt) => {\n setSelectedGraphicAttributes(opt)\n }}\n sketchToolType={activeSketchToolMenu}\n sketchTool={sketchToolRef.current}\n />\n )}\n </div>\n </>\n )\n}\n\nexport default React.memo(FormElementArcGISWebMap)\n"]}
@@ -7,7 +7,7 @@ import RepeatableSetCell from './RepeatableSetCell';
7
7
  import TableCellCopyButton from './TableCellCopyButton';
8
8
  import { format } from 'date-fns';
9
9
  function FormElementTableCell({ formElement, submission, allowCopy }) {
10
- var _a, _b, _c, _d, _e, _f, _g;
10
+ var _a, _b, _c, _d, _e, _f, _g, _h;
11
11
  if (formElement.type === 'page' || formElement.type === 'section') {
12
12
  return null;
13
13
  }
@@ -44,6 +44,13 @@ function FormElementTableCell({ formElement, submission, allowCopy }) {
44
44
  case 'draw': {
45
45
  return (React.createElement(FileChip, { file: unknown }));
46
46
  }
47
+ case 'arcGISWebMap': {
48
+ const arcGISWebMapElementValue = unknown;
49
+ if (!((_a = arcGISWebMapElementValue === null || arcGISWebMapElementValue === void 0 ? void 0 : arcGISWebMapElementValue.snapshotImages) === null || _a === void 0 ? void 0 : _a.length)) {
50
+ break;
51
+ }
52
+ return (React.createElement(FilesElementDataTableCellContent, { value: arcGISWebMapElementValue.snapshotImages }));
53
+ }
47
54
  case 'textarea': {
48
55
  if (typeof unknown !== 'string') {
49
56
  break;
@@ -165,7 +172,7 @@ function FormElementTableCell({ formElement, submission, allowCopy }) {
165
172
  const value = unknown;
166
173
  if (!Array.isArray(value) ||
167
174
  !value.length ||
168
- typeof ((_a = value[0]) === null || _a === void 0 ? void 0 : _a.fileName) !== 'string') {
175
+ typeof ((_b = value[0]) === null || _b === void 0 ? void 0 : _b.fileName) !== 'string') {
169
176
  break;
170
177
  }
171
178
  return React.createElement(FilesElementDataTableCellContent, { value: value });
@@ -207,7 +214,7 @@ function FormElementTableCell({ formElement, submission, allowCopy }) {
207
214
  if (typeof value.addressId !== 'string') {
208
215
  break;
209
216
  }
210
- const fullAddress = ((_b = value === null || value === void 0 ? void 0 : value.addressDetails) === null || _b === void 0 ? void 0 : _b.formattedAddress) || (React.createElement(React.Fragment, null,
217
+ const fullAddress = ((_c = value === null || value === void 0 ? void 0 : value.addressDetails) === null || _c === void 0 ? void 0 : _c.formattedAddress) || (React.createElement(React.Fragment, null,
211
218
  "Geoscape Address ID: ",
212
219
  React.createElement("i", null, value.addressId)));
213
220
  return (React.createElement(React.Fragment, null,
@@ -216,7 +223,7 @@ function FormElementTableCell({ formElement, submission, allowCopy }) {
216
223
  }
217
224
  case 'pointCadastralParcel': {
218
225
  const value = unknown;
219
- const parcelId = (_d = (_c = value === null || value === void 0 ? void 0 : value.parcelBundle) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.parcelId;
226
+ const parcelId = (_e = (_d = value === null || value === void 0 ? void 0 : value.parcelBundle) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.parcelId;
220
227
  if (typeof parcelId !== 'string') {
221
228
  break;
222
229
  }
@@ -229,7 +236,7 @@ function FormElementTableCell({ formElement, submission, allowCopy }) {
229
236
  if (typeof value.addressId !== 'string') {
230
237
  break;
231
238
  }
232
- const fullAddress = ((_e = value === null || value === void 0 ? void 0 : value.addressDetails) === null || _e === void 0 ? void 0 : _e.formattedAddress) || (React.createElement(React.Fragment, null,
239
+ const fullAddress = ((_f = value === null || value === void 0 ? void 0 : value.addressDetails) === null || _f === void 0 ? void 0 : _f.formattedAddress) || (React.createElement(React.Fragment, null,
233
240
  "NSW Point Address ID: ",
234
241
  React.createElement("i", null, value.addressId)));
235
242
  return (React.createElement(React.Fragment, null,
@@ -270,7 +277,7 @@ function FormElementTableCell({ formElement, submission, allowCopy }) {
270
277
  }
271
278
  case 'apiNSWLiquorLicence': {
272
279
  const value = unknown;
273
- const licenceNumber = `${(_f = value.licenceDetail) === null || _f === void 0 ? void 0 : _f.licenceNumber} | ${(_g = value.licenceDetail) === null || _g === void 0 ? void 0 : _g.licenceName}`.trim();
280
+ const licenceNumber = `${(_g = value.licenceDetail) === null || _g === void 0 ? void 0 : _g.licenceNumber} | ${(_h = value.licenceDetail) === null || _h === void 0 ? void 0 : _h.licenceName}`.trim();
274
281
  if (!licenceNumber) {
275
282
  break;
276
283
  }
@@ -285,7 +292,6 @@ function FormElementTableCell({ formElement, submission, allowCopy }) {
285
292
  case 'captcha':
286
293
  case 'image':
287
294
  case 'heading':
288
- case 'arcGISWebMap':
289
295
  case 'summary':
290
296
  case 'freshdeskDependentField':
291
297
  case 'compliance': {
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementTableCell.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/FormElementTableCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { Link, Typography } from '@mui/material'\nimport { localisationService } from '@oneblink/apps'\nimport {\n APINSWTypes,\n FormTypes,\n GeoscapeTypes,\n GoogleTypes,\n MiscTypes,\n PointTypes,\n SubmissionTypes,\n} from '@oneblink/types'\nimport { abnService } from '@oneblink/sdk-core'\nimport {\n FileChip,\n FilesElementDataTableCellContent,\n MultiSelectFormElementTableCellContent,\n getSelectedOptionLabel,\n} from '../display/ElementDisplay'\nimport RepeatableSetCell from './RepeatableSetCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { format } from 'date-fns'\n\ntype Props = {\n formElement: FormTypes.FormElement\n submission: SubmissionTypes.S3SubmissionData['submission'] | undefined\n allowCopy: boolean\n}\n\nfunction FormElementTableCell({ formElement, submission, allowCopy }: Props) {\n if (formElement.type === 'page' || formElement.type === 'section') {\n return null\n }\n const unknown = submission?.[formElement.name]\n if (unknown === undefined || unknown === null) {\n return null\n }\n\n switch (formElement.type) {\n case 'repeatableSet': {\n if (!Array.isArray(unknown)) {\n break\n }\n return <RepeatableSetCell formElement={formElement} value={unknown} />\n }\n\n case 'location': {\n const value = unknown as {\n latitude: number\n longitude: number\n }\n if (!value.latitude || !value.longitude) {\n break\n }\n\n const latLong = `${value.latitude},${value.longitude}`\n return (\n <>\n <div>\n <Typography variant=\"inherit\" component=\"p\">\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://maps.google.com/?q=${latLong}`}\n >\n View in Google Maps\n </Link>\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Latitude: {value.latitude}\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Longitude: {value.longitude}\n </Typography>\n </div>\n <TableCellCopyButton isHidden={!allowCopy} text={latLong} />\n </>\n )\n }\n\n case 'camera':\n case 'draw': {\n return (\n <FileChip\n file={unknown as React.ComponentProps<typeof FileChip>['file']}\n />\n )\n }\n\n case 'textarea': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <span\n style={{\n whiteSpace: 'pre-line',\n }}\n >\n {unknown}\n </span>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'date': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value: unknown,\n })\n if (!date) {\n break\n }\n const text = localisationService.formatDate(date)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'time': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { time: timeFormat } = localisationService.getDateFnsFormats()\n const text = format(date, timeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'datetime': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { shortDateTime: shortDateTimeFormat } =\n localisationService.getDateFnsFormats()\n const text = format(date, shortDateTimeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'number': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'radio':\n case 'autocomplete':\n case 'checkboxes':\n case 'select': {\n if (\n formElement.type === 'checkboxes' ||\n (formElement.type === 'select' && formElement.multi)\n ) {\n if (\n !Array.isArray(unknown) ||\n !unknown.length ||\n typeof unknown[0] !== 'string'\n ) {\n break\n }\n const text = (unknown as string[])\n .map((selection) => getSelectedOptionLabel(formElement, selection))\n .join(', ')\n return (\n <>\n <MultiSelectFormElementTableCellContent\n value={unknown}\n formElement={formElement}\n />\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n } else {\n if (typeof unknown !== 'string') {\n break\n }\n const text = getSelectedOptionLabel(formElement, unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n }\n\n case 'email': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`mailto:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'telephone': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`tel:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'text':\n case 'bsb':\n case 'barcodeScanner': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n {unknown}\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'files': {\n const value = unknown as React.ComponentProps<\n typeof FilesElementDataTableCellContent\n >['value']\n if (\n !Array.isArray(value) ||\n !value.length ||\n typeof value[0]?.fileName !== 'string'\n ) {\n break\n }\n return <FilesElementDataTableCellContent value={value} />\n }\n\n case 'calculation': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = formElement.displayAsCurrency\n ? localisationService.formatCurrency(unknown)\n : localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={unknown.toString()}\n />\n </>\n )\n }\n\n case 'civicaStreetName': {\n const value = unknown as {\n formattedStreet: string\n }\n if (typeof value?.formattedStreet !== 'string') {\n break\n }\n return (\n <>\n {value.formattedStreet}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={value.formattedStreet}\n />\n </>\n )\n }\n\n case 'civicaNameRecord': {\n const value = unknown as {\n title?: string\n givenName1?: string\n familyName?: string\n emailAddress: string\n }\n if (typeof value?.emailAddress !== 'string') {\n break\n }\n const text =\n [value?.title, value?.givenName1, value?.familyName]\n .filter((t) => t)\n .join(' ') || value?.emailAddress\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'geoscapeAddress': {\n const value = unknown as GeoscapeTypes.GeoscapeAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n Geoscape Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'pointCadastralParcel': {\n const value = unknown as PointTypes.PointCadastralParcelResponse\n const parcelId = value?.parcelBundle?.[0]?.parcelId\n if (typeof parcelId !== 'string') {\n break\n }\n return (\n <>\n {parcelId}\n <TableCellCopyButton isHidden={!allowCopy} text={parcelId} />\n </>\n )\n }\n\n case 'pointAddress': {\n const value = unknown as PointTypes.PointAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n NSW Point Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'googleAddress': {\n const value = unknown as GoogleTypes.GoogleMapsAddress\n const fullAddress = value?.formatted_address || (\n <>\n Google Address: <i>{value?.place_id}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'boolean': {\n if (typeof unknown !== 'boolean') {\n break\n }\n const text = unknown ? 'Yes' : 'No'\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'abn': {\n const value = unknown as MiscTypes.ABNRecord\n if (!value.ABN || !value.entityType) {\n break\n }\n const abnNumber = abnService.displayABNNumberFromABNRecord(value)\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://www.abr.business.gov.au/ABN/View/${abnNumber}`}\n >\n {abnNumber} |{' '}\n <i>{abnService.displayBusinessNameFromABNRecord(value)}</i>\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={abnNumber} />\n </>\n )\n }\n case 'apiNSWLiquorLicence': {\n const value = unknown as APINSWTypes.LiquorLicenceDetails\n const licenceNumber =\n `${value.licenceDetail?.licenceNumber} | ${value.licenceDetail?.licenceName}`.trim()\n if (!licenceNumber) {\n break\n }\n return (\n <>\n {licenceNumber}\n <TableCellCopyButton isHidden={!allowCopy} text={licenceNumber} />\n </>\n )\n }\n\n case 'lookupButton':\n case 'html':\n case 'form':\n case 'infoPage':\n case 'captcha':\n case 'image':\n case 'heading':\n case 'arcGISWebMap':\n case 'summary':\n case 'freshdeskDependentField':\n case 'compliance': {\n return null\n }\n\n default: {\n const never: never = formElement\n console.warn(\n 'Unsupported element type in Submission Data rendering',\n never,\n )\n return null\n }\n }\n\n return <>{JSON.stringify(unknown)}</>\n}\n\nexport default React.memo(FormElementTableCell)\n"]}
1
+ {"version":3,"file":"FormElementTableCell.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/FormElementTableCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { Link, Typography } from '@mui/material'\nimport { localisationService } from '@oneblink/apps'\nimport {\n APINSWTypes,\n ArcGISTypes,\n FormTypes,\n GeoscapeTypes,\n GoogleTypes,\n MiscTypes,\n PointTypes,\n SubmissionTypes,\n} from '@oneblink/types'\nimport { abnService } from '@oneblink/sdk-core'\nimport {\n FileChip,\n FilesElementDataTableCellContent,\n MultiSelectFormElementTableCellContent,\n getSelectedOptionLabel,\n} from '../display/ElementDisplay'\nimport RepeatableSetCell from './RepeatableSetCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { format } from 'date-fns'\n\ntype Props = {\n formElement: FormTypes.FormElement\n submission: SubmissionTypes.S3SubmissionData['submission'] | undefined\n allowCopy: boolean\n}\n\nfunction FormElementTableCell({ formElement, submission, allowCopy }: Props) {\n if (formElement.type === 'page' || formElement.type === 'section') {\n return null\n }\n const unknown = submission?.[formElement.name]\n if (unknown === undefined || unknown === null) {\n return null\n }\n\n switch (formElement.type) {\n case 'repeatableSet': {\n if (!Array.isArray(unknown)) {\n break\n }\n return <RepeatableSetCell formElement={formElement} value={unknown} />\n }\n\n case 'location': {\n const value = unknown as {\n latitude: number\n longitude: number\n }\n if (!value.latitude || !value.longitude) {\n break\n }\n\n const latLong = `${value.latitude},${value.longitude}`\n return (\n <>\n <div>\n <Typography variant=\"inherit\" component=\"p\">\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://maps.google.com/?q=${latLong}`}\n >\n View in Google Maps\n </Link>\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Latitude: {value.latitude}\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Longitude: {value.longitude}\n </Typography>\n </div>\n <TableCellCopyButton isHidden={!allowCopy} text={latLong} />\n </>\n )\n }\n\n case 'camera':\n case 'draw': {\n return (\n <FileChip\n file={unknown as React.ComponentProps<typeof FileChip>['file']}\n />\n )\n }\n\n case 'arcGISWebMap': {\n const arcGISWebMapElementValue = unknown as\n | ArcGISTypes.ArcGISWebMapElementValue\n | undefined\n if (!arcGISWebMapElementValue?.snapshotImages?.length) {\n break\n }\n return (\n <FilesElementDataTableCellContent\n value={arcGISWebMapElementValue.snapshotImages}\n />\n )\n }\n\n case 'textarea': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <span\n style={{\n whiteSpace: 'pre-line',\n }}\n >\n {unknown}\n </span>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'date': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value: unknown,\n })\n if (!date) {\n break\n }\n const text = localisationService.formatDate(date)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'time': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { time: timeFormat } = localisationService.getDateFnsFormats()\n const text = format(date, timeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'datetime': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { shortDateTime: shortDateTimeFormat } =\n localisationService.getDateFnsFormats()\n const text = format(date, shortDateTimeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'number': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'radio':\n case 'autocomplete':\n case 'checkboxes':\n case 'select': {\n if (\n formElement.type === 'checkboxes' ||\n (formElement.type === 'select' && formElement.multi)\n ) {\n if (\n !Array.isArray(unknown) ||\n !unknown.length ||\n typeof unknown[0] !== 'string'\n ) {\n break\n }\n const text = (unknown as string[])\n .map((selection) => getSelectedOptionLabel(formElement, selection))\n .join(', ')\n return (\n <>\n <MultiSelectFormElementTableCellContent\n value={unknown}\n formElement={formElement}\n />\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n } else {\n if (typeof unknown !== 'string') {\n break\n }\n const text = getSelectedOptionLabel(formElement, unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n }\n\n case 'email': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`mailto:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'telephone': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`tel:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'text':\n case 'bsb':\n case 'barcodeScanner': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n {unknown}\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'files': {\n const value = unknown as React.ComponentProps<\n typeof FilesElementDataTableCellContent\n >['value']\n if (\n !Array.isArray(value) ||\n !value.length ||\n typeof value[0]?.fileName !== 'string'\n ) {\n break\n }\n return <FilesElementDataTableCellContent value={value} />\n }\n\n case 'calculation': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = formElement.displayAsCurrency\n ? localisationService.formatCurrency(unknown)\n : localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={unknown.toString()}\n />\n </>\n )\n }\n\n case 'civicaStreetName': {\n const value = unknown as {\n formattedStreet: string\n }\n if (typeof value?.formattedStreet !== 'string') {\n break\n }\n return (\n <>\n {value.formattedStreet}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={value.formattedStreet}\n />\n </>\n )\n }\n\n case 'civicaNameRecord': {\n const value = unknown as {\n title?: string\n givenName1?: string\n familyName?: string\n emailAddress: string\n }\n if (typeof value?.emailAddress !== 'string') {\n break\n }\n const text =\n [value?.title, value?.givenName1, value?.familyName]\n .filter((t) => t)\n .join(' ') || value?.emailAddress\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'geoscapeAddress': {\n const value = unknown as GeoscapeTypes.GeoscapeAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n Geoscape Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'pointCadastralParcel': {\n const value = unknown as PointTypes.PointCadastralParcelResponse\n const parcelId = value?.parcelBundle?.[0]?.parcelId\n if (typeof parcelId !== 'string') {\n break\n }\n return (\n <>\n {parcelId}\n <TableCellCopyButton isHidden={!allowCopy} text={parcelId} />\n </>\n )\n }\n\n case 'pointAddress': {\n const value = unknown as PointTypes.PointAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n NSW Point Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'googleAddress': {\n const value = unknown as GoogleTypes.GoogleMapsAddress\n const fullAddress = value?.formatted_address || (\n <>\n Google Address: <i>{value?.place_id}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'boolean': {\n if (typeof unknown !== 'boolean') {\n break\n }\n const text = unknown ? 'Yes' : 'No'\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'abn': {\n const value = unknown as MiscTypes.ABNRecord\n if (!value.ABN || !value.entityType) {\n break\n }\n const abnNumber = abnService.displayABNNumberFromABNRecord(value)\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://www.abr.business.gov.au/ABN/View/${abnNumber}`}\n >\n {abnNumber} |{' '}\n <i>{abnService.displayBusinessNameFromABNRecord(value)}</i>\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={abnNumber} />\n </>\n )\n }\n case 'apiNSWLiquorLicence': {\n const value = unknown as APINSWTypes.LiquorLicenceDetails\n const licenceNumber =\n `${value.licenceDetail?.licenceNumber} | ${value.licenceDetail?.licenceName}`.trim()\n if (!licenceNumber) {\n break\n }\n return (\n <>\n {licenceNumber}\n <TableCellCopyButton isHidden={!allowCopy} text={licenceNumber} />\n </>\n )\n }\n\n case 'lookupButton':\n case 'html':\n case 'form':\n case 'infoPage':\n case 'captcha':\n case 'image':\n case 'heading':\n case 'summary':\n case 'freshdeskDependentField':\n case 'compliance': {\n return null\n }\n\n default: {\n const never: never = formElement\n console.warn(\n 'Unsupported element type in Submission Data rendering',\n never,\n )\n return null\n }\n }\n\n return <>{JSON.stringify(unknown)}</>\n}\n\nexport default React.memo(FormElementTableCell)\n"]}
@@ -2,7 +2,8 @@ import * as React from 'react';
2
2
  import { FormTypes } from '@oneblink/types';
3
3
  interface Props {
4
4
  element: FormTypes.FilesElement;
5
- onRemove: () => void;
5
+ /** If set to `undefined`, the remove button will be hidden */
6
+ onRemove: (() => void) | undefined;
6
7
  onDownload?: () => void;
7
8
  onRetry?: () => void;
8
9
  attachmentUrl: string | null | undefined;
@@ -36,12 +36,12 @@ const DropdownMenu = ({ element, onRemove, onDownload, onRetry, attachmentUrl, }
36
36
  } },
37
37
  React.createElement("span", null, "Open"),
38
38
  React.createElement(MaterialIcon, { className: "icon-small" }, "open_in_new"))),
39
- React.createElement("a", { className: clsx('dropdown-item cypress-file-remove-button', {
39
+ onRemove && (React.createElement("a", { className: clsx('dropdown-item cypress-file-remove-button', {
40
40
  'ob-files__menu-remove-hidden': element.readOnly,
41
41
  }), onClick: () => {
42
42
  hideMore();
43
43
  onRemove();
44
- }, role: "menuitem" }, "Remove")))));
44
+ }, role: "menuitem" }, "Remove"))))));
45
45
  };
46
46
  export default React.memo(DropdownMenu);
47
47
  //# sourceMappingURL=DropdownMenu.js.map