Home Reference Source Repository
import IsolatedShadowImpl from 'f.lux/src/IsolatedShadowImpl.js'
public class | source

IsolatedShadowImpl

Extends:

ShadowImplObjectShadowImpl → IsolatedShadowImpl

Method Summary

Public Methods
public
public

obsolete(callback: *)

Inherited Summary

From class ShadowImpl
public
public

[_cache]: {}

public
public
public
public
public
public

[_name]: *

public
public
public
public
public
public
public
public
public
public

[_time]: *

public
public

Maps the getter and setter (if appropriate) onto the parent property.

public

Gets the next model state for the property.

public

Schedules an UPDATE action with the store.

public

[_setupShadow](prev: *, inCtor: *): *

public

access(): *

public

assign(nextState: *, name: *): *

Replace the value of this property.

public

Invoked during defineProperty() to define children properties marked for automount

public

Prevents all children from being able to obtain model in update() callbacks.

public

blockFurtherUpdates(replaced: *)

Prevents this property and descendents from providing a model to update() callbacks.

public

cache(): *

public

changeParent(newParent: *)

public

Subclasses should implement this method in such a way as not to trigger a mapping.

public

Gets the implementation objects managed by this property.

public

copyState(): *

Creates a deep clone of the current property state.

public

createCopy(time: *, newModel: *, parentImpl: *): *

Create a copy of the internals during reshadowing when the property has not changed during the update process but some descendant has been modified.

public

defaults(state: *)

Merges a new state into this property by using the 'state' parameter to set default values, ie it will not overwrite any existing values.

public

Maps all child properties onto this property using Object.defineProperty().

public

definePropertyGetValue(state: *): *

Invoked on shadow getter access to obtain the get value.

public

definePropertySetValue(newValue: *)

Invoked on shadow property assignment to perform the replacement f.lux action.

public

didShadow(time: *, newRoot: *)

public

dispatchUpdate(action: *)

Intended for use by update() and replaying actions.

public

dotPath(): *

Helpful debugging utility that returns the path joined by '.'.

public
public

findByPath(path: *): *

public

getChild(name: *): *

Gets a child implementation matching a property name or undefined if no such property exists.

public

Gets if the property has an child properties (not whether child properties are supported).

public

Gets if an update has occurred directly to this property.

public

invalidate(childImpl: *, source: *)

Marks property and ancestors as invalid.

public

isActive(): *

Gets if the property represents live data.

public

isIsolated(): *

public

isLeaf(): *

public

Gets if defineChildProperties() has been invoked.

public

Gets if this property type reprsents a primitive javascript type.

public

isRoot(): *

public

Gets whether the property value supports calls to update().

public

isValid(): *

Gets if this property or one of its child properties has pending updates.

public

keys()

Gets the keys/indices for this property.

public

latest(): *

public

merge(state: *)

Merges a new state into this property.

public

name(): *

public

nextName(): *

Gets the name after all model updates are performed.

public

nextState(): *

Gets the model as it will be once all pending changes are recorded with the store.

public

obsolete(callback: *)

Marks this property as obsolete.

public
public

obsoleteTree(callback: *)

Marks the entire subtree as inactive, aka dead.

public

Hook for when this property is no longer represented in the system state.

public

onReshadow(prev: *)

Property has just been reshadowed.

public

Hook for when this property is no longer represented in the system state due to a state update - not a replacement.

public

owner(): *

public

parent(): *

public

path(): *

Gets an array with the property names/indices from the root to this property.

public

property(): *

public

readonly(): *

public

replaced(): *

public

reshadowed(prev: *)

Invoked by reshadow() function for invalid parent property implementations when the directly managed state did not change.

public

root(): *

public

setReadonly(readonly: *)

Sets the readonly flag which will prevent a 'set' function being set in defineProeprty().

public

Creates shadow properties for root properties and sets this property on the parent property for non-root properties.

public

shader(state: *): *

Gets the shader needed to recreate the shadow property for the state.

public

shadow(): *

Gets the user facing property represented by this implementation object.

public

slashPath(): *

Helpful debugging utility that returns the path joined by '.'.

public

state(): *

public

store(): *

public

Transfers the nextName to the name attribute.

public

time(): *

public

toJSON(): {"name": *, "path": *, "active": *, "valid": *, "state": *}

Gets a compact version of this internal's state. It does NOT provide a JSON representation of the model state. The actual Property.toJSON() method returns the model JSON representation.

public

toString(): *

public

update(callback: *): boolean

Makes changes to the next property state.

public

updateName(name: *)

Changes the name this property will have after updates.

public

Marks this property as dead.

public

Gets if shadow property is allowing state updates.

public

waitFor(callback: *)

Invokes a callback once all pending changes have occurred.

public

willShadow(parentWillUnshadow: boolean)

Invoked by the shadowing process to invoke appropriate Property life-cycle methods.

From class ObjectShadowImpl
public
public

[_impls]: {}

public
public

[_nextMapping]: {...undefined: Object}

public

[_size]: *

public
public

childCount(): *

public
public

children(): *

public

clear(): *

public

defaults(state: *)

public

defineChildProperties(prev: *, inCtor: *)

public

defineChildProperty(name: *, elementShader: *, state: *, prev: *, inCtor: boolean)

public

delete(key: *)

public

entries(): {...undefined: Object}

public

extend(sources: *)

public

get(k: *): *

public

getChild(name: *): *

public

has(k: *): *

public

isMapped(): *

public

keys(): *

public

keys(): *

public

merge(state: *): *

public
public

onReshadow(prev: *)

public

removeChild(child: *)

public

removeChildAt(key: *)

public

set(k: *, v: *): *

public

size(): *

public

toJSON(): {...undefined: Object, "mapped": *, "type": string}

public

values(): *

Public Methods

public isRoot(): boolean source

Override:

ShadowImpl#isRoot

Return:

boolean

public obsolete(callback: *) source

Marks this property as obsolete. Once marked obsolete a property may not interact with the store. A property becomes obsolete after it's value or ancestor's value has changed and the update process has completed.

This method does not affect subproperties.

Override:

ShadowImpl#obsolete

Params:

NameTypeAttributeDescription
callback *