///
import type MapView from "@arcgis/core/views/MapView.js";
import type { IImageExtraction, ILayerExpression, IMapInfo, IReportingOptions, ISearchConfiguration, ISortFields, ITextExtraction, theme } from "../../utils/interfaces.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { T9nMeta } from "@arcgis/lumina/controllers";
export abstract class CrowdsourceReporter extends LitElement {
/**
* Contains the translations for this component.
* All UI strings should be defined here.
*
* @internal
*/
protected _translations: {
createReportButtonText: string;
share: string;
sort: string;
filter: string;
expand: string;
collapse: string;
next: string;
submit: string;
cancel: string;
back: string;
error: string;
invalidConfigurationErrorMsg: string;
chooseCategoryMsg: string;
featureErrorMsg: string;
currentLocationMsg: string;
addLocationMsg: string;
submitMsg: string;
filterLayerTitle: string;
indexOfTotal: string;
comment: string;
commentSubmittedMsg: string;
addingCommentFailedMsg: string;
sortNewest: string;
sortOldest: string;
sortHighestVoted: string;
sortLowestVoted: string;
sortAlphabetical: string;
reverseSortAlphabetical: string;
resetFilter: string;
close: string;
submitBelow: string;
noResultsMsg: string;
loading: string;
notification: string;
sortOptions: string;
toggleListView: string;
} & T9nMeta<{
createReportButtonText: string;
share: string;
sort: string;
filter: string;
expand: string;
collapse: string;
next: string;
submit: string;
cancel: string;
back: string;
error: string;
invalidConfigurationErrorMsg: string;
chooseCategoryMsg: string;
featureErrorMsg: string;
currentLocationMsg: string;
addLocationMsg: string;
submitMsg: string;
filterLayerTitle: string;
indexOfTotal: string;
comment: string;
commentSubmittedMsg: string;
addingCommentFailedMsg: string;
sortNewest: string;
sortOldest: string;
sortHighestVoted: string;
sortLowestVoted: string;
sortAlphabetical: string;
reverseSortAlphabetical: string;
resetFilter: string;
close: string;
submitBelow: string;
noResultsMsg: string;
loading: string;
notification: string;
sortOptions: string;
toggleListView: string;
}>;
/** array: Configured AI image extraction field and prompt for the selected LayerId */
accessor aiImageExtraction: IImageExtraction[];
/** array: Configured AI text extraction field and prompt for the selected LayerId */
accessor aiTextExtraction: ITextExtraction[];
/**
* string: Semicolon delimited numbers that will be used as the maps center point from URL params
*
* @default ''
*/
accessor center: string;
/**
* string: User configurable text to display for the comment button
*
* @default ''
*/
accessor commentButtonText: string;
/**
* string: User configurable message to display when a comment is submitted
*
* @default ''
*/
accessor commentSubmittedMessage: string;
/**
* string: Item ID of the web map that should be selected by default
*
* @default ''
*/
accessor defaultWebmap: string;
/**
* string: The text that will display under the title on the landing page
*
* @default ''
*/
accessor description: string;
/**
* boolean: When true the anonymous users will be allowed to submit reports and comments
*
* @default false
*/
accessor enableAnonymousAccess: boolean;
/**
* boolean: When true the anonymous users will be allowed to submit comments
*
* @default false
*/
accessor enableAnonymousComments: boolean;
/**
* boolean: When true the user will be allowed to submit comments
*
* @default false
*/
accessor enableComments: boolean;
/**
* boolean: when true the home widget will be available
*
* @default true
*/
accessor enableHome: boolean;
/**
* boolean: When true the user will be provided a login page
*
* @default false
*/
accessor enableLogin: boolean;
/**
* boolean: When true photo get location from the message selected for AI text Extraction
*
* @default false
*/
accessor enableMessageLocation: boolean;
/**
* boolean: When true the user will be allowed to submit new reports
*
* @default false
*/
accessor enableNewReports: boolean;
/**
* boolean: When true photo get location from the photo selected for AI image Extraction
*
* @default false
*/
accessor enablePhotoLocation: boolean;
/**
* boolean: when true the search widget will be available
*
* @default true
*/
accessor enableSearch: boolean;
/**
* When true the snapping options will be exposed
*
* @default false
*/
accessor enableSnapping: boolean;
/**
* boolean: when true the zoom widget will be available
*
* @default true
*/
accessor enableZoom: boolean;
/**
* boolean: When true only the features from current extent will be shown
*
* @default false
*/
accessor filterByMapExtent: boolean;
/**
* string: selected floor level
*
* @default ''
*/
accessor floorLevel: string;
/**
* boolean: When true the application will be in mobile mode, controls the mobile or desktop view
*
* @default false
*/
accessor isMobile: boolean;
/** ILayerExpression[]: Array of layer expressions for layers (filter configuration) */
accessor layerExpressions: ILayerExpression[];
/**
* string: Layer id of the feature from URL params
*
* @default ''
*/
accessor layerId: string;
/**
* string: Id of the zoom level from URL params
*
* @default ''
*/
accessor level: string;
/**
* string: The text that will display at the top of the landing page
*
* @default ''
*/
accessor loginTitle: string;
/** IMapInfo[]: array of map infos (name and id) */
accessor mapInfos: IMapInfo[];
/** esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */
accessor mapView: MapView | undefined;
/**
* string: Object id of the feature from URL params
*
* @default ''
*/
accessor objectId: string;
/**
* string: The word(s) to display in the reports submit button
*
* @default ''
*/
accessor reportButtonText: string;
/**
* boolean: When true reporting area layer should be honored if it exists
*
* @default false
*/
accessor reportingArea: boolean;
/**
* string: Reporting polyon layer for creating feature
*
* @default ''
*/
accessor reportingAreaLayer: string;
/**
* string: Message to be displayed when feature is outside the reportingAreaLayer
*
* @default ''
*/
accessor reportingAreaMessage: string;
/** IReportingOptions: Key options for reporting */
accessor reportingOptions: IReportingOptions | undefined;
/**
* string: The word(s) to display in the reports header
*
* @default ''
*/
accessor reportsHeader: string;
/**
* string: The message to display when the report has been submitted
*
* @default ''
*/
accessor reportSubmittedMessage: string;
/** ISearchConfiguration: Configuration details for the Search widget */
accessor searchConfiguration: ISearchConfiguration | undefined;
/**
* boolean: When true the comments from all users will be visible
*
* @default false
*/
accessor showComments: boolean;
/**
* boolean: When true the feature symbology of the feature will shown in the features list
*
* @default false
*/
accessor showFeatureSymbol: boolean;
/**
* boolean: When false comment will shown in single line in the comments list
*
* @default true
*/
accessor showFullCommentTitle: boolean;
/**
* boolean: To show only those features which are created by the logged in user
*
* @default false
*/
accessor showMyReportsOnly: boolean | undefined;
/**
* boolean: When true the profile image of the comment creator will be shown in the comments list
*
* @default false
*/
accessor showUserImageInCommentsList: boolean;
/** ISortFields: Configuration for sorting fields */
accessor sortFields: ISortFields | undefined;
/**
* string: sorting option to show the feature list
*
* @default 'newest'
*/
accessor sortOption: string;
/**
* string: Text to be displayed that will allow user to know they can submit new reports
*
* @default ''
*/
accessor submitNewReportsMessage: string;
/**
* theme: light | dark theme to be used
*
* @default 'light'
*/
accessor theme: theme;
/**
* number: default scale to zoom to when zooming to a single point feature
*
* @default 15358
*/
accessor zoomToScale: number;
/**
* Method to update layerExpressions with the translated values
*
* @param t9nLayerExpressions
*/
updateLayerExpressionsT9n(t9nLayerExpressions: ILayerExpression[]): Promise;
/** Emitted when toggle panel button is clicked in reporter */
readonly togglePanel: import("@arcgis/lumina").TargetedEvent;
readonly "@eventTypes": {
togglePanel: CrowdsourceReporter["togglePanel"]["detail"];
};
}