Mercurial > hg > ng2-query-ismi
comparison src/app/query-state.js @ 58:3b4046e0cc02 default
Merge from ng2-table branch.
d7c947909ab888c013171b8c037e4f9fab30fe57
author | casties |
---|---|
date | Wed, 29 Mar 2017 17:19:12 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
49:781a5387ca93 | 58:3b4046e0cc02 |
---|---|
1 "use strict"; | |
2 var query_step_1 = require('./query-step'); | |
3 var query_mode_1 = require('./query-mode'); | |
4 var QueryState = (function () { | |
5 function QueryState() { | |
6 this.steps = []; | |
7 } | |
8 /** | |
9 * Sets the query state from a string. | |
10 */ | |
11 QueryState.prototype.setStateFromString = function (newStateString) { | |
12 try { | |
13 // state string is json | |
14 var newState = JSON.parse(newStateString); | |
15 // state should be list of steps | |
16 if (!Array.isArray(newState)) | |
17 return; | |
18 var newSteps_1 = []; | |
19 newState.forEach(function (elem) { | |
20 // step is an array [mode, params] | |
21 if (!Array.isArray(elem)) | |
22 return; | |
23 var mode = elem[0]; | |
24 // get QueryMode object | |
25 var qm = query_mode_1.getQueryModeById(mode); | |
26 var params = elem[1]; | |
27 if (qm != null && params != null) { | |
28 // construct QueryStep | |
29 var qs = new query_step_1.QueryStep(qm, params); | |
30 newSteps_1.push(qs); | |
31 } | |
32 }); | |
33 if (newSteps_1.length > 0) { | |
34 // set new state | |
35 this.steps = newSteps_1; | |
36 } | |
37 } | |
38 catch (e) { | |
39 console.error("Unable to set state from string: " + newStateString); | |
40 } | |
41 }; | |
42 QueryState.prototype.getNumSteps = function () { | |
43 return this.steps.length; | |
44 }; | |
45 /** | |
46 * Returns the current query state as a string. | |
47 */ | |
48 QueryState.prototype.getStateAsString = function () { | |
49 var stateList = this.steps.map(function (qs) { return [qs.mode.id, qs.params]; }); | |
50 var stateStr = JSON.stringify(stateList); | |
51 return stateStr; | |
52 }; | |
53 /** | |
54 * Returns the cypher query as text for display. | |
55 */ | |
56 QueryState.prototype.getQueryText = function () { | |
57 var text = this.resultCypherQuery; | |
58 var hasParams = false; | |
59 for (var k in this.cypherQueryParams) { | |
60 if (!hasParams) { | |
61 hasParams = true; | |
62 text += '\n'; | |
63 } | |
64 text += "[" + k + "='" + this.cypherQueryParams[k] + "'] "; | |
65 } | |
66 return text; | |
67 }; | |
68 return QueryState; | |
69 }()); | |
70 exports.QueryState = QueryState; | |
71 //# sourceMappingURL=query-state.js.map |