ende 0.4.25 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/component.json +0 -1
- data/lib/assets/javascripts/aura/extensions/domain.js.coffee +55 -0
- data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +13 -4
- data/lib/assets/javascripts/aura/extensions/platform.js.coffee +8 -2
- data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +10 -21
- data/lib/assets/javascripts/aura/extensions/stamps/stampit.js +242 -568
- data/lib/assets/javascripts/aura/extensions/widget/composable.js.coffee +18 -35
- data/lib/assets/javascripts/config/load_components.js.coffee +7 -5
- data/lib/assets/javascripts/widgets/attachable/main.js.coffee +77 -0
- data/lib/assets/javascripts/widgets/list/presenter.js.coffee +4 -5
- data/lib/assets/javascripts/widgets/support/adapters/olark.js +1 -1
- data/lib/assets/javascripts/widgets/tray/main.js.coffee +22 -16
- data/lib/assets/javascripts/widgets/viewer/main.js.coffee +4 -8
- data/lib/assets/javascripts/widgets/viewer/plugins/scopable.js.coffee +1 -7
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/components/ende_build.js +463 -5150
- data/vendor/components/indefinido-indemma/build/development.js +2 -2
- data/vendor/components/indefinido-indemma/build/release.js +4 -5
- data/vendor/components/indefinido-indemma/build/test.js +2 -2
- data/vendor/components/indefinido-indemma/component.json +1 -0
- data/vendor/components/indefinido-indemma/lib/record/restfulable.js +2 -3
- data/vendor/components/indefinido-indemma/lib/record/validatable.js +2 -2
- data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +3 -9
- data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +3 -3
- data/vendor/components/indefinido-observable/component.json +3 -7
- data/vendor/components/indefinido-observable/lib/observable.js +19 -9
- metadata +4 -60
- data/build/build.css +0 -111
- data/vendor/assets/javascripts/stampit/stampit.js +0 -392
- data/vendor/components/indefinido-observable/.gitignore +0 -15
- data/vendor/components/indefinido-observable/.ruby-gemset +0 -1
- data/vendor/components/indefinido-observable/.ruby-version +0 -1
- data/vendor/components/indefinido-observable/Gemfile +0 -13
- data/vendor/components/indefinido-observable/Guardfile +0 -39
- data/vendor/components/indefinido-observable/History.md +0 -0
- data/vendor/components/indefinido-observable/Readme.md +0 -116
- data/vendor/components/indefinido-observable/build/build.js +0 -14798
- data/vendor/components/indefinido-observable/build/development.js +0 -339
- data/vendor/components/indefinido-observable/build/release.js +0 -14937
- data/vendor/components/indefinido-observable/build/test.js +0 -339
- data/vendor/components/indefinido-observable/components/chaijs-chai/component.json +0 -46
- data/vendor/components/indefinido-observable/components/chaijs-chai/index.js +0 -1
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/assertion.js +0 -132
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/core/assertions.js +0 -1270
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/error.js +0 -60
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/assert.js +0 -1060
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/expect.js +0 -12
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/should.js +0 -76
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +0 -94
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addMethod.js +0 -37
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addProperty.js +0 -40
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/eql.js +0 -124
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/flag.js +0 -32
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getActual.js +0 -19
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +0 -25
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getMessage.js +0 -49
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getName.js +0 -20
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getPathValue.js +0 -102
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getProperties.js +0 -35
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/index.js +0 -108
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/inspect.js +0 -316
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/objDisplay.js +0 -48
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +0 -51
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +0 -54
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/test.js +0 -26
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/transferFlags.js +0 -44
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/type.js +0 -45
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai.js +0 -79
- data/vendor/components/indefinido-observable/components/cjohansen-sinon/sinon.js +0 -4290
- data/vendor/components/indefinido-observable/components/component-jquery/component.json +0 -14
- data/vendor/components/indefinido-observable/components/component-jquery/index.js +0 -9601
- data/vendor/components/indefinido-observable/components/kapit-observe-shim/component.json +0 -11
- data/vendor/components/indefinido-observable/components/kapit-observe-utils/component.json +0 -13
- data/vendor/components/indefinido-observable/karma.conf.js +0 -92
- data/vendor/components/indefinido-observable/spec/legacy/observable_spec.js +0 -126
- data/vendor/components/indefinido-observable/spec/observable_spec.js +0 -92
- data/vendor/components/indefinido-observable/spec/spec_helper.js +0 -8
- data/vendor/components/indefinido-observable/spec/vendor/accessors_spec.js +0 -63
- data/vendor/components/indefinido-observable/src/lib/adapters/rivets.js.coffee +0 -15
- data/vendor/components/indefinido-observable/src/spec/legacy/observable_spec.coffee +0 -132
- data/vendor/components/indefinido-observable/src/spec/observable_spec.coffee +0 -85
- data/vendor/components/indefinido-observable/src/spec/spec_helper.coffee +0 -5
- data/vendor/components/indefinido-observable/src/spec/vendor/accessors_spec.coffee +0 -59
- data/vendor/components/indefinido-observable/vendor/spec/boot.js +0 -104
- data/vendor/components/indefinido-observable/vendor/spec/jasmine.js +0 -2054
|
@@ -1,24 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
function copyProp(val, key){
|
|
5
|
-
this[key] = val;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
module.exports = function mixInChain(target, objects){
|
|
9
|
-
var i = 0,
|
|
10
|
-
n = arguments.length,
|
|
11
|
-
obj;
|
|
12
|
-
while(++i < n){
|
|
13
|
-
obj = arguments[i];
|
|
14
|
-
if (obj != null) {
|
|
15
|
-
forIn(obj, copyProp, target);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return target;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
},{"mout/object/forIn":14}],2:[function(_dereq_,module,exports){
|
|
1
|
+
(function(e){if("function"==typeof bootstrap)bootstrap("stampit",e);else if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else if("undefined"!=typeof ses){if(!ses.ok())return;ses.makeStampit=e}else"undefined"!=typeof window?window.stampit=e():global.stampit=e()})(function(){var define,ses,bootstrap,module,exports;
|
|
2
|
+
return (function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i})({1:[function(require,module,exports){
|
|
22
3
|
|
|
23
4
|
|
|
24
5
|
/**
|
|
@@ -43,311 +24,306 @@ module.exports = function mixInChain(target, objects){
|
|
|
43
24
|
|
|
44
25
|
|
|
45
26
|
|
|
46
|
-
},{}],
|
|
47
|
-
var forEach = _dereq_('./forEach');
|
|
48
|
-
var makeIterator = _dereq_('../function/makeIterator_');
|
|
27
|
+
},{}],2:[function(require,module,exports){
|
|
49
28
|
|
|
50
|
-
/**
|
|
51
|
-
* Array map
|
|
52
|
-
*/
|
|
53
|
-
function map(arr, callback, thisObj) {
|
|
54
|
-
callback = makeIterator(callback, thisObj);
|
|
55
|
-
var results = [];
|
|
56
|
-
if (arr == null){
|
|
57
|
-
return results;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
var i = -1, len = arr.length;
|
|
61
|
-
while (++i < len) {
|
|
62
|
-
results[i] = callback(arr[i], i, arr);
|
|
63
|
-
}
|
|
64
29
|
|
|
65
|
-
|
|
30
|
+
function slice(arr, offset){
|
|
31
|
+
return Array.prototype.slice.call(arr, offset || 0);
|
|
66
32
|
}
|
|
67
33
|
|
|
68
|
-
module.exports = map;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
},{"../function/makeIterator_":4,"./forEach":2}],4:[function(_dereq_,module,exports){
|
|
72
|
-
var prop = _dereq_('./prop');
|
|
73
|
-
var deepMatches = _dereq_('../object/deepMatches');
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Converts argument into a valid iterator.
|
|
77
|
-
* Used internally on most array/object/collection methods that receives a
|
|
78
|
-
* callback/iterator providing a shortcut syntax.
|
|
79
|
-
*/
|
|
80
|
-
function makeIterator(src, thisObj){
|
|
81
|
-
switch(typeof src) {
|
|
82
|
-
case 'object':
|
|
83
|
-
// typeof null == "object"
|
|
84
|
-
return (src != null)? function(val, key, target){
|
|
85
|
-
return deepMatches(val, src);
|
|
86
|
-
} : src;
|
|
87
|
-
case 'string':
|
|
88
|
-
case 'number':
|
|
89
|
-
return prop(src);
|
|
90
|
-
case 'function':
|
|
91
|
-
if (typeof thisObj === 'undefined') {
|
|
92
|
-
return src;
|
|
93
|
-
} else {
|
|
94
|
-
return function(val, i, arr){
|
|
95
|
-
return src.call(thisObj, val, i, arr);
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
default:
|
|
99
|
-
return src;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
module.exports = makeIterator;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
},{"../object/deepMatches":13,"./prop":5}],5:[function(_dereq_,module,exports){
|
|
108
|
-
|
|
109
|
-
|
|
110
34
|
/**
|
|
111
|
-
*
|
|
35
|
+
* Return a function that will execute in the given context, optionally adding any additional supplied parameters to the beginning of the arguments collection.
|
|
36
|
+
* @param {Function} fn Function.
|
|
37
|
+
* @param {object} context Execution context.
|
|
38
|
+
* @param {rest} args Arguments (0...n arguments).
|
|
39
|
+
* @return {Function} Wrapped Function.
|
|
112
40
|
*/
|
|
113
|
-
function
|
|
114
|
-
|
|
115
|
-
|
|
41
|
+
function bind(fn, context, args){
|
|
42
|
+
var argsArr = slice(arguments, 2); //curried args
|
|
43
|
+
return function(){
|
|
44
|
+
return fn.apply(context, argsArr.concat(slice(arguments)));
|
|
116
45
|
};
|
|
117
46
|
}
|
|
118
47
|
|
|
119
|
-
module.exports =
|
|
48
|
+
module.exports = bind;
|
|
120
49
|
|
|
121
50
|
|
|
122
51
|
|
|
123
|
-
},{}],
|
|
124
|
-
var
|
|
125
|
-
var isPlainObject = _dereq_('./isPlainObject');
|
|
126
|
-
var mixIn = _dereq_('../object/mixIn');
|
|
52
|
+
},{}],3:[function(require,module,exports){
|
|
53
|
+
var shimIndexOf = function shimIndexOf() {
|
|
127
54
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
55
|
+
if (!Array.prototype.indexOf) {
|
|
56
|
+
Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
|
|
57
|
+
"use strict";
|
|
58
|
+
if (this == null) {
|
|
59
|
+
throw new TypeError();
|
|
60
|
+
}
|
|
61
|
+
var t = Object(this);
|
|
62
|
+
var len = t.length >>> 0;
|
|
63
|
+
if (len === 0) {
|
|
64
|
+
return -1;
|
|
65
|
+
}
|
|
66
|
+
var n = 0;
|
|
67
|
+
if (arguments.length > 1) {
|
|
68
|
+
n = Number(arguments[1]);
|
|
69
|
+
if (n != n) { // shortcut for verifying if it's NaN
|
|
70
|
+
n = 0;
|
|
71
|
+
} else if (n != 0 && n != Infinity && n != -Infinity) {
|
|
72
|
+
n = (n > 0 || -1) * Math.floor(Math.abs(n));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (n >= len) {
|
|
76
|
+
return -1;
|
|
77
|
+
}
|
|
78
|
+
var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
|
|
79
|
+
for (; k < len; k++) {
|
|
80
|
+
if (k in t && t[k] === searchElement) {
|
|
81
|
+
return k;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return -1;
|
|
143
85
|
}
|
|
144
86
|
}
|
|
145
87
|
|
|
146
|
-
|
|
147
|
-
if (isPlainObject(source)) {
|
|
148
|
-
return mixIn({}, source);
|
|
149
|
-
} else {
|
|
150
|
-
return source;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
88
|
+
}
|
|
153
89
|
|
|
154
|
-
|
|
155
|
-
var flags = '';
|
|
156
|
-
flags += r.multiline ? 'm' : '';
|
|
157
|
-
flags += r.global ? 'g' : '';
|
|
158
|
-
flags += r.ignorecase ? 'i' : '';
|
|
159
|
-
return new RegExp(r.source, flags);
|
|
160
|
-
}
|
|
90
|
+
module.exports = shimIndexOf;
|
|
161
91
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
92
|
+
},{}],4:[function(require,module,exports){
|
|
93
|
+
/**
|
|
94
|
+
* Stampit
|
|
95
|
+
**
|
|
96
|
+
* Create objects from reusable, composable behaviors.
|
|
97
|
+
**
|
|
98
|
+
* Copyright (c) 2013 Eric Elliott
|
|
99
|
+
* http://opensource.org/licenses/MIT
|
|
100
|
+
**/
|
|
165
101
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
102
|
+
'use strict';
|
|
103
|
+
var forEach = require('mout/array/forEach');
|
|
104
|
+
var bind = require('mout/function/bind');
|
|
105
|
+
var mixIn = require('mout/object/mixIn');
|
|
106
|
+
var stringify = require('json-stringify-safe');
|
|
107
|
+
var indexOf = require('./indexof'); // shim indexOf for stringify
|
|
169
108
|
|
|
170
|
-
|
|
109
|
+
var create = function (o) {
|
|
110
|
+
if (arguments.length > 1) {
|
|
111
|
+
throw new Error('Object.create implementation only accepts the first parameter.');
|
|
112
|
+
}
|
|
113
|
+
function F() {}
|
|
114
|
+
F.prototype = o;
|
|
115
|
+
return new F();
|
|
116
|
+
};
|
|
171
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Return a factory function that will produce new objects using the
|
|
120
|
+
* prototypes that are passed in or composed.
|
|
121
|
+
*
|
|
122
|
+
* @param {Object} [methods] A map of method names and bodies for delegation.
|
|
123
|
+
* @param {Object} [state] A map of property names and values to clone for each new object.
|
|
124
|
+
* @param {Function} [enclose] A closure (function) used to create private data and privileged methods.
|
|
125
|
+
* @return {Function} factory A factory to produce objects using the given prototypes.
|
|
126
|
+
* @return {Function} factory.create Just like calling the factory function.
|
|
127
|
+
* @return {Object} factory.fixed An object map containing the fixed prototypes.
|
|
128
|
+
* @return {Function} factory.methods Add methods to the methods prototype. Chainable.
|
|
129
|
+
* @return {Function} factory.state Add properties to the state prototype. Chainable.
|
|
130
|
+
* @return {Function} factory.enclose Add or replace the closure prototype. Not chainable.
|
|
131
|
+
*/
|
|
132
|
+
var stampit = function stampit(methods, state, enclose) {
|
|
133
|
+
var fixed = {
|
|
134
|
+
methods: methods || {},
|
|
135
|
+
state: state ?
|
|
136
|
+
JSON.parse(stringify(state)) :
|
|
137
|
+
{},
|
|
138
|
+
enclose: enclose
|
|
139
|
+
},
|
|
172
140
|
|
|
141
|
+
factory = function factory(properties, enclose) {
|
|
142
|
+
var instance = mixIn(create(fixed.methods || {}),
|
|
143
|
+
fixed.state, properties),
|
|
144
|
+
alt;
|
|
173
145
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
var kindOf = _dereq_('./kindOf');
|
|
178
|
-
var isPlainObject = _dereq_('./isPlainObject');
|
|
146
|
+
if (typeof fixed.enclose === 'function') {
|
|
147
|
+
alt = fixed.enclose.call(instance);
|
|
148
|
+
}
|
|
179
149
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
function deepClone(val, instanceClone) {
|
|
184
|
-
switch ( kindOf(val) ) {
|
|
185
|
-
case 'Object':
|
|
186
|
-
return cloneObject(val, instanceClone);
|
|
187
|
-
case 'Array':
|
|
188
|
-
return cloneArray(val, instanceClone);
|
|
189
|
-
default:
|
|
190
|
-
return clone(val);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
150
|
+
if (typeof enclose === 'function') {
|
|
151
|
+
alt = enclose.call(alt || instance);
|
|
152
|
+
}
|
|
193
153
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
var out = {};
|
|
197
|
-
forOwn(source, function(val, key) {
|
|
198
|
-
this[key] = deepClone(val, instanceClone);
|
|
199
|
-
}, out);
|
|
200
|
-
return out;
|
|
201
|
-
} else if (instanceClone) {
|
|
202
|
-
return instanceClone(source);
|
|
203
|
-
} else {
|
|
204
|
-
return source;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
154
|
+
return alt || instance;
|
|
155
|
+
};
|
|
207
156
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
157
|
+
return mixIn(factory, {
|
|
158
|
+
create: factory,
|
|
159
|
+
fixed: fixed,
|
|
160
|
+
methods: function () {
|
|
161
|
+
var obj = fixed.methods || {},
|
|
162
|
+
args = [obj].concat([].slice.call(arguments));
|
|
163
|
+
fixed.methods = mixIn.apply(this, args);
|
|
164
|
+
return this;
|
|
165
|
+
},
|
|
166
|
+
state: function (state) {
|
|
167
|
+
var obj = fixed.state || {},
|
|
168
|
+
args = [obj].concat([].slice.call(arguments));
|
|
169
|
+
fixed.state = mixIn.apply(this, args);
|
|
170
|
+
return this;
|
|
171
|
+
},
|
|
172
|
+
enclose: function (enclose) {
|
|
173
|
+
fixed.enclose = enclose;
|
|
174
|
+
return this;
|
|
217
175
|
}
|
|
176
|
+
});
|
|
177
|
+
};
|
|
218
178
|
|
|
219
|
-
|
|
220
|
-
|
|
179
|
+
/**
|
|
180
|
+
* Take two or more factories produced from stampit() and
|
|
181
|
+
* combine them to produce a new factory. Combining overrides
|
|
182
|
+
* properties with last-in priority.
|
|
183
|
+
*
|
|
184
|
+
* @param {...Function} factory A factory produced by stampit().
|
|
185
|
+
* @return {Function} A new stampit factory composed from arguments.
|
|
186
|
+
*/
|
|
187
|
+
var compose = function compose() {
|
|
188
|
+
var args = [].slice.call(arguments),
|
|
189
|
+
initFunctions = [],
|
|
190
|
+
obj = stampit(),
|
|
191
|
+
props = ['methods', 'state'];
|
|
221
192
|
|
|
193
|
+
forEach(args, function (source) {
|
|
194
|
+
if (source) {
|
|
195
|
+
forEach(props, function (prop) {
|
|
196
|
+
if (source.fixed[prop]) {
|
|
197
|
+
obj.fixed[prop] = mixIn(obj.fixed[prop],
|
|
198
|
+
source.fixed[prop]);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
222
201
|
|
|
202
|
+
if (typeof source.fixed.enclose === 'function') {
|
|
203
|
+
initFunctions.push(source.fixed.enclose);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
});
|
|
223
207
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
};
|
|
231
|
-
module.exports = isArray;
|
|
208
|
+
return stampit(obj.fixed.methods, obj.fixed.state, function () {
|
|
209
|
+
forEach(initFunctions, bind(function (fn) {
|
|
210
|
+
fn.call(this);
|
|
211
|
+
}, this));
|
|
212
|
+
});
|
|
213
|
+
};
|
|
232
214
|
|
|
215
|
+
indexOf();
|
|
233
216
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
217
|
+
module.exports = mixIn(stampit, {
|
|
218
|
+
compose: compose,
|
|
219
|
+
/**
|
|
220
|
+
* Alias for mixIn
|
|
221
|
+
*/
|
|
222
|
+
extend: mixIn,
|
|
223
|
+
/**
|
|
224
|
+
* Take a destination object followed by one or more source objects,
|
|
225
|
+
* and copy the source object properties to the destination object,
|
|
226
|
+
* with last in priority overrides.
|
|
227
|
+
* @param {Object} destination An object to copy properties to.
|
|
228
|
+
* @param {...Object} source An object to copy properties from.
|
|
229
|
+
* @returns {Object}
|
|
230
|
+
*/
|
|
231
|
+
mixIn: mixIn
|
|
232
|
+
});
|
|
243
233
|
|
|
234
|
+
},{"mout/array/forEach":1,"mout/function/bind":2,"mout/object/mixIn":5,"./indexof":3,"json-stringify-safe":6}],6:[function(require,module,exports){
|
|
235
|
+
module.exports = stringify;
|
|
244
236
|
|
|
245
|
-
|
|
246
|
-
var
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
237
|
+
function getSerialize (fn, decycle) {
|
|
238
|
+
var seen = [];
|
|
239
|
+
decycle = decycle || function(key, value) {
|
|
240
|
+
return '[Circular]';
|
|
241
|
+
};
|
|
242
|
+
return function(key, value) {
|
|
243
|
+
var ret = value;
|
|
244
|
+
if (typeof value === 'object' && value) {
|
|
245
|
+
if (seen.indexOf(value) !== -1)
|
|
246
|
+
ret = decycle(key, value);
|
|
247
|
+
else
|
|
248
|
+
seen.push(value);
|
|
251
249
|
}
|
|
252
|
-
|
|
250
|
+
if (fn) ret = fn(key, ret);
|
|
251
|
+
return ret;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
253
254
|
|
|
255
|
+
function stringify(obj, fn, spaces, decycle) {
|
|
256
|
+
return JSON.stringify(obj, getSerialize(fn, decycle), spaces);
|
|
257
|
+
}
|
|
254
258
|
|
|
255
|
-
|
|
259
|
+
stringify.getSerialize = getSerialize;
|
|
256
260
|
|
|
261
|
+
},{}],5:[function(require,module,exports){
|
|
262
|
+
var forOwn = require('./forOwn');
|
|
257
263
|
|
|
258
264
|
/**
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
+
* Combine properties from all the objects into first one.
|
|
266
|
+
* - This method affects target object in place, if you want to create a new Object pass an empty object as first param.
|
|
267
|
+
* @param {object} target Target Object
|
|
268
|
+
* @param {...object} objects Objects to be combined (0...n objects).
|
|
269
|
+
* @return {object} Target Object.
|
|
270
|
+
*/
|
|
271
|
+
function mixIn(target, objects){
|
|
272
|
+
var i = 0,
|
|
273
|
+
n = arguments.length,
|
|
274
|
+
obj;
|
|
275
|
+
while(++i < n){
|
|
276
|
+
obj = arguments[i];
|
|
277
|
+
if (obj != null) {
|
|
278
|
+
forOwn(obj, copyProp, target);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
return target;
|
|
265
282
|
}
|
|
266
283
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
284
|
+
function copyProp(val, key){
|
|
285
|
+
this[key] = val;
|
|
286
|
+
}
|
|
270
287
|
|
|
271
|
-
|
|
288
|
+
module.exports = mixIn;
|
|
272
289
|
|
|
273
290
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
291
|
+
},{"./forOwn":7}],7:[function(require,module,exports){
|
|
292
|
+
var hasOwn = require('./hasOwn');
|
|
293
|
+
var forIn = require('./forIn');
|
|
277
294
|
|
|
278
295
|
/**
|
|
279
|
-
*
|
|
296
|
+
* Similar to Array/forEach but works over object properties and fixes Don't
|
|
297
|
+
* Enum bug on IE.
|
|
298
|
+
* based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
|
|
280
299
|
*/
|
|
281
|
-
function
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
return 'Undefined';
|
|
286
|
-
} else {
|
|
287
|
-
return _rKind.exec( _toString.call(val) )[1];
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
module.exports = kindOf;
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
},{}],13:[function(_dereq_,module,exports){
|
|
294
|
-
var forOwn = _dereq_('./forOwn');
|
|
295
|
-
var isArray = _dereq_('../lang/isArray');
|
|
296
|
-
|
|
297
|
-
function containsMatch(array, pattern) {
|
|
298
|
-
var i = -1, length = array.length;
|
|
299
|
-
while (++i < length) {
|
|
300
|
-
if (deepMatches(array[i], pattern)) {
|
|
301
|
-
return true;
|
|
300
|
+
function forOwn(obj, fn, thisObj){
|
|
301
|
+
forIn(obj, function(val, key){
|
|
302
|
+
if (hasOwn(obj, key)) {
|
|
303
|
+
return fn.call(thisObj, obj[key], key, obj);
|
|
302
304
|
}
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
return false;
|
|
305
|
+
});
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
|
|
309
|
-
var i = -1, patternLength = pattern.length;
|
|
310
|
-
while (++i < patternLength) {
|
|
311
|
-
if (!containsMatch(target, pattern[i])) {
|
|
312
|
-
return false;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
308
|
+
module.exports = forOwn;
|
|
315
309
|
|
|
316
|
-
return true;
|
|
317
|
-
}
|
|
318
310
|
|
|
319
|
-
function matchObject(target, pattern) {
|
|
320
|
-
var result = true;
|
|
321
|
-
forOwn(pattern, function(val, key) {
|
|
322
|
-
if (!deepMatches(target[key], val)) {
|
|
323
|
-
// Return false to break out of forOwn early
|
|
324
|
-
return (result = false);
|
|
325
|
-
}
|
|
326
|
-
});
|
|
327
311
|
|
|
328
|
-
|
|
329
|
-
|
|
312
|
+
},{"./hasOwn":8,"./forIn":9}],8:[function(require,module,exports){
|
|
313
|
+
|
|
330
314
|
|
|
331
315
|
/**
|
|
332
|
-
*
|
|
316
|
+
* Safer Object.hasOwnProperty
|
|
333
317
|
*/
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
return matchArray(target, pattern);
|
|
338
|
-
} else {
|
|
339
|
-
return matchObject(target, pattern);
|
|
340
|
-
}
|
|
341
|
-
} else {
|
|
342
|
-
return target === pattern;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
318
|
+
function hasOwn(obj, prop){
|
|
319
|
+
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
320
|
+
}
|
|
345
321
|
|
|
346
|
-
|
|
322
|
+
module.exports = hasOwn;
|
|
347
323
|
|
|
348
324
|
|
|
349
325
|
|
|
350
|
-
},{
|
|
326
|
+
},{}],9:[function(require,module,exports){
|
|
351
327
|
|
|
352
328
|
|
|
353
329
|
var _hasDontEnumBug,
|
|
@@ -411,308 +387,6 @@ var isArray = _dereq_('../lang/isArray');
|
|
|
411
387
|
|
|
412
388
|
|
|
413
389
|
|
|
414
|
-
},{}],
|
|
415
|
-
var hasOwn = _dereq_('./hasOwn');
|
|
416
|
-
var forIn = _dereq_('./forIn');
|
|
417
|
-
|
|
418
|
-
/**
|
|
419
|
-
* Similar to Array/forEach but works over object properties and fixes Don't
|
|
420
|
-
* Enum bug on IE.
|
|
421
|
-
* based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
|
|
422
|
-
*/
|
|
423
|
-
function forOwn(obj, fn, thisObj){
|
|
424
|
-
forIn(obj, function(val, key){
|
|
425
|
-
if (hasOwn(obj, key)) {
|
|
426
|
-
return fn.call(thisObj, obj[key], key, obj);
|
|
427
|
-
}
|
|
428
|
-
});
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
module.exports = forOwn;
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
},{"./forIn":14,"./hasOwn":16}],16:[function(_dereq_,module,exports){
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
/**
|
|
439
|
-
* Safer Object.hasOwnProperty
|
|
440
|
-
*/
|
|
441
|
-
function hasOwn(obj, prop){
|
|
442
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
module.exports = hasOwn;
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
},{}],17:[function(_dereq_,module,exports){
|
|
450
|
-
var hasOwn = _dereq_('./hasOwn');
|
|
451
|
-
var deepClone = _dereq_('../lang/deepClone');
|
|
452
|
-
var isObject = _dereq_('../lang/isObject');
|
|
453
|
-
|
|
454
|
-
/**
|
|
455
|
-
* Deep merge objects.
|
|
456
|
-
*/
|
|
457
|
-
function merge() {
|
|
458
|
-
var i = 1,
|
|
459
|
-
key, val, obj, target;
|
|
460
|
-
|
|
461
|
-
// make sure we don't modify source element and it's properties
|
|
462
|
-
// objects are passed by reference
|
|
463
|
-
target = deepClone( arguments[0] );
|
|
464
|
-
|
|
465
|
-
while (obj = arguments[i++]) {
|
|
466
|
-
for (key in obj) {
|
|
467
|
-
if ( ! hasOwn(obj, key) ) {
|
|
468
|
-
continue;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
val = obj[key];
|
|
472
|
-
|
|
473
|
-
if ( isObject(val) && isObject(target[key]) ){
|
|
474
|
-
// inception, deep merge objects
|
|
475
|
-
target[key] = merge(target[key], val);
|
|
476
|
-
} else {
|
|
477
|
-
// make sure arrays, regexp, date, objects are cloned
|
|
478
|
-
target[key] = deepClone(val);
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
return target;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
module.exports = merge;
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
},{"../lang/deepClone":7,"../lang/isObject":10,"./hasOwn":16}],18:[function(_dereq_,module,exports){
|
|
492
|
-
var forOwn = _dereq_('./forOwn');
|
|
493
|
-
|
|
494
|
-
/**
|
|
495
|
-
* Combine properties from all the objects into first one.
|
|
496
|
-
* - This method affects target object in place, if you want to create a new Object pass an empty object as first param.
|
|
497
|
-
* @param {object} target Target Object
|
|
498
|
-
* @param {...object} objects Objects to be combined (0...n objects).
|
|
499
|
-
* @return {object} Target Object.
|
|
500
|
-
*/
|
|
501
|
-
function mixIn(target, objects){
|
|
502
|
-
var i = 0,
|
|
503
|
-
n = arguments.length,
|
|
504
|
-
obj;
|
|
505
|
-
while(++i < n){
|
|
506
|
-
obj = arguments[i];
|
|
507
|
-
if (obj != null) {
|
|
508
|
-
forOwn(obj, copyProp, target);
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
return target;
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
function copyProp(val, key){
|
|
515
|
-
this[key] = val;
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
module.exports = mixIn;
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
},{"./forOwn":15}],19:[function(_dereq_,module,exports){
|
|
522
|
-
/**
|
|
523
|
-
* Stampit
|
|
524
|
-
**
|
|
525
|
-
* Create objects from reusable, composable behaviors.
|
|
526
|
-
**
|
|
527
|
-
* Copyright (c) 2013 Eric Elliott
|
|
528
|
-
* http://opensource.org/licenses/MIT
|
|
529
|
-
**/
|
|
530
|
-
'use strict';
|
|
531
|
-
var forEach = _dereq_('mout/array/forEach');
|
|
532
|
-
var mixIn = _dereq_('mout/object/mixIn');
|
|
533
|
-
var merge = _dereq_('mout/object/merge');
|
|
534
|
-
var map = _dereq_('mout/array/map');
|
|
535
|
-
var forOwn = _dereq_('mout/object/forOwn');
|
|
536
|
-
var mixInChain = _dereq_('./mixinchain.js');
|
|
537
|
-
var slice = [].slice;
|
|
538
|
-
|
|
539
|
-
var create = function (o) {
|
|
540
|
-
if (arguments.length > 1) {
|
|
541
|
-
throw new Error('Object.create implementation only accepts the first parameter.');
|
|
542
|
-
}
|
|
543
|
-
function F() {}
|
|
544
|
-
F.prototype = o;
|
|
545
|
-
return new F();
|
|
546
|
-
};
|
|
547
|
-
|
|
548
|
-
if(!Array.isArray) {
|
|
549
|
-
Array.isArray = function (vArg) {
|
|
550
|
-
return Object.prototype.toString.call(vArg) === "[object Array]";
|
|
551
|
-
};
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
var extractFunctions = function extractFunctions(arg) {
|
|
555
|
-
var arr = [],
|
|
556
|
-
args = [].slice.call(arguments);
|
|
557
|
-
|
|
558
|
-
if (typeof arg === 'function') {
|
|
559
|
-
arr = map(args, function (fn) {
|
|
560
|
-
if (typeof fn === 'function') {
|
|
561
|
-
return fn;
|
|
562
|
-
}
|
|
563
|
-
});
|
|
564
|
-
} else if (typeof arg === 'object') {
|
|
565
|
-
forEach(args, function (obj) {
|
|
566
|
-
forOwn(obj, function (fn) {
|
|
567
|
-
arr.push(fn);
|
|
568
|
-
});
|
|
569
|
-
});
|
|
570
|
-
} else if ( Array.isArray(arg) ) {
|
|
571
|
-
forEach(arg, function (fn) {
|
|
572
|
-
arr.push(fn);
|
|
573
|
-
});
|
|
574
|
-
}
|
|
575
|
-
return arr;
|
|
576
|
-
};
|
|
577
|
-
|
|
578
|
-
/**
|
|
579
|
-
* Return a factory function that will produce new objects using the
|
|
580
|
-
* prototypes that are passed in or composed.
|
|
581
|
-
*
|
|
582
|
-
* @param {Object} [methods] A map of method names and bodies for delegation.
|
|
583
|
-
* @param {Object} [state] A map of property names and values to clone for each new object.
|
|
584
|
-
* @param {Function} [enclose] A closure (function) used to create private data and privileged methods.
|
|
585
|
-
* @return {Function} factory A factory to produce objects using the given prototypes.
|
|
586
|
-
* @return {Function} factory.create Just like calling the factory function.
|
|
587
|
-
* @return {Object} factory.fixed An object map containing the fixed prototypes.
|
|
588
|
-
* @return {Function} factory.methods Add methods to the methods prototype. Chainable.
|
|
589
|
-
* @return {Function} factory.state Add properties to the state prototype. Chainable.
|
|
590
|
-
* @return {Function} factory.enclose Add or replace the closure prototype. Not chainable.
|
|
591
|
-
*/
|
|
592
|
-
var stampit = function stampit(methods, state, enclose) {
|
|
593
|
-
var fixed = {
|
|
594
|
-
methods: methods || {},
|
|
595
|
-
state: state,
|
|
596
|
-
enclose: extractFunctions(enclose)
|
|
597
|
-
},
|
|
598
|
-
|
|
599
|
-
factory = function factory(properties) {
|
|
600
|
-
var state = merge({}, fixed.state),
|
|
601
|
-
instance = mixIn(create(fixed.methods || {}),
|
|
602
|
-
state, properties),
|
|
603
|
-
closures = fixed.enclose,
|
|
604
|
-
args = slice.call(arguments, 1);
|
|
605
|
-
|
|
606
|
-
forEach(closures, function (fn) {
|
|
607
|
-
if (typeof fn === 'function') {
|
|
608
|
-
instance = fn.apply(instance, args) || instance;
|
|
609
|
-
}
|
|
610
|
-
});
|
|
611
|
-
|
|
612
|
-
return instance;
|
|
613
|
-
};
|
|
614
|
-
|
|
615
|
-
return mixIn(factory, {
|
|
616
|
-
create: factory,
|
|
617
|
-
fixed: fixed,
|
|
618
|
-
/**
|
|
619
|
-
* Take n objects and add them to the methods prototype.
|
|
620
|
-
* @return {Object} stamp The factory in question (`this`).
|
|
621
|
-
*/
|
|
622
|
-
methods: function stampMethods() {
|
|
623
|
-
var obj = fixed.methods || {},
|
|
624
|
-
args = [obj].concat([].slice.call(arguments));
|
|
625
|
-
fixed.methods = mixInChain.apply(this, args);
|
|
626
|
-
return this;
|
|
627
|
-
},
|
|
628
|
-
/**
|
|
629
|
-
* Take n objects and add them to the state prototype.
|
|
630
|
-
* @return {Object} stamp The factory in question (`this`).
|
|
631
|
-
*/
|
|
632
|
-
state: function stampState() {
|
|
633
|
-
var obj = fixed.state || {},
|
|
634
|
-
args = [obj].concat([].slice.call(arguments));
|
|
635
|
-
fixed.state = mixIn.apply(this, args);
|
|
636
|
-
return this;
|
|
637
|
-
},
|
|
638
|
-
/**
|
|
639
|
-
* Take n functions, an array of functions, or n objects and add
|
|
640
|
-
* the functions to the enclose prototype.
|
|
641
|
-
* @return {Object} stamp The factory in question (`this`).
|
|
642
|
-
*/
|
|
643
|
-
enclose: function stampEnclose() {
|
|
644
|
-
fixed.enclose = fixed.enclose
|
|
645
|
-
.concat( extractFunctions.apply(null, arguments) );
|
|
646
|
-
return this;
|
|
647
|
-
}
|
|
648
|
-
});
|
|
649
|
-
};
|
|
650
|
-
|
|
651
|
-
/**
|
|
652
|
-
* Take two or more factories produced from stampit() and
|
|
653
|
-
* combine them to produce a new factory. Combining overrides
|
|
654
|
-
* properties with last-in priority.
|
|
655
|
-
*
|
|
656
|
-
* @param {...Function} factory A factory produced by stampit().
|
|
657
|
-
* @return {Function} A new stampit factory composed from arguments.
|
|
658
|
-
*/
|
|
659
|
-
var compose = function compose() {
|
|
660
|
-
var args = [].slice.call(arguments),
|
|
661
|
-
obj = stampit();
|
|
662
|
-
|
|
663
|
-
forEach(args, function (source) {
|
|
664
|
-
if (source) {
|
|
665
|
-
if (source.fixed.methods) {
|
|
666
|
-
obj.fixed.methods = mixInChain({}, obj.fixed.methods,
|
|
667
|
-
source.fixed.methods);
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
if (source.fixed.state) {
|
|
671
|
-
obj.fixed.state = mixIn({}, obj.fixed.state,
|
|
672
|
-
source.fixed.state);
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
if (source.fixed.enclose) {
|
|
676
|
-
obj.fixed.enclose = obj.fixed.enclose
|
|
677
|
-
.concat(source.fixed.enclose);
|
|
678
|
-
}
|
|
679
|
-
}
|
|
680
|
-
});
|
|
681
|
-
|
|
682
|
-
return stampit(obj.fixed.methods, obj.fixed.state,
|
|
683
|
-
obj.fixed.enclose);
|
|
684
|
-
};
|
|
685
|
-
|
|
686
|
-
/**
|
|
687
|
-
* Take an old-fashioned JS constructor and return a stampit stamp
|
|
688
|
-
* that you can freely compose with other stamps.
|
|
689
|
-
* @param {Function} Constructor
|
|
690
|
-
* @return {Function} A composable stampit factory
|
|
691
|
-
* (aka stamp).
|
|
692
|
-
*/
|
|
693
|
-
var convertConstructor = function convertConstructor(Constructor) {
|
|
694
|
-
return stampit().methods(Constructor.prototype).enclose(Constructor);
|
|
695
|
-
};
|
|
696
|
-
|
|
697
|
-
module.exports = mixIn(stampit, {
|
|
698
|
-
compose: compose,
|
|
699
|
-
/**
|
|
700
|
-
* Alias for mixIn
|
|
701
|
-
*/
|
|
702
|
-
extend: mixIn,
|
|
703
|
-
/**
|
|
704
|
-
* Take a destination object followed by one or more source objects,
|
|
705
|
-
* and copy the source object properties to the destination object,
|
|
706
|
-
* with last in priority overrides.
|
|
707
|
-
* @param {Object} destination An object to copy properties to.
|
|
708
|
-
* @param {...Object} source An object to copy properties from.
|
|
709
|
-
* @returns {Object}
|
|
710
|
-
*/
|
|
711
|
-
mixIn: mixIn,
|
|
712
|
-
|
|
713
|
-
convertConstructor: convertConstructor
|
|
390
|
+
},{}]},{},[4])(4)
|
|
714
391
|
});
|
|
715
|
-
|
|
716
|
-
},{"./mixinchain.js":1,"mout/array/forEach":2,"mout/array/map":3,"mout/object/forOwn":15,"mout/object/merge":17,"mout/object/mixIn":18}]},{},[19])
|
|
717
|
-
(19)
|
|
718
|
-
});
|
|
392
|
+
;
|