]> git.proxmox.com Git - extjs.git/blame - extjs/packages/charts/server/node/helpers.js
add extjs 6.0.1 sources
[extjs.git] / extjs / packages / charts / server / node / helpers.js
CommitLineData
6527f429
DM
1function isObject(value) {\r
2 return Object.prototype.toString.call(value) === '[object Object]';\r
3}\r
4\r
5function isNumber(value) {\r
6 return typeof value === 'number' && isFinite(value);\r
7}\r
8\r
9function interpolate(string, object) {\r
10 var pattern = /(#\{(.*?)\})/g;\r
11 return string.replace(pattern, function () {\r
12 var name = arguments[2];\r
13 var value = object[name];\r
14 if (isNumber(value)) {\r
15 value = value.toString();\r
16 } else if (isObject(value)) {\r
17 try {\r
18 value = JSON.stringify(value);\r
19 } catch (e) {\r
20 console.error("Stringifying object (likely a circular structure) failed.");\r
21 }\r
22 }\r
23 return typeof value === 'string' ? value : '';\r
24 });\r
25}\r
26\r
27var enumerables = ['valueOf', 'toLocaleString', 'toString', 'constructor'];\r
28\r
29function apply(object, config, defaults) {\r
30 if (defaults) {\r
31 apply(object, defaults);\r
32 }\r
33\r
34 if (object && config && typeof config === 'object') {\r
35 var i, j, k;\r
36\r
37 for (i in config) {\r
38 object[i] = config[i];\r
39 }\r
40\r
41 if (enumerables) {\r
42 for (j = enumerables.length; j--;) {\r
43 k = enumerables[j];\r
44 if (config.hasOwnProperty(k)) {\r
45 object[k] = config[k];\r
46 }\r
47 }\r
48 }\r
49 }\r
50\r
51 return object;\r
52}\r
53\r
54\r
55module.exports = {\r
56 isObject: isObject,\r
57 isNumber: isNumber,\r
58 interpolate: interpolate,\r
59 apply: apply\r
60};