/// import type MapView from "@arcgis/core/views/MapView.js"; import type FeatureLayer from "@arcgis/core/layers/FeatureLayer.js"; import type { AppLayout, IBasemapConfig, IMapChange, IMapInfo, theme, VisibilityIconType } from "../../utils/interfaces.js"; import type { PublicLitElement as LitElement } from "@arcgis/lumina"; import type { UIPosition } from "@arcgis/core/views/ui/types.js"; import type { T9nMeta } from "@arcgis/lumina/controllers"; export abstract class MapCard extends LitElement { /** * Contains the translations for this component. * All UI strings should be defined here. * * @internal */ protected _translations: { mapName: string; more: string; filters: string; zoom: string; refresh: string; editMultiple: string; featureEditLimitNotice: string; clearSelection: string; share: string; copy: string; paste: string; } & T9nMeta<{ mapName: string; more: string; filters: string; zoom: string; refresh: string; editMultiple: string; featureEditLimitNotice: string; clearSelection: string; share: string; copy: string; paste: string; }>; /** AppLayout: the current app layout */ accessor appLayout: AppLayout | undefined; /** Array of objects containing proxy information for premium platform services. */ accessor appProxies: any; /** IBasemapConfig: List of any basemaps to filter out from the basemap widget */ accessor basemapConfig: IBasemapConfig | undefined; /** * string: when provided this layer ID will be used when the app loads * * @default '' */ accessor defaultLayerId: string; /** * string: Item ID of the web map that should be selected by default when the app loads * * @default '' */ accessor defaultWebmapId: string; /** * boolean: when true the basemap widget will be available * * @default false */ accessor enableBasemap: boolean; /** * boolean: when true the floor filter widget will be available * * @default false */ accessor enableFloorFilter: boolean; /** * boolean: when true the fullscreen widget will be available * * @default false */ accessor enableFullscreen: boolean; /** * boolean: when true the home widget will be available * * @default false */ accessor enableHome: boolean; /** * boolean: when true the layer list widget will be available * * @default true */ accessor enableLayerList: boolean; /** * boolean: when true the legend widget will be available * * @default false */ accessor enableLegend: boolean; /** * boolean: when true the map layer picker tool will be available * * @default false */ accessor enableMapLayerPicker: boolean; /** * boolean: when true the map picker tool will be available * * @default false */ accessor enableMapPicker: boolean; /** * boolean: when true the search widget will be available * * @default false */ accessor enableSearch: boolean; /** * boolean: when true the selectionTool tool will be available * * @default false */ accessor enableSelectionTool: boolean; /** * boolean: when true the share widget will be available * * @default false */ accessor enableShare: boolean; /** * boolean: when true map tools will be displayed within a single expand/collapse widget * when false widgets will be loaded individually into expand widgets * * @default false */ accessor enableSingleExpand: boolean; /** * string: Selection mode for the feature selection * * @default 'multiple' */ accessor featureSelectionMode: string; /** * boolean: When true the map display will be hidden * * @default false */ accessor hide: boolean; /** * boolean: When true map will shown is full screen * * @default false */ accessor isMapLayout: boolean; /** * When true the component will render an optimized view for mobile devices * * @default false */ accessor isMobile: boolean; /** * string: Id to pass in the map component * * @default 'arcgis-map' */ accessor mapComponentId: string; /** IMapInfo: key configuration details about the current map */ accessor mapInfo: IMapInfo | undefined; /** IMapInfo[]: array of map infos (name and id) */ accessor mapInfos: IMapInfo[]; /** Valid tools: 'legend', 'search', 'fullscreen', 'basemap', 'floorfilter', 'selectiontool' */ accessor mapToolsOrder: string[]; /** esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */ accessor mapView: MapView | undefined; /** * number: The placement index of the map widgets (legend, basemap, fullscreen etc). This index shows where to place the component relative to other components. * For example a value of 0 would place it topmost when position is top-*, leftmost for bottom-left and right most for bottom-right. * * @default 0 */ accessor mapWidgetsIndex: number; /** * UIPosition: The position details for the mobile map tools * * @default 'top-leading' */ accessor mapWidgetsPosition: UIPosition; /** * 's' | 'm' | 'l': Used for optional map tool widget * * @default 'm' */ accessor mapWidgetsSize: "l" | "m" | "s"; /** * UIPosition: The position details for the mobile map tools * * @default 'top-right' */ accessor mobileMapWidgetsPosition: UIPosition; /** Valid tools: 'map-picker', 'map-layer-picker' */ accessor mobileToolsOrder: string[]; /** * boolean: When true the paste action will be enabled * * @default false */ accessor pasteEnabled: boolean; /** number[]: A list of ids that are currently selected */ accessor selectedFeaturesIds: (number | string)[]; /** FeatureLayer: Selected layer */ accessor selectedLayer: FeatureLayer | undefined; /** * boolean: When true the share options will include embed option * * @default false */ accessor shareIncludeEmbed: boolean; /** * boolean: When true the share options will include social media sharing * * @default false */ accessor shareIncludeSocial: boolean; /** * boolean: When true only the copy and paste actions will be shown in the selection tool * * @default false */ accessor showCopyPasteActions: boolean; /** * boolean: When true only editable layers that support the update capability will be available * * @default false */ accessor showOnlyUpdatableLayers: boolean; /** * boolean: When true the map widget tools will have no margin between them. * When false the map widget tools will have a margin between them. * * @default false */ accessor stackTools: boolean; /** theme: 'light' | 'dark' theme to be used */ accessor theme: theme | undefined; /** * VisibilityIconType: visibility icon for the layer list widget * * @default 'eyeball' */ accessor visibilityIcon: VisibilityIconType; /** * 's' | 'm' | 'l': Used for Zoom and Home tools * * @default 'm' */ accessor zoomToolsSize: "l" | "m" | "s"; /** number: default scale to zoom to when zooming to a single point feature */ accessor zoomToScale: number | undefined; /** Reset the filter */ resetFilter(): Promise; /** * updates the filter * * @param active */ updateFilterState(active: boolean): Promise; /** updates the layer in map layer picker */ updateLayer(): Promise; /** Emitted before a new map is loaded */ readonly beforeMapChanged: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when clear selection button is clicked */ readonly clearSelection: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when copy action is clicked */ readonly copyFeatures: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when edit multiple action is clicked */ readonly editMultipleFeatures: import("@arcgis/lumina").TargetedEvent; /** Emitted when the features have been copied to the clipboard */ readonly featuresCopied: import("@arcgis/lumina").TargetedEvent; /** Emitted when a new map is loaded */ readonly mapChanged: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when paste action is clicked */ readonly pasteFeatures: import("@arcgis/lumina").TargetedEvent; /** Emitted on demand when filter action is clicked */ readonly toggleFilter: import("@arcgis/lumina").TargetedEvent; readonly "@eventTypes": { beforeMapChanged: MapCard["beforeMapChanged"]["detail"]; clearSelection: MapCard["clearSelection"]["detail"]; copyFeatures: MapCard["copyFeatures"]["detail"]; editMultipleFeatures: MapCard["editMultipleFeatures"]["detail"]; featuresCopied: MapCard["featuresCopied"]["detail"]; mapChanged: MapCard["mapChanged"]["detail"]; pasteFeatures: MapCard["pasteFeatures"]["detail"]; toggleFilter: MapCard["toggleFilter"]["detail"]; }; }