@gisce/ooui 0.2.3 → 0.2.6
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.
- package/dist/Dashboard.d.ts +9 -0
- package/dist/Dashboard.js +36 -0
- package/dist/Dashboard.js.map +1 -0
- package/dist/DashboardItem.d.ts +8 -0
- package/dist/DashboardItem.js +29 -0
- package/dist/DashboardItem.js.map +1 -0
- package/dist/Graph.d.ts +9 -0
- package/dist/Graph.js +29 -0
- package/dist/Graph.js.map +1 -0
- package/dist/Indicator.d.ts +2 -2
- package/dist/Indicator.js +2 -2
- package/dist/Indicator.js.map +1 -1
- package/dist/helpers/fieldParser.js +12 -9
- package/dist/helpers/fieldParser.js.map +1 -1
- package/dist/helpers/nodeParser.d.ts +2 -1
- package/dist/helpers/nodeParser.js +15 -1
- package/dist/helpers/nodeParser.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Dashboard.ts +31 -0
- package/src/DashboardItem.ts +23 -0
- package/src/Graph.ts +26 -0
- package/src/Indicator.ts +2 -2
- package/src/helpers/fieldParser.ts +12 -12
- package/src/helpers/nodeParser.ts +18 -1
- package/src/index.ts +6 -0
- package/src/spec/Dashboard.spec.ts +28 -0
- package/src/spec/Graph.spec.ts +14 -0
- package/src/spec/contextParser.spec.ts +18 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import DashboardItem from "./DashboardItem";
|
|
2
|
+
import { parseGenericNodes } from "./helpers/nodeParser";
|
|
3
|
+
var Dashboard = /** @class */ (function () {
|
|
4
|
+
function Dashboard(xml) {
|
|
5
|
+
var _this = this;
|
|
6
|
+
this._string = null;
|
|
7
|
+
this._items = [];
|
|
8
|
+
var parser = new DOMParser();
|
|
9
|
+
var view = parser.parseFromString(xml, "text/xml");
|
|
10
|
+
this._string = view.documentElement.getAttribute("string");
|
|
11
|
+
var documentElement = view.documentElement;
|
|
12
|
+
var actionsParsed = parseGenericNodes(documentElement.childNodes);
|
|
13
|
+
actionsParsed.forEach(function (nodeParsed) {
|
|
14
|
+
if (nodeParsed.tag === "dashboard_item") {
|
|
15
|
+
_this._items.push(new DashboardItem(nodeParsed.tagAttributes));
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(Dashboard.prototype, "string", {
|
|
20
|
+
get: function () {
|
|
21
|
+
return this._string;
|
|
22
|
+
},
|
|
23
|
+
enumerable: false,
|
|
24
|
+
configurable: true
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(Dashboard.prototype, "items", {
|
|
27
|
+
get: function () {
|
|
28
|
+
return this._items;
|
|
29
|
+
},
|
|
30
|
+
enumerable: false,
|
|
31
|
+
configurable: true
|
|
32
|
+
});
|
|
33
|
+
return Dashboard;
|
|
34
|
+
}());
|
|
35
|
+
export default Dashboard;
|
|
36
|
+
//# sourceMappingURL=Dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../src/Dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD;IAWE,mBAAY,GAAW;QAAvB,iBAaC;QAvBD,YAAO,GAAkB,IAAI,CAAC;QAK9B,WAAM,GAAoB,EAAE,CAAC;QAM3B,IAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAM,IAAI,GAAa,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAE7C,IAAM,aAAa,GAAG,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAEpE,aAAa,CAAC,OAAO,CAAC,UAAC,UAAU;YAC/B,IAAI,UAAU,CAAC,GAAG,KAAK,gBAAgB,EAAE;gBACvC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;aAC/D;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAtBD,sBAAI,6BAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IAGD,sBAAI,4BAAK;aAAT;YACE,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;;;OAAA;IAgBH,gBAAC;AAAD,CAAC,AAzBD,IAyBC;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var DashboardItem = /** @class */ (function () {
|
|
2
|
+
function DashboardItem(attributes) {
|
|
3
|
+
this._action_id = null;
|
|
4
|
+
this._position = null;
|
|
5
|
+
if (attributes.action_id) {
|
|
6
|
+
this._action_id = attributes.action_id;
|
|
7
|
+
}
|
|
8
|
+
if (attributes.position) {
|
|
9
|
+
this._position = attributes.position;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(DashboardItem.prototype, "action_id", {
|
|
13
|
+
get: function () {
|
|
14
|
+
return this._action_id;
|
|
15
|
+
},
|
|
16
|
+
enumerable: false,
|
|
17
|
+
configurable: true
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(DashboardItem.prototype, "position", {
|
|
20
|
+
get: function () {
|
|
21
|
+
return this._position;
|
|
22
|
+
},
|
|
23
|
+
enumerable: false,
|
|
24
|
+
configurable: true
|
|
25
|
+
});
|
|
26
|
+
return DashboardItem;
|
|
27
|
+
}());
|
|
28
|
+
export default DashboardItem;
|
|
29
|
+
//# sourceMappingURL=DashboardItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardItem.js","sourceRoot":"","sources":["../src/DashboardItem.ts"],"names":[],"mappings":"AAAA;IAWE,uBAAY,UAAe;QAV3B,eAAU,GAAkB,IAAI,CAAC;QAKjC,cAAS,GAAkB,IAAI,CAAC;QAM9B,IAAI,UAAU,CAAC,SAAS,EAAE;YACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;SACxC;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;SACtC;IACH,CAAC;IAjBD,sBAAI,oCAAS;aAAb;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;;;OAAA;IAGD,sBAAI,mCAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;;;OAAA;IAWH,oBAAC;AAAD,CAAC,AApBD,IAoBC;AAED,eAAe,aAAa,CAAC"}
|
package/dist/Graph.d.ts
ADDED
package/dist/Graph.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var Graph = /** @class */ (function () {
|
|
2
|
+
function Graph(xml) {
|
|
3
|
+
this._string = null;
|
|
4
|
+
var parser = new DOMParser();
|
|
5
|
+
var view = parser.parseFromString(xml, "text/xml");
|
|
6
|
+
this._string = view.documentElement.getAttribute("string");
|
|
7
|
+
var type = view.documentElement.getAttribute("type");
|
|
8
|
+
if (type === "indicator") {
|
|
9
|
+
this._type = "indicator";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(Graph.prototype, "string", {
|
|
13
|
+
get: function () {
|
|
14
|
+
return this._string;
|
|
15
|
+
},
|
|
16
|
+
enumerable: false,
|
|
17
|
+
configurable: true
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(Graph.prototype, "type", {
|
|
20
|
+
get: function () {
|
|
21
|
+
return this._type;
|
|
22
|
+
},
|
|
23
|
+
enumerable: false,
|
|
24
|
+
configurable: true
|
|
25
|
+
});
|
|
26
|
+
return Graph;
|
|
27
|
+
}());
|
|
28
|
+
export default Graph;
|
|
29
|
+
//# sourceMappingURL=Graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Graph.js","sourceRoot":"","sources":["../src/Graph.ts"],"names":[],"mappings":"AAEA;IAWE,eAAY,GAAW;QAVvB,YAAO,GAAkB,IAAI,CAAC;QAW5B,IAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAM,IAAI,GAAa,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAEvD,IAAI,IAAI,KAAK,WAAW,EAAE;YACxB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;SAC1B;IACH,CAAC;IAlBD,sBAAI,yBAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IAGD,sBAAI,uBAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;;;OAAA;IAYH,YAAC;AAAD,CAAC,AArBD,IAqBC;AAED,eAAe,KAAK,CAAC"}
|
package/dist/Indicator.d.ts
CHANGED
package/dist/Indicator.js
CHANGED
|
@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
11
11
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
12
12
|
};
|
|
13
13
|
})();
|
|
14
|
-
import
|
|
14
|
+
import Selection from "./Selection";
|
|
15
15
|
var Indicator = /** @class */ (function (_super) {
|
|
16
16
|
__extends(Indicator, _super);
|
|
17
17
|
function Indicator(props) {
|
|
@@ -58,6 +58,6 @@ var Indicator = /** @class */ (function (_super) {
|
|
|
58
58
|
configurable: true
|
|
59
59
|
});
|
|
60
60
|
return Indicator;
|
|
61
|
-
}(
|
|
61
|
+
}(Selection));
|
|
62
62
|
export default Indicator;
|
|
63
63
|
//# sourceMappingURL=Indicator.js.map
|
package/dist/Indicator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../src/Indicator.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../src/Indicator.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC;IAAwB,6BAAS;IAyB/B,mBAAY,KAAU;QAAtB,YACE,kBAAM,KAAK,CAAC,SASb;QAlCD,cAAQ,GAAY,IAAI,CAAC;QA0BvB,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,KAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,KAAI,CAAC,kBAAkB,EAAE;YAC3B,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,KAAK,CAAC;YACnD,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,EAAE,CAAC;YAChD,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,EAAE,CAAC;SACrD;;IACH,CAAC;IA/BD,sBAAI,2BAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aACD,UAAS,KAAc;YACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OAHA;IAKD,sBAAI,2BAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aACD,UAAS,KAAa;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OAHA;IAKD,sBAAI,6BAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;aACD,UAAW,KAAa;YACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;;;OAHA;IAgBH,gBAAC;AAAD,CAAC,AApCD,CAAwB,SAAS,GAoChC;AAGD,eAAe,SAAS,CAAC"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
export function getValueForField(_a) {
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
if (!fields[fieldName]) {
|
|
7
|
-
return values[fieldName] || false;
|
|
8
|
-
}
|
|
9
|
-
var fieldType = fields[fieldName].type;
|
|
2
|
+
var _b;
|
|
3
|
+
var _c = _a.values, values = _c === void 0 ? {} : _c, fieldName = _a.fieldName, _d = _a.fields, fields = _d === void 0 ? {} : _d;
|
|
4
|
+
var fieldType = ((_b = fields[fieldName]) === null || _b === void 0 ? void 0 : _b.type) || "passthrough";
|
|
10
5
|
if (fieldType === "many2one") {
|
|
11
6
|
return values[fieldName] ? values[fieldName][0] || null : false;
|
|
12
7
|
}
|
|
@@ -14,7 +9,15 @@ export function getValueForField(_a) {
|
|
|
14
9
|
return values[fieldName].map(function (item) { return item.id; });
|
|
15
10
|
}
|
|
16
11
|
else {
|
|
17
|
-
|
|
12
|
+
if (values === null || values === void 0 ? void 0 : values[fieldName]) {
|
|
13
|
+
return values === null || values === void 0 ? void 0 : values[fieldName];
|
|
14
|
+
}
|
|
15
|
+
if (fieldName.indexOf("'") !== -1) {
|
|
16
|
+
return fieldName;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return parseInt(fieldName);
|
|
20
|
+
}
|
|
18
21
|
}
|
|
19
22
|
}
|
|
20
23
|
//# sourceMappingURL=fieldParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldParser.js","sourceRoot":"","sources":["../../src/helpers/fieldParser.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,EAQhC
|
|
1
|
+
{"version":3,"file":"fieldParser.js","sourceRoot":"","sources":["../../src/helpers/fieldParser.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,EAQhC;;QAPC,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,SAAS,eAAA,EACT,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA;IAMX,IAAM,SAAS,GAAG,OAAA,MAAM,CAAC,SAAS,CAAC,0CAAE,IAAI,KAAI,aAAa,CAAC;IAE3D,IAAI,SAAS,KAAK,UAAU,EAAE;QAC5B,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;KACjE;SAAM,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,WAAW,EAAE;QAChE,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,EAAE,EAAP,CAAO,CAAC,CAAC;KACtD;SAAM;QACL,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,SAAS,GAAG;YACvB,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,SAAS,EAAE;SAC5B;QAED,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACjC,OAAO,SAAS,CAAC;SAClB;aAAM;YACL,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC5B;KACF;AACH,CAAC"}
|
|
@@ -4,4 +4,5 @@ declare type ParsedNode = {
|
|
|
4
4
|
child: Element;
|
|
5
5
|
};
|
|
6
6
|
declare const parseNodes: (nodes: NodeListOf<ChildNode>, fields: any) => ParsedNode[];
|
|
7
|
-
|
|
7
|
+
declare const parseGenericNodes: (nodes: NodeListOf<ChildNode>) => ParsedNode[];
|
|
8
|
+
export { parseNodes, parseGenericNodes };
|
|
@@ -46,5 +46,19 @@ var parseNodes = function (nodes, fields) {
|
|
|
46
46
|
});
|
|
47
47
|
return parsedNodes;
|
|
48
48
|
};
|
|
49
|
-
|
|
49
|
+
var parseGenericNodes = function (nodes) {
|
|
50
|
+
var parsedNodes = [];
|
|
51
|
+
Array.prototype.forEach.call(nodes, function (child) {
|
|
52
|
+
if (child.nodeType === child.ELEMENT_NODE) {
|
|
53
|
+
var tag = child.nodeName;
|
|
54
|
+
var tagAttributes_2 = {};
|
|
55
|
+
Array.prototype.forEach.call(child.attributes, function (attr) {
|
|
56
|
+
tagAttributes_2[attr.name] = attr.value;
|
|
57
|
+
});
|
|
58
|
+
parsedNodes.push({ tag: tag, tagAttributes: tagAttributes_2, child: child });
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
return parsedNodes;
|
|
62
|
+
};
|
|
63
|
+
export { parseNodes, parseGenericNodes };
|
|
50
64
|
//# sourceMappingURL=nodeParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeParser.js","sourceRoot":"","sources":["../../src/helpers/nodeParser.ts"],"names":[],"mappings":";;;;;;;;;;;AAMA,IAAM,UAAU,GAAG,UACjB,KAA4B,EAC5B,MAAW;IAEX,IAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,KAAc;;QACjD,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,YAAY,EAAE;YACzC,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;YAEzB,IAAI,eAAa,GAAQ,EAAE,CAAC;YAC5B,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,UAAC,IAAU;gBACxD,eAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,IAAM,MAAI,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAChD,IAAI,UAAU,EAAE;oBACd,GAAG,GAAG,UAAU,CAAC;iBAClB;qBAAM,IAAI,MAAI,EAAE;oBACf,IAAI,CAAC,MAAM,CAAC,MAAI,CAAC,EAAE;wBACjB,MAAM,IAAI,KAAK,CAAC,WAAS,MAAI,uCAAoC,CAAC,CAAC;qBACpE;oBACD,GAAG,GAAG,MAAM,CAAC,MAAI,CAAC,CAAC,IAAI,CAAC;iBACzB;gBAED,4GAA4G;gBAC5G,IACE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAK,CAAC,CAAC,MAAM,CAAC;oBACnC,MAAM,CAAC,MAAK,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;oBAClC,MAAM,CAAC,MAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC;oBACjC,eAAa,CAAC,QAAQ,CAAC;oBACvB,eAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAClC;oBACA,OAAO,MAAM,CAAC,MAAK,CAAC,CAAC,MAAM,CAAC;iBAC7B;gBAED,eAAa,kCACR,MAAM,CAAC,MAAK,CAAC,GACb,eAAa,KAChB,gBAAgB,QAAE,MAAM,CAAC,MAAK,CAAC,0CAAE,IAAI,GACtC,CAAC;aACH;YAED,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,KAAA,EAAE,aAAa,iBAAA,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;SACjD;IACH,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"nodeParser.js","sourceRoot":"","sources":["../../src/helpers/nodeParser.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,4 +31,7 @@ import { parseContext } from "./helpers/contextParser";
|
|
|
31
31
|
import { transformDomainForChildWidget } from "./helpers/domainParser";
|
|
32
32
|
import Timeline from "./Timeline";
|
|
33
33
|
import Indicator from "./Indicator";
|
|
34
|
-
|
|
34
|
+
import Dashboard from "./Dashboard";
|
|
35
|
+
import DashboardItem from "./DashboardItem";
|
|
36
|
+
import Graph from "./Graph";
|
|
37
|
+
export { Char, Selection, Many2one, Field, Widget, Form, Tree, Boolean, One2many, Integer, Float, FloatTime, Date, DateTime, Many2many, SearchFilter, Container, ContainerWidget, Text, ProgressBar, Notebook, Group, Page, Label, Separator, Button, Reference, Binary, Image, parseContext, transformDomainForChildWidget, Timeline, Indicator, Dashboard, DashboardItem, Graph };
|
package/dist/index.js
CHANGED
|
@@ -31,5 +31,8 @@ import { parseContext } from "./helpers/contextParser";
|
|
|
31
31
|
import { transformDomainForChildWidget } from "./helpers/domainParser";
|
|
32
32
|
import Timeline from "./Timeline";
|
|
33
33
|
import Indicator from "./Indicator";
|
|
34
|
-
|
|
34
|
+
import Dashboard from "./Dashboard";
|
|
35
|
+
import DashboardItem from "./DashboardItem";
|
|
36
|
+
import Graph from "./Graph";
|
|
37
|
+
export { Char, Selection, Many2one, Field, Widget, Form, Tree, Boolean, One2many, Integer, Float, FloatTime, Date, DateTime, Many2many, SearchFilter, Container, ContainerWidget, Text, ProgressBar, Notebook, Group, Page, Label, Separator, Button, Reference, Binary, Image, parseContext, transformDomainForChildWidget, Timeline, Indicator, Dashboard, DashboardItem, Graph };
|
|
35
38
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,EACL,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,KAAK,EACL,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,SAAS,EACT,eAAe,EACf,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,KAAK,EACL,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,YAAY,EACZ,6BAA6B,EAC7B,QAAQ,EACR,SAAS,EACT,SAAS,EACT,aAAa,EACb,KAAK,EACN,CAAC"}
|
package/package.json
CHANGED
package/src/Dashboard.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import DashboardItem from "./DashboardItem";
|
|
2
|
+
import { parseGenericNodes } from "./helpers/nodeParser";
|
|
3
|
+
|
|
4
|
+
class Dashboard {
|
|
5
|
+
_string: string | null = null;
|
|
6
|
+
get string(): string | null {
|
|
7
|
+
return this._string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
_items: DashboardItem[] = [];
|
|
11
|
+
get items(): DashboardItem[] {
|
|
12
|
+
return this._items;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
constructor(xml: string) {
|
|
16
|
+
const parser = new DOMParser();
|
|
17
|
+
const view: Document = parser.parseFromString(xml, "text/xml");
|
|
18
|
+
this._string = view.documentElement.getAttribute("string");
|
|
19
|
+
const documentElement = view.documentElement;
|
|
20
|
+
|
|
21
|
+
const actionsParsed = parseGenericNodes(documentElement.childNodes);
|
|
22
|
+
|
|
23
|
+
actionsParsed.forEach((nodeParsed) => {
|
|
24
|
+
if (nodeParsed.tag === "dashboard_item") {
|
|
25
|
+
this._items.push(new DashboardItem(nodeParsed.tagAttributes));
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export default Dashboard;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
class DashboardItem {
|
|
2
|
+
_action_id: string | null = null;
|
|
3
|
+
get action_id(): string | null {
|
|
4
|
+
return this._action_id;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
_position: string | null = null;
|
|
8
|
+
get position(): string | null {
|
|
9
|
+
return this._position;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
constructor(attributes: any) {
|
|
13
|
+
if (attributes.action_id) {
|
|
14
|
+
this._action_id = attributes.action_id;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (attributes.position) {
|
|
18
|
+
this._position = attributes.position;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default DashboardItem;
|
package/src/Graph.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type GraphType = "indicator";
|
|
2
|
+
|
|
3
|
+
class Graph {
|
|
4
|
+
_string: string | null = null;
|
|
5
|
+
get string(): string | null {
|
|
6
|
+
return this._string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
_type?: GraphType;
|
|
10
|
+
get type(): GraphType | undefined {
|
|
11
|
+
return this._type;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
constructor(xml: string) {
|
|
15
|
+
const parser = new DOMParser();
|
|
16
|
+
const view: Document = parser.parseFromString(xml, "text/xml");
|
|
17
|
+
this._string = view.documentElement.getAttribute("string");
|
|
18
|
+
const type = view.documentElement.getAttribute("type");
|
|
19
|
+
|
|
20
|
+
if (type === "indicator") {
|
|
21
|
+
this._type = "indicator";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default Graph;
|
package/src/Indicator.ts
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
export function getValueForField({
|
|
2
|
-
values,
|
|
2
|
+
values = {},
|
|
3
3
|
fieldName,
|
|
4
|
-
fields,
|
|
4
|
+
fields = {},
|
|
5
5
|
}: {
|
|
6
6
|
values: any;
|
|
7
7
|
fieldName: string;
|
|
8
8
|
fields: any;
|
|
9
9
|
}) {
|
|
10
|
-
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
if (!fields[fieldName]) {
|
|
15
|
-
return values[fieldName] || false;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const fieldType = fields[fieldName].type;
|
|
10
|
+
const fieldType = fields[fieldName]?.type || "passthrough";
|
|
19
11
|
|
|
20
12
|
if (fieldType === "many2one") {
|
|
21
13
|
return values[fieldName] ? values[fieldName][0] || null : false;
|
|
22
14
|
} else if (fieldType === "one2many" || fieldType === "many2many") {
|
|
23
15
|
return values[fieldName].map((item: any) => item.id);
|
|
24
16
|
} else {
|
|
25
|
-
|
|
17
|
+
if (values?.[fieldName]) {
|
|
18
|
+
return values?.[fieldName];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (fieldName.indexOf("'") !== -1) {
|
|
22
|
+
return fieldName;
|
|
23
|
+
} else {
|
|
24
|
+
return parseInt(fieldName);
|
|
25
|
+
}
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -54,4 +54,21 @@ const parseNodes = (
|
|
|
54
54
|
return parsedNodes;
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
const parseGenericNodes = (nodes: NodeListOf<ChildNode>): ParsedNode[] => {
|
|
58
|
+
const parsedNodes: ParsedNode[] = [];
|
|
59
|
+
Array.prototype.forEach.call(nodes, (child: Element) => {
|
|
60
|
+
if (child.nodeType === child.ELEMENT_NODE) {
|
|
61
|
+
let tag = child.nodeName;
|
|
62
|
+
|
|
63
|
+
let tagAttributes: any = {};
|
|
64
|
+
Array.prototype.forEach.call(child.attributes, (attr: Attr) => {
|
|
65
|
+
tagAttributes[attr.name] = attr.value;
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
parsedNodes.push({ tag, tagAttributes, child });
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return parsedNodes;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export { parseNodes, parseGenericNodes };
|
package/src/index.ts
CHANGED
|
@@ -31,6 +31,9 @@ import { parseContext } from "./helpers/contextParser";
|
|
|
31
31
|
import { transformDomainForChildWidget } from "./helpers/domainParser";
|
|
32
32
|
import Timeline from "./Timeline";
|
|
33
33
|
import Indicator from "./Indicator";
|
|
34
|
+
import Dashboard from "./Dashboard";
|
|
35
|
+
import DashboardItem from "./DashboardItem";
|
|
36
|
+
import Graph from "./Graph";
|
|
34
37
|
|
|
35
38
|
export {
|
|
36
39
|
Char,
|
|
@@ -66,4 +69,7 @@ export {
|
|
|
66
69
|
transformDomainForChildWidget,
|
|
67
70
|
Timeline,
|
|
68
71
|
Indicator,
|
|
72
|
+
Dashboard,
|
|
73
|
+
DashboardItem,
|
|
74
|
+
Graph
|
|
69
75
|
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import Dashboard from "../Dashboard";
|
|
2
|
+
|
|
3
|
+
describe("A Dashboard", () => {
|
|
4
|
+
it("should parse a basic XML with three actions", () => {
|
|
5
|
+
const xml = `<?xml version="1.0"?>
|
|
6
|
+
<dashboard string="My dashboard">
|
|
7
|
+
<dashboard_item action_id="1497" position="{ x: 0, y: 0, w: 1, h: 2, static: true }" />
|
|
8
|
+
<dashboard_item action_id="1496" position="{ x: 1, y: 0, w: 3, h: 2, minW: 2, maxW: 4 }" />
|
|
9
|
+
<dashboard_item action_id="1321" position="{ x: 4, y: 0, w: 1, h: 2 }" />
|
|
10
|
+
</dashboard>
|
|
11
|
+
`;
|
|
12
|
+
|
|
13
|
+
const dashboard = new Dashboard(xml);
|
|
14
|
+
|
|
15
|
+
expect(dashboard.string).toBe("My dashboard");
|
|
16
|
+
expect(dashboard.items.length).toBe(3);
|
|
17
|
+
expect(dashboard.items[0].action_id).toBe("1497");
|
|
18
|
+
expect(dashboard.items[1].action_id).toBe("1496");
|
|
19
|
+
expect(dashboard.items[2].action_id).toBe("1321");
|
|
20
|
+
expect(dashboard.items[0].position).toBe(
|
|
21
|
+
"{ x: 0, y: 0, w: 1, h: 2, static: true }"
|
|
22
|
+
);
|
|
23
|
+
expect(dashboard.items[1].position).toBe(
|
|
24
|
+
"{ x: 1, y: 0, w: 3, h: 2, minW: 2, maxW: 4 }"
|
|
25
|
+
);
|
|
26
|
+
expect(dashboard.items[2].position).toBe("{ x: 4, y: 0, w: 1, h: 2 }");
|
|
27
|
+
});
|
|
28
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Graph from "../Graph";
|
|
2
|
+
|
|
3
|
+
describe("A Graph", () => {
|
|
4
|
+
it("should parse a basic XML title and type indicator", () => {
|
|
5
|
+
const xml = `<?xml version="1.0"?>
|
|
6
|
+
<graph string="My indicator" type="indicator" />
|
|
7
|
+
`;
|
|
8
|
+
|
|
9
|
+
const graph = new Graph(xml);
|
|
10
|
+
|
|
11
|
+
expect(graph.string).toBe("My indicator");
|
|
12
|
+
expect(graph.type).toBe("indicator");
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -53,5 +53,23 @@ describe("A Context Parser", () => {
|
|
|
53
53
|
expect(parsedContext!["active_test"]).toBeDefined();
|
|
54
54
|
expect(parsedContext!["active_test"]).toBeFalsy();
|
|
55
55
|
});
|
|
56
|
+
|
|
57
|
+
it("should properly parse a boolean context", () => {
|
|
58
|
+
const str = "{'active_test': True}";
|
|
59
|
+
|
|
60
|
+
const parsedContext = parseContext({ context: str });
|
|
61
|
+
|
|
62
|
+
expect(parsedContext!["active_test"]).toBeDefined();
|
|
63
|
+
expect(parsedContext!["active_test"]).toBeTruthy();
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it("should properly parse a number context", () => {
|
|
67
|
+
const str = "{'active_id': 3}";
|
|
68
|
+
|
|
69
|
+
const parsedContext = parseContext({ context: str });
|
|
70
|
+
|
|
71
|
+
expect(parsedContext!["active_id"]).toBeDefined();
|
|
72
|
+
expect(parsedContext!["active_id"]).toBe(3);
|
|
73
|
+
});
|
|
56
74
|
});
|
|
57
75
|
});
|