@arcgis/map-components
Version:
ArcGIS Map Components
56 lines (55 loc) • 3.11 kB
TypeScript
import { default as SpatialReference } from '@arcgis/core/geometry/SpatialReference';
import { default as Layer } from '@arcgis/core/layers/Layer';
import { JsxNode, LitElement, ToElement } from '@arcgis/lumina';
import { RenderResult } from '@arcgis/lumina-compiler/testing';
import { Service } from '@webgis/service-mocks';
import { TemplateResult } from 'lit-html';
import { ArcgisMap } from '../components/arcgis-map/customElement.js';
import { ArcgisPlacement } from '../components/arcgis-placement/customElement.js';
import { ArcgisScene } from '../components/arcgis-scene/customElement.js';
import * as serviceMocks from "@webgis/service-mocks";
interface CommonOptions {
services?: Service[];
placement?: ArcgisPlacement["position"];
}
interface MapOptions {
layers?: Layer[];
}
interface MapOptions2D extends MapOptions {
}
interface MapOptions3D extends MapOptions {
}
interface ViewOptions {
spatialReference?: SpatialReference;
width?: number;
height?: number;
}
interface ViewOptions2D extends ViewOptions {
}
interface ViewOptions3D extends ViewOptions {
}
type DefineOptions<MapOptionsType, ViewOptionsType> = CommonOptions & {
mapOptions?: MapOptionsType;
viewOptions?: ViewOptionsType;
};
type Options2D = DefineOptions<MapOptions2D, ViewOptions2D>;
type Options3D = DefineOptions<MapOptions3D, ViewOptions3D>;
export interface ToRenderResult<ViewComponent extends HTMLElement, Component extends HTMLElement> extends RenderResult<Component> {
viewEl: ToElement<ViewComponent>;
}
type JsxFn = () => JsxNode;
type MountFunctionSignature<OptionsType extends Options2D | Options3D, ViewComponent extends HTMLElement> = {
<const TagName extends keyof DeclareElements>(tagName: TagName, options?: OptionsType): Promise<ToRenderResult<ViewComponent, DeclareElements[TagName]>>;
<Class extends typeof LitElement>(template: Class | JsxFn | TemplateResult, options?: OptionsType): Promise<ToRenderResult<ViewComponent, InstanceType<Class>>>;
<TagName extends keyof DeclareElements = never>(jsx: JsxFn | TemplateResult, options?: OptionsType): Promise<ToRenderResult<ViewComponent, [TagName] extends [never] ? LitElement : DeclareElements[TagName]>>;
<Component extends LitElement>(template: JsxFn | TemplateResult | (new () => Component), options?: OptionsType): Promise<ToRenderResult<ViewComponent, Component>>;
};
export declare const mountWithMap: MountFunctionSignature<Options2D, ArcgisMap>;
export declare const mountWithScene: MountFunctionSignature<Options3D, ArcgisScene>;
export declare function setupSceneComponent(viewEl: ToElement<ArcgisScene>, viewOptions?: ViewOptions3D): void;
export declare function waitViewReady(el: ToElement<ArcgisMap> | ToElement<ArcgisScene>): Promise<void>;
export declare function expectToBeSome<T>(value: T | null | undefined): asserts value is NonNullable<T>;
export declare function makeDefaultTileService(): serviceMocks.ServiceMap;
export declare function makeTopoVectorBasemapServices(): serviceMocks.Service[];
export declare function makeWorldElevationService(): serviceMocks.ServiceImage;
export {};