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

IsolatedObjectShadowImpl

Extends:

ShadowImpl → IsolatedObjectShadowImpl

Method Summary

Public Methods
public

childCount(): *

public

children(): *

public

clear()

public

defaults(state: *)

public

defineChildProperties(prev: *, inCtor: *)

public

delete(k: *)

public

entries(): *

public

extend(sources: *)

public

get(k: *): *

public

has(k: *): *

public
public

isolated(): *

public

keys(): *

public

merge(state: *)

public

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

public

size(): *

public

values(): *

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.

Public Methods

public childCount(): * source

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

Override:

ShadowImpl#childCount

Return:

*

public children(): * source

Gets the implementation objects managed by this property.

Override:

ShadowImpl#children

Return:

*

public clear() source

public defaults(state: *) source

Merges a new state into this property by using the 'state' parameter to set default values, ie it will not overwrite any existing values. Useful when model objects arrive from external sources, such as an asyncrhonous save or a websocket based update.

Override:

ShadowImpl#defaults

Params:

NameTypeAttributeDescription
state *

public defineChildProperties(prev: *, inCtor: *) source

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

Override:

ShadowImpl#defineChildProperties

Params:

NameTypeAttributeDescription
prev *
inCtor *

public delete(k: *) source

Params:

NameTypeAttributeDescription
k *

public entries(): * source

Return:

*

public extend(sources: *) source

Params:

NameTypeAttributeDescription
sources *

public get(k: *): * source

Params:

NameTypeAttributeDescription
k *

Return:

*

public has(k: *): * source

Params:

NameTypeAttributeDescription
k *

Return:

*

public hasChildren(): * source

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

Override:

ShadowImpl#hasChildren

Return:

*

public isolated(): * source

Return:

*

public keys(): * source

Gets the keys/indices for this property.

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

Override:

ShadowImpl#keys

Return:

*

public merge(state: *) source

Merges a new state into this property. Useful when model objects arrive from external sources, such as an asyncrhonous save or a websocket based update.

Override:

ShadowImpl#merge

Params:

NameTypeAttributeDescription
state *

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

Params:

NameTypeAttributeDescription
k *
v *

Return:

*

public size(): * source

Return:

*

public values(): * source

Return:

*