/** * ベクトル地図のレイヤープロパティに関連する機能を提供する。 * * @module */ import { Json } from "../util/json_type"; import { Context, Feature, FeatureState, Specification as ExprSpec } from "./expression"; /** * レイヤーのプロパティの仕様情報を表現する。 */ export type Specification = { /** * プロパティ名 */ name: string; /** * プロパティ種別 */ category: 'paint' | 'layout'; } & ExprSpec; /** * レイヤー内のプロパティ値を表現する。 */ export declare class Property { /** * プロパティ名 */ readonly name: string; /** * @throws {Error} 構文解析または型検査に失敗 * * @param prop_spec プロパティの仕様情報 * @param json_value スタイルで指定されたプロパティ値 */ constructor(context: Context, prop_spec: Specification, json_value?: Json); /** * `layout` に属するプロパティか? */ isLayoutType(): boolean; /** * 式の評価値は状態によらず一定値であるか? * * これは * `!this.hasZoom() && !this.hasFData() && !this.hasFState()` * と同値である。 */ private isConstant; /** * 式は `zoom` 演算が評価される可能性があるか? */ hasZoom(): boolean; /** * 式はフィーチャデータを使った演算が評価される可能性があるか? */ hasFData(): boolean; /** * 式はフィーチャ状態を使った演算が評価される可能性があるか? */ hasFState(): boolean; /** * 式インスタンスを評価する。 * * [[constructor]] の `json_expr` に与えた式を評価して、その評価値 * を返す。 * * だだし、評価値が `prop_spec` に与えた型と一致しないときは、既定 * 値 (`prop_spec.default_value`) を返す。`prop_spec` に既定値を指 * 定していないときは `null` を返す。 * * @param context - グローバルの状態 * @param fdata - フィーチャの固定情報 * @param fstate - フィーチャの状態 * * @returns 評価結果を表すオブジェクト */ evaluate(context: Context, fdata?: Feature, fstate?: FeatureState): unknown; /** * `json_expr` を解析して、`this._has_*` プロパティを設定する。 * * TODO: `let` などの評価が特殊な式も考慮する必要がある。 */ private analyzeExpression; private readonly _is_layout; private _has_zoom; private _has_fdata; private _has_fstate; private readonly _evaluator; } //# sourceMappingURL=property.d.ts.map