aia-kit
Version:
Read, Parse, Edit, Write, Analyze AIA/AIX/AIS files.
64 lines (63 loc) • 2.38 kB
TypeScript
import { Component } from "./component.js";
import type { ComponentJson } from "./types.js";
/**
* Class that describes a screen in an App Inventor project.
*
* @since 1.0.0
* @access public
*/
export declare class Screen {
name: string;
form: Component;
blocks: string;
constructor(name: string, form: Component, blocks: string);
/**
* Creates a new AIScreen object asynchronously.
*
* Asynchronously creating this object, as opposed to using a constructor, lets
* us generate all screens in a project simultaneously. This greatly reduces
* the overall load time of the page, especially in case of large AIAs, as the
* @see AIAReader::read function will not have to wait for the components of
* this screen to load before starting with the next.
*
* @since 1.0.0
* @access public
*
* @class
* @param {String} scm The scheme data for this screen as fetched from
* the AIA.
* @param {String} blk The stringified Blockly XML for this screen as
* fetched from the AIA.
* @param {String} name The name of this screen.
*
* @return {Screen} New AIScreen object.
*/
static init(name: string, scm: string, blk: string): Promise<Screen>;
/**
* Takes the raw scheme input from the AIA, parses it as a JSON array, and then
* generates all the component and property objects for this screen.
*
* @since 1.0.0
* @access private
*
* @param {String} scmJSON The raw scheme text fetched from the .scm file of
* the AIA.
*
* @return {Component} The Form component of this screen.
*/
static generateSchemeData(scmJSON: string): Promise<Component>;
/**
* Takes the JSON description of a component and asynchronously
* creates a new @see Component class representing it. Also recursively calls
* itself for every child of this component.
*
* @since 1.0.0
* @access private
*
* @param {String} componentJSON The JSON object describing this component.
*
* @return {Component} An object representing this component's properties and
* children.
*/
static generateComponent(componentJSON: ComponentJson): Promise<Component>;
}