/// 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"]; }; }