@flexem/fc-gui 3.0.0-alpha.179 → 3.0.0-alpha.180
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/bundles/@flexem/fc-gui.umd.js +25 -15
- 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/video/video-element.js +23 -3
- package/modal/write-character/write-character-modal.component.d.ts +0 -1
- package/modal/write-character/write-character-modal.component.html +1 -1
- package/modal/write-character/write-character-modal.component.js +1 -6
- package/modal/write-character/write-character-modal.component.metadata.json +1 -1
- package/modal/write-value/write-value-modal.component.d.ts +0 -1
- package/modal/write-value/write-value-modal.component.html +1 -1
- package/modal/write-value/write-value-modal.component.js +1 -6
- package/modal/write-value/write-value-modal.component.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -64,6 +64,13 @@ export class VideoElement extends ConditionalDisplayElement {
|
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
initVideo(videoUrl, videoId) {
|
|
67
|
+
// FLEXCLOUD-4155: 诊断日志,排查"长时间放置后卡死"问题,记录每次重建播放器的时间点
|
|
68
|
+
console.log(`[FLEXCLOUD-4155] initVideo called at ${new Date().toISOString()}, videoId=${videoId}, videoUrl=${videoUrl}`);
|
|
69
|
+
// FLEXCLOUD-4155: 强制清理旧的 video 元素,避免残留元素的错误蒙层
|
|
70
|
+
const oldVideoElement = document.getElementById(videoId);
|
|
71
|
+
if (oldVideoElement) {
|
|
72
|
+
oldVideoElement.remove();
|
|
73
|
+
}
|
|
67
74
|
const patt = /https:.+.m3u8/;
|
|
68
75
|
if (videoUrl.indexOf('http:') !== -1) {
|
|
69
76
|
videoUrl = videoUrl.replace('http:', 'https:');
|
|
@@ -127,10 +134,17 @@ export class VideoElement extends ConditionalDisplayElement {
|
|
|
127
134
|
this.videoPlayer.play();
|
|
128
135
|
});
|
|
129
136
|
}
|
|
130
|
-
this.startTimeUpdateWatchdog(videoId);
|
|
131
137
|
}
|
|
132
138
|
catch (err) {
|
|
133
|
-
|
|
139
|
+
// FLEXCLOUD-4155: EZUIPlayer 内部对 opt.width 做 .replace 时可能因类型不是字符串而抛错,
|
|
140
|
+
// 但此时 hls.js/video 实际播放不受影响,不应因此中断 watchdog 的启动
|
|
141
|
+
console.error(`[FLEXCLOUD-4155] initVideo setTimeout callback error at ${new Date().toISOString()}, videoId=${videoId}:`, err);
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
// FLEXCLOUD-4155: 无论 EZUIPlayer 初始化是否抛错,watchdog 都必须启动,
|
|
145
|
+
// 否则后续真正的播放卡死(currentTime 停止推进)将无法被检测和自愈
|
|
146
|
+
this.startTimeUpdateWatchdog(videoId);
|
|
147
|
+
console.log(`[FLEXCLOUD-4155] watchdog started at ${new Date().toISOString()}, videoId=${videoId}`);
|
|
134
148
|
}
|
|
135
149
|
}, 1000);
|
|
136
150
|
const style = document.createElement('style');
|
|
@@ -215,6 +229,8 @@ export class VideoElement extends ConditionalDisplayElement {
|
|
|
215
229
|
}
|
|
216
230
|
initVisibilityHandler() {
|
|
217
231
|
this.visibilityChangeHandler = () => {
|
|
232
|
+
// FLEXCLOUD-4155: 诊断日志,记录每次 visibilitychange 触发时的状态
|
|
233
|
+
console.log(`[FLEXCLOUD-4155] visibilitychange fired at ${new Date().toISOString()}, hidden=${document.hidden}, videoId=${this.videoId}`);
|
|
218
234
|
if (!document.hidden && this.videoUrl && this.videoId) {
|
|
219
235
|
this.initVideo(this.videoUrl, this.videoId);
|
|
220
236
|
}
|
|
@@ -231,15 +247,19 @@ export class VideoElement extends ConditionalDisplayElement {
|
|
|
231
247
|
});
|
|
232
248
|
}
|
|
233
249
|
this.timeUpdateWatchdog = setInterval(() => {
|
|
250
|
+
const idleMs = Date.now() - this.lastTimeUpdate;
|
|
234
251
|
if (document.hidden)
|
|
235
252
|
return;
|
|
236
|
-
if (
|
|
253
|
+
if (idleMs > 30000) {
|
|
254
|
+
console.warn(`[FLEXCLOUD-4155] watchdog detected stall (idleMs=${idleMs}), triggering initVideo at ${new Date().toISOString()}, videoId=${videoId}`);
|
|
237
255
|
this.initVideo(this.videoUrl, this.videoId);
|
|
238
256
|
}
|
|
239
257
|
}, 30000);
|
|
240
258
|
}
|
|
241
259
|
clearTimeUpdateWatchdog() {
|
|
242
260
|
if (this.timeUpdateWatchdog) {
|
|
261
|
+
// FLEXCLOUD-4155: 诊断日志,记录 watchdog 何时被清除,排查是否有清除后未重建的空窗期
|
|
262
|
+
console.log(`[FLEXCLOUD-4155] watchdog cleared at ${new Date().toISOString()}`);
|
|
243
263
|
clearInterval(this.timeUpdateWatchdog);
|
|
244
264
|
this.timeUpdateWatchdog = null;
|
|
245
265
|
}
|
|
@@ -16,7 +16,6 @@ export declare class WriteCharacterModalComponent implements OnInit {
|
|
|
16
16
|
validationError: boolean;
|
|
17
17
|
validationErrorText: string;
|
|
18
18
|
get invalidErrorText(): string;
|
|
19
|
-
get isEnglish(): boolean;
|
|
20
19
|
constructor(localization: Localization, injector: Injector);
|
|
21
20
|
ngOnInit(): void;
|
|
22
21
|
validate(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<form #writeValueForm="ngForm" novalidate (ngSubmit)="save()" bs-modal-drag>
|
|
2
2
|
<div class="modal-header">
|
|
3
3
|
<h4 class="modal-title">
|
|
4
|
-
<span>{{localization.setting}}
|
|
4
|
+
<span>{{localization.setting}}</span>
|
|
5
5
|
<span>{{variableName}}</span>
|
|
6
6
|
</h4>
|
|
7
7
|
<button type="button" class="close pull-right" aria-label="Close" (click)="close()">
|
|
@@ -26,11 +26,6 @@ let WriteCharacterModalComponent = class WriteCharacterModalComponent {
|
|
|
26
26
|
get invalidErrorText() {
|
|
27
27
|
return this.localization.loadFailed;
|
|
28
28
|
}
|
|
29
|
-
get isEnglish() {
|
|
30
|
-
var _a, _b, _c, _d, _e;
|
|
31
|
-
const language = ((_c = (_b = (_a = window.abp) === null || _a === void 0 ? void 0 : _a.localization) === null || _b === void 0 ? void 0 : _b.currentLanguage) === null || _c === void 0 ? void 0 : _c.name) || ((_e = (_d = this.localization.localizationService) === null || _d === void 0 ? void 0 : _d.translate) === null || _e === void 0 ? void 0 : _e.currentLang);
|
|
32
|
-
return !!language && !language.toLowerCase().startsWith('zh');
|
|
33
|
-
}
|
|
34
29
|
ngOnInit() {
|
|
35
30
|
this.variableName = this.args.variableName;
|
|
36
31
|
this.isPassword = this.args.isPassword ? this.args.isPassword : false;
|
|
@@ -72,7 +67,7 @@ __decorate([
|
|
|
72
67
|
WriteCharacterModalComponent = __decorate([
|
|
73
68
|
Component({
|
|
74
69
|
selector: 'writeCharacterModal',
|
|
75
|
-
template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}
|
|
70
|
+
template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">×</span> </button> </div> <div class=\"modal-body\"> <input type=\"text\" name=\"characterInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"!isPassword\" autocomplete=\"off\"> <input type=\"password\" name=\"passwordInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"isPassword\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ",
|
|
76
71
|
styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 10px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-character-value { padding-left: 8px; height: 32px; margin-left: 16px; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .form-control-write { margin: 0 16px; width: 585px; } "]
|
|
77
72
|
}),
|
|
78
73
|
__param(0, Inject(LOCALIZATION)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"WriteCharacterModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"writeCharacterModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"WriteCharacterModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"writeCharacterModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">×</span> </button> </div> <div class=\"modal-body\"> <input type=\"text\" name=\"characterInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"!isPassword\" autocomplete=\"off\"> <input type=\"password\" name=\"passwordInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"isPassword\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 10px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-character-value { padding-left: 8px; height: 32px; margin-left: 16px; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .form-control-write { margin: 0 16px; width: 585px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":30,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":9},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":36,"character":16}]}],null],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":36,"character":51},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":37,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}}}}]
|
|
@@ -38,7 +38,6 @@ export declare class WriteValueModalComponent implements OnInit {
|
|
|
38
38
|
writeValueRangeText: string;
|
|
39
39
|
isSubmitting: boolean;
|
|
40
40
|
get invalidErrorText(): string;
|
|
41
|
-
get isEnglish(): boolean;
|
|
42
41
|
constructor(localization: Localization, dataTypeService: DataTypeService, fractionDigitService: FractionDigitService, numericalOperationService: NumericalOperationService, bsModalRef: BsModalRef, injector: Injector);
|
|
43
42
|
ngOnInit(): void;
|
|
44
43
|
initData(option: WriteValueModalArgs): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<form #writeValueForm="ngForm" novalidate (ngSubmit)="save()" bs-modal-drag>
|
|
2
2
|
<div class="modal-header">
|
|
3
3
|
<h4 class="modal-title">
|
|
4
|
-
<span>{{localization.setting}}
|
|
4
|
+
<span>{{localization.setting}}</span>
|
|
5
5
|
<span>{{displayVariableName}}</span>
|
|
6
6
|
</h4>
|
|
7
7
|
<button type="button" class="close pull-right" aria-label="Close" (click)="close()">
|
|
@@ -33,11 +33,6 @@ let WriteValueModalComponent = class WriteValueModalComponent {
|
|
|
33
33
|
get invalidErrorText() {
|
|
34
34
|
return this.localization.loadFailed;
|
|
35
35
|
}
|
|
36
|
-
get isEnglish() {
|
|
37
|
-
var _a, _b, _c, _d, _e;
|
|
38
|
-
const language = ((_c = (_b = (_a = window.abp) === null || _a === void 0 ? void 0 : _a.localization) === null || _b === void 0 ? void 0 : _b.currentLanguage) === null || _c === void 0 ? void 0 : _c.name) || ((_e = (_d = this.localization.localizationService) === null || _d === void 0 ? void 0 : _d.translate) === null || _e === void 0 ? void 0 : _e.currentLang);
|
|
39
|
-
return !!language && !language.toLowerCase().startsWith('zh');
|
|
40
|
-
}
|
|
41
36
|
ngOnInit() {
|
|
42
37
|
this.initData(this.args);
|
|
43
38
|
this.validate();
|
|
@@ -274,7 +269,7 @@ __decorate([
|
|
|
274
269
|
WriteValueModalComponent = __decorate([
|
|
275
270
|
Component({
|
|
276
271
|
selector: 'writeValueModal',
|
|
277
|
-
template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}
|
|
272
|
+
template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{displayVariableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">×</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:</span> <span> {{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate($event)\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError || isSubmitting\"> <ng-container *ngIf=\"!isSubmitting\">{{localization.submit}}</ng-container> <ng-container *ngIf=\"isSubmitting\">{{localization.submitting}}</ng-container> </button> </div> </form> ",
|
|
278
273
|
styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .form-control-write { margin: 0 20px; width: 585px; } .modal-footer { padding: 10px 5px 20px 5px !important; text-align: right; border-color: transparent; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]
|
|
279
274
|
}),
|
|
280
275
|
__param(0, Inject(LOCALIZATION)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"WriteValueModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"writeValueModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"WriteValueModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"writeValueModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{displayVariableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">×</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:</span> <span> {{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate($event)\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError || isSubmitting\"> <ng-container *ngIf=\"!isSubmitting\">{{localization.submit}}</ng-container> <ng-container *ngIf=\"isSubmitting\">{{localization.submitting}}</ng-container> </button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .form-control-write { margin: 0 20px; width: 585px; } .modal-footer { padding: 10px 5px 20px 5px !important; text-align: right; border-color: transparent; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":48,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":54,"character":9},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":54,"character":16}]}],null,null,null,null,null],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":54,"character":51},{"__symbolic":"reference","module":"../../utils/data-type/data-type.service","name":"DataTypeService","line":55,"character":42},{"__symbolic":"reference","module":"../../utils/fraction-digit.service","name":"FractionDigitService","line":56,"character":47},{"__symbolic":"reference","module":"../../utils/numerical-operation.service","name":"NumericalOperationService","line":57,"character":52},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":58,"character":37},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":59,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"initData":[{"__symbolic":"method"}],"setValueRangeAccordToDataParsed":[{"__symbolic":"method"}],"getWriteValueRangeText":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"handleCurrentLanguageIdSave":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"getFractionDigits":[{"__symbolic":"method"}],"formatWriteValue":[{"__symbolic":"method"}]}}}}]
|