@eqproject/eqp-dynamic-module 2.8.5 → 2.8.7
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/esm2020/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.mjs +5 -4
- package/esm2020/lib/components/private/field-templates/date-field-template/date-field-template.component.mjs +6 -4
- package/esm2020/lib/components/private/field-templates/label-field-template/label-field-template.component.mjs +6 -14
- package/esm2020/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +12 -49
- package/esm2020/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +12 -49
- package/esm2020/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +40 -12
- package/esm2020/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +13 -45
- package/esm2020/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +13 -45
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +13 -45
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +13 -45
- package/esm2020/lib/directives/speech-to-text/speech-to-text.directive.mjs +186 -0
- package/esm2020/lib/eqp-dynamic-module.module.mjs +6 -6
- package/esm2020/lib/models/fields/dateField.model.mjs +5 -1
- package/esm2020/lib/services/global.service.mjs +4 -1
- package/esm2020/public-api.mjs +3 -2
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +311 -491
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +311 -491
- package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +1 -1
- package/lib/components/private/field-templates/label-field-template/label-field-template.component.d.ts +1 -3
- package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +1 -6
- package/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.d.ts +1 -6
- package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +4 -1
- package/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.d.ts +1 -6
- package/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.d.ts +1 -6
- package/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.d.ts +1 -6
- package/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.d.ts +1 -6
- package/lib/directives/speech-to-text/speech-to-text.directive.d.ts +31 -0
- package/lib/eqp-dynamic-module.module.d.ts +37 -37
- package/lib/services/global.service.d.ts +3 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -1
- package/esm2020/lib/components/private/dynamic-module-field/dynamic-module-field.component.mjs +0 -136
- package/esm2020/lib/services/voice-recognition.service.mjs +0 -75
- package/lib/components/private/dynamic-module-field/dynamic-module-field.component.d.ts +0 -60
- package/lib/services/voice-recognition.service.d.ts +0 -18
|
@@ -24,7 +24,7 @@ export declare class DateFieldTemplateComponent implements OnInit, OnChanges, IB
|
|
|
24
24
|
/**
|
|
25
25
|
* Metodo per emettere l'evento che il valore del record è cambiato.
|
|
26
26
|
*/
|
|
27
|
-
onRecordValueChange(): void;
|
|
27
|
+
onRecordValueChange(ev: any): void;
|
|
28
28
|
setOutputFormat(): void;
|
|
29
29
|
/**
|
|
30
30
|
* In base al formato della data richiesta nel DateField (solo data, solo orario o data e ora)
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { Record } from '../../../../models/record.model';
|
|
3
3
|
import { IBaseFieldComponent } from '../../../../interfaces/iBaseFieldComponent.interface';
|
|
4
|
-
import { VoiceRecognitionService } from '../../../../services/voice-recognition.service';
|
|
5
4
|
import { Subscription } from 'rxjs';
|
|
6
5
|
import { LabelField } from '../../../../models/fields/labelField.model';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class LabelFieldTemplateComponent implements OnInit, OnChanges, IBaseFieldComponent {
|
|
9
|
-
voiceservice: VoiceRecognitionService;
|
|
10
8
|
isStillRecoginze: boolean;
|
|
11
9
|
source: import("rxjs").Observable<number>;
|
|
12
10
|
newtext: string;
|
|
@@ -18,7 +16,7 @@ export declare class LabelFieldTemplateComponent implements OnInit, OnChanges, I
|
|
|
18
16
|
FieldstyleObj: any;
|
|
19
17
|
LabelstyleObj: any;
|
|
20
18
|
recordChange: EventEmitter<Record>;
|
|
21
|
-
constructor(
|
|
19
|
+
constructor();
|
|
22
20
|
ngOnInit(): void;
|
|
23
21
|
initStyles(): void;
|
|
24
22
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -2,11 +2,9 @@ import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
|
2
2
|
import { Record } from '../../../../models/record.model';
|
|
3
3
|
import { TextMaskEnum, TextField } from '../../../../models/fields/textField.model';
|
|
4
4
|
import { IBaseFieldComponent } from '../../../../interfaces/iBaseFieldComponent.interface';
|
|
5
|
-
import { VoiceRecognitionService } from '../../../../services/voice-recognition.service';
|
|
6
5
|
import { Subscription } from 'rxjs';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class TextFieldTemplateComponent implements OnInit, OnChanges, IBaseFieldComponent {
|
|
9
|
-
voiceservice: VoiceRecognitionService;
|
|
10
8
|
isStillRecoginze: boolean;
|
|
11
9
|
source: import("rxjs").Observable<number>;
|
|
12
10
|
newtext: string;
|
|
@@ -19,14 +17,11 @@ export declare class TextFieldTemplateComponent implements OnInit, OnChanges, IB
|
|
|
19
17
|
LabelstyleObj: any;
|
|
20
18
|
recordChange: EventEmitter<Record>;
|
|
21
19
|
InputMaskEnum: typeof TextMaskEnum;
|
|
22
|
-
constructor(
|
|
20
|
+
constructor();
|
|
23
21
|
ngOnInit(): void;
|
|
24
22
|
initStyles(): void;
|
|
25
23
|
ngOnChanges(changes: SimpleChanges): void;
|
|
26
|
-
ttsClick(): void;
|
|
27
24
|
getInputType(): "text" | "email" | "password" | "tel" | "url";
|
|
28
|
-
updateRTVoiceField(): void;
|
|
29
|
-
updateVoiceField(): void;
|
|
30
25
|
/**
|
|
31
26
|
* Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
|
|
32
27
|
*/
|
|
@@ -2,11 +2,9 @@ import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
|
2
2
|
import { IBaseFieldComponent } from '../../../../interfaces/iBaseFieldComponent.interface';
|
|
3
3
|
import { Record } from '../../../../models/record.model';
|
|
4
4
|
import { TextareaField } from '../../../../models/fields/textareaField.model';
|
|
5
|
-
import { VoiceRecognitionService } from '../../../../services/voice-recognition.service';
|
|
6
5
|
import { Subscription } from 'rxjs';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class TextareaFieldTemplateComponent implements OnInit, OnChanges, IBaseFieldComponent {
|
|
9
|
-
voiceservice: VoiceRecognitionService;
|
|
10
8
|
isStillRecoginze: boolean;
|
|
11
9
|
field: TextareaField;
|
|
12
10
|
record: Record;
|
|
@@ -16,17 +14,14 @@ export declare class TextareaFieldTemplateComponent implements OnInit, OnChanges
|
|
|
16
14
|
subscription: Subscription;
|
|
17
15
|
FieldstyleObj: any;
|
|
18
16
|
LabelstyleObj: any;
|
|
19
|
-
constructor(
|
|
17
|
+
constructor();
|
|
20
18
|
ngOnInit(): void;
|
|
21
19
|
initStyles(): void;
|
|
22
20
|
ngOnChanges(changes: SimpleChanges): void;
|
|
23
|
-
ttsClick(): void;
|
|
24
21
|
/**
|
|
25
22
|
* Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
|
|
26
23
|
*/
|
|
27
24
|
updateField(): void;
|
|
28
|
-
updateRTVoiceField(): void;
|
|
29
|
-
updateVoiceField(): void;
|
|
30
25
|
/**
|
|
31
26
|
* Metodo per emettere l'evento che il valore del record è cambiato.
|
|
32
27
|
*/
|
|
@@ -9,10 +9,12 @@ import { DynamicModuleFieldFixComponent } from '../../dynamic-module-field-fix/d
|
|
|
9
9
|
import { EndPointConfiguration } from './../../../../models/endPointConfiguration.model';
|
|
10
10
|
import { DynamicLoaderDirectiveData, eventOut } from "../../../../directives/dynamic-loader/dynamic-loader.directive";
|
|
11
11
|
import { FireTrigger } from '../../../../models/trigger.model';
|
|
12
|
+
import { DatePipe } from '@angular/common';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
export declare class AddFormRecordComponent implements OnInit {
|
|
14
15
|
private cdr;
|
|
15
16
|
utilityService: UtilityHelperService;
|
|
17
|
+
private datepipe;
|
|
16
18
|
configurations: DynamicModuleCompileConfig;
|
|
17
19
|
endPointConfiguration: EndPointConfiguration;
|
|
18
20
|
userID: string;
|
|
@@ -42,8 +44,9 @@ export declare class AddFormRecordComponent implements OnInit {
|
|
|
42
44
|
FormScalarTypeEnum: typeof FormScalarTypeEnum;
|
|
43
45
|
FieldTypeEnum: typeof FieldTypeEnum;
|
|
44
46
|
fieldTemplate: QueryList<DynamicModuleFieldFixComponent>;
|
|
45
|
-
constructor(cdr: ChangeDetectorRef, utilityService: UtilityHelperService);
|
|
47
|
+
constructor(cdr: ChangeDetectorRef, utilityService: UtilityHelperService, datepipe: DatePipe);
|
|
46
48
|
ngOnInit(): void;
|
|
49
|
+
onStepChange(event: any): void;
|
|
47
50
|
/**
|
|
48
51
|
* Metodo invocato al cambio del valore di ogni proprietà dell'oggetto record.
|
|
49
52
|
* Serve ad aggiornare il valore di tutti i campi che hanno una formula.
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { Record } from '../../../../../models/record.model';
|
|
3
3
|
import { TextMaskEnum, TextField } from '../../../../../models/fields/textField.model';
|
|
4
|
-
import { VoiceRecognitionService } from '../../../../../services/voice-recognition.service';
|
|
5
4
|
import { Subscription } from 'rxjs';
|
|
6
5
|
import { LogicOperatorText } from '../../../../../models/logicOperator.model';
|
|
7
6
|
import { Statistic } from '../../../../../models/statistic.model';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export declare class TextFilterTemplateComponent {
|
|
10
|
-
voiceservice: VoiceRecognitionService;
|
|
11
9
|
isStillRecoginze: boolean;
|
|
12
10
|
source: import("rxjs").Observable<number>;
|
|
13
11
|
newtext: string;
|
|
@@ -23,13 +21,10 @@ export declare class TextFilterTemplateComponent {
|
|
|
23
21
|
logicOperatorText: typeof LogicOperatorText;
|
|
24
22
|
selectedLogicOperator: LogicOperatorText;
|
|
25
23
|
activeCondition: boolean;
|
|
26
|
-
constructor(
|
|
24
|
+
constructor();
|
|
27
25
|
ngOnInit(): void;
|
|
28
26
|
initStyles(): void;
|
|
29
|
-
ttsClick(): void;
|
|
30
27
|
getInputType(): "text" | "email" | "password" | "tel" | "url";
|
|
31
|
-
updateRTVoiceField(): void;
|
|
32
|
-
updateVoiceField(): void;
|
|
33
28
|
/**
|
|
34
29
|
* Metodo per emettere l'evento che il valore del record è cambiato.
|
|
35
30
|
*/
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { Record } from '../../../../../models/record.model';
|
|
3
3
|
import { TextMaskEnum, TextField } from '../../../../../models/fields/textField.model';
|
|
4
|
-
import { VoiceRecognitionService } from '../../../../../services/voice-recognition.service';
|
|
5
4
|
import { Subscription } from 'rxjs';
|
|
6
5
|
import { LogicOperatorText } from '../../../../../models/logicOperator.model';
|
|
7
6
|
import { Statistic } from '../../../../../models/statistic.model';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export declare class TextareaFilterTemplateComponent {
|
|
10
|
-
voiceservice: VoiceRecognitionService;
|
|
11
9
|
isStillRecoginze: boolean;
|
|
12
10
|
source: import("rxjs").Observable<number>;
|
|
13
11
|
newtext: string;
|
|
@@ -23,13 +21,10 @@ export declare class TextareaFilterTemplateComponent {
|
|
|
23
21
|
logicOperatorText: typeof LogicOperatorText;
|
|
24
22
|
selectedLogicOperator: LogicOperatorText;
|
|
25
23
|
activeCondition: boolean;
|
|
26
|
-
constructor(
|
|
24
|
+
constructor();
|
|
27
25
|
ngOnInit(): void;
|
|
28
26
|
initStyles(): void;
|
|
29
|
-
ttsClick(): void;
|
|
30
27
|
getInputType(): "text" | "email" | "password" | "tel" | "url";
|
|
31
|
-
updateRTVoiceField(): void;
|
|
32
|
-
updateVoiceField(): void;
|
|
33
28
|
/**
|
|
34
29
|
* Metodo per emettere l'evento che il valore del record è cambiato.
|
|
35
30
|
*/
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { Record } from '../../../../../models/record.model';
|
|
3
3
|
import { TextMaskEnum, TextField } from '../../../../../models/fields/textField.model';
|
|
4
|
-
import { VoiceRecognitionService } from '../../../../../services/voice-recognition.service';
|
|
5
4
|
import { Subscription } from 'rxjs';
|
|
6
5
|
import { LogicOperatorText } from '../../../../../models/logicOperator.model';
|
|
7
6
|
import { BooleanLogicOperatorType, TriggerCondition } from '../../../../../models/trigger.model';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export declare class TextTriggerTemplateComponent {
|
|
10
|
-
voiceservice: VoiceRecognitionService;
|
|
11
9
|
condition: TriggerCondition;
|
|
12
10
|
recordChange: EventEmitter<Record>;
|
|
13
11
|
triggerChange: EventEmitter<any>;
|
|
@@ -25,13 +23,10 @@ export declare class TextTriggerTemplateComponent {
|
|
|
25
23
|
booleanLogicOperatorType: typeof BooleanLogicOperatorType;
|
|
26
24
|
selectedBooleanLogicOperator: BooleanLogicOperatorType;
|
|
27
25
|
field: TextField;
|
|
28
|
-
constructor(
|
|
26
|
+
constructor();
|
|
29
27
|
ngOnInit(): void;
|
|
30
28
|
initStyles(): void;
|
|
31
|
-
ttsClick(): void;
|
|
32
29
|
getInputType(): "text" | "email" | "password" | "tel" | "url";
|
|
33
|
-
updateRTVoiceField(): void;
|
|
34
|
-
updateVoiceField(): void;
|
|
35
30
|
/**
|
|
36
31
|
* Metodo per emettere l'evento che il valore del record è cambiato.
|
|
37
32
|
*/
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { Record } from '../../../../../models/record.model';
|
|
3
3
|
import { TextMaskEnum, TextField } from '../../../../../models/fields/textField.model';
|
|
4
|
-
import { VoiceRecognitionService } from '../../../../../services/voice-recognition.service';
|
|
5
4
|
import { Subscription } from 'rxjs';
|
|
6
5
|
import { LogicOperatorText } from '../../../../../models/logicOperator.model';
|
|
7
6
|
import { TriggerCondition, BooleanLogicOperatorType } from '../../../../../models/trigger.model';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export declare class TextareaTriggerTemplateComponent {
|
|
10
|
-
voiceservice: VoiceRecognitionService;
|
|
11
9
|
condition: TriggerCondition;
|
|
12
10
|
recordChange: EventEmitter<Record>;
|
|
13
11
|
triggerChange: EventEmitter<any>;
|
|
@@ -25,13 +23,10 @@ export declare class TextareaTriggerTemplateComponent {
|
|
|
25
23
|
activeCondition: boolean;
|
|
26
24
|
booleanLogicOperatorType: typeof BooleanLogicOperatorType;
|
|
27
25
|
selectedBooleanLogicOperator: BooleanLogicOperatorType;
|
|
28
|
-
constructor(
|
|
26
|
+
constructor();
|
|
29
27
|
ngOnInit(): void;
|
|
30
28
|
initStyles(): void;
|
|
31
|
-
ttsClick(): void;
|
|
32
29
|
getInputType(): "text" | "email" | "password" | "tel" | "url";
|
|
33
|
-
updateRTVoiceField(): void;
|
|
34
|
-
updateVoiceField(): void;
|
|
35
30
|
/**
|
|
36
31
|
* Metodo per emettere l'evento che il valore del record è cambiato.
|
|
37
32
|
*/
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ElementRef, EventEmitter, OnDestroy } from "@angular/core";
|
|
2
|
+
import { Subscription } from "rxjs";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SpeechToTextDirective implements OnDestroy {
|
|
5
|
+
private elementRef;
|
|
6
|
+
debug: boolean;
|
|
7
|
+
bindedText: string;
|
|
8
|
+
bindedTextChange: EventEmitter<string>;
|
|
9
|
+
beginSentence: string;
|
|
10
|
+
private domElement;
|
|
11
|
+
pausedClass: string;
|
|
12
|
+
speakingClass: string;
|
|
13
|
+
recognition: any;
|
|
14
|
+
tempWords: any;
|
|
15
|
+
transcript_arr: any[];
|
|
16
|
+
confidence_arr: any[];
|
|
17
|
+
isStoppedSpeechRecog: boolean;
|
|
18
|
+
isStoppedAutomatically: boolean;
|
|
19
|
+
timeInterval: import("rxjs").Observable<number>;
|
|
20
|
+
subscription: Subscription;
|
|
21
|
+
SpeechToggle(): void;
|
|
22
|
+
constructor(elementRef: ElementRef);
|
|
23
|
+
ngOnDestroy(): void;
|
|
24
|
+
SpeechToTextToggler(): void;
|
|
25
|
+
private start;
|
|
26
|
+
private stop;
|
|
27
|
+
private wordConcat;
|
|
28
|
+
private printDebug;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SpeechToTextDirective, never>;
|
|
30
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SpeechToTextDirective, "[SpeechToText]", never, { "bindedText": "bindedText"; }, { "bindedTextChange": "bindedTextChange"; }, never, never, false, never>;
|
|
31
|
+
}
|
|
@@ -15,42 +15,42 @@ import * as i12 from "./components/private/form-records/list-form-record/list-fo
|
|
|
15
15
|
import * as i13 from "./components/private/form-records/list-view-form-record/list-view-form-record.component";
|
|
16
16
|
import * as i14 from "./components/private/form-records/add-form-record/add-form-record.component";
|
|
17
17
|
import * as i15 from "./components/private/form-records/view-form-record/view-form-record.component";
|
|
18
|
-
import * as i16 from "./components/private/dynamic-module-field/dynamic-module-field.component";
|
|
19
|
-
import * as i17 from "./components/private/
|
|
20
|
-
import * as i18 from "./components/private/
|
|
21
|
-
import * as i19 from "./components/private/
|
|
22
|
-
import * as i20 from "./components/private/form-records/
|
|
23
|
-
import * as i21 from "./components/private/form-
|
|
24
|
-
import * as i22 from "./components/private/form-statistics/filter-
|
|
25
|
-
import * as i23 from "./components/private/
|
|
26
|
-
import * as i24 from "./components/private/
|
|
27
|
-
import * as i25 from "./components/private/form-statistics/filter-templates/
|
|
28
|
-
import * as i26 from "./components/private/form-statistics/filter-templates/
|
|
29
|
-
import * as i27 from "./components/private/form-statistics/filter-templates/
|
|
30
|
-
import * as i28 from "./components/private/form-statistics/filter-templates/
|
|
31
|
-
import * as i29 from "./components/private/form-statistics/filter-templates/
|
|
32
|
-
import * as i30 from "./components/private/form-statistics/filter-templates/
|
|
33
|
-
import * as i31 from "./components/private/form-statistics/filter-templates/
|
|
34
|
-
import * as i32 from "./components/private/form-statistics/filter-templates/
|
|
35
|
-
import * as i33 from "./components/private/
|
|
36
|
-
import * as i34 from "./components/private/graphs/
|
|
37
|
-
import * as i35 from "./components/private/
|
|
38
|
-
import * as i36 from "./components/private/field-templates/
|
|
39
|
-
import * as i37 from "./components/private/
|
|
40
|
-
import * as i38 from "./components/private/
|
|
41
|
-
import * as i39 from "./components/private/
|
|
42
|
-
import * as i40 from "./components/private/
|
|
43
|
-
import * as i41 from "./
|
|
44
|
-
import * as i42 from "./
|
|
45
|
-
import * as i43 from "./components/private/
|
|
46
|
-
import * as i44 from "./components/private/trigger-creator/trigger-
|
|
47
|
-
import * as i45 from "./components/private/trigger-creator/trigger-templates/
|
|
48
|
-
import * as i46 from "./components/private/trigger-creator/trigger-templates/
|
|
49
|
-
import * as i47 from "./components/private/trigger-creator/trigger-templates/
|
|
50
|
-
import * as i48 from "./components/private/trigger-creator/trigger-templates/
|
|
51
|
-
import * as i49 from "./components/private/trigger-creator/trigger-templates/
|
|
52
|
-
import * as i50 from "./components/private/trigger-creator/trigger-templates/
|
|
53
|
-
import * as i51 from "./
|
|
18
|
+
import * as i16 from "./components/private/dynamic-module-field-fix/dynamic-module-field.component";
|
|
19
|
+
import * as i17 from "./components/private/spinner/spinner.component";
|
|
20
|
+
import * as i18 from "./components/private/add-formula-field/add-formula-field.component";
|
|
21
|
+
import * as i19 from "./components/private/form-records/repair-form-fields/repair-form-fields.component";
|
|
22
|
+
import * as i20 from "./components/private/form-records/list-view-form-record/single-record/single-record.component";
|
|
23
|
+
import * as i21 from "./components/private/form-statistics/filter-form-statistic/filter-form-statistic.component";
|
|
24
|
+
import * as i22 from "./components/private/form-statistics/dynamic-module-filter-fix/dynamic-module-filter-fix.component";
|
|
25
|
+
import * as i23 from "./components/private/trigger-creator/dynamic-module-trigger-fix/dynamic-module-trigger-fix.component";
|
|
26
|
+
import * as i24 from "./components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component";
|
|
27
|
+
import * as i25 from "./components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component";
|
|
28
|
+
import * as i26 from "./components/private/form-statistics/filter-templates/boolean-filter-template/boolean-filter-template.component";
|
|
29
|
+
import * as i27 from "./components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component";
|
|
30
|
+
import * as i28 from "./components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component";
|
|
31
|
+
import * as i29 from "./components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component";
|
|
32
|
+
import * as i30 from "./components/private/form-statistics/filter-templates/attachment-filter-template/attachment-filter-template.component";
|
|
33
|
+
import * as i31 from "./components/private/form-statistics/filter-templates/image-filter-template/image-filter-template.component";
|
|
34
|
+
import * as i32 from "./components/private/form-statistics/filter-templates/list-form-record-filter-template/list-form-record-filter-template.component";
|
|
35
|
+
import * as i33 from "./components/private/graphs/graphs.component";
|
|
36
|
+
import * as i34 from "./components/private/graphs/graph/graph.component";
|
|
37
|
+
import * as i35 from "./components/private/field-templates/image-field-selector-template/image-field-selector-template.component";
|
|
38
|
+
import * as i36 from "./components/private/field-templates/label-field-template/label-field-template.component";
|
|
39
|
+
import * as i37 from "./components/private/form-statistics/filter-templates/image-selector-filter-template/image-selector-filter-template.component";
|
|
40
|
+
import * as i38 from "./components/private/tmw-image-drawer/tmw-image-drawer.component";
|
|
41
|
+
import * as i39 from "./components/private/field-templates/image-with-markers-field-template/image-with-markers-field-template.component";
|
|
42
|
+
import * as i40 from "./components/private/tmw-image-marker/tmw-image-marker.component";
|
|
43
|
+
import * as i41 from "./directives/dynamic-loader/dynamic-loader.directive";
|
|
44
|
+
import * as i42 from "./components/private/dbgetter/dbgetter.component";
|
|
45
|
+
import * as i43 from "./components/private/trigger-creator/trigger-creator.component";
|
|
46
|
+
import * as i44 from "./components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component";
|
|
47
|
+
import * as i45 from "./components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component";
|
|
48
|
+
import * as i46 from "./components/private/trigger-creator/trigger-templates/boolean-trigger-template/boolean-trigger-template.component";
|
|
49
|
+
import * as i47 from "./components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component";
|
|
50
|
+
import * as i48 from "./components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component";
|
|
51
|
+
import * as i49 from "./components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component";
|
|
52
|
+
import * as i50 from "./components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component";
|
|
53
|
+
import * as i51 from "./directives/speech-to-text/speech-to-text.directive";
|
|
54
54
|
import * as i52 from "./modules/material.module";
|
|
55
55
|
import * as i53 from "@angular/forms";
|
|
56
56
|
import * as i54 from "@angular/common";
|
|
@@ -80,6 +80,6 @@ export declare const customNumericMaskConfig: {
|
|
|
80
80
|
};
|
|
81
81
|
export declare class EqpDynamicModuleModule {
|
|
82
82
|
static ɵfac: i0.ɵɵFactoryDeclaration<EqpDynamicModuleModule, never>;
|
|
83
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EqpDynamicModuleModule, [typeof i1.EqpDynamicModuleComponent, typeof i2.EqpDynamicModuleConfiguratorComponent, typeof i3.AddFormFieldComponent, typeof i4.TextFieldTemplateComponent, typeof i5.BooleanFieldTemplateComponent, typeof i6.DateFieldTemplateComponent, typeof i7.TextareaFieldTemplateComponent, typeof i8.NumericFieldTemplateComponent, typeof i9.ListValueFieldTemplateComponent, typeof i10.AttachmentFieldTemplateComponent, typeof i11.ImageFieldTemplateComponent, typeof i12.ListFormRecordComponent, typeof i13.ListViewFormRecordComponent, typeof i14.AddFormRecordComponent, typeof i15.ViewFormRecordComponent, typeof i16.
|
|
83
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EqpDynamicModuleModule, [typeof i1.EqpDynamicModuleComponent, typeof i2.EqpDynamicModuleConfiguratorComponent, typeof i3.AddFormFieldComponent, typeof i4.TextFieldTemplateComponent, typeof i5.BooleanFieldTemplateComponent, typeof i6.DateFieldTemplateComponent, typeof i7.TextareaFieldTemplateComponent, typeof i8.NumericFieldTemplateComponent, typeof i9.ListValueFieldTemplateComponent, typeof i10.AttachmentFieldTemplateComponent, typeof i11.ImageFieldTemplateComponent, typeof i12.ListFormRecordComponent, typeof i13.ListViewFormRecordComponent, typeof i14.AddFormRecordComponent, typeof i15.ViewFormRecordComponent, typeof i16.DynamicModuleFieldFixComponent, typeof i17.SpinnerComponent, typeof i18.AddFormulaComponent, typeof i18.DialogDataExampleDialog, typeof i19.RepairFormFieldsComponent, typeof i20.SingleRecordComponent, typeof i21.FilterFormStatisticComponent, typeof i22.DynamicModuleFilterFixComponent, typeof i23.DynamicModuleTriggerFixComponent, typeof i24.TextFilterTemplateComponent, typeof i25.NumericFilterTemplateComponent, typeof i26.BooleanFilterTemplateComponent, typeof i27.DateFilterTemplateComponent, typeof i28.ListValueFilterTemplateComponent, typeof i29.TextareaFilterTemplateComponent, typeof i30.AttachmentFilterTemplateComponent, typeof i31.ImageFilterTemplateComponent, typeof i32.ListFormRecordFilterTemplateComponent, typeof i33.GraphsComponent, typeof i34.GraphComponent, typeof i35.ImageFieldSelectorTemplateComponent, typeof i36.LabelFieldTemplateComponent, typeof i37.ImageSelectorFilterTemplateComponent, typeof i38.TmwImageDrawerComponent, typeof i39.ImageWithMarkersFieldTemplateComponent, typeof i40.TmwImageMarkerComponent, typeof i41.DynamicLoaderDirective, typeof i42.DbgetterComponent, typeof i43.TriggerCreatorComponent, typeof i44.TextTriggerTemplateComponent, typeof i45.NumericTriggerTemplateComponent, typeof i46.BooleanTriggerTemplateComponent, typeof i47.DateTriggerTemplateComponent, typeof i48.ListValueTriggerTemplateComponent, typeof i49.TextareaTriggerTemplateComponent, typeof i50.ListFormRecordTriggerTemplateComponent, typeof i51.SpeechToTextDirective], [typeof i52.MaterialModule, typeof i53.FormsModule, typeof i54.CommonModule, typeof i53.ReactiveFormsModule, typeof i55.EqpTableModule, typeof i56.EqpAttachmentsModule, typeof i57.EqpSelectModule, typeof i58.EqpDatetimepickerModule, typeof i59.EqpFiltersModule, typeof i60.EqpImgDrawingModule, typeof i61.DragDropModule, typeof i62.EqpNumericModule, typeof i63.CanvasJSAngularStockChartsModule, typeof i64.TmwPickerModule], [typeof i1.EqpDynamicModuleComponent, typeof i2.EqpDynamicModuleConfiguratorComponent, typeof i61.DragDropModule, typeof i63.CanvasJSChart, typeof i63.CanvasJSStockChart, typeof i41.DynamicLoaderDirective, typeof i64.TmwPickerModule]>;
|
|
84
84
|
static ɵinj: i0.ɵɵInjectorDeclaration<EqpDynamicModuleModule>;
|
|
85
85
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { HttpClient } from "@angular/common/http";
|
|
2
|
+
import { SpeechToTextDirective } from "../../lib/directives/speech-to-text/speech-to-text.directive";
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class GlobalService {
|
|
4
5
|
private http;
|
|
5
6
|
static debugMode: boolean;
|
|
7
|
+
static isSpeechToTextStarted: boolean;
|
|
8
|
+
static speechDirective: SpeechToTextDirective;
|
|
6
9
|
constructor(http: HttpClient);
|
|
7
10
|
static debugLog(message: string, element?: any): void;
|
|
8
11
|
static stringToValuePairs(valueString: string): {
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export * from './lib/eqp-dynamic-module.module';
|
|
|
2
2
|
export * from './lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component';
|
|
3
3
|
export * from './lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component';
|
|
4
4
|
export * from './lib/components/private/add-form-field/add-form-field.component';
|
|
5
|
-
export * from './lib/components/private/dynamic-module-field/dynamic-module-field.component';
|
|
5
|
+
export * from './lib/components/private/dynamic-module-field-fix/dynamic-module-field.component';
|
|
6
6
|
export * from './lib/components/private/field-templates/attachment-field-template/attachment-field-template.component';
|
|
7
7
|
export * from './lib/components/private/field-templates/boolean-field-template/boolean-field-template.component';
|
|
8
8
|
export * from './lib/components/private/field-templates/date-field-template/date-field-template.component';
|
|
@@ -50,3 +50,4 @@ export * from './lib/services/spinner.service';
|
|
|
50
50
|
export * from './lib/services/utilityHelper.services';
|
|
51
51
|
export * from './lib/models/graph.model';
|
|
52
52
|
export * from './lib/directives/dynamic-loader/dynamic-loader.directive';
|
|
53
|
+
export * from './lib/directives/speech-to-text/speech-to-text.directive';
|
package/esm2020/lib/components/private/dynamic-module-field/dynamic-module-field.component.mjs
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, ViewChildren } from '@angular/core';
|
|
2
|
-
import { FieldTypeEnum } from '../../../models/baseField.model';
|
|
3
|
-
import { DynamicModuleListConfig } from '../../../models/dynamicModuleListConfig.model';
|
|
4
|
-
import { DynamicModuleListFormRecordActionsDefault } from '../../../models/dynamicModuleListFormRecordActionsDefault';
|
|
5
|
-
import { Record } from '../../../models/record.model';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/material/dialog";
|
|
8
|
-
import * as i2 from "@angular/material/tooltip";
|
|
9
|
-
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "../field-templates/text-field-template/text-field-template.component";
|
|
11
|
-
import * as i5 from "../field-templates/boolean-field-template/boolean-field-template.component";
|
|
12
|
-
import * as i6 from "../field-templates/date-field-template/date-field-template.component";
|
|
13
|
-
import * as i7 from "../field-templates/textarea-field-template/textarea-field-template.component";
|
|
14
|
-
import * as i8 from "../field-templates/numeric-field-template/numeric-field-template.component";
|
|
15
|
-
import * as i9 from "../field-templates/list-value-field-template/list-value-field-template.component";
|
|
16
|
-
import * as i10 from "../field-templates/attachment-field-template/attachment-field-template.component";
|
|
17
|
-
import * as i11 from "../field-templates/image-field-template/image-field-template.component";
|
|
18
|
-
import * as i12 from "../form-records/list-form-record/list-form-record.component";
|
|
19
|
-
import * as i13 from "../form-records/add-form-record/add-form-record.component";
|
|
20
|
-
export class DynamicModuleFieldComponent {
|
|
21
|
-
constructor(dialog) {
|
|
22
|
-
this.dialog = dialog;
|
|
23
|
-
this.recordChange = new EventEmitter();
|
|
24
|
-
this.configList = new DynamicModuleListConfig();
|
|
25
|
-
this.FieldTypeEnum = FieldTypeEnum;
|
|
26
|
-
this.onlyViewInnerFormRecord = false;
|
|
27
|
-
}
|
|
28
|
-
updateField() {
|
|
29
|
-
if (this.fieldTemplate && this.fieldTemplate.length > 0) {
|
|
30
|
-
this.fieldTemplate.forEach(f => f.updateField());
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
ngOnInit() {
|
|
34
|
-
this.configList.values = this.record[this.field.Name];
|
|
35
|
-
this.configList.showTitle = true;
|
|
36
|
-
this.configList.defaultListActions = new DynamicModuleListFormRecordActionsDefault();
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Metodo invocato al cambio del valore di ogni proprietà dell'oggetto record.
|
|
40
|
-
* Serve ad aggiornare il valore di tutti i campi che hanno una formula.
|
|
41
|
-
*/
|
|
42
|
-
onRecordChange() {
|
|
43
|
-
this.recordChange.emit(this.record);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Metodo per recuperare una InnerForm a partire dal Field che la rappresenta.
|
|
47
|
-
* @param field Campo a partire dal quale si vuole recuperare la InnerForm.
|
|
48
|
-
* @returns Restituisce un oggetto di tipo Form.
|
|
49
|
-
*/
|
|
50
|
-
getInnerFormFromField(field) {
|
|
51
|
-
if (this.form.InnerForms && this.form.InnerForms.find(f => f.Name == field.Label)) {
|
|
52
|
-
return this.form.InnerForms.find(f => f.Name == field.Label);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Metodo per aprire un dialog in cui aggiungere/modificare/visualizzare un record appartenente
|
|
60
|
-
* a una form di dettaglio.
|
|
61
|
-
* @param record Evento di output del componente list-form-record, contiene il record selezionato e un booleno che indica
|
|
62
|
-
* se l'utente vuole modificare o visualizzare l'elemento selezionato.
|
|
63
|
-
* @param innerForm Contiene la Form di dettaglio dalla quale è stato richiesto il record.
|
|
64
|
-
*/
|
|
65
|
-
onAddViewEditInnerFormRecord(record, field) {
|
|
66
|
-
this.selectedInnerForm = this.getInnerFormFromField(field);
|
|
67
|
-
if (record == null) {
|
|
68
|
-
this.selectedInnerFormRecord = new Record();
|
|
69
|
-
this.indexInnerFormRecord = null;
|
|
70
|
-
this.onlyViewInnerFormRecord = false;
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
this.selectedInnerFormRecord = JSON.parse(JSON.stringify(record.record));
|
|
74
|
-
this.indexInnerFormRecord = this.record[field.Name].indexOf(record);
|
|
75
|
-
this.onlyViewInnerFormRecord = record.onlyView;
|
|
76
|
-
}
|
|
77
|
-
this.dialogInnerFormRecordRef = this.dialog.open(this.dialogInnerFormRecord, {
|
|
78
|
-
disableClose: true,
|
|
79
|
-
hasBackdrop: true,
|
|
80
|
-
width: '75%'
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Metodo invocato al salvataggio o alla chiusura del dialog di aggiunta/modifica/visualizzazione
|
|
85
|
-
* di un record di una form di dettaglio.
|
|
86
|
-
* @param record Oggetto restituito dal componente add-form-field (questo qui) contenente il Record
|
|
87
|
-
* aggiornato dall'utente. Se null allora l'utente non ha modificato nulla e ha chiuso il dialog.
|
|
88
|
-
*/
|
|
89
|
-
onSaveInnerFormRecord(record) {
|
|
90
|
-
if (record != null) {
|
|
91
|
-
const arrayName = this.selectedInnerForm.Name.split(' ').join('_');
|
|
92
|
-
if (this.indexInnerFormRecord != null && this.indexInnerFormRecord >= 0) {
|
|
93
|
-
this.record[arrayName][this.indexInnerFormRecord] = record;
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
if (!this.record[arrayName]) {
|
|
97
|
-
this.record[arrayName] = [];
|
|
98
|
-
}
|
|
99
|
-
this.record[arrayName].push(record);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
this.dialogInnerFormRecordRef.close();
|
|
103
|
-
// Ricarico la tabella dei record per visualizzare le modifiche fatte dall'utente.
|
|
104
|
-
if (this.listInnerFormRecords && this.listInnerFormRecords.length > 0) {
|
|
105
|
-
this.listInnerFormRecords.forEach(list => {
|
|
106
|
-
if (list && list.tableRecords) {
|
|
107
|
-
list.tableRecords.reloadDatatable();
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
DynamicModuleFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicModuleFieldComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
114
|
-
DynamicModuleFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DynamicModuleFieldComponent, selector: "dynamic-module-field", inputs: { field: "field", form: "form", record: "record" }, outputs: { recordChange: "recordChange" }, viewQueries: [{ propertyName: "dialogInnerFormRecord", first: true, predicate: ["dialogInnerFormRecord"], descendants: true, static: true }, { propertyName: "fieldTemplate", predicate: ["fieldTemplate"], descendants: true }, { propertyName: "listInnerFormRecords", predicate: ["listInnerFormRecords"], descendants: true }], ngImport: i0, template: "<text-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo di testo']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</text-field-template>\r\n\r\n<textarea-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Area di testo']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</textarea-field-template>\r\n\r\n<boolean-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Booleano']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</boolean-field-template>\r\n\r\n<date-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Data e/o ora']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</date-field-template>\r\n\r\n<numeric-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo numerico']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</numeric-field-template>\r\n\r\n<list-value-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Elenco generico']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</list-value-field-template>\r\n\r\n<attachment-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Allegato']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</attachment-field-template>\r\n\r\n<image-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Immagine']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</image-field-template>\r\n\r\n<list-form-record #listInnerFormRecords *ngIf=\"field.FieldType == FieldTypeEnum['Form di dettaglio']\"\r\n [form]=\"getInnerFormFromField(field)\" [configurations]=\"configList\"\r\n (onAddViewEditRecord)=\"onAddViewEditInnerFormRecord($event, field)\">\r\n</list-form-record>\r\n\r\n<!-- DIALOG PER AGGIUNGERE/MODIFICARE/VISUALIZZARE UN RECORD IN UNA FORM DI DETTAGLIO -->\r\n<ng-template #dialogInnerFormRecord>\r\n <add-form-record [form]=\"selectedInnerForm\" [record]=\"selectedInnerFormRecord\" [onlyView]=\"onlyViewInnerFormRecord\"\r\n (saveRecordEvent)=\"onSaveInnerFormRecord($event)\"></add-form-record>\r\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TextFieldTemplateComponent, selector: "text-field-template", inputs: ["field", "record", "inConfig"], outputs: ["recordChange"] }, { kind: "component", type: i5.BooleanFieldTemplateComponent, selector: "boolean-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i6.DateFieldTemplateComponent, selector: "date-field-template", inputs: ["field", "record", "inConfig"], outputs: ["recordChange"] }, { kind: "component", type: i7.TextareaFieldTemplateComponent, selector: "textarea-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i8.NumericFieldTemplateComponent, selector: "numeric-field-template", inputs: ["field", "record", "inConfig"], outputs: ["recordChange"] }, { kind: "component", type: i9.ListValueFieldTemplateComponent, selector: "list-value-field-template", inputs: ["field", "record", "inConfig"], outputs: ["recordChange"] }, { kind: "component", type: i10.AttachmentFieldTemplateComponent, selector: "attachment-field-template", inputs: ["onlyImages", "field", "record", "inConfig"], outputs: ["recordChange", "onAttachmentsChange"] }, { kind: "component", type: i11.ImageFieldTemplateComponent, selector: "image-field-template", inputs: ["endPointConfiguration", "record", "field", "inConfig"], outputs: ["recordChange", "imageDraw"] }, { kind: "component", type: i12.ListFormRecordComponent, selector: "list-form-record", inputs: ["configurations", "endPointConfiguration", "formID", "form", "externalButtons"], outputs: ["onViewRecord", "onAddViewEditRecord", "onDeleteRecord", "onAfterDeleteRecord"] }, { kind: "component", type: i13.AddFormRecordComponent, selector: "add-form-record", inputs: ["configurations", "endPointConfiguration", "userID", "orgaID", "formID", "form", "record", "onlyView", "isDuplicate", "inConfig", "showAllFields", "QueryEditorComponent"], outputs: ["saveRecordEvent", "afterSaveRecordEvent", "out", "fireTrigger"] }] });
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicModuleFieldComponent, decorators: [{
|
|
116
|
-
type: Component,
|
|
117
|
-
args: [{ selector: 'dynamic-module-field', template: "<text-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo di testo']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</text-field-template>\r\n\r\n<textarea-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Area di testo']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</textarea-field-template>\r\n\r\n<boolean-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Booleano']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</boolean-field-template>\r\n\r\n<date-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Data e/o ora']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</date-field-template>\r\n\r\n<numeric-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo numerico']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</numeric-field-template>\r\n\r\n<list-value-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Elenco generico']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</list-value-field-template>\r\n\r\n<attachment-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Allegato']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</attachment-field-template>\r\n\r\n<image-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Immagine']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</image-field-template>\r\n\r\n<list-form-record #listInnerFormRecords *ngIf=\"field.FieldType == FieldTypeEnum['Form di dettaglio']\"\r\n [form]=\"getInnerFormFromField(field)\" [configurations]=\"configList\"\r\n (onAddViewEditRecord)=\"onAddViewEditInnerFormRecord($event, field)\">\r\n</list-form-record>\r\n\r\n<!-- DIALOG PER AGGIUNGERE/MODIFICARE/VISUALIZZARE UN RECORD IN UNA FORM DI DETTAGLIO -->\r\n<ng-template #dialogInnerFormRecord>\r\n <add-form-record [form]=\"selectedInnerForm\" [record]=\"selectedInnerFormRecord\" [onlyView]=\"onlyViewInnerFormRecord\"\r\n (saveRecordEvent)=\"onSaveInnerFormRecord($event)\"></add-form-record>\r\n</ng-template>" }]
|
|
118
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { field: [{
|
|
119
|
-
type: Input
|
|
120
|
-
}], form: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}], record: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], recordChange: [{
|
|
125
|
-
type: Output
|
|
126
|
-
}], dialogInnerFormRecord: [{
|
|
127
|
-
type: ViewChild,
|
|
128
|
-
args: ['dialogInnerFormRecord', { static: true }]
|
|
129
|
-
}], fieldTemplate: [{
|
|
130
|
-
type: ViewChildren,
|
|
131
|
-
args: ["fieldTemplate"]
|
|
132
|
-
}], listInnerFormRecords: [{
|
|
133
|
-
type: ViewChildren,
|
|
134
|
-
args: ['listInnerFormRecords']
|
|
135
|
-
}] } });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2R5bmFtaWMtbW9kdWxlLWZpZWxkL2R5bmFtaWMtbW9kdWxlLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS9keW5hbWljLW1vZHVsZS1maWVsZC9keW5hbWljLW1vZHVsZS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUEwQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hJLE9BQU8sRUFBYSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV4RixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUN0SCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVF0RCxNQUFNLE9BQU8sMkJBQTJCO0lBc0J0QyxZQUNVLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFsQmpCLGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFMUUsZUFBVSxHQUE0QixJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDcEUsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFNOUIsNEJBQXVCLEdBQVksS0FBSyxDQUFDO0lBVXJDLENBQUM7SUFHTCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFB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SW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IElCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2lCYXNlRmllbGRDb21wb25lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkLCBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Jhc2VGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVMaXN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2R5bmFtaWNNb2R1bGVMaXN0Q29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgTGlzdEZvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXJlY29yZHMvbGlzdC1mb3JtLXJlY29yZC9saXN0LWZvcm0tcmVjb3JkLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2R5bmFtaWMtbW9kdWxlLWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtbW9kdWxlLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNNb2R1bGVGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSUJhc2VGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkOiBCYXNlRmllbGQ7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybTtcclxuICBASW5wdXQoKSByZWNvcmQ6IFJlY29yZDtcclxuICBAT3V0cHV0KCkgcmVjb3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPigpO1xyXG5cclxuICBjb25maWdMaXN0OiBEeW5hbWljTW9kdWxlTGlzdENvbmZpZyA9IG5ldyBEeW5hbWljTW9kdWxlTGlzdENvbmZpZygpO1xyXG4gIEZpZWxkVHlwZUVudW0gPSBGaWVsZFR5cGVFbnVtO1xyXG5cclxuICAvLyNyZWdpb24gUHJvcHJpZXTDoCBwZXIgYWdnaXVuZ2VyZS9tb2RpZmljYXJlIGkgcmVjb3JkIGRpIHVuYSBmb3JtIGRpIGRldHRhZ2xpb1xyXG4gIHNlbGVjdGVkSW5uZXJGb3JtOiBGb3JtO1xyXG4gIHNlbGVjdGVkSW5uZXJGb3JtUmVjb3JkOiBSZWNvcmQ7XHJcbiAgaW5kZXhJbm5lckZvcm1SZWNvcmQ6IG51bWJlcjtcclxuICBvbmx5Vmlld0lubmVyRm9ybVJlY29yZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpYWxvZ0lubmVyRm9ybVJlY29yZFJlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlUmVmPGFueT4+O1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ0lubmVyRm9ybVJlY29yZCcsIHsgc3RhdGljOiB0cnVlIH0pIGRpYWxvZ0lubmVyRm9ybVJlY29yZDogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgQFZpZXdDaGlsZHJlbihcImZpZWxkVGVtcGxhdGVcIikgZmllbGRUZW1wbGF0ZTogUXVlcnlMaXN0PER5bmFtaWNNb2R1bGVGaWVsZENvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZHJlbignbGlzdElubmVyRm9ybVJlY29yZHMnKSBsaXN0SW5uZXJGb3JtUmVjb3JkczogUXVlcnlMaXN0PExpc3RGb3JtUmVjb3JkQ29tcG9uZW50PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXHJcbiAgKSB7IH1cclxuXHJcblxyXG4gIHVwZGF0ZUZpZWxkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmllbGRUZW1wbGF0ZSAmJiB0aGlzLmZpZWxkVGVtcGxhdGUubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpZWxkVGVtcGxhdGUuZm9yRWFjaChmID0+IGYudXBkYXRlRmllbGQoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnTGlzdC52YWx1ZXMgPSB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdXHJcbiAgICB0aGlzLmNvbmZpZ0xpc3Quc2hvd1RpdGxlID0gdHJ1ZTtcclxuICAgIHRoaXMuY29uZmlnTGlzdC5kZWZhdWx0TGlzdEFjdGlvbnMgPSBuZXcgRHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQoKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGludm9jYXRvIGFsIGNhbWJpbyBkZWwgdmFsb3JlIGRpIG9nbmkgcHJvcHJpZXTDoCBkZWxsJ29nZ2V0dG8gcmVjb3JkLlxyXG4gICAqIFNlcnZlIGFkIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRpIHR1dHRpIGkgY2FtcGkgY2hlIGhhbm5vIHVuYSBmb3JtdWxhLlxyXG4gICAqL1xyXG4gIG9uUmVjb3JkQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5yZWNvcmRDaGFuZ2UuZW1pdCh0aGlzLnJlY29yZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIHJlY3VwZXJhcmUgdW5hIElubmVyRm9ybSBhIHBhcnRpcmUgZGFsIEZpZWxkIGNoZSBsYSByYXBwcmVzZW50YS5cclxuICAgKiBAcGFyYW0gZmllbGQgQ2FtcG8gYSBwYXJ0aXJlIGRhbCBxdWFsZSBzaSB2dW9sZSByZWN1cGVyYXJlIGxhIElubmVyRm9ybS5cclxuICAgKiBAcmV0dXJucyBSZXN0aXR1aXNjZSB1biBvZ2dldHRvIGRpIHRpcG8gRm9ybS5cclxuICAgKi9cclxuICBnZXRJbm5lckZvcm1Gcm9tRmllbGQoZmllbGQ6IEJhc2VGaWVsZCk6IEZvcm0ge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5Jbm5lckZvcm1zICYmIHRoaXMuZm9ybS5Jbm5lckZvcm1zLmZpbmQoZiA9PiBmLk5hbWUgPT0gZmllbGQuTGFiZWwpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm0uSW5uZXJGb3Jtcy5maW5kKGYgPT4gZi5OYW1lID09IGZpZWxkLkxhYmVsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIE1ldG9kbyBwZXIgYXByaXJlIHVuIGRpYWxvZyBpbiBjdWkgYWdnaXVuZ2VyZS9tb2RpZmljYXJlL3Zpc3VhbGl6emFyZSB1biByZWNvcmQgYXBwYXJ0ZW5lbnRlXHJcbiAqIGEgdW5hIGZvcm0gZGkgZGV0dGFnbGlvLlxyXG4gKiBAcGFyYW0gcmVjb3JkIEV2ZW50byBkaSBvdXRwdXQgZGVsIGNvbXBvbmVudGUgbGlzdC1mb3JtLXJlY29yZCwgY29udGllbmUgaWwgcmVjb3JkIHNlbGV6aW9uYXRvIGUgdW4gYm9vbGVubyBjaGUgaW5kaWNhIFxyXG4gKiBzZSBsJ3V0ZW50ZSB2dW9sZSBtb2RpZmljYXJlIG8gdmlzdWFsaXp6YXJlIGwnZWxlbWVudG8gc2VsZXppb25hdG8uXHJcbiAqIEBwYXJhbSBpbm5lckZvcm0gQ29udGllbmUgbGEgRm9ybSBkaSBkZXR0YWdsaW8gZGFsbGEgcXVhbGUgw6ggc3RhdG8gcmljaGllc3RvIGlsIHJlY29yZC5cclxuICovXHJcbiAgb25BZGRWaWV3RWRpdElubmVyRm9ybVJlY29yZChyZWNvcmQ6IHsgcmVjb3JkOiBSZWNvcmQsIG9ubHlWaWV3OiBib29sZWFuIH0sIGZpZWxkOiBCYXNlRmllbGQpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJbm5lckZvcm0gPSB0aGlzLmdldElubmVyRm9ybUZyb21GaWVsZChmaWVsZCk7XHJcbiAgICBpZiAocmVjb3JkID09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZElubmVyRm9ybVJlY29yZCA9IG5ldyBSZWNvcmQoKTtcclxuICAgICAgdGhpcy5pbmRleElubmVyRm9ybVJlY29yZCA9IG51bGw7XHJcbiAgICAgIHRoaXMub25seVZpZXdJbm5lckZvcm1SZWNvcmQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbm5lckZvcm1SZWNvcmQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlY29yZC5yZWNvcmQpKTtcclxuICAgICAgdGhpcy5pbmRleElubmVyRm9ybVJlY29yZCA9IHRoaXMucmVjb3JkW2ZpZWxkLk5hbWVdLmluZGV4T2YocmVjb3JkKTtcclxuICAgICAgdGhpcy5vbmx5Vmlld0lubmVyRm9ybVJlY29yZCA9IHJlY29yZC5vbmx5VmlldztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpYWxvZ0lubmVyRm9ybVJlY29yZFJlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGhpcy5kaWFsb2dJbm5lckZvcm1SZWNvcmQsIHtcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgd2lkdGg6ICc3NSUnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBpbnZvY2F0byBhbCBzYWx2YXRhZ2dpbyBvIGFsbGEgY2hpdXN1cmEgZGVsIGRpYWxvZyBkaSBhZ2dpdW50YS9tb2RpZmljYS92aXN1YWxpenphemlvbmVcclxuICAgKiBkaSB1biByZWNvcmQgZGkgdW5hIGZvcm0gZGkgZGV0dGFnbGlvLlxyXG4gICAqIEBwYXJhbSByZWNvcmQgT2dnZXR0byByZXN0aXR1aXRvIGRhbCBjb21wb25lbnRlIGFkZC1mb3JtLWZpZWxkIChxdWVzdG8gcXVpKSBjb250ZW5lbnRlIGlsIFJlY29yZCBcclxuICAgKiBhZ2dpb3JuYXRvIGRhbGwndXRlbnRlLiBTZSBudWxsIGFsbG9yYSBsJ3V0ZW50ZSBub24gaGEgbW9kaWZpY2F0byBudWxsYSBlIGhhIGNoaXVzbyBpbCBkaWFsb2cuXHJcbiAgICovXHJcbiAgb25TYXZlSW5uZXJGb3JtUmVjb3JkKHJlY29yZDogUmVjb3JkKSB7XHJcbiAgICBpZiAocmVjb3JkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgYXJyYXlOYW1lOiBzdHJpbmcgPSB0aGlzLnNlbGVjdGVkSW5uZXJGb3JtLk5hbWUuc3BsaXQoJyAnKS5qb2luKCdfJyk7XHJcbiAgICAgIGlmICh0aGlzLmluZGV4SW5uZXJGb3JtUmVjb3JkICE9IG51bGwgJiYgdGhpcy5pbmRleElubmVyRm9ybVJlY29yZCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbYXJyYXlOYW1lXVt0aGlzLmluZGV4SW5uZXJGb3JtUmVjb3JkXSA9IHJlY29yZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXRoaXMucmVjb3JkW2FycmF5TmFtZV0pIHtcclxuICAgICAgICAgIHRoaXMucmVjb3JkW2FycmF5TmFtZV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbYXJyYXlOYW1lXS5wdXNoKHJlY29yZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZGlhbG9nSW5uZXJGb3JtUmVjb3JkUmVmLmNsb3NlKCk7XHJcblxyXG4gICAgLy8gUmljYXJpY28gbGEgdGFiZWxsYSBkZWkgcmVjb3JkIHBlciB2aXN1YWxpenphcmUgbGUgbW9kaWZpY2hlIGZhdHRlIGRhbGwndXRlbnRlLlxyXG4gICAgaWYgKHRoaXMubGlzdElubmVyRm9ybVJlY29yZHMgJiYgdGhpcy5saXN0SW5uZXJGb3JtUmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubGlzdElubmVyRm9ybVJlY29yZHMuZm9yRWFjaChsaXN0ID0+IHtcclxuICAgICAgICBpZiAobGlzdCAmJiBsaXN0LnRhYmxlUmVjb3Jkcykge1xyXG4gICAgICAgICAgbGlzdC50YWJsZVJlY29yZHMucmVsb2FkRGF0YXRhYmxlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHRleHQtZmllbGQtdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnQ2FtcG8gZGkgdGVzdG8nXVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5EZXNjcmlwdGlvblwiIFsocmVjb3JkKV09XCJyZWNvcmRcIiBbZmllbGRdPVwiZmllbGRcIiAocmVjb3JkQ2hhbmdlKT1cIm9uUmVjb3JkQ2hhbmdlKClcIj5cclxuPC90ZXh0LWZpZWxkLXRlbXBsYXRlPlxyXG5cclxuPHRleHRhcmVhLWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0FyZWEgZGkgdGVzdG8nXVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5EZXNjcmlwdGlvblwiIFsocmVjb3JkKV09XCJyZWNvcmRcIiBbZmllbGRdPVwiZmllbGRcIiAocmVjb3JkQ2hhbmdlKT1cIm9uUmVjb3JkQ2hhbmdlKClcIj5cclxuPC90ZXh0YXJlYS1maWVsZC10ZW1wbGF0ZT5cclxuXHJcbjxib29sZWFuLWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0Jvb2xlYW5vJ11cIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiZmllbGQuRGVzY3JpcHRpb25cIiBbKHJlY29yZCldPVwicmVjb3JkXCIgW2ZpZWxkXT1cImZpZWxkXCIgKHJlY29yZENoYW5nZSk9XCJvblJlY29yZENoYW5nZSgpXCI+XHJcbjwvYm9vbGVhbi1maWVsZC10ZW1wbGF0ZT5cclxuXHJcbjxkYXRlLWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0RhdGEgZS9vIG9yYSddXCJcclxuICAgIFttYXRUb29sdGlwXT1cImZpZWxkLkRlc2NyaXB0aW9uXCIgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZFwiIChyZWNvcmRDaGFuZ2UpPVwib25SZWNvcmRDaGFuZ2UoKVwiPlxyXG48L2RhdGUtZmllbGQtdGVtcGxhdGU+XHJcblxyXG48bnVtZXJpYy1maWVsZC10ZW1wbGF0ZSAjZmllbGRUZW1wbGF0ZSAqbmdJZj1cImZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydDYW1wbyBudW1lcmljbyddXCJcclxuICAgIFttYXRUb29sdGlwXT1cImZpZWxkLkRlc2NyaXB0aW9uXCIgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZFwiIChyZWNvcmRDaGFuZ2UpPVwib25SZWNvcmRDaGFuZ2UoKVwiPlxyXG48L251bWVyaWMtZmllbGQtdGVtcGxhdGU+XHJcblxyXG48bGlzdC12YWx1ZS1maWVsZC10ZW1wbGF0ZSAjZmllbGRUZW1wbGF0ZSAqbmdJZj1cImZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydFbGVuY28gZ2VuZXJpY28nXVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5EZXNjcmlwdGlvblwiIFsocmVjb3JkKV09XCJyZWNvcmRcIiBbZmllbGRdPVwiZmllbGRcIiAocmVjb3JkQ2hhbmdlKT1cIm9uUmVjb3JkQ2hhbmdlKClcIj5cclxuPC9saXN0LXZhbHVlLWZpZWxkLXRlbXBsYXRlPlxyXG5cclxuPGF0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnQWxsZWdhdG8nXVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5EZXNjcmlwdGlvblwiIFsocmVjb3JkKV09XCJyZWNvcmRcIiBbZmllbGRdPVwiZmllbGRcIiAocmVjb3JkQ2hhbmdlKT1cIm9uUmVjb3JkQ2hhbmdlKClcIj5cclxuPC9hdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlPlxyXG5cclxuPGltYWdlLWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0ltbWFnaW5lJ11cIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiZmllbGQuRGVzY3JpcHRpb25cIiBbKHJlY29yZCldPVwicmVjb3JkXCIgW2ZpZWxkXT1cImZpZWxkXCIgKHJlY29yZENoYW5nZSk9XCJvblJlY29yZENoYW5nZSgpXCI+XHJcbjwvaW1hZ2UtZmllbGQtdGVtcGxhdGU+XHJcblxyXG48bGlzdC1mb3JtLXJlY29yZCAjbGlzdElubmVyRm9ybVJlY29yZHMgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnRm9ybSBkaSBkZXR0YWdsaW8nXVwiXHJcbiAgICBbZm9ybV09XCJnZXRJbm5lckZvcm1Gcm9tRmllbGQoZmllbGQpXCIgW2NvbmZpZ3VyYXRpb25zXT1cImNvbmZpZ0xpc3RcIlxyXG4gICAgKG9uQWRkVmlld0VkaXRSZWNvcmQpPVwib25BZGRWaWV3RWRpdElubmVyRm9ybVJlY29yZCgkZXZlbnQsIGZpZWxkKVwiPlxyXG48L2xpc3QtZm9ybS1yZWNvcmQ+XHJcblxyXG48IS0tIERJQUxPRyBQRVIgQUdHSVVOR0VSRS9NT0RJRklDQVJFL1ZJU1VBTElaWkFSRSBVTiBSRUNPUkQgSU4gVU5BIEZPUk0gREkgREVUVEFHTElPIC0tPlxyXG48bmctdGVtcGxhdGUgI2RpYWxvZ0lubmVyRm9ybVJlY29yZD5cclxuICAgIDxhZGQtZm9ybS1yZWNvcmQgW2Zvcm1dPVwic2VsZWN0ZWRJbm5lckZvcm1cIiBbcmVjb3JkXT1cInNlbGVjdGVkSW5uZXJGb3JtUmVjb3JkXCIgW29ubHlWaWV3XT1cIm9ubHlWaWV3SW5uZXJGb3JtUmVjb3JkXCJcclxuICAgICAgICAoc2F2ZVJlY29yZEV2ZW50KT1cIm9uU2F2ZUlubmVyRm9ybVJlY29yZCgkZXZlbnQpXCI+PC9hZGQtZm9ybS1yZWNvcmQ+XHJcbjwvbmctdGVtcGxhdGU+Il19
|