UNPKG

@plattar/plattar-ar-adapter

Version:

Plattar AR Adapter for interfacing with Google & Apple WebAR

129 lines (128 loc) 5.46 kB
import { Scene } from "@plattar/plattar-api"; export type SceneProductDataMetaType = "sceneproduct" | "scenemodel" | "product"; export interface SceneProductData { scene_product_id: string; product_variation_id: string; meta_data: SceneProductDataMeta; } export interface SceneProductDataMeta { augment: boolean; type: SceneProductDataMetaType; } export interface DecodedConfiguratorState { readonly scene: Scene; readonly state: ConfiguratorState; } /** * Manages a Configuration State of multiple Products with multiple Variations * Allows easily changing */ export declare class ConfiguratorState { private readonly _state; private readonly _mappedVariationIDValues; private readonly _mappedVariationSKUValues; constructor(state?: string | null | undefined); /** * Modifyes the SceneProduct that this Variation SKU belongs to and changes for * purposes of Configuration */ setVariationSKU(productVariationSKU: string): void; /** * Modifyes the SceneProduct that this Variation belongs to and changes for * purposes of Configuration */ setVariationID(productVariationID: string): void; /** * Adds a new Scene Product/Variation combo with meta-data into the Configurator State * * @param sceneProductID - The Scene Product ID to be used (as defined in Plattar CMS) * @param productVariationID - The Product Variation ID to be used (as defined in Plattar CMS) * @param metaData - Arbitrary meta-data that can be used against certain operaions */ setSceneProduct(sceneProductID: string, productVariationID: string, metaData?: SceneProductDataMeta | null | undefined): void; /** * Adds a new SceneModel with meta-data into the Configurator State. Note that the SceneProductDataMeta will * override the isSceneModel variable and assign to "true" automatically * * @param SceneModelID - The SceneModel ID to add * @param metaData - Arbitrary meta-data that can be used against certain operaions */ setSceneModel(SceneModelID: string, metaData?: SceneProductDataMeta | null | undefined): void; /** * Adds a new Product with meta-data into the Configurator State * * @param productID - The Product ID to add * @param metaData - Arbitrary meta-data that can be used against certain operaions */ setProduct(productID: string, productVariationID: string, metaData?: SceneProductDataMeta | null | undefined): void; /** * Adds a new Scene Product/Variation combo with meta-data into the Configurator State * * @param sceneProductID - The Scene Product ID to be used (as defined in Plattar CMS) * @param productVariationID - The Product Variation ID to be used (as defined in Plattar CMS) * @param metaData - Arbitrary meta-data that can be used against certain operaions */ addSceneProduct(sceneProductID: string, productVariationID: string, metaData?: SceneProductDataMeta | null | undefined): void; /** * Search and return the data index reference for the provided Scene Product ID * if not found, will return null * @param sceneProductID */ findSceneProductIndex(sceneProductID: string): any[] | null; /** * Search and return the data for the provided Scene Product ID * if not found, will return null * @param sceneProductID */ findSceneProduct(sceneProductID: string): SceneProductData | null; /** * Iterate over the internal state data */ forEach(callback: (data: SceneProductData) => void): void; /** * Compose and return an array of all internal objects */ array(): Array<SceneProductData>; /** * @returns Returns the first reference of data in the stack, otherwise returns null */ first(): SceneProductData | null; /** * @returns Returns the first reference of data in the stack that matches a type, otherwise returns null */ firstOfType(type: SceneProductDataMetaType): SceneProductData | null; firstActiveOfType(type: SceneProductDataMetaType): SceneProductData | null; get length(): number; /** * Decodes and returns an instance of ConfiguratorState from a previously * encoded state * @param state - The previously encoded state as a Base64 String * @returns - ConfiguratorState instance */ static decode(state: string): ConfiguratorState; /** * Decodes a previously generated state * @param sceneID * @param state * @returns */ static decodeState(sceneID?: string | null | undefined, state?: string | null | undefined): Promise<DecodedConfiguratorState>; /** * Generates a new ConfiguratorState instance from all SceneProducts and default * variations from the provided Scene ID * @param sceneID - the Scene ID to generate * @returns - Promise that resolves into a ConfiguratorState instance */ static decodeScene(sceneID?: string | null | undefined): Promise<DecodedConfiguratorState>; /** * Encode and return the internal ConfiguratorState as a Base64 String * @returns - Base64 String */ encode(): string; encodeSceneGraphID(): Promise<string>; /** * Compiles and returns the Dynamic Scene Graph (Updated for 2025 for DynamicAR) * NOTE: Eventually this structure should replace ConfiguratorState */ get sceneGraph(): any; }