    import IsolatedShadowImpl from 'f.lux/src/IsolatedShadowImpl.js'

public class | source

# IsolatedShadowImpl

#### Extends:

ShadowImpl → ObjectShadowImpl → IsolatedShadowImpl

## Method Summary

Public Methods
public | isRoot(): boolean |
public | obsolete(callback: *) |

## Inherited Summary

From class ShadowImpl
public | [_access]: * |
public | [_cache]: {} |
public | [_changed]: boolean |
public | [_dead]: boolean |
public | [_didShadowCalled]: boolean |
public | [_futureState]: * |
public | [_invalid]: boolean |
public | [_name]: * |
public | [_nextName]: * |
public | [_preventUpdates]: boolean |
public | [_previousTime]: * |
public | [_property]: * |
public | [_readonly]: * |
public | [_replaced]: boolean |
public | [_scheduled]: boolean |
public | [_shadow]: * |
public | [_state]: * |
public | [_time]: * |
public | [_createShadow](): * |
public | [_defineProperty](prev: *) Maps the getter and setter (if appropriate) onto the parent property. |
public | [_modelForUpdate](): * Gets the next model state for the property. |
public | [_scheduleUpdate](): * Schedules an UPDATE action with the store. |
public | [_setupShadow](prev: *, inCtor: *): * |
public | access(): * |
public | assign(nextState: *, name: *): * Replace the value of this property. |
public | automountChildren() Invoked during defineProperty() to define children properties marked for automount |
public | blockFurtherChildUpdates() 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 | childCount(): number Subclasses should implement this method in such a way as not to trigger a mapping. |
public | children() 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 | defineChildProperties(prev: ShadowImpl, inCtor: boolean) 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 | ensureMounted() |
public | findByPath(path: *): * |
public | getChild(name: *): * Gets a child implementation matching a property name or undefined if no such property exists. |
public | hasChildren(): * Gets if the property has an child properties (not whether child properties are supported). |
public | hasPendingChanges(): * 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 | isMapped(): boolean Gets if defineChildProperties() has been invoked. |
public | isPrimitive(): boolean Gets if this property type reprsents a primitive javascript type. |
public | isRoot(): * |
public | isUpdatable(): boolean 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 | obsoleteChildren() |
public | obsoleteTree(callback: *) Marks the entire subtree as inactive, aka dead. |
public | onReplaced() Hook for when this property is no longer represented in the system state. |
public | onReshadow(prev: *) Property has just been reshadowed. |
public | onUpdate() 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 | setupPropertyAccess(prev: *) 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 | switchName() 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 | updated() Marks this property as dead. |
public | updatesAllowed(): boolean 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 | [_automounted]: boolean |
public | [_impls]: {} |
public | [_mapped]: boolean |
public | [_nextMapping]: {...undefined: Object} |
public | [_size]: * |
public | automountChildren(prev: *) |
public | childCount(): * |
public | childMapping(): * |
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 | nextMapping(): * |
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:

Name | Type | Attribute | Description
callback | * |  |