@arcgis/map-components
Version:
ArcGIS Map Components
139 lines (138 loc) • 5.99 kB
TypeScript
/// <reference path="../../index.d.ts" />
import type SceneView from "@arcgis/core/views/SceneView.js";
import type Slide from "@arcgis/core/webscene/Slide.js";
import type Graphic from "@arcgis/core/Graphic.js";
import type Point from "@arcgis/core/geometry/Point.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { T9nMeta } from "@arcgis/lumina/controllers";
/**
* The Presentation component allows to present slides of a web scene in a presentation mode
* and supports navigating between the slides of a web scene.
*
* @since 5.0
* @internal
*/
export abstract class ArcgisPresentation extends LitElement {
/** @internal */
protected _messages: Partial<{
componentLabel: string;
slides: string;
slideNavAriaText: string;
previous: string;
next: string;
restart: string;
legend: string;
}> & T9nMeta<{
componentLabel: string;
slides: string;
slideNavAriaText: string;
previous: string;
next: string;
restart: string;
legend: string;
}>;
/**
* If true, the component will not be destroyed automatically when it is
* disconnected from the document. This is useful when you want to move the
* component to a different place on the page, or temporarily hide it. If this
* is set, make sure to call the [destroy()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-presentation/#destroy) method when you are done to
* prevent memory leaks.
*
* @default false
*/
accessor autoDestroyDisabled: boolean;
/**
* Enable navigation with the keyboard
* by using the arrow keys or page up/page down keys
*
* @default false
*/
accessor keyboardNavigationEnabled: boolean;
/**
* specifies the size of the component
*
* @default "m"
*/
accessor scale: "l" | "m" | "s";
/**
* Show the slice analysis of a slide interactive so manipulators will be displayed, allowing users to click and drag to edit the analysis.
* Per default interactive is set to false.
*
* @default false
* @see [SliceAnalysisView3D.interactive](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/SliceAnalysisView3D/#interactive)
*/
accessor sliceAnalysisInteractive: boolean;
/**
* Disable display of captions when slide is applied.
* Per default the display of captions is enabled.
*
* @default false
*/
accessor slideCaptionsDisabled: boolean;
/** The id of the slide applied to the view */
accessor slideId: string | undefined;
/**
* Disable display of legend when slide is applied.
* Per default the display of legend is enabled.
*
* @default false
*/
accessor slideLegendDisabled: boolean;
/**
* Disable display of popup when slide with popup is applied.
* Per default the display of popup is enabled.
* The events arcgisPopupFeaturesRetrieved and arcgisPopupFeatureNotFound will be emitted also when popups are disabled.
*
* @default false
*/
accessor slidePopupDisabled: boolean;
/**
* The view associated with the component.
* > **Note:** The recommended approach is to fully migrate applications to use map and scene components and avoid using MapView and SceneView directly. However, if you are migrating a large application from widgets to components, you might prefer a more gradual transition. To support this use case, the SDK includes this `view` property which connects a component to a MapView or SceneView. Ultimately, once migration is complete, the arcgis-presentation component will be associated with a map or scene component rather than using the `view` property.
*/
accessor view: SceneView | undefined;
/** Permanently destroy the component */
destroy(): Promise<void>;
/**
* Fires after a slide with a popup reference element has been applied, but the component was unable to retrieve the popup feature.
* This event may be used to show a custom error message for such cases.
*
* @see [SlideElements.popupInfo](https://developers.arcgis.com/javascript/latest/references/core/webscene/support/SlideElements/#popupInfo)
* @example
* ```js
* reactiveUtils.on(()=> component, "arcgisPopupFeatureNotFound", (event)=>{
* // show error message if popup feature has not been found
* console.error("Unable to retrieve popup feature");
* });
* ```
*/
readonly arcgisPopupFeatureNotFound: import("@arcgis/lumina").TargetedEvent<this, { slide: Slide; }>;
/**
* Fires after the popup feature(s) of a slide have been retrieved from the service or from the view.
* This event may be used to show the popup graphic not in a popup, but in another component, e.g. ArcgisFeature.
*
* @see [ArcgisFeature](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-feature/)
* @example
* ```js
* reactiveUtils.on(()=> component, "arcgisPopupFeaturesRetrieved", (event)=>{
* const { features, slide } = (
* event as CustomEvent<{ slide: Slide; features: Graphic[]; location: Point | undefined }>
* ).detail;
* const arcgisFeature = document.querySelector("arcgis-feature");
* arcgisFeature.graphic = features.length > 0 ? features[0] : null;
* });
* ```
*/
readonly arcgisPopupFeaturesRetrieved: import("@arcgis/lumina").TargetedEvent<this, {
slide: Slide;
features: Graphic[];
location: Point | undefined;
}>;
/** Emitted when the component associated with a map or scene view is ready to be interacted with. */
readonly arcgisReady: import("@arcgis/lumina").TargetedEvent<this, void>;
readonly "@eventTypes": {
arcgisPopupFeatureNotFound: ArcgisPresentation["arcgisPopupFeatureNotFound"]["detail"];
arcgisPopupFeaturesRetrieved: ArcgisPresentation["arcgisPopupFeaturesRetrieved"]["detail"];
arcgisReady: ArcgisPresentation["arcgisReady"]["detail"];
};
}