DIR : /home/kozerus/public_html/pn/uize/site-source/js/Uize/Data/ValuePack.js
/home/kozerus/public_html/pn/uize/site-source/js/Uize/Data
/*______________
| ______ | U I Z E J A V A S C R I P T F R A M E W O R K
| / / | ---------------------------------------------------
| / O / | MODULE : Uize.Data.ValuePack Package
| / / / |
| / / / /| | ONLINE : http://www.uize.com
| /____/ /__/_| | COPYRIGHT : (c)2015-2016 UIZE
| /___ | LICENSE : Available under MIT License or GNU General Public License
|_______________| http://www.uize.com/license.html
*/
/* Module Meta Data
type: Package
importance: 1
codeCompleteness: 100
docCompleteness: 2
*/
/*?
Introduction
The =Uize.Data.ValuePack= module provides methods for packing just the values of an object structure into a values array, or unpacking such a packed values array to produce an object structure.
*DEVELOPERS:* `Chris van Rensburg`
*/
Uize.module ({
name:'Uize.Data.ValuePack',
superclass:'Uize.Class',
required:[
'Uize.Data.Diff',
'Uize.Data.Flatten',
'Uize.Json'
],
builder:function (_superclass) {
'use strict';
var
/*** Variables for Scruncher Optimization ***/
_Uize = Uize,
_Uize_Data = _Uize.Data,
_Uize_Json = _Uize.Json,
_Function = Function
;
return _superclass.subclass ({
instanceMethods:{
pack:function (_source) {
return this._packer (_source);
},
unpack:function (_source) {
return this._unpacker (_source);
}
},
stateProperties:{
archetype:{
value:{}
},
/*** derived properties ***/
_packer:{
derived:{
properties:'archetype',
derivation:function (_archetype) {
return _Function (
'a',
'return [' +
_Uize.keys (
_Uize_Data.Flatten.flatten (
_archetype,
function (_path) {
return 'a [' + _Uize.map (_path,_Uize_Json.to).join ('] [') + ']';
}
)
).join (',') +
']'
);
}
}
},
_unpacker:{
derived:{
properties:'archetype',
derivation:function (_archetype) {
var _propertyNo = -1;
return _Function (
'a',
'return ' +
_Uize_Json.to (
_Uize_Data.Diff.diff (
_archetype,
{},
function (_property) {
_property.value = '```' + ++_propertyNo + '```';
return _property;
}
)
).replace (
/'```(\d+)```'/g,
'a [$1]'
) + ';'
);
}
}
}
}
});
}
});
//
koh5_pano
Drag mouse to navigate.
Navigation
- Left/Right Mouse drag: Changes camera heading.
- Up/Sown Mouse drag: Changes camera pitch.
- Scroll wheel: Changes camera field of view.
- I-Key: Displays Info panel with canvas size, image size and FPS.
17.Aug.2010, Martin Wengenmayer