/// import type Graphic from "@arcgis/core/Graphic.js"; import type MapView from "@arcgis/core/views/MapView.js"; import type SimpleFillSymbol from "@arcgis/core/symbols/SimpleFillSymbol.js"; import type SimpleLineSymbol from "@arcgis/core/symbols/SimpleLineSymbol.js"; import type SimpleMarkerSymbol from "@arcgis/core/symbols/SimpleMarkerSymbol.js"; import type { ISketchGraphicsChange, EDrawMode } from "../../utils/interfaces.js"; import type { PublicLitElement as LitElement } from "@arcgis/lumina"; import type { T9nMeta } from "@arcgis/lumina/controllers"; export abstract class MapDrawTools extends LitElement { /** * Contains the translations for this component. * All UI strings should be defined here. * * @internal */ protected _translations: { sketchLayer: string; undo: string; redo: string; } & T9nMeta<{ sketchLayer: string; undo: string; redo: string; }>; /** * boolean: sketch is used by multiple components...need a way to know who should respond... * * @default false */ accessor active: boolean; /** * utils/interfaces: Controls how the draw tools are rendered * * SKETCH mode supports snapping * REFINE mode supports undo/redo * * @default 'SKETCH' */ accessor drawMode: EDrawMode; /** * boolean: when true you will be able to make additional modifications to the sketched geometry * * @default true */ accessor editGraphicsEnabled: boolean; /** esri/Graphic: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html */ accessor graphics: Graphic[]; /** esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ accessor mapView: MapView | undefined; /** SimpleMarkerSymbol: Point symbol used for sketching and updating point graphics */ accessor pointSymbol: SimpleMarkerSymbol | undefined; /** SimpleFillSymbol: Polygon symbol used for sketching and updating polygon graphics */ accessor polygonSymbol: SimpleFillSymbol | undefined; /** SimpleLineSymbol: Polyline symbol used for sketching and updating polyline graphics */ accessor polylineSymbol: SimpleLineSymbol | undefined; /** * boolean: when enabled the user can redo the previous operation * * @default false */ accessor redoEnabled: boolean; /** * boolean: when enabled the user can undo the previous operation * * @default false */ accessor undoEnabled: boolean; /** * Clears the user drawn graphics * * @returns Promise that resolves when the operation is complete */ clear(): Promise; /** * Set the sketch widget to update mode with the current graphic * * @returns Promise that resolves when the operation is complete */ updateGraphics(): Promise; /** Emitted on demand when the redo action is clicked. */ readonly drawRedo: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when the undo action is clicked. */ readonly drawUndo: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when selection starts or ends. */ readonly selectionLoadingChange: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when the sketch graphics change. */ readonly sketchGraphicsChange: import("@arcgis/lumina").TargetedEvent; readonly "@eventTypes": { drawRedo: MapDrawTools["drawRedo"]["detail"]; drawUndo: MapDrawTools["drawUndo"]["detail"]; selectionLoadingChange: MapDrawTools["selectionLoadingChange"]["detail"]; sketchGraphicsChange: MapDrawTools["sketchGraphicsChange"]["detail"]; }; }