Constructor Summary
Public Constructor | ||
public |
constructor(time: *, property: *, name: *, state: *, parent: *, shader: *, prev: *) |
Member Summary
Public Members | ||
public |
|
|
public |
[_impls]: {} |
|
public |
|
|
public |
[_nextMapping]: {...undefined: Object} |
|
public |
[_size]: * |
Method Summary
Public Methods | ||
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 |
|
|
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 |
|
|
public |
values(): * |
Inherited Summary
From class ShadowImpl | ||
public |
[_access]: * |
|
public |
[_cache]: {} |
|
public |
|
|
public |
|
|
public |
|
|
public |
|
|
public |
|
|
public |
[_name]: * |
|
public |
[_nextName]: * |
|
public |
|
|
public |
|
|
public |
[_property]: * |
|
public |
[_readonly]: * |
|
public |
|
|
public |
|
|
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 |
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 |
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 |
|
|
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 |
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 |
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 |
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 |
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 |
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 Constructors
public constructor(time: *, property: *, name: *, state: *, parent: *, shader: *, prev: *) source
Override:
ShadowImpl#constructorParams:
Name | Type | Attribute | Description |
time | * | ||
property | * | ||
name | * | ||
state | * | ||
parent | * | ||
shader | * | ||
prev | * |
Public Methods
public automountChildren(prev: *) source
Invoked during defineProperty() to define children properties marked for automount
Override:
ShadowImpl#automountChildrenParams:
Name | Type | Attribute | Description |
prev | * |
public childCount(): * source
Subclasses should implement this method in such a way as not to trigger a mapping.
Override:
ShadowImpl#childCountReturn:
* |
public children(): * source
Gets the implementation objects managed by this property.
Override:
ShadowImpl#childrenReturn:
* |
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#defaultsParams:
Name | Type | Attribute | Description |
state | * |
public defineChildProperties(prev: *, inCtor: *) source
Maps all child properties onto this property using Object.defineProperty().
Override:
ShadowImpl#defineChildPropertiesParams:
Name | Type | Attribute | Description |
prev | * | ||
inCtor | * |
public defineChildProperty(name: *, elementShader: *, state: *, prev: *, inCtor: boolean) source
Params:
Name | Type | Attribute | Description |
name | * | ||
elementShader | * | ||
state | * | ||
prev | * | ||
inCtor | boolean |
|
public delete(key: *) source
Params:
Name | Type | Attribute | Description |
key | * |
public extend(sources: *) source
Params:
Name | Type | Attribute | Description |
sources | * |
public getChild(name: *): * source
Gets a child implementation matching a property name or undefined if no such property exists.
Override:
ShadowImpl#getChildParams:
Name | Type | Attribute | Description |
name | * |
Return:
* |
public isMapped(): * source
Gets if defineChildProperties() has been invoked.
Override:
ShadowImpl#isMappedReturn:
* |
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#keysReturn:
* |
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#keysReturn:
* |
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#mergeParams:
Name | Type | Attribute | Description |
state | * |
Return:
* |
public onReshadow(prev: *) source
Property has just been reshadowed.
Override:
ShadowImpl#onReshadowParams:
Name | Type | Attribute | Description |
prev | * |
public removeChild(child: *) source
Params:
Name | Type | Attribute | Description |
child | * |
public removeChildAt(key: *) source
Params:
Name | Type | Attribute | Description |
key | * |
public toJSON(): {...undefined: Object, "mapped": *, "type": string} source
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.