ObjectProperty
Extends:
Direct Subclass:
A generic object property type that supports keyed child properties access.
The default shadow class is Shadow.
Use ObjectProperty
when you want to place a full custom API on a javascript object or just want
an object without any methods. By default, properties can be accessed/updated using dot syntax and
the shadow does not provide any access or property manipulation methods.
The _keyed
instance variable exposes a KeyedApi instance for working with properties.
Readonly properties cannot be updated using the shadow so the this._keyed
is used set the value
or remove it from the object. For example,
this._keyed.set("updated", Date());
would set the updated
shadow property with a string value for the current time.
Static Method Summary
Static Public Methods | ||
public static |
createClass(shadowType: Object | Shadow, typeCallback: function(type: StateType), initialState: Object): ObjectProperty Factory function for creating an |
|
public static |
defineType(PropClass: ObjectProperty, ShadowType: Object | Shadow, typeCallback: function(type: StateType), initialState: Object) Factory function for setting up the StateType |
Constructor Summary
Public Constructor | ||
public |
constructor(stateType: StateType) If a StateType is not passed to this constructor then one is located using StateType.from thus ensuring the f.lux shadowing process is defined for this property. |
Inherited Summary
From class Property | ||
public |
|
|
public |
|
|
public |
|
|
public |
[_checkpoint]: {"data": *} |
|
public |
[_impl]: * |
|
public |
|
|
public |
[_mixins]: *[] |
|
public |
[_parent]: * |
|
public |
[_pid]: * |
|
public |
[_readonly]: * |
|
public |
[_shader]: * |
|
public |
[_stateType]: * |
|
public |
[_store]: * |
|
public |
Use this.$$() in shadow methods to get access to the property. |
|
public |
Gets if autoshadowing is enabled for this property. |
|
public |
Copies the current actual state for later reset using Property#resetToCheckpoint. |
|
public |
Clears an existing checkpoint created using Property#checkpoint. |
|
public |
Creates the object to be assigned to the shadow.$ property. |
|
public |
Gets the path from root property using a dot ( |
|
public |
getCheckpoint(): * Gets the checkpoint state previously recorded using Property#checkpoint. |
|
public |
getInitialState(state: *): * Gets the initial state for a property at the beginning of the property mounting process. |
|
public |
Gets if an existing checkpoint has be created using Property#checkpoint. |
|
public |
initialState(): * Gets the result from StateType#computeInitialState. |
|
public |
Gets if the property is currently shadowing an actual state property. |
|
public |
Gets if property is an actual isolated property managed by the store. |
|
public |
Gets if the property allows for assignment through the shadow state, ie |
|
public |
Gets if this is the shadow state root property. |
|
public |
The property name by which this property is referenced by the Property.parent. |
|
public |
nextState(): * Gets what the actual state for this property will be after the Store updates all pending actions. |
|
public |
Gets the object containing or managing this property. |
|
public |
Gets the parent property. |
|
public |
Gets the parent's shadow property. |
|
public |
path(): [] Gets the Property#name components from the root property to this property. |
|
public |
Gets the unique f.lux ID for this property. |
|
public |
propertyChildInvalidated(childProperty: Property, sourceProperty: Property) A child property or one of its descendents wil be changing state. |
|
public |
Invoked by the f.lux shadowing process after a property initially shadows a state property. |
|
public |
Invoked by the f.lux shadowing process after a property is reshadowed. |
|
public |
Invoked by the f.lux shadowing process just before a property initially shadows a state property. |
|
public |
Invoked by the f.lux shadowing process just before a property will be removed from the shadow state. |
|
public |
Replaces the current property state with a checkpoint state previously recorded using Property#checkpoint. |
|
public |
Gets the shadow state root property for the Store managing this property. |
|
public |
rootShadow(): Shadow Gets the root shadow state for the Store managing this property. |
|
public |
setAutoshadow(auto: boolean): * Sets the auto shadow property flag. |
|
public |
setImplementationClass(ImplClass: *) |
|
public |
setInitialState(state: *): Property Explicitly sets an initial state that will be used if the state tree does not have a value for this property. |
|
public |
setReadonly(readonly: *) Sets the readonly flag which will prevent an assignment from changing the value. |
|
public |
setShadowClass(ShadowClass: Shadow) Sets the class to be used for the shadow api |
|
public |
shader(state: *): * Gets the Shader instance for this property. |
|
public |
shadowClass(): * Returns the Shadow subclass used to virtualize the state property. |
|
public |
Gets the path from root property using a slash ( |
|
public |
state(): * Gets the actual state being shadowed. |
|
public |
stateType(): * Gets the StateType used for creating this property. |
|
public |
store(): * Gets the {@Link Store} containing the application state. |
|
public |
touch() Triggers a reshadow of the properties shadow state. |
|
public |
typeName(): * Gets this property's StateType.typeName value. |
|
public |
Makes changes to the next proeprty state. |
Static Public Methods
public static createClass(shadowType: Object | Shadow, typeCallback: function(type: StateType), initialState: Object): ObjectProperty source
Factory function for creating an ObjectProperty
subclass. The generated class will have
the type
StateType descriptor set upon return.
Example usage:
class UiShadow extends Shadow {
// definition here
}
export default ObjectProperty.createClass(UiShadow, type => {
// configure type variable
});
Params:
Name | Type | Attribute | Description |
shadowType | Object | Shadow |
|
|
typeCallback | function(type: StateType) |
|
a callback function that will be passed the StateType spec for additional customization, such as setting autoshadow, initial state, or readonly. |
initialState | Object |
|
={} - the initial state for the new property. |
public static defineType(PropClass: ObjectProperty, ShadowType: Object | Shadow, typeCallback: function(type: StateType), initialState: Object) source
Factory function for setting up the StateType type
class variable with an appropriately
configured intial state.
Example usage:
export default class TodoProperty extends ObjectProperty {
// implement property here
}
class TodoShadow extends Shadow {
// implement shadow api here
}
ObjectProperty.defineType(TodoProperty, TodoShadow, type => {
// configure type variable
});
Params:
Name | Type | Attribute | Description |
PropClass | ObjectProperty |
|
|
ShadowType | Object | Shadow |
|
Shadow` subclass or object literal api definition. If object literal specified, each property and function is mapped onto a Shadow subclass. |
typeCallback | function(type: StateType) |
|
a callback function that will be passed the StateType spec for additional customization, such as setting autoshadow, initial state, or readonly. |
initialState | Object |
|
the initial state for the new property. |
Public Constructors
public constructor(stateType: StateType) source
If a StateType is not passed to this constructor then one is located using StateType.from thus ensuring the f.lux shadowing process is defined for this property.