@denevads/dnv-smo 1.0.3 → 1.0.4
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/.idea/dnvsmo.iml +12 -0
- package/.idea/modules.xml +8 -0
- package/dist/smo.d.ts +16 -13
- package/dist/smo.js +87 -60
- package/package.json +2 -1
- package/src/smo.ts +93 -61
package/.idea/dnvsmo.iml
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<module type="WEB_MODULE" version="4">
|
|
3
|
+
<component name="NewModuleRootManager">
|
|
4
|
+
<content url="file://$MODULE_DIR$">
|
|
5
|
+
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
|
6
|
+
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
|
7
|
+
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
|
8
|
+
</content>
|
|
9
|
+
<orderEntry type="inheritedJdk" />
|
|
10
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
|
11
|
+
</component>
|
|
12
|
+
</module>
|
package/dist/smo.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { EventEmitter } from 'events';
|
|
3
1
|
import { setDatasource, variable, location, DataSalida, ExecFunction, Notify, start } from "./interfaces/callbacks";
|
|
4
|
-
import {
|
|
5
|
-
export declare class SMO
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
export declare class SMO {
|
|
6
4
|
vars: any;
|
|
7
5
|
id: string;
|
|
8
6
|
smoCallBacks: smoCallBacks;
|
|
@@ -20,13 +18,14 @@ export declare class SMO extends EventEmitter {
|
|
|
20
18
|
updatefromsalida(data: any): void;
|
|
21
19
|
}
|
|
22
20
|
declare class SmoEvents {
|
|
23
|
-
start:
|
|
24
|
-
setDatasource:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
start: Subject<start>;
|
|
22
|
+
setDatasource: Subject<setDatasource>;
|
|
23
|
+
setDatasourceJson: Subject<any>;
|
|
24
|
+
getVariable: Subject<variable>;
|
|
25
|
+
setCurrentStream: Subject<string>;
|
|
26
|
+
infoCurrentLocation: Subject<location>;
|
|
27
|
+
setSalidaData: Subject<DataSalida>;
|
|
28
|
+
updatefromsalida: Subject<any>;
|
|
30
29
|
constructor(smo: SMO);
|
|
31
30
|
}
|
|
32
31
|
declare class smoCallBacks {
|
|
@@ -65,9 +64,12 @@ declare class Utils {
|
|
|
65
64
|
smo: SMO;
|
|
66
65
|
smoCallBacks: smoCallBacks;
|
|
67
66
|
constructor(_smo: SMO, _smoCallBacks: smoCallBacks);
|
|
67
|
+
xmlToJSON(xml: string): string;
|
|
68
|
+
jsonToStr(js_obj: any): string;
|
|
69
|
+
setJsonObj(xml: any): any;
|
|
68
70
|
dataToJSON(data: setDatasource): any;
|
|
69
71
|
getDatasource(): void;
|
|
70
|
-
startCheckDatasource(): void;
|
|
72
|
+
startCheckDatasource(timeout?: number): void;
|
|
71
73
|
}
|
|
72
74
|
export declare enum SMO_EVENT_TYPE {
|
|
73
75
|
start = "start",
|
|
@@ -76,7 +78,8 @@ export declare enum SMO_EVENT_TYPE {
|
|
|
76
78
|
setCurrentStream = "setCurrentStream",
|
|
77
79
|
infoCurrentLocation = "infoCurrentLocation",
|
|
78
80
|
setSalidaData = "setSalidaData",
|
|
79
|
-
updatefromsalida = "updatefromsalida"
|
|
81
|
+
updatefromsalida = "updatefromsalida",
|
|
82
|
+
setDatasourceJson = "setDatasourceJson"
|
|
80
83
|
}
|
|
81
84
|
export declare enum LogLevel {
|
|
82
85
|
Debug = 0,
|
package/dist/smo.js
CHANGED
|
@@ -1,35 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.AlarmaLevel = exports.LogLevel = exports.SMO_EVENT_TYPE = exports.SMO = void 0;
|
|
19
|
-
var events_1 = require("events");
|
|
20
4
|
var rxjs_1 = require("rxjs");
|
|
21
|
-
var SMO = /** @class */ (function (
|
|
22
|
-
__extends(SMO, _super);
|
|
5
|
+
var SMO = /** @class */ (function () {
|
|
23
6
|
function SMO() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
_this.events = new SmoEvents(_this);
|
|
32
|
-
return _this;
|
|
7
|
+
this.vars = {};
|
|
8
|
+
this.id = "";
|
|
9
|
+
this.init();
|
|
10
|
+
this.initOnMessage();
|
|
11
|
+
this.smoCallBacks = new smoCallBacks(this);
|
|
12
|
+
this.utils = new Utils(this, this.smoCallBacks);
|
|
13
|
+
this.events = new SmoEvents(this);
|
|
33
14
|
}
|
|
34
15
|
SMO.prototype.init = function () {
|
|
35
16
|
var match, pl = /\+/g, search = /([^&=]+)=?([^&]*)/g, decode = function (s) {
|
|
@@ -38,6 +19,12 @@ var SMO = /** @class */ (function (_super) {
|
|
|
38
19
|
while (match = search.exec(query)) {
|
|
39
20
|
this.vars[decode(match[1])] = decode(match[2]);
|
|
40
21
|
}
|
|
22
|
+
/* let hash;
|
|
23
|
+
let hashes = window.location.href.slice(window.location.href.indexOf("?") + 1).split("&");
|
|
24
|
+
for (var i = 0; i < hashes.length; i++) {
|
|
25
|
+
hash = hashes[i].split("=");
|
|
26
|
+
this.vars[hash[0]] = hash[1];
|
|
27
|
+
}*/
|
|
41
28
|
if (this.vars.idSmo) {
|
|
42
29
|
this.id = this.vars.idSmo;
|
|
43
30
|
return;
|
|
@@ -79,55 +66,44 @@ var SMO = /** @class */ (function (_super) {
|
|
|
79
66
|
return;
|
|
80
67
|
}
|
|
81
68
|
console.warn("message not implemented!!" + func);
|
|
82
|
-
/* try {
|
|
83
|
-
var targets = e.data.target.split('.');
|
|
84
|
-
var fn = window;
|
|
85
|
-
var obj = window;
|
|
86
|
-
for (var i = 0; i < targets.length; i++) {
|
|
87
|
-
obj = fn;
|
|
88
|
-
fn = obj[targets[i]];
|
|
89
|
-
}
|
|
90
|
-
fn.call(obj, e.data.objData); // conservamos el valor de this
|
|
91
|
-
} catch (ex) {
|
|
92
|
-
//Si no ha podido llamar es porque no existe el entorno
|
|
93
|
-
|
|
94
|
-
}*/
|
|
95
69
|
}
|
|
96
70
|
};
|
|
97
71
|
};
|
|
98
72
|
SMO.prototype.start = function () {
|
|
99
|
-
this.
|
|
73
|
+
this.events.start.next({});
|
|
100
74
|
};
|
|
101
75
|
SMO.prototype.setDatasource = function (datasource) {
|
|
102
|
-
this.
|
|
76
|
+
this.events.setDatasource.next(datasource);
|
|
77
|
+
this.events.setDatasourceJson.next(this.utils.xmlToJSON(datasource.xml));
|
|
103
78
|
};
|
|
104
79
|
SMO.prototype.getVariable = function (variable) {
|
|
105
|
-
this.
|
|
80
|
+
this.events.getVariable.next(variable);
|
|
106
81
|
};
|
|
107
82
|
SMO.prototype.setCurrentStream = function (stream) {
|
|
108
|
-
this.
|
|
83
|
+
this.events.setCurrentStream.next(stream);
|
|
109
84
|
};
|
|
110
85
|
SMO.prototype.infoCurrentLocation = function (location) {
|
|
111
|
-
this.
|
|
86
|
+
this.events.infoCurrentLocation.next(location);
|
|
112
87
|
};
|
|
113
88
|
SMO.prototype.setSalidaData = function (data) {
|
|
114
|
-
this.
|
|
89
|
+
this.events.setSalidaData.next(data);
|
|
115
90
|
};
|
|
116
91
|
SMO.prototype.updatefromsalida = function (data) {
|
|
117
|
-
this.
|
|
92
|
+
this.events.updatefromsalida.next(data);
|
|
118
93
|
};
|
|
119
94
|
return SMO;
|
|
120
|
-
}(
|
|
95
|
+
}());
|
|
121
96
|
exports.SMO = SMO;
|
|
122
97
|
var SmoEvents = /** @class */ (function () {
|
|
123
98
|
function SmoEvents(smo) {
|
|
124
|
-
this.start =
|
|
125
|
-
this.setDatasource =
|
|
126
|
-
this.
|
|
127
|
-
this.
|
|
128
|
-
this.
|
|
129
|
-
this.
|
|
130
|
-
this.
|
|
99
|
+
this.start = new rxjs_1.Subject();
|
|
100
|
+
this.setDatasource = new rxjs_1.Subject();
|
|
101
|
+
this.setDatasourceJson = new rxjs_1.Subject();
|
|
102
|
+
this.getVariable = new rxjs_1.Subject();
|
|
103
|
+
this.setCurrentStream = new rxjs_1.Subject();
|
|
104
|
+
this.infoCurrentLocation = new rxjs_1.Subject();
|
|
105
|
+
this.setSalidaData = new rxjs_1.Subject();
|
|
106
|
+
this.updatefromsalida = new rxjs_1.Subject();
|
|
131
107
|
}
|
|
132
108
|
return SmoEvents;
|
|
133
109
|
}());
|
|
@@ -192,7 +168,7 @@ var smoCallBacks = /** @class */ (function () {
|
|
|
192
168
|
window.parent.postMessage({
|
|
193
169
|
target: "Dnv.smoCallbacks.reiniciarDispositivo",
|
|
194
170
|
objData: {
|
|
195
|
-
txt: msn // Razón del reinicio
|
|
171
|
+
txt: msn // Razón del reinicio
|
|
196
172
|
},
|
|
197
173
|
idSmo: this.smo.id
|
|
198
174
|
}, "*");
|
|
@@ -353,7 +329,7 @@ var smoCallBacks = /** @class */ (function () {
|
|
|
353
329
|
parent.postMessage({ target: "Dnv.smoCallbacks.stopPlayOnceChannel", objData: {}, idSmo: this.smo.id }, "*");
|
|
354
330
|
};
|
|
355
331
|
smoCallBacks.prototype.editWrapperStyle = function (obj) {
|
|
356
|
-
/*{"posX": "0px","posY": "0px","alto": "0px","ancho": "0px","overflow": "hidden","scale": 0.1,"zindex": 0.1,"opacidad": 0.1,"isMaestro": true} */
|
|
332
|
+
/*{"posX": "0px","posY": "0px","alto": "0px","ancho": "0px","overflow": "hidden","scale": 0.1,"zindex": 0.1,"opacidad": 0.1,"isMaestro": true,duracionTransition: "1s", transitionTiming: "lineal", css: string} */
|
|
357
333
|
parent.postMessage({
|
|
358
334
|
target: "Dnv.smoCallbacks.editWrapperStyle",
|
|
359
335
|
objData: obj,
|
|
@@ -367,6 +343,55 @@ var Utils = /** @class */ (function () {
|
|
|
367
343
|
this.smo = _smo;
|
|
368
344
|
this.smoCallBacks = _smoCallBacks;
|
|
369
345
|
}
|
|
346
|
+
// Funciones para XML to JSON
|
|
347
|
+
Utils.prototype.xmlToJSON = function (xml) {
|
|
348
|
+
var getxml = new DOMParser();
|
|
349
|
+
var xmlDoc = getxml.parseFromString(xml, "text/xml");
|
|
350
|
+
// gets the JSON string
|
|
351
|
+
var json_str = this.jsonToStr(this.setJsonObj(xmlDoc));
|
|
352
|
+
// sets and returns the JSON object, if "rstr" undefined (not passed), else, returns JSON string
|
|
353
|
+
return json_str;
|
|
354
|
+
};
|
|
355
|
+
Utils.prototype.jsonToStr = function (js_obj) {
|
|
356
|
+
var rejsn = JSON.stringify(js_obj, undefined, 2).replace(/(\\t|\\r|\\n)/g, '').replace(/"",[\n\t\r\s]+""[,]*/g, '').replace(/(\n[\t\s\r]*\n)/g, '').replace(/[\s\t]{2,}""[,]{0,1}/g, '').replace(/"[\s\t]{1,}"[,]{0,1}/g, '').replace(/\[[\t\s]*\]/g, '""');
|
|
357
|
+
return (rejsn.indexOf('"parsererror": {') == -1) ? rejsn : 'Invalid XML format';
|
|
358
|
+
};
|
|
359
|
+
Utils.prototype.setJsonObj = function (xml) {
|
|
360
|
+
var js_obj = {};
|
|
361
|
+
if (xml.nodeType == 1) { // Element
|
|
362
|
+
if (xml.attributes.length > 0) {
|
|
363
|
+
js_obj["@attributes"] = {};
|
|
364
|
+
for (var j = 0; j < xml.attributes.length; j++) {
|
|
365
|
+
var attribute = xml.attributes.item(j);
|
|
366
|
+
js_obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
else if (xml.nodeType == 3) { // Text
|
|
371
|
+
js_obj = xml.nodeValue;
|
|
372
|
+
}
|
|
373
|
+
else if (xml.nodeType == 4) { // CDATA
|
|
374
|
+
js_obj = xml.nodeValue;
|
|
375
|
+
}
|
|
376
|
+
if (xml.hasChildNodes()) {
|
|
377
|
+
for (var i = 0; i < xml.childNodes.length; i++) {
|
|
378
|
+
var item = xml.childNodes.item(i);
|
|
379
|
+
var nodeName = item.nodeName;
|
|
380
|
+
if (typeof (js_obj[nodeName]) == "undefined") {
|
|
381
|
+
js_obj[nodeName] = this.setJsonObj(item);
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
if (typeof (js_obj[nodeName].push) == "undefined") {
|
|
385
|
+
var old = js_obj[nodeName];
|
|
386
|
+
js_obj[nodeName] = [];
|
|
387
|
+
js_obj[nodeName].push(old);
|
|
388
|
+
}
|
|
389
|
+
js_obj[nodeName].push(this.setJsonObj(item));
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
return js_obj;
|
|
394
|
+
};
|
|
370
395
|
Utils.prototype.dataToJSON = function (data) {
|
|
371
396
|
try {
|
|
372
397
|
var parser = new DOMParser();
|
|
@@ -386,12 +411,13 @@ var Utils = /** @class */ (function () {
|
|
|
386
411
|
}
|
|
387
412
|
this.smoCallBacks.getFile(this.smo.vars.url);
|
|
388
413
|
};
|
|
389
|
-
Utils.prototype.startCheckDatasource = function () {
|
|
414
|
+
Utils.prototype.startCheckDatasource = function (timeout) {
|
|
415
|
+
if (timeout === void 0) { timeout = 10; }
|
|
390
416
|
this.getDatasource();
|
|
391
417
|
var self = this;
|
|
392
418
|
setInterval(function () {
|
|
393
419
|
self.getDatasource();
|
|
394
|
-
},
|
|
420
|
+
}, timeout * 1000);
|
|
395
421
|
};
|
|
396
422
|
return Utils;
|
|
397
423
|
}());
|
|
@@ -404,6 +430,7 @@ var SMO_EVENT_TYPE;
|
|
|
404
430
|
SMO_EVENT_TYPE["infoCurrentLocation"] = "infoCurrentLocation";
|
|
405
431
|
SMO_EVENT_TYPE["setSalidaData"] = "setSalidaData";
|
|
406
432
|
SMO_EVENT_TYPE["updatefromsalida"] = "updatefromsalida";
|
|
433
|
+
SMO_EVENT_TYPE["setDatasourceJson"] = "setDatasourceJson";
|
|
407
434
|
})(SMO_EVENT_TYPE = exports.SMO_EVENT_TYPE || (exports.SMO_EVENT_TYPE = {}));
|
|
408
435
|
/* start():void{
|
|
409
436
|
this.emit("start");
|
|
@@ -423,7 +450,7 @@ var SMO_EVENT_TYPE;
|
|
|
423
450
|
setSalidaData(data:DataSalida):void{
|
|
424
451
|
this.emit("setSalidaData",data);
|
|
425
452
|
}
|
|
426
|
-
|
|
453
|
+
|
|
427
454
|
updatefromsalida(data:any):void{
|
|
428
455
|
this.emit("updatefromsalida",data);
|
|
429
456
|
} */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@denevads/dnv-smo",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "SMO module",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"@types/node": "^17.0.42"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
+
"mitt": "^3.0.0",
|
|
21
22
|
"rxjs": "^7.5.6"
|
|
22
23
|
}
|
|
23
24
|
}
|
package/src/smo.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {EventEmitter} from 'events';
|
|
2
1
|
import { setDatasource,variable,location,DataSalida, ExecFunction, Notify, start } from "./interfaces/callbacks";
|
|
3
|
-
import {
|
|
4
|
-
export class SMO
|
|
5
|
-
public
|
|
6
|
-
public id:string ="";
|
|
2
|
+
import { Subject} from 'rxjs';
|
|
3
|
+
export class SMO {
|
|
4
|
+
public vars:any = {};
|
|
5
|
+
public id:string = "";
|
|
7
6
|
public smoCallBacks:smoCallBacks;
|
|
8
7
|
public utils:Utils;
|
|
9
8
|
public events:SmoEvents;
|
|
10
9
|
constructor(){
|
|
11
|
-
super();
|
|
12
10
|
this.init();
|
|
13
11
|
this.initOnMessage();
|
|
14
12
|
this.smoCallBacks = new smoCallBacks(this);
|
|
@@ -26,7 +24,12 @@ export class SMO extends EventEmitter{
|
|
|
26
24
|
while (match = search.exec(query)) {
|
|
27
25
|
this.vars[decode(match[1])] = decode(match[2]);
|
|
28
26
|
}
|
|
29
|
-
|
|
27
|
+
/* let hash;
|
|
28
|
+
let hashes = window.location.href.slice(window.location.href.indexOf("?") + 1).split("&");
|
|
29
|
+
for (var i = 0; i < hashes.length; i++) {
|
|
30
|
+
hash = hashes[i].split("=");
|
|
31
|
+
this.vars[hash[0]] = hash[1];
|
|
32
|
+
}*/
|
|
30
33
|
if (this.vars.idSmo) {
|
|
31
34
|
this.id = this.vars.idSmo;
|
|
32
35
|
return;
|
|
@@ -53,7 +56,7 @@ export class SMO extends EventEmitter{
|
|
|
53
56
|
}
|
|
54
57
|
if(func ==SMO_EVENT_TYPE.setCurrentStream){
|
|
55
58
|
selft.setCurrentStream(e.data.objData);
|
|
56
|
-
return;
|
|
59
|
+
return;
|
|
57
60
|
}
|
|
58
61
|
if(func==SMO_EVENT_TYPE.infoCurrentLocation){
|
|
59
62
|
selft.infoCurrentLocation(e.data.objData);
|
|
@@ -68,63 +71,45 @@ export class SMO extends EventEmitter{
|
|
|
68
71
|
return;
|
|
69
72
|
}
|
|
70
73
|
console.warn("message not implemented!!" +func);
|
|
71
|
-
/* try {
|
|
72
|
-
var targets = e.data.target.split('.');
|
|
73
|
-
var fn = window;
|
|
74
|
-
var obj = window;
|
|
75
|
-
for (var i = 0; i < targets.length; i++) {
|
|
76
|
-
obj = fn;
|
|
77
|
-
fn = obj[targets[i]];
|
|
78
|
-
}
|
|
79
|
-
fn.call(obj, e.data.objData); // conservamos el valor de this
|
|
80
|
-
} catch (ex) {
|
|
81
|
-
//Si no ha podido llamar es porque no existe el entorno
|
|
82
|
-
|
|
83
|
-
}*/
|
|
84
74
|
}
|
|
85
75
|
}
|
|
86
76
|
}
|
|
87
77
|
start():void{
|
|
88
|
-
this.
|
|
78
|
+
this.events.start.next({});
|
|
89
79
|
}
|
|
90
80
|
setDatasource(datasource:setDatasource):void {
|
|
91
|
-
this.
|
|
81
|
+
this.events.setDatasource.next(datasource);
|
|
82
|
+
this.events.setDatasourceJson.next(this.utils.xmlToJSON(datasource.xml));
|
|
92
83
|
}
|
|
93
84
|
getVariable(variable:variable):void{
|
|
94
|
-
this.
|
|
85
|
+
this.events.getVariable.next(variable);
|
|
95
86
|
}
|
|
96
87
|
setCurrentStream(stream:string):void{
|
|
97
|
-
|
|
88
|
+
this.events.setCurrentStream.next(stream);
|
|
98
89
|
}
|
|
99
90
|
infoCurrentLocation(location:location):void{
|
|
100
|
-
this.
|
|
91
|
+
this.events.infoCurrentLocation.next(location);
|
|
101
92
|
}
|
|
102
93
|
setSalidaData(data:DataSalida):void{
|
|
103
|
-
|
|
94
|
+
this.events.setSalidaData.next(data);
|
|
104
95
|
}
|
|
105
|
-
|
|
96
|
+
|
|
106
97
|
updatefromsalida(data:any):void{
|
|
107
|
-
this.
|
|
98
|
+
this.events.updatefromsalida.next(data);
|
|
108
99
|
}
|
|
109
|
-
|
|
100
|
+
|
|
110
101
|
}
|
|
102
|
+
|
|
111
103
|
class SmoEvents{
|
|
112
|
-
public start:
|
|
113
|
-
public setDatasource:
|
|
114
|
-
public
|
|
115
|
-
public
|
|
116
|
-
public
|
|
117
|
-
public
|
|
118
|
-
public
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
this.setDatasource = fromEvent<setDatasource>(smo,SMO_EVENT_TYPE.setDatasource);
|
|
122
|
-
this.getVariable = fromEvent<variable>(smo,SMO_EVENT_TYPE.getVariable);
|
|
123
|
-
this.setCurrentStream = fromEvent<string>(smo,SMO_EVENT_TYPE.setCurrentStream);
|
|
124
|
-
this.infoCurrentLocation = fromEvent<location>(smo,SMO_EVENT_TYPE.infoCurrentLocation);
|
|
125
|
-
this.setSalidaData = fromEvent<DataSalida>(smo,SMO_EVENT_TYPE.setSalidaData);
|
|
126
|
-
this.updatefromsalida = fromEvent<any>(smo,SMO_EVENT_TYPE.updatefromsalida);
|
|
127
|
-
}
|
|
104
|
+
public start: Subject<start> = new Subject<start>();
|
|
105
|
+
public setDatasource: Subject<setDatasource> = new Subject<setDatasource>();
|
|
106
|
+
public setDatasourceJson: Subject<any> = new Subject<any>();
|
|
107
|
+
public getVariable: Subject<variable> = new Subject<variable>();
|
|
108
|
+
public setCurrentStream: Subject<string> = new Subject<string>();
|
|
109
|
+
public infoCurrentLocation: Subject<location> = new Subject<location>();
|
|
110
|
+
public setSalidaData: Subject<DataSalida> = new Subject<DataSalida>();
|
|
111
|
+
public updatefromsalida: Subject<any> = new Subject<any>();
|
|
112
|
+
constructor(smo:SMO){}
|
|
128
113
|
}
|
|
129
114
|
class smoCallBacks{
|
|
130
115
|
smo:SMO;
|
|
@@ -132,7 +117,7 @@ class smoCallBacks{
|
|
|
132
117
|
this.smo =_smo;
|
|
133
118
|
}
|
|
134
119
|
public onSmoLoad():void {
|
|
135
|
-
|
|
120
|
+
|
|
136
121
|
window.parent.postMessage({
|
|
137
122
|
target: "Dnv.smoCallbacks.onSmoLoad",
|
|
138
123
|
objData: undefined,
|
|
@@ -190,7 +175,7 @@ class smoCallBacks{
|
|
|
190
175
|
window.parent.postMessage({
|
|
191
176
|
target: "Dnv.smoCallbacks.reiniciarDispositivo",
|
|
192
177
|
objData: {
|
|
193
|
-
txt: msn // Razón del reinicio
|
|
178
|
+
txt: msn // Razón del reinicio
|
|
194
179
|
},
|
|
195
180
|
idSmo: this.smo.id
|
|
196
181
|
}, "*");
|
|
@@ -260,7 +245,7 @@ class smoCallBacks{
|
|
|
260
245
|
getLocalData(variable:string):void {
|
|
261
246
|
parent.postMessage({
|
|
262
247
|
target: "Dnv.smoCallbacks.getLocalData",
|
|
263
|
-
objData: variable, // nameData
|
|
248
|
+
objData: variable, // nameData
|
|
264
249
|
idSmo: this.smo.id
|
|
265
250
|
}, "*");
|
|
266
251
|
/* MIRAR SMO.setDatasource */
|
|
@@ -277,14 +262,14 @@ class smoCallBacks{
|
|
|
277
262
|
finAviso(id:string):void {
|
|
278
263
|
parent.postMessage({
|
|
279
264
|
target: "Dnv.smoCallbacks.finAviso",
|
|
280
|
-
objData: id, // id del aviso
|
|
265
|
+
objData: id, // id del aviso
|
|
281
266
|
idSmo: this.smo.id
|
|
282
267
|
}, "*");
|
|
283
268
|
}
|
|
284
269
|
refreshDatasource(codigo:string):void {
|
|
285
270
|
parent.postMessage({
|
|
286
271
|
target: "Dnv.smoCallbacks.refreshDatasource",
|
|
287
|
-
objData: codigo, // Codigo del datasource
|
|
272
|
+
objData: codigo, // Codigo del datasource
|
|
288
273
|
idSmo: this.smo.id
|
|
289
274
|
}, "*");
|
|
290
275
|
}
|
|
@@ -299,15 +284,15 @@ class smoCallBacks{
|
|
|
299
284
|
getSalidaData(data:string):void {
|
|
300
285
|
parent.postMessage({
|
|
301
286
|
target: "Dnv.smoCallbacks.getSalidaData",
|
|
302
|
-
objData: data, // Nombre del "data" que solicita. El player recibe ese string y hace un select case del mismo para devolver un json con datos al smo\html5 que le ha invocado.
|
|
287
|
+
objData: data, // Nombre del "data" que solicita. El player recibe ese string y hace un select case del mismo para devolver un json con datos al smo\html5 que le ha invocado.
|
|
303
288
|
idSmo: this.smo.id
|
|
304
289
|
}, "*");
|
|
305
290
|
/* MIRAR SMO.setSalidaData */
|
|
306
291
|
}
|
|
307
292
|
ejecutaFuncion(data:ExecFunction):void {
|
|
308
293
|
/*data ={
|
|
309
|
-
funcion: "", // Nombre de la función que se debe ejecutar
|
|
310
|
-
params: "" // Parámetros que debemos enviarle a la funcion. sin separadores ni nada, un string y se usa como tal. Solo esta implementada en un caso y se usa como tal sin parsear ni nada
|
|
294
|
+
funcion: "", // Nombre de la función que se debe ejecutar
|
|
295
|
+
params: "" // Parámetros que debemos enviarle a la funcion. sin separadores ni nada, un string y se usa como tal. Solo esta implementada en un caso y se usa como tal sin parsear ni nada
|
|
311
296
|
} */
|
|
312
297
|
parent.postMessage({
|
|
313
298
|
target: "Dnv.smoCallbacks.ejecutaFuncion",
|
|
@@ -353,7 +338,7 @@ class smoCallBacks{
|
|
|
353
338
|
parent.postMessage({ target: "Dnv.smoCallbacks.stopPlayOnceChannel", objData: {}, idSmo: this.smo.id }, "*");
|
|
354
339
|
}
|
|
355
340
|
editWrapperStyle(obj: any):void{
|
|
356
|
-
|
|
341
|
+
/*{"posX": "0px","posY": "0px","alto": "0px","ancho": "0px","overflow": "hidden","scale": 0.1,"zindex": 0.1,"opacidad": 0.1,"isMaestro": true,duracionTransition: "1s", transitionTiming: "lineal", css: string} */
|
|
357
342
|
parent.postMessage({
|
|
358
343
|
target: "Dnv.smoCallbacks.editWrapperStyle",
|
|
359
344
|
objData: obj,
|
|
@@ -368,6 +353,52 @@ class Utils{
|
|
|
368
353
|
this.smo = _smo;
|
|
369
354
|
this.smoCallBacks =_smoCallBacks;
|
|
370
355
|
}
|
|
356
|
+
// Funciones para XML to JSON
|
|
357
|
+
xmlToJSON(xml:string) {
|
|
358
|
+
let getxml = new DOMParser();
|
|
359
|
+
let xmlDoc = getxml.parseFromString(xml,"text/xml");
|
|
360
|
+
// gets the JSON string
|
|
361
|
+
let json_str = this.jsonToStr(this.setJsonObj(xmlDoc));
|
|
362
|
+
// sets and returns the JSON object, if "rstr" undefined (not passed), else, returns JSON string
|
|
363
|
+
return json_str;
|
|
364
|
+
}
|
|
365
|
+
jsonToStr(js_obj:any) {
|
|
366
|
+
let rejsn = JSON.stringify(js_obj, undefined, 2).replace(/(\\t|\\r|\\n)/g, '').replace(/"",[\n\t\r\s]+""[,]*/g, '').replace(/(\n[\t\s\r]*\n)/g, '').replace(/[\s\t]{2,}""[,]{0,1}/g, '').replace(/"[\s\t]{1,}"[,]{0,1}/g, '').replace(/\[[\t\s]*\]/g, '""');
|
|
367
|
+
return (rejsn.indexOf('"parsererror": {') == -1) ? rejsn : 'Invalid XML format';
|
|
368
|
+
}
|
|
369
|
+
setJsonObj(xml: any) {
|
|
370
|
+
let js_obj = {} as any;
|
|
371
|
+
if (xml.nodeType == 1) { // Element
|
|
372
|
+
if (xml.attributes.length > 0) {
|
|
373
|
+
js_obj["@attributes"] = {};
|
|
374
|
+
for (let j = 0; j < xml.attributes.length; j++) {
|
|
375
|
+
let attribute = xml.attributes.item(j);
|
|
376
|
+
js_obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
} else if (xml.nodeType == 3) { // Text
|
|
380
|
+
js_obj = xml.nodeValue;
|
|
381
|
+
} else if (xml.nodeType == 4) { // CDATA
|
|
382
|
+
js_obj = xml.nodeValue;
|
|
383
|
+
}
|
|
384
|
+
if (xml.hasChildNodes()) {
|
|
385
|
+
for (let i = 0; i < xml.childNodes.length; i++) {
|
|
386
|
+
let item = xml.childNodes.item(i);
|
|
387
|
+
let nodeName = item.nodeName;
|
|
388
|
+
if (typeof (js_obj[nodeName]) == "undefined") {
|
|
389
|
+
js_obj[nodeName] = this.setJsonObj(item);
|
|
390
|
+
} else {
|
|
391
|
+
if (typeof (js_obj[nodeName].push) == "undefined") {
|
|
392
|
+
let old = js_obj[nodeName];
|
|
393
|
+
js_obj[nodeName] = [];
|
|
394
|
+
js_obj[nodeName].push(old);
|
|
395
|
+
}
|
|
396
|
+
js_obj[nodeName].push(this.setJsonObj(item));
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
return js_obj;
|
|
401
|
+
}
|
|
371
402
|
dataToJSON(data:setDatasource):any {
|
|
372
403
|
try {
|
|
373
404
|
var parser = new DOMParser();
|
|
@@ -385,14 +416,14 @@ class Utils{
|
|
|
385
416
|
return;
|
|
386
417
|
}
|
|
387
418
|
this.smoCallBacks.getFile(this.smo.vars.url);
|
|
388
|
-
|
|
419
|
+
|
|
389
420
|
}
|
|
390
|
-
startCheckDatasource():void{
|
|
421
|
+
startCheckDatasource(timeout: number = 10):void{
|
|
391
422
|
this.getDatasource();
|
|
392
423
|
let self = this;
|
|
393
424
|
setInterval(function() {
|
|
394
425
|
self.getDatasource();
|
|
395
|
-
},
|
|
426
|
+
}, timeout * 1000);
|
|
396
427
|
}
|
|
397
428
|
}
|
|
398
429
|
export enum SMO_EVENT_TYPE{
|
|
@@ -402,7 +433,8 @@ export enum SMO_EVENT_TYPE{
|
|
|
402
433
|
setCurrentStream = "setCurrentStream",
|
|
403
434
|
infoCurrentLocation = "infoCurrentLocation",
|
|
404
435
|
setSalidaData ="setSalidaData",
|
|
405
|
-
updatefromsalida = "updatefromsalida"
|
|
436
|
+
updatefromsalida = "updatefromsalida",
|
|
437
|
+
setDatasourceJson = "setDatasourceJson"
|
|
406
438
|
}
|
|
407
439
|
/* start():void{
|
|
408
440
|
this.emit("start");
|
|
@@ -422,7 +454,7 @@ export enum SMO_EVENT_TYPE{
|
|
|
422
454
|
setSalidaData(data:DataSalida):void{
|
|
423
455
|
this.emit("setSalidaData",data);
|
|
424
456
|
}
|
|
425
|
-
|
|
457
|
+
|
|
426
458
|
updatefromsalida(data:any):void{
|
|
427
459
|
this.emit("updatefromsalida",data);
|
|
428
460
|
} */
|
|
@@ -439,4 +471,4 @@ Scanning= 2,
|
|
|
439
471
|
Timeout= 3,
|
|
440
472
|
Warning= 4,
|
|
441
473
|
Error= 5
|
|
442
|
-
}
|
|
474
|
+
}
|