/// import type MapView from "@arcgis/core/views/MapView.js"; import type { IImageExtraction, ISearchConfiguration, ITextExtraction } from "../../utils/interfaces.js"; import type { PublicLitElement as LitElement } from "@arcgis/lumina"; import type { ArcgisEditor } from "@arcgis/map-components/components/arcgis-editor/customElement"; import type { T9nMeta } from "@arcgis/lumina/controllers"; export abstract class CreateFeature extends LitElement { /** * Contains the translations for this component. * All UI strings should be defined here. * * @internal */ protected _translations: { chooseCategoryMsg: string; provideDetailsMsg: string; provideLocationMsg: string; editLocationLabel: string; reportOutsideAreaMessage: string; enableFeatureTemplatesMessage: string; usePhoto: string; aiAssistantDescription: string; useDescription: string; aiTextAssistantDescription: string; fillOutManually: string; startBlank: string; next: string; cancel: string; createReportHeading: string; aiAssistedReport: string; manualReport: string; aiAssistantProcessingHint: string; aiTextProcessingHint: string; imageUploadLimitHint: string; replaceImage: string; analyzingImage: string; description: string; messageInputHint: string; descriptionRequiredHint: string; analyzingText: string; formReviewMsg: string; textReviewMsg: string; skip: string; photo: string; error: string; imageExtractionError: string; imageExtractionPartialError: string; textExtractionError: string; textExtractionPartialError: string; } & T9nMeta<{ chooseCategoryMsg: string; provideDetailsMsg: string; provideLocationMsg: string; editLocationLabel: string; reportOutsideAreaMessage: string; enableFeatureTemplatesMessage: string; usePhoto: string; aiAssistantDescription: string; useDescription: string; aiTextAssistantDescription: string; fillOutManually: string; startBlank: string; next: string; cancel: string; createReportHeading: string; aiAssistedReport: string; manualReport: string; aiAssistantProcessingHint: string; aiTextProcessingHint: string; imageUploadLimitHint: string; replaceImage: string; analyzingImage: string; description: string; messageInputHint: string; descriptionRequiredHint: string; analyzingText: string; formReviewMsg: string; textReviewMsg: string; skip: string; photo: string; error: string; imageExtractionError: string; imageExtractionPartialError: string; textExtractionError: string; textExtractionPartialError: string; }>; /** array: Configured AI image extraction field and prompt for the selected LayerId */ accessor aiImageExtraction: IImageExtraction[] | undefined; /** array: Configured AI text extraction field and prompt for the selected LayerId */ accessor aiTextExtraction: ITextExtraction[] | undefined; /** * boolean: When true user can create multiple features * * @default false */ accessor allowMultipleCreation: boolean; /** string: The name of Instant Apps application (e.g., "reporter", "manager") used in the request source header */ accessor appName: string | undefined; /** * boolean: Set this to true when have a custom submit button in the app. * This will hide the header and footer elements of the editor and user needs to execute the submit method manually. * * @default false */ accessor customizeSubmit: boolean | undefined; /** * boolean: When true message analysis attempts to extract and geocode location text * * @default false */ accessor enableMessageLocation: boolean | undefined; /** * boolean: When true photo get location from the photo selected for AI image Extraction * * @default false */ accessor enablePhotoLocation: boolean | undefined; /** * boolean: When true the Search box will be displayed * * @default false */ accessor enableSearch: boolean | undefined; /** * When true the snapping options will be exposed * * @default false */ accessor enableSnapping: boolean; /** * string: selected floor level * * @default '' */ accessor floorLevel: string; /** string: selected floor level */ accessor formElements: any; /** * boolean: When true the application will be in mobile mode, controls the mobile or desktop view * * @default false */ accessor isMobile: boolean; /** esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ accessor mapView: MapView | undefined; /** * boolean: When true clicking on a feature on the map will display a popup * * @default false */ accessor popupEnabled: boolean; /** * boolean: When true reporting area layer should be honored if it exists * * @default false */ accessor reportingArea: boolean; /** * string: polygon layer for the reporting feature * * @default '' */ accessor reportingAreaLayer: string | undefined; /** * string: Message to be displayed when feature is outside the reportingAreaLayer * * @default '' */ accessor reportingAreaMessage: string; /** ISearchConfiguration: Configuration details for the Search widget */ accessor searchConfiguration: ISearchConfiguration | undefined; /** * string: Layer id of the feature layer in which the new feature is to be created * * @default '' */ accessor selectedLayerId: string; /** * boolean: When true the notice message with the current state should be shown * * @default true */ accessor showGuidingMsg: boolean | undefined; /** * boolean: When true the layer visibility message will be shown * * @default false */ accessor showLayerVisibilityMsg: boolean | undefined; /** * boolean: When true Editor's sketch widgets will be displayed * * @default false */ accessor showSketchWidgets: boolean; /** * string: Text to be displayed that will allow user to know they can submit new reports * * @default '' */ accessor submitNewReportsMessage: string; /** * boolean: When true the map should shown in the editor component in mobile mode (while drawing graphic) * * @default false */ accessor updateMapPosition: boolean; /** * Refreshes the editor state, optionally updating the floor level. * * @param floorLevel - (Optional) The floor level to set. If provided, the editor updates to this floor level. * @returns A promise that resolves when the refresh operation is complete. */ refresh(floorLevel?: string): Promise; /** Shows feature form */ showForm(): Promise; /** * Submit the created feature * * @returns Promise that resolves when the operation is complete */ submit(): Promise; /** * Emitted on demand when features are being created * The number of features being created is passed as an argument. */ readonly activeFeatureCountChange: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when the create feature component is closed */ readonly createFeatureEditorClosed: import("@arcgis/lumina").TargetedEvent; /** * Emitted once the editor for creating feature is initialized and ready to use * The ArcgisEditor instance is passed as an argument. */ readonly createFeatureEditorInitialized: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when drawing is completed */ readonly drawComplete: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when editing attachments */ readonly editingAttachment: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when in editing mode */ readonly editingLocation: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when the feature creation is failed */ readonly fail: import("@arcgis/lumina").TargetedEvent; /** Emitted on switched form mobile to desktop or vice versa */ readonly modeChanged: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when editor panel changes */ readonly progressStatus: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when the feature is created successfully */ readonly success: import("@arcgis/lumina").TargetedEvent; readonly "@eventTypes": { activeFeatureCountChange: CreateFeature["activeFeatureCountChange"]["detail"]; createFeatureEditorClosed: CreateFeature["createFeatureEditorClosed"]["detail"]; createFeatureEditorInitialized: CreateFeature["createFeatureEditorInitialized"]["detail"]; drawComplete: CreateFeature["drawComplete"]["detail"]; editingAttachment: CreateFeature["editingAttachment"]["detail"]; editingLocation: CreateFeature["editingLocation"]["detail"]; fail: CreateFeature["fail"]["detail"]; modeChanged: CreateFeature["modeChanged"]["detail"]; progressStatus: CreateFeature["progressStatus"]["detail"]; success: CreateFeature["success"]["detail"]; }; }