@flexem/fc-gui 3.0.0-alpha.93 → 3.0.0-alpha.96

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.
@@ -32,8 +32,6 @@ export declare class HistoricalCurveElement extends ConditionalDisplayElement {
32
32
  private elementStatus;
33
33
  private chartElement;
34
34
  private isMobileMode;
35
- private data;
36
- private timer;
37
35
  constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, historyDataStore: HistoryDataStore, signalRAppId: string);
38
36
  dispose(): void;
39
37
  private getValidTimePeriods;
@@ -42,7 +40,6 @@ export declare class HistoricalCurveElement extends ConditionalDisplayElement {
42
40
  private reRenderElement;
43
41
  private renderElement;
44
42
  private renderChart;
45
- initPoint(): void;
46
43
  private getLineChart;
47
44
  private getMultiBarWithFocusChart;
48
45
  private renderCommonProperty;
@@ -29,7 +29,6 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
29
29
  operationButtonMargin: 4
30
30
  };
31
31
  this.elementStatus = HistoricalCurveElementStatus.Loading;
32
- this.data = [];
33
32
  this.logger = injector.get(LOGGER_SERVICE_TOKEN);
34
33
  this.localization = injector.get(LOCALIZATION);
35
34
  this.timePeriods = this.getValidTimePeriods();
@@ -141,7 +140,6 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
141
140
  each(result, v => values.push({ x: moment(v.time).local().toDate().valueOf(), y: v.values[key] }));
142
141
  data.push({ key: channel.name, area: channel.projectEnabled, values: values });
143
142
  });
144
- this.data = data;
145
143
  nv.addGraph(() => {
146
144
  if (this.model.displaySetting.curveType === CurveType.BarGroup || this.model.displaySetting.curveType === CurveType.BarStack) {
147
145
  return this.getMultiBarWithFocusChart(chartWidth, chartHeight, data);
@@ -151,44 +149,6 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
151
149
  }
152
150
  });
153
151
  }
154
- initPoint() {
155
- try {
156
- this.rootElement
157
- .selectAll('.nv-scatterWrap')
158
- .selectAll('.nv-point')
159
- .style('stroke-opacity', 0)
160
- .style('stroke-width', 0);
161
- const legendList = this.rootElement
162
- .selectAll('.nv-legend')
163
- .selectAll('.nv-series');
164
- let hiddenCount = 0;
165
- for (let i = 0; i < this.data.length; i++) {
166
- const channel = this.model.dataSetting.channels[i];
167
- const pointStyle = `stroke-opacity: 1;stroke-width: 8px;stroke :${channel.pointColor}`;
168
- if (legendList._groups[0][i].firstChild.style.fillOpacity === '1') {
169
- const pointList = this.rootElement
170
- .selectAll('.nv-scatterWrap')
171
- .selectAll('.nv-series-' + (i - hiddenCount)).selectAll('.nv-point')._groups[0];
172
- if (pointList && pointList.length) {
173
- for (let j = 0; j < pointList.length; j++) {
174
- if (j && $(pointList[j]).attr('transform').split(',')[1] !== $(pointList[j - 1]).attr('transform').split(',')[1]) {
175
- if (channel.enablePoint && channel.pointColor) {
176
- pointList[j].setAttribute('style', pointStyle);
177
- pointList[j - 1].setAttribute('style', pointStyle);
178
- }
179
- }
180
- }
181
- }
182
- }
183
- else {
184
- hiddenCount++;
185
- }
186
- }
187
- }
188
- catch (e) {
189
- console.log(e);
190
- }
191
- }
192
152
  getLineChart(chartWidth, chartHeight, data) {
193
153
  const chart = nv.models.lineChart().showLegend(true)
194
154
  .margin({ top: 0, bottom: 0, left: this.displayOption.marginLeft, right: this.displayOption.marginRight })
@@ -204,12 +164,6 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
204
164
  }
205
165
  this.renderCommonProperty(chart, chartWidth, chartHeight, data);
206
166
  this.renderOperationArea(chartWidth, chartHeight);
207
- this.initPoint();
208
- chart.legend.dispatch.on('legendClick', () => {
209
- setTimeout(() => {
210
- this.initPoint();
211
- }, 1);
212
- });
213
167
  return chart;
214
168
  }
215
169
  getMultiBarWithFocusChart(chartWidth, chartHeight, data) {
@@ -253,11 +207,6 @@ export class HistoricalCurveElement extends ConditionalDisplayElement {
253
207
  chart.tooltip.headerFormatter(d => this.timeFormat(d, '%x %X'));
254
208
  if (this.model.displaySetting.showAxis) {
255
209
  chart.xAxis.showMaxMin(true).tickFormat(d => {
256
- clearTimeout(this.timer);
257
- this.timer = undefined;
258
- this.timer = setTimeout(() => {
259
- this.initPoint();
260
- }, 1);
261
210
  if (this.currentTimePeriod === 3 || this.currentTimePeriod === 4 || this.currentTimePeriod === 5) {
262
211
  return this.timeFormat(d, '%y-%m-%d');
263
212
  }
@@ -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":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"}]}}}}]
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":63,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":64,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":65,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":66,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":67,"character":23},{"__symbolic":"reference","module":"../../config","name":"HistoryDataStore","line":68,"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"}],"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,16 +16,15 @@ export declare class VideoElement extends ConditionalDisplayElement {
16
16
  private videoId;
17
17
  private isShow;
18
18
  private videoPlayer;
19
+ private resetTimer;
19
20
  private refreshTimer;
20
- private isFullscreen;
21
- private videoUrl;
21
+ private isMobileType;
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;
28
27
  private addVideoAddressToolTip;
29
28
  private setAndroidVideo;
30
- private setIosVideo;
29
+ private bindFullscreenEvent;
31
30
  }
@@ -11,7 +11,6 @@ export class VideoElement extends ConditionalDisplayElement {
11
11
  this.guiSize = guiSize;
12
12
  this.svgRootClass = svgRootClass;
13
13
  this.videoId = '';
14
- this.isFullscreen = false;
15
14
  this.isMobileMode = DisplayMode.Mobile === injector.get(GlobalSettings).displayMode;
16
15
  this.localization = injector.get(LOCALIZATION);
17
16
  this.init();
@@ -47,79 +46,60 @@ export class VideoElement extends ConditionalDisplayElement {
47
46
  return;
48
47
  }
49
48
  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);
53
49
  this.videoService.getVideoUrl(this.model.videoTag).then(result => {
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;
50
+ this.isMobileType = result.isMobileType;
51
+ const isAndroid = !!navigator.userAgent.match(/(Android)/i);
52
+ let videoUrl = result.url;
53
+ const patt = /https:.+.m3u8/;
54
+ if (videoUrl.indexOf('http:') !== -1) {
55
+ videoUrl = videoUrl.replace('http:', 'https:');
69
56
  }
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>';
57
+ if (!patt.test(videoUrl)) {
58
+ let videoToolTip = this.localization.invalidVideoAddress;
59
+ if (isNil(videoUrl) || videoUrl === '') {
60
+ videoToolTip = this.localization.unconfiguredVideoAddress;
61
+ }
62
+ this.addVideoAddressToolTip(videoToolTip);
63
+ return;
64
+ }
65
+ const video = this.rootElement.append('foreignObject')
66
+ .attr('x', 0)
67
+ .attr('y', 0)
68
+ .attr('width', this.model.size.width)
69
+ .attr('height', this.model.size.height)
70
+ .append('xhtml:video')
71
+ .attr('id', this.videoId)
72
+ .attr('class', 'element-video')
73
+ .attr('scareX', this.model.location.x / this.guiSize.width)
74
+ .attr('scareY', this.model.location.y / this.guiSize.height)
75
+ .attr('src', videoUrl)
76
+ .style('width', '100%')
77
+ .style('height', '100%')
78
+ .style('object-fit', 'fill')
79
+ .attr('playsInline', true)
80
+ .attr('webkit-playsinline', true)
81
+ .attr('controls', true)
82
+ .attr('muted', true);
83
+ if (this.isMobileMode) {
84
+ if (isAndroid) {
85
+ video.attr('autoplay', true);
86
+ }
97
87
  }
98
88
  else {
99
- videoHtml += ' controls muted></video>';
89
+ video.attr('autoplay', true);
100
90
  }
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(() => {
110
- if (isAndroid) {
111
- this.setAndroidVideo(videoId);
91
+ if (this.isShow === false) {
92
+ $('#' + this.videoId).hide();
112
93
  }
113
- else if (isIos) {
114
- this.setIosVideo(this.videoUrl, videoId);
94
+ this.videoPlayer = new EZUIPlayer(this.videoId);
95
+ if (isAndroid) {
96
+ setTimeout(() => {
97
+ this.setAndroidVideo();
98
+ }, 500);
115
99
  }
116
- this.videoPlayer = new EZUIPlayer(videoId);
117
- }, 1000);
118
- const style = document.createElement('style');
119
- style.innerHTML = `#${videoId}::-webkit-media-controls-enclosure {
120
- display: none;
121
- }`;
122
- document.head.append();
100
+ }).catch(() => {
101
+ throw new Error('Failure of the videoService');
102
+ });
123
103
  }
124
104
  addVideoAddressToolTip(videoToolTip) {
125
105
  const size = this.model.size;
@@ -141,69 +121,51 @@ export class VideoElement extends ConditionalDisplayElement {
141
121
  const textElement = new TextElementModal(videoToolTip, font, size.width, size.height);
142
122
  this.$element.append(textElement.Element);
143
123
  }
144
- setAndroidVideo(videoId) {
145
- const videoElement = $('#' + videoId);
146
- let preHeight = videoElement.height();
147
- let preWidth = videoElement.width();
148
- let preTop = videoElement.css('top');
149
- let preLeft = videoElement.css('left');
124
+ setAndroidVideo() {
150
125
  const { StatusBar } = window;
151
- videoElement.on('click', () => {
152
- if (!this.isFullscreen) {
153
- if (StatusBar) {
154
- StatusBar.hide();
155
- }
156
- preHeight = videoElement.height();
157
- preWidth = videoElement.width();
158
- preTop = videoElement.css('top');
159
- preLeft = videoElement.css('left');
160
- const width = document.documentElement.clientWidth;
161
- const height = document.documentElement.clientHeight;
162
- videoElement.css('object-fit', 'contain');
163
- videoElement.css('background', '#000000');
164
- videoElement.css('width', width + 'px');
165
- videoElement.css('height', height + 'px');
166
- videoElement.css('left', '0px');
167
- videoElement.css('top', '0px');
168
- videoElement.css('z-index', '99');
169
- videoElement.css('position', 'fixed');
170
- this.isFullscreen = true;
171
- try {
172
- screen.orientation.lock(screen.orientation.type);
173
- }
174
- catch (error) {
175
- console.error(error);
176
- }
126
+ this.bindFullscreenEvent();
127
+ window.addEventListener('orientationchange', () => {
128
+ StatusBar.show();
129
+ this.hide();
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;
140
+ const { StatusBar } = window;
141
+ $('#' + this.videoId).bind('webkitfullscreenchange', () => {
142
+ if (document.webkitIsFullScreen) {
143
+ $('#' + that.videoId).css({
144
+ 'object-fit': 'contain',
145
+ 'z-index': 99
146
+ });
147
+ StatusBar.hide();
177
148
  }
178
149
  else {
179
- videoElement.css('object-fit', 'fill');
180
- videoElement.css('width', preWidth + 'px');
181
- videoElement.css('height', preHeight + 'px');
182
- videoElement.css('left', preLeft);
183
- videoElement.css('top', preTop);
184
- videoElement.css('z-index', '0');
185
- videoElement.css('position', 'absolute');
186
- this.isFullscreen = false;
187
- try {
188
- if (screen.orientation.type.includes('portrait')) {
189
- StatusBar.show();
190
- }
150
+ StatusBar.show();
151
+ if (that.isMobileType) {
152
+ $('#' + this.videoId).css('object-fit', document.webkitIsFullScreen ? 'contain' : 'fill');
191
153
  }
192
- catch (error) {
193
- console.error(error);
154
+ else {
155
+ clearTimeout(this.resetTimer);
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);
194
167
  }
195
168
  }
196
169
  });
197
170
  }
198
- setIosVideo(videoUrl, videoId) {
199
- const video = $('#' + this.videoId);
200
- video.on('webkitendfullscreen', () => {
201
- video.remove();
202
- clearTimeout(this.refreshTimer);
203
- this.refreshTimer = null;
204
- this.refreshTimer = setTimeout(() => {
205
- this.initVideo(videoUrl, videoId);
206
- }, 500);
207
- });
208
- }
209
171
  }
@@ -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"}],"initVideo":[{"__symbolic":"method"}],"addVideoAddressToolTip":[{"__symbolic":"method"}],"setAndroidVideo":[{"__symbolic":"method"}],"setIosVideo":[{"__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"}],"addVideoAddressToolTip":[{"__symbolic":"method"}],"setAndroidVideo":[{"__symbolic":"method"}],"bindFullscreenEvent":[{"__symbolic":"method"}]}}}}]
@@ -170,9 +170,6 @@ 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');
176
173
  }
177
174
  else {
178
175
  this.logger.error('[GUI]Toggle View:invalid view index');
@@ -180,11 +177,6 @@ export class ViewOperationElement extends ConditionalEnableElement {
180
177
  }
181
178
  closeView() {
182
179
  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
- }
188
180
  this.recordViewOperation();
189
181
  }
190
182
  moveView(movementX, movementY) {
@@ -110,24 +110,13 @@ 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
- }
123
113
  this.args.releasedVariableService.getVariableWithValueTransform(this.variableName).subscribe(result => {
124
114
  const valueTransform = JSON.parse(result.valueTransform);
125
- if (valueTransform.Type !== 0) {
115
+ if ((valueTransform === null || valueTransform === void 0 ? void 0 : valueTransform.Type) !== 0) {
126
116
  this.isNumericalOperation = true;
127
117
  }
128
118
  this.onClosed({
129
- value: value,
130
- showValue: showValue,
119
+ value, showValue,
131
120
  enableNumericalOperation: this.enableNumericalOperation,
132
121
  isNumericalOperation: this.isNumericalOperation,
133
122
  variableRwType: result.variableRwType
@@ -7,14 +7,6 @@ export interface HistroicalCurveChannelModel {
7
7
  * 连接线颜色
8
8
  */
9
9
  readonly connectorColor: string;
10
- /**
11
- * 启用标记点
12
- */
13
- readonly enablePoint: boolean;
14
- /**
15
- * 标记点颜色
16
- */
17
- readonly pointColor: string;
18
10
  /**
19
11
  * 是否投影颜色
20
12
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "main": "bundles/fc-gui.umd.js",
3
- "version": "3.0.0-alpha.93",
3
+ "version": "3.0.0-alpha.96",
4
4
  "module": "public_api.js",
5
5
  "typings": "public_api.d.ts",
6
6
  "license": "UNLICENSED",