@flexem/fc-gui 3.0.0-alpha.96 → 3.0.0-alpha.98
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/CHANGELOG.md +49 -1
- package/bundles/@flexem/fc-gui.umd.js +222 -89
- package/bundles/@flexem/fc-gui.umd.js.map +1 -1
- package/bundles/@flexem/fc-gui.umd.min.js +4 -4
- package/bundles/@flexem/fc-gui.umd.min.js.map +1 -1
- package/elements/historical-curve/historical-curve.element.d.ts +3 -0
- package/elements/historical-curve/historical-curve.element.js +71 -0
- package/elements/historical-curve/historical-curve.element.metadata.json +1 -1
- package/elements/video/video-element.d.ts +4 -3
- package/elements/video/video-element.js +129 -86
- package/elements/video/video-element.metadata.json +1 -1
- package/elements/view-operation/view-operation.element.js +8 -0
- package/modal/write-value/write-value-modal.component.js +12 -1
- package/model/historical-curve/historical-curve-chanel.model.d.ts +8 -0
- package/package.json +1 -1
|
@@ -32,6 +32,8 @@ export declare class HistoricalCurveElement extends ConditionalDisplayElement {
|
|
|
32
32
|
private elementStatus;
|
|
33
33
|
private chartElement;
|
|
34
34
|
private isMobileMode;
|
|
35
|
+
private data;
|
|
36
|
+
private timer;
|
|
35
37
|
constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, historyDataStore: HistoryDataStore, signalRAppId: string);
|
|
36
38
|
dispose(): void;
|
|
37
39
|
private getValidTimePeriods;
|
|
@@ -40,6 +42,7 @@ export declare class HistoricalCurveElement extends ConditionalDisplayElement {
|
|
|
40
42
|
private reRenderElement;
|
|
41
43
|
private renderElement;
|
|
42
44
|
private renderChart;
|
|
45
|
+
initPoint(): void;
|
|
43
46
|
private getLineChart;
|
|
44
47
|
private getMultiBarWithFocusChart;
|
|
45
48
|
private renderCommonProperty;
|
|
@@ -29,6 +29,7 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
|
|
|
29
29
|
operationButtonMargin: 4
|
|
30
30
|
};
|
|
31
31
|
this.elementStatus = HistoricalCurveElementStatus.Loading;
|
|
32
|
+
this.data = [];
|
|
32
33
|
this.logger = injector.get(LOGGER_SERVICE_TOKEN);
|
|
33
34
|
this.localization = injector.get(LOCALIZATION);
|
|
34
35
|
this.timePeriods = this.getValidTimePeriods();
|
|
@@ -140,6 +141,7 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
|
|
|
140
141
|
each(result, v => values.push({ x: moment(v.time).local().toDate().valueOf(), y: v.values[key] }));
|
|
141
142
|
data.push({ key: channel.name, area: channel.projectEnabled, values: values });
|
|
142
143
|
});
|
|
144
|
+
this.data = data;
|
|
143
145
|
nv.addGraph(() => {
|
|
144
146
|
if (this.model.displaySetting.curveType === CurveType.BarGroup || this.model.displaySetting.curveType === CurveType.BarStack) {
|
|
145
147
|
return this.getMultiBarWithFocusChart(chartWidth, chartHeight, data);
|
|
@@ -149,6 +151,50 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
|
|
|
149
151
|
}
|
|
150
152
|
});
|
|
151
153
|
}
|
|
154
|
+
initPoint() {
|
|
155
|
+
try {
|
|
156
|
+
const legendList = this.$element
|
|
157
|
+
.find('.nv-legend')
|
|
158
|
+
.find('.nv-series');
|
|
159
|
+
let hiddenCount = 0;
|
|
160
|
+
for (let i = 0; i < this.data.length; i++) {
|
|
161
|
+
const channel = this.model.dataSetting.channels[i];
|
|
162
|
+
if (legendList.eq(i).children().eq(0).css('fill-opacity') === '1') {
|
|
163
|
+
const pointList = this.$element
|
|
164
|
+
.find('.nv-scatterWrap')
|
|
165
|
+
.find('.nv-series-' + (i - hiddenCount))
|
|
166
|
+
.find('.nv-point');
|
|
167
|
+
if (pointList && pointList.length) {
|
|
168
|
+
for (let j = 0; j < pointList.length; j++) {
|
|
169
|
+
const point = pointList.eq(j);
|
|
170
|
+
const previousPoint = pointList.eq(j - 1);
|
|
171
|
+
if (j && point.attr('transform').split(',')[1] !== previousPoint.attr('transform').split(',')[1]) {
|
|
172
|
+
if (channel.enablePoint && channel.pointColor) {
|
|
173
|
+
const pointStyle = {
|
|
174
|
+
'stroke-opacity': 1,
|
|
175
|
+
'stroke-width': '2px',
|
|
176
|
+
'stroke': channel.pointColor,
|
|
177
|
+
'fill-opacity': 1,
|
|
178
|
+
'fill': channel.pointColor
|
|
179
|
+
};
|
|
180
|
+
point.addClass('nv-mark-point');
|
|
181
|
+
point.css(pointStyle);
|
|
182
|
+
previousPoint.addClass('nv-mark-point');
|
|
183
|
+
previousPoint.css(pointStyle);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
hiddenCount++;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch (e) {
|
|
195
|
+
console.log(e);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
152
198
|
getLineChart(chartWidth, chartHeight, data) {
|
|
153
199
|
const chart = nv.models.lineChart().showLegend(true)
|
|
154
200
|
.margin({ top: 0, bottom: 0, left: this.displayOption.marginLeft, right: this.displayOption.marginRight })
|
|
@@ -164,6 +210,19 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
|
|
|
164
210
|
}
|
|
165
211
|
this.renderCommonProperty(chart, chartWidth, chartHeight, data);
|
|
166
212
|
this.renderOperationArea(chartWidth, chartHeight);
|
|
213
|
+
this.initPoint();
|
|
214
|
+
chart.legend.dispatch.on('legendClick', () => {
|
|
215
|
+
setTimeout(() => {
|
|
216
|
+
this.$element.find('.nv-mark-point').css({
|
|
217
|
+
'stroke-opacity': 0,
|
|
218
|
+
'stroke-width': 0,
|
|
219
|
+
'stroke': 'unset',
|
|
220
|
+
'fill-opacity': 0,
|
|
221
|
+
'fill': 'unset'
|
|
222
|
+
}).removeClass('nv-mark-point');
|
|
223
|
+
this.initPoint();
|
|
224
|
+
}, 1);
|
|
225
|
+
});
|
|
167
226
|
return chart;
|
|
168
227
|
}
|
|
169
228
|
getMultiBarWithFocusChart(chartWidth, chartHeight, data) {
|
|
@@ -207,6 +266,18 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
|
|
|
207
266
|
chart.tooltip.headerFormatter(d => this.timeFormat(d, '%x %X'));
|
|
208
267
|
if (this.model.displaySetting.showAxis) {
|
|
209
268
|
chart.xAxis.showMaxMin(true).tickFormat(d => {
|
|
269
|
+
this.$element.find('.nv-mark-point').css({
|
|
270
|
+
'stroke-opacity': 0,
|
|
271
|
+
'stroke-width': 0,
|
|
272
|
+
'stroke': 'unset',
|
|
273
|
+
'fill-opacity': 0,
|
|
274
|
+
'fill': 'unset'
|
|
275
|
+
}).removeClass('nv-mark-point');
|
|
276
|
+
clearTimeout(this.timer);
|
|
277
|
+
this.timer = undefined;
|
|
278
|
+
this.timer = setTimeout(() => {
|
|
279
|
+
this.initPoint();
|
|
280
|
+
}, 100);
|
|
210
281
|
if (this.currentTimePeriod === 3 || this.currentTimePeriod === 4 || this.currentTimePeriod === 5) {
|
|
211
282
|
return this.timeFormat(d, '%y-%m-%d');
|
|
212
283
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"HistoricalCurveElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":21,"character":44},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"HistoricalCurveElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":21,"character":44},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":65,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":66,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":67,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":68,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":69,"character":23},{"__symbolic":"reference","module":"../../config","name":"HistoryDataStore","line":70,"character":43},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"getValidTimePeriods":[{"__symbolic":"method"}],"updateTimeRange":[{"__symbolic":"method"}],"updateQueryTimeRange":[{"__symbolic":"method"}],"reRenderElement":[{"__symbolic":"method"}],"renderElement":[{"__symbolic":"method"}],"renderChart":[{"__symbolic":"method"}],"initPoint":[{"__symbolic":"method"}],"getLineChart":[{"__symbolic":"method"}],"getMultiBarWithFocusChart":[{"__symbolic":"method"}],"renderCommonProperty":[{"__symbolic":"method"}],"renderOperationArea":[{"__symbolic":"method"}],"timeFormat":[{"__symbolic":"method"}],"loadFirstPage":[{"__symbolic":"method"}],"loadNextPage":[{"__symbolic":"method"}],"loadPreviousPage":[{"__symbolic":"method"}],"loadLastPage":[{"__symbolic":"method"}],"initElementStatus":[{"__symbolic":"method"}],"updateElementStatus":[{"__symbolic":"method"}],"setStatusAsUnbound":[{"__symbolic":"method"}],"setStatusAsLoading":[{"__symbolic":"method"}],"setStatusAsLoadFailed":[{"__symbolic":"method"}],"renderStatus":[{"__symbolic":"method"}],"clearStatus":[{"__symbolic":"method"}]}}}}]
|
|
@@ -16,15 +16,16 @@ export declare class VideoElement extends ConditionalDisplayElement {
|
|
|
16
16
|
private videoId;
|
|
17
17
|
private isShow;
|
|
18
18
|
private videoPlayer;
|
|
19
|
-
private resetTimer;
|
|
20
19
|
private refreshTimer;
|
|
21
|
-
private
|
|
20
|
+
private isFullscreen;
|
|
21
|
+
private videoUrl;
|
|
22
22
|
constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, videoService: VideoService, guiSize: Size, svgRootClass: string, signalRAppId: string);
|
|
23
23
|
dispose(): void;
|
|
24
24
|
hide(): void;
|
|
25
25
|
show(): void;
|
|
26
26
|
private init;
|
|
27
|
+
private initVideo;
|
|
27
28
|
private addVideoAddressToolTip;
|
|
28
29
|
private setAndroidVideo;
|
|
29
|
-
private
|
|
30
|
+
private setIosVideo;
|
|
30
31
|
}
|
|
@@ -11,6 +11,7 @@ export class VideoElement extends ConditionalDisplayElement {
|
|
|
11
11
|
this.guiSize = guiSize;
|
|
12
12
|
this.svgRootClass = svgRootClass;
|
|
13
13
|
this.videoId = '';
|
|
14
|
+
this.isFullscreen = false;
|
|
14
15
|
this.isMobileMode = DisplayMode.Mobile === injector.get(GlobalSettings).displayMode;
|
|
15
16
|
this.localization = injector.get(LOCALIZATION);
|
|
16
17
|
this.init();
|
|
@@ -46,60 +47,84 @@ export class VideoElement extends ConditionalDisplayElement {
|
|
|
46
47
|
return;
|
|
47
48
|
}
|
|
48
49
|
this.videoId = Guid.newGuid().toString('n');
|
|
50
|
+
this.rootElement.append('rect').attr('id', 'rect' + this.videoId).attr('fill', 'transparent')
|
|
51
|
+
.attr('width', this.model.size.width)
|
|
52
|
+
.attr('height', this.model.size.height);
|
|
49
53
|
this.videoService.getVideoUrl(this.model.videoTag).then(result => {
|
|
50
|
-
this.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
54
|
+
this.videoUrl = result.url;
|
|
55
|
+
this.initVideo(result.url, this.videoId);
|
|
56
|
+
}).catch(() => {
|
|
57
|
+
throw new Error('Failure of the videoService');
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
initVideo(videoUrl, videoId) {
|
|
61
|
+
const patt = /https:.+.m3u8/;
|
|
62
|
+
if (videoUrl.indexOf('http:') !== -1) {
|
|
63
|
+
videoUrl = videoUrl.replace('http:', 'https:');
|
|
64
|
+
}
|
|
65
|
+
if (!patt.test(videoUrl)) {
|
|
66
|
+
let videoToolTip = this.localization.invalidVideoAddress;
|
|
67
|
+
if (isNil(videoUrl) || videoUrl === '') {
|
|
68
|
+
videoToolTip = this.localization.unconfiguredVideoAddress;
|
|
64
69
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
70
|
+
this.addVideoAddressToolTip(videoToolTip);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const isAndroid = !!navigator.userAgent.match(/(Android)/i);
|
|
74
|
+
const isIos = !!navigator.userAgent.match(/(Mac)/i);
|
|
75
|
+
const currentRect = this.$element.find('rect#rect' + videoId).first();
|
|
76
|
+
if (!currentRect.length) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const clientRect = currentRect[0].getBoundingClientRect();
|
|
80
|
+
const chartWidth = clientRect.width;
|
|
81
|
+
const chartHeight = clientRect.height;
|
|
82
|
+
const left = this.model.location.x / this.guiSize.width * $('.' + this.svgRootClass).find('.svg-content').width();
|
|
83
|
+
const top = this.model.location.y / this.guiSize.height * $('.' + this.svgRootClass).find('.svg-content').height();
|
|
84
|
+
const scareX = this.model.location.x / this.guiSize.width;
|
|
85
|
+
const scareY = this.model.location.y / this.guiSize.height;
|
|
86
|
+
if (isIos) {
|
|
87
|
+
videoUrl = videoUrl + '#t=1';
|
|
88
|
+
}
|
|
89
|
+
const preload = isIos ? ' preload=\'metadata\'' : '';
|
|
90
|
+
let videoHtml = `<video scareX="${scareX}"
|
|
91
|
+
scareY="${scareY}" id="${videoId}" ${preload} src="${videoUrl}" width="${chartWidth}" height="${chartHeight}"
|
|
92
|
+
style="position: absolute;top:${top}px;left:${left}px;object-fit:fill;z-index:0;"
|
|
93
|
+
playsInline webkit-playsinline `;
|
|
94
|
+
if (this.isMobileMode) {
|
|
95
|
+
if (isAndroid) {
|
|
96
|
+
videoHtml += ' autoplay muted></video>';
|
|
87
97
|
}
|
|
88
98
|
else {
|
|
89
|
-
video
|
|
90
|
-
}
|
|
91
|
-
if (this.isShow === false) {
|
|
92
|
-
$('#' + this.videoId).hide();
|
|
99
|
+
videoHtml += ' controls muted></video>';
|
|
93
100
|
}
|
|
94
|
-
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
videoHtml += ' controls autoplay muted></video>';
|
|
104
|
+
}
|
|
105
|
+
$('.' + this.svgRootClass).find('.svg-content').append(videoHtml);
|
|
106
|
+
if (this.isShow === false) {
|
|
107
|
+
$('#' + this.videoId).hide();
|
|
108
|
+
}
|
|
109
|
+
setTimeout(() => {
|
|
95
110
|
if (isAndroid) {
|
|
96
|
-
|
|
97
|
-
this.setAndroidVideo();
|
|
98
|
-
}, 500);
|
|
111
|
+
this.setAndroidVideo(videoId);
|
|
99
112
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
113
|
+
else if (isIos) {
|
|
114
|
+
this.setIosVideo(this.videoUrl, videoId);
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
this.videoPlayer = new EZUIPlayer(videoId);
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
console.log(err);
|
|
121
|
+
}
|
|
122
|
+
}, 1000);
|
|
123
|
+
const style = document.createElement('style');
|
|
124
|
+
style.innerHTML = `#${videoId}::-webkit-media-controls-enclosure {
|
|
125
|
+
display: none;
|
|
126
|
+
}`;
|
|
127
|
+
document.head.append();
|
|
103
128
|
}
|
|
104
129
|
addVideoAddressToolTip(videoToolTip) {
|
|
105
130
|
const size = this.model.size;
|
|
@@ -121,51 +146,69 @@ export class VideoElement extends ConditionalDisplayElement {
|
|
|
121
146
|
const textElement = new TextElementModal(videoToolTip, font, size.width, size.height);
|
|
122
147
|
this.$element.append(textElement.Element);
|
|
123
148
|
}
|
|
124
|
-
setAndroidVideo() {
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
clearTimeout(this.refreshTimer);
|
|
131
|
-
this.refreshTimer = null;
|
|
132
|
-
this.refreshTimer = setTimeout(() => {
|
|
133
|
-
this.init();
|
|
134
|
-
this.show();
|
|
135
|
-
}, 1000);
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
bindFullscreenEvent() {
|
|
139
|
-
const that = this;
|
|
149
|
+
setAndroidVideo(videoId) {
|
|
150
|
+
const videoElement = $('#' + videoId);
|
|
151
|
+
let preHeight = videoElement.height();
|
|
152
|
+
let preWidth = videoElement.width();
|
|
153
|
+
let preTop = videoElement.css('top');
|
|
154
|
+
let preLeft = videoElement.css('left');
|
|
140
155
|
const { StatusBar } = window;
|
|
141
|
-
|
|
142
|
-
if (
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
156
|
+
videoElement.on('click', () => {
|
|
157
|
+
if (!this.isFullscreen) {
|
|
158
|
+
if (StatusBar) {
|
|
159
|
+
StatusBar.hide();
|
|
160
|
+
}
|
|
161
|
+
preHeight = videoElement.height();
|
|
162
|
+
preWidth = videoElement.width();
|
|
163
|
+
preTop = videoElement.css('top');
|
|
164
|
+
preLeft = videoElement.css('left');
|
|
165
|
+
const width = document.documentElement.clientWidth;
|
|
166
|
+
const height = document.documentElement.clientHeight;
|
|
167
|
+
videoElement.css('object-fit', 'contain');
|
|
168
|
+
videoElement.css('background', '#000000');
|
|
169
|
+
videoElement.css('width', width + 'px');
|
|
170
|
+
videoElement.css('height', height + 'px');
|
|
171
|
+
videoElement.css('left', '0px');
|
|
172
|
+
videoElement.css('top', '0px');
|
|
173
|
+
videoElement.css('z-index', '99');
|
|
174
|
+
videoElement.css('position', 'fixed');
|
|
175
|
+
this.isFullscreen = true;
|
|
176
|
+
try {
|
|
177
|
+
screen.orientation.lock(screen.orientation.type);
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
console.error(error);
|
|
181
|
+
}
|
|
148
182
|
}
|
|
149
183
|
else {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
184
|
+
videoElement.css('object-fit', 'fill');
|
|
185
|
+
videoElement.css('width', preWidth + 'px');
|
|
186
|
+
videoElement.css('height', preHeight + 'px');
|
|
187
|
+
videoElement.css('left', preLeft);
|
|
188
|
+
videoElement.css('top', preTop);
|
|
189
|
+
videoElement.css('z-index', '0');
|
|
190
|
+
videoElement.css('position', 'absolute');
|
|
191
|
+
this.isFullscreen = false;
|
|
192
|
+
try {
|
|
193
|
+
if (screen.orientation.type.includes('portrait')) {
|
|
194
|
+
StatusBar.show();
|
|
195
|
+
}
|
|
153
196
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
this.resetTimer = null;
|
|
157
|
-
$('#' + this.videoId).css('display', 'none');
|
|
158
|
-
this.resetTimer = setTimeout(() => {
|
|
159
|
-
$('#' + this.videoId).css({
|
|
160
|
-
'width': '100%',
|
|
161
|
-
'height': '100%',
|
|
162
|
-
'display': 'block',
|
|
163
|
-
'z-index': 0,
|
|
164
|
-
'object-fit': document.webkitIsFullScreen ? 'contain' : 'fill'
|
|
165
|
-
});
|
|
166
|
-
}, 1000);
|
|
197
|
+
catch (error) {
|
|
198
|
+
console.error(error);
|
|
167
199
|
}
|
|
168
200
|
}
|
|
169
201
|
});
|
|
170
202
|
}
|
|
203
|
+
setIosVideo(videoUrl, videoId) {
|
|
204
|
+
const video = $('#' + this.videoId);
|
|
205
|
+
video.on('webkitendfullscreen', () => {
|
|
206
|
+
video.remove();
|
|
207
|
+
clearTimeout(this.refreshTimer);
|
|
208
|
+
this.refreshTimer = null;
|
|
209
|
+
this.refreshTimer = setTimeout(() => {
|
|
210
|
+
this.initVideo(videoUrl, videoId);
|
|
211
|
+
}, 500);
|
|
212
|
+
});
|
|
213
|
+
}
|
|
171
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"VideoElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":15,"character":34},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":27,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":28,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":29,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":30,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":31,"character":23},{"__symbolic":"reference","module":"../../service","name":"VideoService","line":32,"character":39},{"__symbolic":"reference","module":"../../model","name":"Size","line":33,"character":34},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"addVideoAddressToolTip":[{"__symbolic":"method"}],"setAndroidVideo":[{"__symbolic":"method"}],"
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"VideoElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":15,"character":34},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":27,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":28,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":29,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":30,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":31,"character":23},{"__symbolic":"reference","module":"../../service","name":"VideoService","line":32,"character":39},{"__symbolic":"reference","module":"../../model","name":"Size","line":33,"character":34},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"initVideo":[{"__symbolic":"method"}],"addVideoAddressToolTip":[{"__symbolic":"method"}],"setAndroidVideo":[{"__symbolic":"method"}],"setIosVideo":[{"__symbolic":"method"}]}}}}]
|
|
@@ -170,6 +170,9 @@ export class ViewOperationElement extends ConditionalEnableElement {
|
|
|
170
170
|
const viewIndex = this.model.viewIndex;
|
|
171
171
|
if (null != viewIndex) {
|
|
172
172
|
this.popupViewService.popView(viewIndex, this.hostContainerId, this.el).subscribe(() => this.recordViewOperation(), error => this.logger.error(`ToggleView(${viewIndex}) failed. ${error}`));
|
|
173
|
+
$(`#${this.hostContainerId} video`)
|
|
174
|
+
.addClass('video-hidden')
|
|
175
|
+
.css('visibility', 'hidden');
|
|
173
176
|
}
|
|
174
177
|
else {
|
|
175
178
|
this.logger.error('[GUI]Toggle View:invalid view index');
|
|
@@ -177,6 +180,11 @@ export class ViewOperationElement extends ConditionalEnableElement {
|
|
|
177
180
|
}
|
|
178
181
|
closeView() {
|
|
179
182
|
this.popupViewService.closeView();
|
|
183
|
+
if ($(`#${this.hostContainerId} > svg > svg`).length === 0) {
|
|
184
|
+
$(`#${this.hostContainerId} .video-hidden`)
|
|
185
|
+
.removeClass('video-hidden')
|
|
186
|
+
.css('visibility', 'visible');
|
|
187
|
+
}
|
|
180
188
|
this.recordViewOperation();
|
|
181
189
|
}
|
|
182
190
|
moveView(movementX, movementY) {
|
|
@@ -110,13 +110,24 @@ let WriteValueModalComponent = class WriteValueModalComponent {
|
|
|
110
110
|
value = this.formatWriteValue();
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
+
if (!this.args.releasedVariableService) {
|
|
114
|
+
this.onClosed({
|
|
115
|
+
value: value,
|
|
116
|
+
showValue: showValue,
|
|
117
|
+
enableNumericalOperation: false,
|
|
118
|
+
isNumericalOperation: this.isNumericalOperation,
|
|
119
|
+
variableRwType: 6
|
|
120
|
+
});
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
113
123
|
this.args.releasedVariableService.getVariableWithValueTransform(this.variableName).subscribe(result => {
|
|
114
124
|
const valueTransform = JSON.parse(result.valueTransform);
|
|
115
125
|
if ((valueTransform === null || valueTransform === void 0 ? void 0 : valueTransform.Type) !== 0) {
|
|
116
126
|
this.isNumericalOperation = true;
|
|
117
127
|
}
|
|
118
128
|
this.onClosed({
|
|
119
|
-
value
|
|
129
|
+
value: value,
|
|
130
|
+
showValue: showValue,
|
|
120
131
|
enableNumericalOperation: this.enableNumericalOperation,
|
|
121
132
|
isNumericalOperation: this.isNumericalOperation,
|
|
122
133
|
variableRwType: result.variableRwType
|