@eqproject/eqp-attachments 3.0.1 → 3.0.2
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/esm2022/lib/directives/eqp-common/dynamic-loader/dynamic-loader.directive.mjs +53 -0
- package/esm2022/lib/directives/eqp-common/eqp-common.service.mjs +78 -0
- package/esm2022/lib/directives/eqp-common/index.mjs +10 -0
- package/esm2022/lib/directives/eqp-common/models/base-field.model.mjs +57 -0
- package/esm2022/lib/directives/eqp-common/models/common-enum.model.mjs +8 -0
- package/esm2022/lib/directives/eqp-common/models/config-column.model.mjs +116 -0
- package/esm2022/lib/directives/eqp-common/models/filterConfig.model.mjs +318 -0
- package/esm2022/lib/directives/eqp-common/models/filterField.model.mjs +254 -0
- package/esm2022/lib/directives/eqp-common/models/form.model.mjs +168 -0
- package/esm2022/lib/directives/eqp-common/models/linqFilterResult.model.mjs +73 -0
- package/esm2022/lib/directives/eqp-common/models/tableColumn-field.model.mjs +107 -0
- package/esm2022/lib/eqp-attachments.component.mjs +5 -5
- package/fesm2022/eqproject-eqp-attachments.mjs +1170 -5
- package/fesm2022/eqproject-eqp-attachments.mjs.map +1 -1
- package/lib/directives/eqp-common/dynamic-loader/dynamic-loader.directive.d.ts +17 -0
- package/lib/directives/eqp-common/eqp-common.service.d.ts +21 -0
- package/lib/directives/eqp-common/index.d.ts +9 -0
- package/lib/directives/eqp-common/models/base-field.model.d.ts +52 -0
- package/lib/directives/eqp-common/models/common-enum.model.d.ts +6 -0
- package/lib/directives/eqp-common/models/config-column.model.d.ts +113 -0
- package/lib/directives/eqp-common/models/filterConfig.model.d.ts +264 -0
- package/lib/directives/eqp-common/models/filterField.model.d.ts +144 -0
- package/lib/directives/eqp-common/models/form.model.d.ts +129 -0
- package/lib/directives/eqp-common/models/linqFilterResult.model.d.ts +58 -0
- package/lib/directives/eqp-common/models/tableColumn-field.model.d.ts +31 -0
- package/lib/eqp-attachments.component.d.ts +3 -3
- package/package.json +2 -3
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { FilterConfig, InputType, WherePartType } from './filterConfig.model';
|
|
2
|
+
import { BaseFieldModel, BaseType } from './base-field.model';
|
|
3
|
+
import { FieldSizeClass } from './common-enum.model';
|
|
4
|
+
export class FilterField extends BaseFieldModel {
|
|
5
|
+
constructor(filterID, fieldClass, label, propertyName, propertyValue, inputType, wherePartType, cvlConfig, preventRemoval) {
|
|
6
|
+
super();
|
|
7
|
+
this.filterID = filterID;
|
|
8
|
+
if (fieldClass)
|
|
9
|
+
this.fieldSizeClass = fieldClass;
|
|
10
|
+
this.display = label;
|
|
11
|
+
this.key = propertyName;
|
|
12
|
+
this.value = propertyValue;
|
|
13
|
+
this.inputType = inputType;
|
|
14
|
+
this.wherePartType = wherePartType;
|
|
15
|
+
this.preventRemoval = preventRemoval;
|
|
16
|
+
this.arrayData = cvlConfig?.ArrayData;
|
|
17
|
+
this.arrayKeyProperty = cvlConfig?.ArrayKeyProperty;
|
|
18
|
+
this.arrayValueProperty = cvlConfig?.ArrayValueProperty;
|
|
19
|
+
this.isEnumSearchable = cvlConfig?.IsSearchable;
|
|
20
|
+
this.showEnumCancelButton = cvlConfig?.ShowCancelButton;
|
|
21
|
+
this.enumSearchText = cvlConfig?.SearchText;
|
|
22
|
+
this.isEnumMultiSelect = cvlConfig?.IsMultiSelect;
|
|
23
|
+
this.bindLookupFullObject = cvlConfig?.BindFullObject;
|
|
24
|
+
this.placeholder = label;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Identificativo univoco del filtro
|
|
28
|
+
*/
|
|
29
|
+
filterID;
|
|
30
|
+
/**
|
|
31
|
+
* Permette di definire la classe css da applicare
|
|
32
|
+
* al filtro
|
|
33
|
+
*/
|
|
34
|
+
fieldSizeClass = FieldSizeClass.SMALL;
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
customFieldSizeClasses;
|
|
39
|
+
/**
|
|
40
|
+
* Definisce il tipo di filtro da applicare (valori ammessi in base all'enumeratore InputType)
|
|
41
|
+
*/
|
|
42
|
+
inputType;
|
|
43
|
+
/**
|
|
44
|
+
* Definisce il tipo di operatore logico da utilizzare per la where part
|
|
45
|
+
*/
|
|
46
|
+
wherePartType;
|
|
47
|
+
/**
|
|
48
|
+
* Se il filtro è di tipo CVL o CVLEnum allora in questa proprietà ci va definita la configurazione della cvl.
|
|
49
|
+
* La cvl verrà renderizzata con una eqp-select
|
|
50
|
+
*/
|
|
51
|
+
cvlConfig;
|
|
52
|
+
/**
|
|
53
|
+
* Permette di disabilitare la cancellazione del filtro all'utente.
|
|
54
|
+
* Di default assume il valore FALSE (se true allora nel riepilogo dei filtri applicati non sarà mostrato il pulsante X)
|
|
55
|
+
*/
|
|
56
|
+
preventRemoval = false;
|
|
57
|
+
/**
|
|
58
|
+
* Definisce il placeholder che verrà utilizzato nel campo del singolo filtro
|
|
59
|
+
*/
|
|
60
|
+
placeholder;
|
|
61
|
+
/**
|
|
62
|
+
* Permette di definire il template esterno da renderizzare come filtro.
|
|
63
|
+
*/
|
|
64
|
+
externalTemplate;
|
|
65
|
+
/**
|
|
66
|
+
* Permette di definire una funzione custom esterna da richiamare per il filtro corrente quando vengono premuti i pulsanti APPLICA FILTRI
|
|
67
|
+
* o RESET
|
|
68
|
+
*/
|
|
69
|
+
customWherePartFunction;
|
|
70
|
+
/**
|
|
71
|
+
* Permette di definire la funzione custom per restituire il valore del filtro applicato, da mostrare nell'header della card
|
|
72
|
+
*
|
|
73
|
+
*/
|
|
74
|
+
customAppliedFilterInfoFunction;
|
|
75
|
+
/**
|
|
76
|
+
* Per i filtri di tipo ContainsElement e NotContainsElement che si basano sull'applicazione di una where part con l'operatore
|
|
77
|
+
* Linq ANY allora questa proprietà permette di definire il nome della proprietà degli oggetti figli su cui applicare la where part.
|
|
78
|
+
* In questo caso dentro PropertyName ci andrà il nome della proprietà contenente la lista di child.
|
|
79
|
+
*
|
|
80
|
+
* (Es: PropertyName = 'Users' e ChildElementPropertyName = 'Role' per filtrare i record che contengono una lista di utenti con uno specifico)
|
|
81
|
+
*/
|
|
82
|
+
childElementPropertyName;
|
|
83
|
+
static createStandardFilterConfig(filterID, label, propertyName, type, wherePartType, filterClass, filterCvlConfig, externaltemplate, customWherePartFunction, childElementPropertyName, filterValue, preventRemoval) {
|
|
84
|
+
let filter = new FilterField(filterID, filterClass, label, propertyName, null, type, wherePartType, filterCvlConfig, preventRemoval);
|
|
85
|
+
if (externaltemplate)
|
|
86
|
+
filter.externalTemplate = externaltemplate;
|
|
87
|
+
if (customWherePartFunction)
|
|
88
|
+
filter.customWherePartFunction = customWherePartFunction;
|
|
89
|
+
if (childElementPropertyName)
|
|
90
|
+
filter.childElementPropertyName = childElementPropertyName;
|
|
91
|
+
if (filterValue)
|
|
92
|
+
filter.value = filterValue;
|
|
93
|
+
return filter;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Se la CVL si basa su un enumeratore allora in questa proprietà va definito il type dell'enumeratore da usare.
|
|
97
|
+
* In questo modo la sorgente dati della CVL sarà l'insieme dei valori definiti per l'enumeratore
|
|
98
|
+
*/
|
|
99
|
+
// public enumData?: any;
|
|
100
|
+
/**
|
|
101
|
+
* Se la CVL si basa su un array allora in questa proprietà va definito l'array da mostrare come sorgente dati della CVL
|
|
102
|
+
*/
|
|
103
|
+
arrayData;
|
|
104
|
+
/**
|
|
105
|
+
* Nel caso di ArrayData definito permette di indicare la proprietà degli oggetti dell'array da bindare al filtro
|
|
106
|
+
*/
|
|
107
|
+
arrayKeyProperty;
|
|
108
|
+
/**
|
|
109
|
+
* Nel caso di ArrayData definito permette di indicare la proprietà degli oggetti da visualizzare nel filtro
|
|
110
|
+
*/
|
|
111
|
+
arrayValueProperty;
|
|
112
|
+
/**
|
|
113
|
+
* Se TRUE allora mostra il campo di ricerca all'interno della CVL (default: TRUE)
|
|
114
|
+
*/
|
|
115
|
+
isEnumSearchable = false;
|
|
116
|
+
/**
|
|
117
|
+
* Se TRUE allora mostra il pulsante per pulire la selezione della CVL (default: TRUE)
|
|
118
|
+
*/
|
|
119
|
+
showEnumCancelButton = true;
|
|
120
|
+
/**
|
|
121
|
+
* Permette di definire l'etichetta per il campo di ricerca della CVL (default: 'Cerca')
|
|
122
|
+
*/
|
|
123
|
+
enumSearchText = "Cerca";
|
|
124
|
+
/**
|
|
125
|
+
* Permette di definire la multi selezione dei valori della CVL (default: false)
|
|
126
|
+
*/
|
|
127
|
+
isEnumMultiSelect = false;
|
|
128
|
+
/**
|
|
129
|
+
* Se TRUE allora mostra il campo di ricerca all'interno della lookup (default: TRUE)
|
|
130
|
+
*/
|
|
131
|
+
isLookupSearchable = false;
|
|
132
|
+
/**
|
|
133
|
+
* Se TRUE allora mostra il pulsante per pulire la selezione della lookup (default: TRUE)
|
|
134
|
+
*/
|
|
135
|
+
showLookupCancelButton = true;
|
|
136
|
+
/**
|
|
137
|
+
* Permette di definire l'etichetta per il campo di ricerca della Lookup (default: 'Cerca')
|
|
138
|
+
*/
|
|
139
|
+
lookupSearchText = "Cerca";
|
|
140
|
+
/**
|
|
141
|
+
* Permette di definire la multi selezione dei valori della lookup (default: false)
|
|
142
|
+
*/
|
|
143
|
+
isLookupMultiple = false;
|
|
144
|
+
/**
|
|
145
|
+
* Permette di definire se nella lookup il binding deve considerare tutto l'oggetto
|
|
146
|
+
* (default: true)
|
|
147
|
+
*/
|
|
148
|
+
bindLookupFullObject = true;
|
|
149
|
+
/**
|
|
150
|
+
* Permette di definire l'entità della lookup
|
|
151
|
+
*/
|
|
152
|
+
lookupEntityType = null;
|
|
153
|
+
/**
|
|
154
|
+
* Permette di definire l'url per effettuare la chiamata che popola la lookup
|
|
155
|
+
*/
|
|
156
|
+
lookupFullUrlHttpCall = null;
|
|
157
|
+
/**
|
|
158
|
+
* Permette di definire (in maniera opzionale) gli eventuali predicati standard da applicare nel recuperare gli item per la lookup
|
|
159
|
+
*/
|
|
160
|
+
dataFilter = null;
|
|
161
|
+
/**
|
|
162
|
+
* Permette di definire un oggetto contenente la funzione di validazione e la label del suggerimento per validare il campo del filtro
|
|
163
|
+
*/
|
|
164
|
+
validationProperties;
|
|
165
|
+
static createFilterFields(baseFields) {
|
|
166
|
+
if (Array.isArray(baseFields)) {
|
|
167
|
+
const filterFields = [];
|
|
168
|
+
baseFields.forEach(field => {
|
|
169
|
+
filterFields.push(this.createFilterField(field));
|
|
170
|
+
});
|
|
171
|
+
return filterFields;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
return this.createFilterField(baseFields);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
static createFilterField(baseField) {
|
|
178
|
+
const filterField = new FilterField();
|
|
179
|
+
filterField.filterID = baseField.key + "_ID";
|
|
180
|
+
filterField.key = baseField.key;
|
|
181
|
+
filterField.display = baseField.display;
|
|
182
|
+
filterField.value = baseField.value;
|
|
183
|
+
filterField.enumModel = baseField.enumModel;
|
|
184
|
+
filterField.inputType = BaseTypeConverterFilter.convertToInputType(baseField.baseType);
|
|
185
|
+
filterField.wherePartType = WherePartType.Equal;
|
|
186
|
+
filterField.baseType = null;
|
|
187
|
+
return filterField;
|
|
188
|
+
}
|
|
189
|
+
static createFilterConfigs(filterFields) {
|
|
190
|
+
if (Array.isArray(filterFields)) {
|
|
191
|
+
const filterConfigs = [];
|
|
192
|
+
filterFields.forEach(field => {
|
|
193
|
+
filterConfigs.push(this.createFilterConfig(field));
|
|
194
|
+
});
|
|
195
|
+
return filterConfigs;
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
return this.createFilterConfig(filterFields);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
static createFilterConfig(filterField) {
|
|
202
|
+
const filterConfig = new FilterConfig();
|
|
203
|
+
filterConfig.FilterID = filterField.filterID ?? (filterField.key + "_ID");
|
|
204
|
+
filterConfig.PropertyName = filterField.key;
|
|
205
|
+
filterConfig.Label = filterField.display;
|
|
206
|
+
filterConfig.PropertyObject = filterField.value;
|
|
207
|
+
filterConfig.EnumData = filterField.enumModel;
|
|
208
|
+
filterConfig.Externaltemplate = filterField.externalTemplate;
|
|
209
|
+
filterConfig.ArrayData = filterField.arrayData;
|
|
210
|
+
filterConfig.ArrayKeyProperty = filterField.arrayKeyProperty;
|
|
211
|
+
filterConfig.ArrayValueProperty = filterField.arrayValueProperty;
|
|
212
|
+
filterConfig.BindLookupFullObject = filterField.bindLookupFullObject;
|
|
213
|
+
filterConfig.ChildElementPropertyName = filterField.childElementPropertyName;
|
|
214
|
+
filterConfig.CustomAppliedFilterInfoFunction = filterField.customAppliedFilterInfoFunction;
|
|
215
|
+
filterConfig.CustomFilterClasses = filterField.customFieldSizeClasses;
|
|
216
|
+
filterConfig.CustomWherePartFunction = filterField.customWherePartFunction;
|
|
217
|
+
filterConfig.CvlConfig = filterField.cvlConfig;
|
|
218
|
+
filterConfig.EnumSearchText = filterField.enumSearchText;
|
|
219
|
+
filterConfig.FilterClass = filterField.fieldSizeClass;
|
|
220
|
+
filterConfig.IsEnumMultiSelect = filterField.isEnumMultiSelect;
|
|
221
|
+
filterConfig.IsEnumSearchable = filterField.isEnumSearchable;
|
|
222
|
+
filterConfig.IsLookupMultiple = filterField.isLookupMultiple;
|
|
223
|
+
filterConfig.LookupEntityType = filterField.lookupEntityType;
|
|
224
|
+
filterConfig.LookupFullUrlHttpCall = filterField.lookupEntityType;
|
|
225
|
+
filterConfig.LookupSearchText = filterField.lookupSearchText;
|
|
226
|
+
filterConfig.DataFilter = filterField.dataFilter;
|
|
227
|
+
filterConfig.PreventRemoval = filterField.preventRemoval;
|
|
228
|
+
filterConfig.ShowEnumCancelButton = filterField.showEnumCancelButton;
|
|
229
|
+
filterConfig.ShowLookupCancelButton = filterField.showLookupCancelButton;
|
|
230
|
+
filterConfig.ValidationProperties = filterField.validationProperties;
|
|
231
|
+
filterConfig.InputType = filterField.inputType ?? InputType.Text;
|
|
232
|
+
filterConfig.WherePartType = filterField.wherePartType ?? WherePartType.Equal;
|
|
233
|
+
return filterConfig;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
export class BaseTypeConverterFilter {
|
|
237
|
+
static convertToInputType(baseType) {
|
|
238
|
+
switch (baseType) {
|
|
239
|
+
case BaseType.Text:
|
|
240
|
+
return InputType.Text;
|
|
241
|
+
case BaseType.Number:
|
|
242
|
+
return InputType.Number;
|
|
243
|
+
case BaseType.Date:
|
|
244
|
+
return InputType.Date;
|
|
245
|
+
case BaseType.Enum:
|
|
246
|
+
return InputType.CvlEnum;
|
|
247
|
+
case BaseType.Boolean:
|
|
248
|
+
return InputType.Boolean;
|
|
249
|
+
default:
|
|
250
|
+
return undefined;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyRmllbGQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtYXR0YWNobWVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL2VxcC1jb21tb24vbW9kZWxzL2ZpbHRlckZpZWxkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQW9DLFNBQVMsRUFBb0IsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEksT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsTUFBTSxPQUFPLFdBQVksU0FBUSxjQUFjO0lBQzdDLFlBQVksUUFBaUIsRUFDM0IsVUFBMkIsRUFDM0IsS0FBYyxFQUNkLFlBQXFCLEVBQ3JCLGFBQW1CLEVBQ25CLFNBQXFCLEVBQ3JCLGFBQTZCLEVBQzdCLFNBQTJCLEVBQzNCLGNBQXdCO1FBRXhCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxVQUFVO1lBQUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUM7UUFFakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLEVBQUUsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxT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WSxDQUFDLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztRQUNyRSxZQUFZLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQztRQUNqRSxZQUFZLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQztRQUU5RSxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFrQjtRQUMxQyxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNoQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDeEIsS0FBSyxRQUFRLENBQUMsTUFBTTtnQkFDbEIsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQzFCLEtBQUssUUFBUSxDQUFDLElBQUk7Z0JBQ2hCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztZQUN4QixLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNoQixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDM0IsS0FBSyxRQUFRLENBQUMsT0FBTztnQkFDbkIsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQzNCO2dCQUNFLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IEZpbHRlckNvbmZpZywgRmlsdGVyQ3ZsQ29uZmlnLCBGaWx0ZXJTaXplQ2xhc3MsIElucHV0VHlwZSwgVmFsaWRhdGlvbk9iamVjdCwgV2hlcmVQYXJ0VHlwZSB9IGZyb20gJy4vZmlsdGVyQ29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGlucVByZWRpY2F0ZURUTyB9IGZyb20gJy4vbGlucUZpbHRlclJlc3VsdC5tb2RlbCc7XHJcbmltcG9ydCB7IEJhc2VGaWVsZE1vZGVsLCBCYXNlVHlwZSB9IGZyb20gJy4vYmFzZS1maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZpZWxkU2l6ZUNsYXNzIH0gZnJvbSAnLi9jb21tb24tZW51bS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyRmllbGQgZXh0ZW5kcyBCYXNlRmllbGRNb2RlbCB7XHJcbiAgY29uc3RydWN0b3IoZmlsdGVySUQ/OiBzdHJpbmcsXHJcbiAgICBmaWVsZENsYXNzPzogRmllbGRTaXplQ2xhc3MsXHJcbiAgICBsYWJlbD86IHN0cmluZyxcclxuICAgIHByb3BlcnR5TmFtZT86IHN0cmluZyxcclxuICAgIHByb3BlcnR5VmFsdWU/OiBhbnksXHJcbiAgICBpbnB1dFR5cGU/OiBJbnB1dFR5cGUsXHJcbiAgICB3aGVyZVBhcnRUeXBlPzogV2hlcmVQYXJ0VHlwZSxcclxuICAgIGN2bENvbmZpZz86IEZpbHRlckN2bENvbmZpZyxcclxuICAgIHByZXZlbnRSZW1vdmFsPzogYm9vbGVhbikge1xyXG5cclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmZpbHRlcklEID0gZmlsdGVySUQ7XHJcbiAgICBpZiAoZmllbGRDbGFzcykgdGhpcy5maWVsZFNpemVDbGFzcyA9IGZpZWxkQ2xhc3M7XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ID0gbGFiZWw7XHJcbiAgICB0aGlzLmtleSA9IHByb3BlcnR5TmFtZTtcclxuICAgIHRoaXMudmFsdWUgPSBwcm9wZXJ0eVZhbHVlO1xyXG4gICAgdGhpcy5pbnB1dFR5cGUgPSBpbnB1dFR5cGU7XHJcbiAgICB0aGlzLndoZXJlUGFydFR5cGUgPSB3aGVyZVBhcnRUeXBlO1xyXG4gICAgdGhpcy5wcmV2ZW50UmVtb3ZhbCA9IHByZXZlbnRSZW1vdmFsO1xyXG4gICAgdGhpcy5hcnJheURhdGEgPSBjdmxDb25maWc/LkFycmF5RGF0YTtcclxuICAgIHRoaXMuYXJyYXlLZXlQcm9wZXJ0eSA9IGN2bENvbmZpZz8uQXJyYXlLZXlQcm9wZXJ0eTtcclxuICAgIHRoaXMuYXJyYXlWYWx1ZVByb3BlcnR5ID0gY3ZsQ29uZmlnPy5BcnJheVZhbHVlUHJvcGVydHk7XHJcbiAgICB0aGlzLmlzRW51bVNlYXJjaGFibGUgPSBjdmxDb25maWc/LklzU2VhcmNoYWJsZTtcclxuICAgIHRoaXMuc2hvd0VudW1DYW5jZWxCdXR0b24gPSBjdmxDb25maWc/LlNob3dDYW5jZWxCdXR0b247XHJcbiAgICB0aGlzLmVudW1TZWFyY2hUZXh0ID0gY3ZsQ29uZmlnPy5TZWFyY2hUZXh0O1xyXG4gICAgdGhpcy5pc0VudW1NdWx0aVNlbGVjdCA9IGN2bENvbmZpZz8uSXNNdWx0aVNlbGVjdDtcclxuICAgIHRoaXMuYmluZExvb2t1cEZ1bGxPYmplY3QgPSBjdmxDb25maWc/LkJpbmRGdWxsT2JqZWN0O1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWRlbnRpZmljYXRpdm8gdW5pdm9jbyBkZWwgZmlsdHJvXHJcbiAgICovXHJcbiAgcHVibGljIGZpbHRlcklEOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcm1ldHRlIGRpIGRlZmluaXJlIGxhIGNsYXNzZSBjc3MgZGEgYXBwbGljYXJlXHJcbiAgICogYWwgZmlsdHJvXHJcbiAgICovXHJcbiAgcHVibGljIGZpZWxkU2l6ZUNsYXNzPzogRmllbGRTaXplQ2xhc3MgPSBGaWVsZFNpemVDbGFzcy5TTUFMTDtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBwdWJsaWMgY3VzdG9tRmllbGRTaXplQ2xhc3Nlcz86IHN0cmluZztcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaXNjZSBpbCB0aXBvIGRpIGZpbHRybyBkYSBhcHBsaWNhcmUgKHZhbG9yaSBhbW1lc3NpIGluIGJhc2UgYWxsJ2VudW1lcmF0b3JlIElucHV0VHlwZSlcclxuICAgKi9cclxuICBwdWJsaWMgaW5wdXRUeXBlPzogSW5wdXRUeXBlO1xyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmlzY2UgaWwgdGlwbyBkaSBvcGVyYXRvcmUgbG9naWNvIGRhIHV0aWxpenphcmUgcGVyIGxhIHdoZXJlIHBhcnRcclxuICAgKi9cclxuICBwdWJsaWMgd2hlcmVQYXJ0VHlwZT86IFdoZXJlUGFydFR5cGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIGlsIGZpbHRybyDDqCBkaSB0aXBvIENWTCBvIENWTEVudW0gYWxsb3JhIGluIHF1ZXN0YSBwcm9wcmlldMOgIGNpIHZhIGRlZmluaXRhIGxhIGNvbmZpZ3VyYXppb25lIGRlbGxhIGN2bC5cclxuICAgKiBMYSBjdmwgdmVycsOgIHJlbmRlcml6emF0YSBjb24gdW5hIGVxcC1zZWxlY3RcclxuICAgKi9cclxuICBwdWJsaWMgY3ZsQ29uZmlnPzogRmlsdGVyQ3ZsQ29uZmlnO1xyXG5cclxuICAvKipcclxuICAgKiBQZXJtZXR0ZSBkaSBkaXNhYmlsaXRhcmUgbGEgY2FuY2VsbGF6aW9uZSBkZWwgZmlsdHJvIGFsbCd1dGVudGUuXHJcbiAgICogRGkgZGVmYXVsdCBhc3N1bWUgaWwgdmFsb3JlIEZBTFNFIChzZSB0cnVlIGFsbG9yYSBuZWwgcmllcGlsb2dvIGRlaSBmaWx0cmkgYXBwbGljYXRpIG5vbiBzYXLDoCBtb3N0cmF0byBpbCBwdWxzYW50ZSBYKVxyXG4gICAqL1xyXG4gIHB1YmxpYyBwcmV2ZW50UmVtb3ZhbD86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pc2NlIGlsIHBsYWNlaG9sZGVyIGNoZSB2ZXJyw6AgdXRpbGl6emF0byBuZWwgY2FtcG8gZGVsIHNpbmdvbG8gZmlsdHJvXHJcbiAgICovXHJcbiAgcHVibGljIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBQZXJtZXR0ZSBkaSBkZWZpbmlyZSBpbCB0ZW1wbGF0ZSBlc3Rlcm5vIGRhIHJlbmRlcml6emFyZSBjb21lIGZpbHRyby5cclxuICAgKi9cclxuICBwdWJsaWMgZXh0ZXJuYWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcm1ldHRlIGRpIGRlZmluaXJlIHVuYSBmdW56aW9uZSBjdXN0b20gZXN0ZXJuYSBkYSByaWNoaWFtYXJlIHBlciBpbCBmaWx0cm8gY29ycmVudGUgcXVhbmRvIHZlbmdvbm8gcHJlbXV0aSBpIHB1bHNhbnRpIEFQUExJQ0EgRklMVFJJXHJcbiAgICogbyBSRVNFVFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjdXN0b21XaGVyZVBhcnRGdW5jdGlvbj86IChmaWx0ZXJDb25maWc6IEZpbHRlckNvbmZpZywgaXNSZXNldEFsbD86IGJvb2xlYW4sIGlzUmVtb3ZlRmlsdGVyPzogYm9vbGVhbikgPT4gYW55O1xyXG5cclxuICAvKipcclxuICAgKiBQZXJtZXR0ZSBkaSBkZWZpbmlyZSBsYSBmdW56aW9uZSBjdXN0b20gcGVyIHJlc3RpdHVpcmUgaWwgdmFsb3JlIGRlbCBmaWx0cm8gYXBwbGljYXRvLCBkYSBtb3N0cmFyZSBuZWxsJ2hlYWRlciBkZWxsYSBjYXJkXHJcbiAgICpcclxuICAgKi9cclxuICBwdWJsaWMgY3VzdG9tQXBwbGllZEZpbHRlckluZm9GdW5jdGlvbj86IChcclxuICAgIGZpbHRlckNvbmZpZzogRmlsdGVyQ29uZmlnLFxyXG4gICAgaXNSZXNldEFsbD86IGJvb2xlYW4sXHJcbiAgICBpc1JlbW92ZUZpbHRlcj86IGJvb2xlYW5cclxuICApID0+IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVyIGkgZmlsdHJpIGRpIHRpcG8gQ29udGFpbnNFbGVtZW50IGUgTm90Q29udGFpbnNFbGVtZW50IGNoZSBzaSBiYXNhbm8gc3VsbCdhcHBsaWNhemlvbmUgZGkgdW5hIHdoZXJlIHBhcnQgY29uIGwnb3BlcmF0b3JlXHJcbiAgICogTGlucSBBTlkgYWxsb3JhIHF1ZXN0YSBwcm9wcmlldMOgIHBlcm1ldHRlIGRpIGRlZmluaXJlIGlsIG5vbWUgZGVsbGEgcHJvcHJpZXTDoCBkZWdsaSBvZ2dldHRpIGZpZ2xpIHN1IGN1aSBhcHBsaWNhcmUgbGEgd2hlcmUgcGFydC5cclxuICAgKiBJbiBxdWVzdG8gY2FzbyBkZW50cm8gUHJvcGVydHlOYW1lIGNpIGFuZHLDoCBpbCBub21lIGRlbGxhIHByb3ByaWV0w6AgY29udGVuZW50ZSBsYSBsaXN0YSBkaSBjaGlsZC5cclxuICAgKlxyXG4gICAqIChFczogUHJvcGVydHlOYW1lID0gJ1VzZXJzJyBlIENoaWxkRWxlbWVudFByb3BlcnR5TmFtZSA9ICdSb2xlJyBwZXIgZmlsdHJhcmUgaSByZWNvcmQgY2hlIGNvbnRlbmdvbm8gdW5hIGxpc3RhIGRpIHV0ZW50aSBjb24gdW5vIHNwZWNpZmljbylcclxuICAgKi9cclxuICBwdWJsaWMgY2hpbGRFbGVtZW50UHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVN0YW5kYXJkRmlsdGVyQ29uZmlnKFxyXG4gICAgZmlsdGVySUQ6IHN0cmluZyxcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcclxuICAgIHR5cGU6IElucHV0VHlwZSxcclxuICAgIHdoZXJlUGFydFR5cGU6IFdoZXJlUGFydFR5cGUsXHJcbiAgICBmaWx0ZXJDbGFzcz86IEZpZWxkU2l6ZUNsYXNzLFxyXG4gICAgZmlsdGVyQ3ZsQ29uZmlnPzogRmlsdGVyQ3ZsQ29uZmlnLFxyXG4gICAgZXh0ZXJuYWx0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICBjdXN0b21XaGVyZVBhcnRGdW5jdGlvbj86IChmaWx0ZXJDb25maWc6IEZpbHRlckNvbmZpZywgaXNSZXNldEFsbD86IGJvb2xlYW4sIGlzUmVtb3ZlRmlsdGVyPzogYm9vbGVhbikgPT4gYW55LFxyXG4gICAgY2hpbGRFbGVtZW50UHJvcGVydHlOYW1lPzogc3RyaW5nLFxyXG4gICAgZmlsdGVyVmFsdWU/OiBhbnksXHJcbiAgICBwcmV2ZW50UmVtb3ZhbD86IGJvb2xlYW5cclxuICApOiBGaWx0ZXJGaWVsZCB7XHJcbiAgICBsZXQgZmlsdGVyOiBGaWx0ZXJGaWVsZCA9IG5ldyBGaWx0ZXJGaWVsZChcclxuICAgICAgZmlsdGVySUQsXHJcbiAgICAgIGZpbHRlckNsYXNzLFxyXG4gICAgICBsYWJlbCxcclxuICAgICAgcHJvcGVydHlOYW1lLFxyXG4gICAgICBudWxsLFxyXG4gICAgICB0eXBlLFxyXG4gICAgICB3aGVyZVBhcnRUeXBlLFxyXG4gICAgICBmaWx0ZXJDdmxDb25maWcsXHJcbiAgICAgIHByZXZlbnRSZW1vdmFsXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChleHRlcm5hbHRlbXBsYXRlKSBmaWx0ZXIuZXh0ZXJuYWxUZW1wbGF0ZSA9IGV4dGVybmFsdGVtcGxhdGU7XHJcblxyXG4gICAgaWYgKGN1c3RvbVdoZXJlUGFydEZ1bmN0aW9uKSBmaWx0ZXIuY3VzdG9tV2hlcmVQYXJ0RnVuY3Rpb24gPSBjdXN0b21XaGVyZVBhcnRGdW5jdGlvbjtcclxuXHJcbiAgICBpZiAoY2hpbGRFbGVtZW50UHJvcGVydHlOYW1lKSBmaWx0ZXIuY2hpbGRFbGVtZW50UHJvcGVydHlOYW1lID0gY2hpbGRFbGVtZW50UHJvcGVydHlOYW1lO1xyXG5cclxuICAgIGlmIChmaWx0ZXJWYWx1ZSkgZmlsdGVyLnZhbHVlID0gZmlsdGVyVmFsdWU7XHJcblxyXG4gICAgcmV0dXJuIGZpbHRlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIGxhIENWTCBzaSBiYXNhIHN1IHVuIGVudW1lcmF0b3JlIGFsbG9yYSBpbiBxdWVzdGEgcHJvcHJpZXTDoCB2YSBkZWZpbml0byBpbCB0eXBlIGRlbGwnZW51bWVyYXRvcmUgZGEgdXNhcmUuXHJcbiAgICogSW4gcXVlc3RvIG1vZG8gbGEgc29yZ2VudGUgZGF0aSBkZWxsYSBDVkwgc2Fyw6AgbCdpbnNpZW1lIGRlaSB2YWxvcmkgZGVmaW5pdGkgcGVyIGwnZW51bWVyYXRvcmVcclxuICAgKi9cclxuICAvLyBwdWJsaWMgZW51bURhdGE/OiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIGxhIENWTCBzaSBiYXNhIHN1IHVuIGFycmF5IGFsbG9yYSBpbiBxdWVzdGEgcHJvcHJpZXTDoCB2YSBkZWZpbml0byBsJ2FycmF5IGRhIG1vc3RyYXJlIGNvbWUgc29yZ2VudGUgZGF0aSBkZWxsYSBDVkxcclxuICAgKi9cclxuICBwdWJsaWMgYXJyYXlEYXRhPzogYW55O1xyXG5cclxuICAvKipcclxuICAgKiBOZWwgY2FzbyBkaSBBcnJheURhdGEgZGVmaW5pdG8gcGVybWV0dGUgZGkgaW5kaWNhcmUgbGEgcHJvcHJpZXTDoCBkZWdsaSBvZ2dldHRpIGRlbGwnYXJyYXkgZGEgYmluZGFyZSBhbCBmaWx0cm9cclxuICAgKi9cclxuICBwdWJsaWMgYXJyYXlLZXlQcm9wZXJ0eT86IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogTmVsIGNhc28gZGkgQXJyYXlEYXRhIGRlZmluaXRvIHBlcm1ldHRlIGRpIGluZGljYXJlIGxhIHByb3ByaWV0w6AgZGVnbGkgb2dnZXR0aSBkYSB2aXN1YWxpenphcmUgbmVsIGZpbHRyb1xyXG4gICAqL1xyXG4gIHB1YmxpYyBhcnJheVZhbHVlUHJvcGVydHk/OiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIFRSVUUgYWxsb3JhIG1vc3RyYSBpbCBjYW1wbyBkaSByaWNlcmNhIGFsbCdpbnRlcm5vIGRlbGxhIENWTCAoZGVmYXVsdDogVFJVRSlcclxuICAgKi9cclxuICBwdWJsaWMgaXNFbnVtU2VhcmNoYWJsZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2UgVFJVRSBhbGxvcmEgbW9zdHJhIGlsIHB1bHNhbnRlIHBlciBwdWxpcmUgbGEgc2VsZXppb25lIGRlbGxhIENWTCAoZGVmYXVsdDogVFJVRSlcclxuICAgKi9cclxuICBwdWJsaWMgc2hvd0VudW1DYW5jZWxCdXR0b24/OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWV0dGUgZGkgZGVmaW5pcmUgbCdldGljaGV0dGEgcGVyIGlsIGNhbXBvIGRpIHJpY2VyY2EgZGVsbGEgQ1ZMIChkZWZhdWx0OiAnQ2VyY2EnKVxyXG4gICAqL1xyXG4gIHB1YmxpYyBlbnVtU2VhcmNoVGV4dD86IHN0cmluZyA9IFwiQ2VyY2FcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWV0dGUgZGkgZGVmaW5pcmUgbGEgbXVsdGkgc2VsZXppb25lIGRlaSB2YWxvcmkgZGVsbGEgQ1ZMIChkZWZhdWx0OiBmYWxzZSlcclxuICAgKi9cclxuICBwdWJsaWMgaXNFbnVtTXVsdGlTZWxlY3Q/OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIFRSVUUgYWxsb3JhIG1vc3RyYSBpbCBjYW1wbyBkaSByaWNlcmNhIGFsbCdpbnRlcm5vIGRlbGxhIGxvb2t1cCAoZGVmYXVsdDogVFJVRSlcclxuICAgKi9cclxuICBwdWJsaWMgaXNMb29rdXBTZWFyY2hhYmxlPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBTZSBUUlVFIGFsbG9yYSBtb3N0cmEgaWwgcHVsc2FudGUgcGVyIHB1bGlyZSBsYSBzZWxlemlvbmUgZGVsbGEgbG9va3VwIChkZWZhdWx0OiBUUlVFKVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzaG93TG9va3VwQ2FuY2VsQnV0dG9uPzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcm1ldHRlIGRpIGRlZmluaXJlIGwnZXRpY2hldHRhIHBlciBpbCBjYW1wbyBkaSByaWNlcmNhIGRlbGxhIExvb2t1cCAoZGVmYXVsdDogJ0NlcmNhJylcclxuICAgKi9cclxuICBwdWJsaWMgbG9va3VwU2VhcmNoVGV4dD86IHN0cmluZyA9IFwiQ2VyY2FcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWV0dGUgZGkgZGVmaW5pcmUgbGEgbXVsdGkgc2VsZXppb25lIGRlaSB2YWxvcmkgZGVsbGEgbG9va3VwIChkZWZhdWx0OiBmYWxzZSlcclxuICAgKi9cclxuICBwdWJsaWMgaXNMb29rdXBNdWx0aXBsZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWV0dGUgZGkgZGVmaW5pcmUgc2UgbmVsbGEgbG9va3VwIGlsIGJpbmRpbmcgZGV2ZSBjb25zaWRlcmFyZSB0dXR0byBsJ29nZ2V0dG9cclxuICAgKiAoZGVmYXVsdDogdHJ1ZSlcclxuICAgKi9cclxuICBwdWJsaWMgYmluZExvb2t1cEZ1bGxPYmplY3Q/OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWV0dGUgZGkgZGVmaW5pcmUgbCdlbnRpdMOgIGRlbGxhIGxvb2t1cFxyXG4gICAqL1xyXG4gIHB1YmxpYyBsb29rdXBFbnRpdHlUeXBlPzogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWV0dGUgZGkgZGVmaW5pcmUgbCd1cmwgcGVyIGVmZmV0dHVhcmUgbGEgY2hpYW1hdGEgY2hlIHBvcG9sYSBsYSBsb29rdXBcclxuICAgKi9cclxuICBwdWJsaWMgbG9va3VwRnVsbFVybEh0dHBDYWxsPzogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWV0dGUgZGkgZGVmaW5pcmUgKGluIG1hbmllcmEgb3B6aW9uYWxlKSBnbGkgZXZlbnR1YWxpIHByZWRpY2F0aSBzdGFuZGFyZCBkYSBhcHBsaWNhcmUgbmVsIHJlY3VwZXJhcmUgZ2xpIGl0ZW0gcGVyIGxhIGxvb2t1cFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkYXRhRmlsdGVyPzogQXJyYXk8TGlucVByZWRpY2F0ZURUTz4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWV0dGUgZGkgZGVmaW5pcmUgdW4gb2dnZXR0byBjb250ZW5lbnRlIGxhIGZ1bnppb25lIGRpIHZhbGlkYXppb25lIGUgbGEgbGFiZWwgZGVsIHN1Z2dlcmltZW50byBwZXIgdmFsaWRhcmUgaWwgY2FtcG8gZGVsIGZpbHRyb1xyXG4gICAqL1xyXG4gIHB1YmxpYyB2YWxpZGF0aW9uUHJvcGVydGllcz86IFZhbGlkYXRpb25PYmplY3Q7XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVGaWx0ZXJGaWVsZHMoYmFzZUZpZWxkOiBCYXNlRmllbGRNb2RlbCk6IEZpbHRlckZpZWxkO1xyXG4gIHN0YXRpYyBjcmVhdGVGaWx0ZXJGaWVsZHMoYmFzZUZpZWxkczogQmFzZUZpZWxkTW9kZWxbXSk6IEZpbHRlckZpZWxkW107XHJcbiAgc3RhdGljIGNyZWF0ZUZpbHRlckZpZWxkcyhiYXNlRmllbGRzOiBCYXNlRmllbGRNb2RlbCB8IEJhc2VGaWVsZE1vZGVsW10pOiBGaWx0ZXJGaWVsZCB8IEZpbHRlckZpZWxkW10ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYmFzZUZpZWxkcykpIHtcclxuICAgICAgY29uc3QgZmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdID0gW107XHJcbiAgICAgIGJhc2VGaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgICAgZmlsdGVyRmllbGRzLnB1c2godGhpcy5jcmVhdGVGaWx0ZXJGaWVsZChmaWVsZCkpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGZpbHRlckZpZWxkcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZpbHRlckZpZWxkKGJhc2VGaWVsZHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlRmlsdGVyRmllbGQoYmFzZUZpZWxkOiBCYXNlRmllbGRNb2RlbCk6IEZpbHRlckZpZWxkIHtcclxuICAgIGNvbnN0IGZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCA9IG5ldyBGaWx0ZXJGaWVsZCgpO1xyXG4gICAgZmlsdGVyRmllbGQuZmlsdGVySUQgPSBiYXNlRmllbGQua2V5ICsgXCJfSURcIjtcclxuICAgIGZpbHRlckZpZWxkLmtleSA9IGJhc2VGaWVsZC5rZXk7XHJcbiAgICBmaWx0ZXJGaWVsZC5kaXNwbGF5ID0gYmFzZUZpZWxkLmRpc3BsYXk7XHJcbiAgICBmaWx0ZXJGaWVsZC52YWx1ZSA9IGJhc2VGaWVsZC52YWx1ZTtcclxuICAgIGZpbHRlckZpZWxkLmVudW1Nb2RlbCA9IGJhc2VGaWVsZC5lbnVtTW9kZWw7XHJcbiAgICBmaWx0ZXJGaWVsZC5pbnB1dFR5cGUgPSBCYXNlVHlwZUNvbnZlcnRlckZpbHRlci5jb252ZXJ0VG9JbnB1dFR5cGUoYmFzZUZpZWxkLmJhc2VUeXBlKTtcclxuICAgIGZpbHRlckZpZWxkLndoZXJlUGFydFR5cGUgPSBXaGVyZVBhcnRUeXBlLkVxdWFsO1xyXG4gICAgZmlsdGVyRmllbGQuYmFzZVR5cGUgPSBudWxsO1xyXG5cclxuICAgIHJldHVybiBmaWx0ZXJGaWVsZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlRmlsdGVyQ29uZmlncyhmaWx0ZXJGaWVsZDogRmlsdGVyRmllbGQpOiBGaWx0ZXJDb25maWc7XHJcbiAgcHVibGljIHN0YXRpYyBjcmVhdGVGaWx0ZXJDb25maWdzKGZpbHRlckZpZWxkczogRmlsdGVyRmllbGRbXSk6IEZpbHRlckNvbmZpZ1tdO1xyXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlRmlsdGVyQ29uZmlncyhmaWx0ZXJGaWVsZHM6IEZpbHRlckZpZWxkIHwgRmlsdGVyRmllbGRbXSk6IEZpbHRlckNvbmZpZyB8IEZpbHRlckNvbmZpZ1tdIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlckZpZWxkcykpIHtcclxuICAgICAgY29uc3QgZmlsdGVyQ29uZmlnczogRmlsdGVyQ29uZmlnW10gPSBbXTtcclxuICAgICAgZmlsdGVyRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICAgIGZpbHRlckNvbmZpZ3MucHVzaCh0aGlzLmNyZWF0ZUZpbHRlckNvbmZpZyhmaWVsZCkpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGZpbHRlckNvbmZpZ3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVGaWx0ZXJDb25maWcoZmlsdGVyRmllbGRzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUZpbHRlckNvbmZpZyhmaWx0ZXJGaWVsZDogRmlsdGVyRmllbGQpOiBGaWx0ZXJDb25maWcge1xyXG4gICAgY29uc3QgZmlsdGVyQ29uZmlnOiBGaWx0ZXJDb25maWcgPSBuZXcgRmlsdGVyQ29uZmlnKCk7XHJcblxyXG4gICAgZmlsdGVyQ29uZmlnLkZpbHRlcklEID0gZmlsdGVyRmllbGQuZmlsdGVySUQgPz8gKGZpbHRlckZpZWxkLmtleSArIFwiX0lEXCIpO1xyXG4gICAgZmlsdGVyQ29uZmlnLlByb3BlcnR5TmFtZSA9IGZpbHRlckZpZWxkLmtleTtcclxuICAgIGZpbHRlckNvbmZpZy5MYWJlbCA9IGZpbHRlckZpZWxkLmRpc3BsYXk7XHJcbiAgICBmaWx0ZXJDb25maWcuUHJvcGVydHlPYmplY3QgPSBmaWx0ZXJGaWVsZC52YWx1ZTtcclxuICAgIGZpbHRlckNvbmZpZy5FbnVtRGF0YSA9IGZpbHRlckZpZWxkLmVudW1Nb2RlbDtcclxuICAgIGZpbHRlckNvbmZpZy5FeHRlcm5hbHRlbXBsYXRlID0gZmlsdGVyRmllbGQuZXh0ZXJuYWxUZW1wbGF0ZTtcclxuICAgIGZpbHRlckNvbmZpZy5BcnJheURhdGEgPSBmaWx0ZXJGaWVsZC5hcnJheURhdGE7XHJcbiAgICBmaWx0ZXJDb25maWcuQXJyYXlLZXlQcm9wZXJ0eSA9IGZpbHRlckZpZWxkLmFycmF5S2V5UHJvcGVydHk7XHJcbiAgICBmaWx0ZXJDb25maWcuQXJyYXlWYWx1ZVByb3BlcnR5ID0gZmlsdGVyRmllbGQuYXJyYXlWYWx1ZVByb3BlcnR5O1xyXG4gICAgZmlsdGVyQ29uZmlnLkJpbmRMb29rdXBGdWxsT2JqZWN0ID0gZmlsdGVyRmllbGQuYmluZExvb2t1cEZ1bGxPYmplY3Q7XHJcbiAgICBmaWx0ZXJDb25maWcuQ2hpbGRFbGVtZW50UHJvcGVydHlOYW1lID0gZmlsdGVyRmllbGQuY2hpbGRFbGVtZW50UHJvcGVydHlOYW1lO1xyXG4gICAgZmlsdGVyQ29uZmlnLkN1c3RvbUFwcGxpZWRGaWx0ZXJJbmZvRnVuY3Rpb24gPSBmaWx0ZXJGaWVsZC5jdXN0b21BcHBsaWVkRmlsdGVySW5mb0Z1bmN0aW9uO1xyXG4gICAgZmlsdGVyQ29uZmlnLkN1c3RvbUZpbHRlckNsYXNzZXMgPSBmaWx0ZXJGaWVsZC5jdXN0b21GaWVsZFNpemVDbGFzc2VzO1xyXG4gICAgZmlsdGVyQ29uZmlnLkN1c3RvbVdoZXJlUGFydEZ1bmN0aW9uID0gZmlsdGVyRmllbGQuY3VzdG9tV2hlcmVQYXJ0RnVuY3Rpb247XHJcbiAgICBmaWx0ZXJDb25maWcuQ3ZsQ29uZmlnID0gZmlsdGVyRmllbGQuY3ZsQ29uZmlnO1xyXG4gICAgZmlsdGVyQ29uZmlnLkVudW1TZWFyY2hUZXh0ID0gZmlsdGVyRmllbGQuZW51bVNlYXJjaFRleHQ7XHJcbiAgICBmaWx0ZXJDb25maWcuRmlsdGVyQ2xhc3MgPSBmaWx0ZXJGaWVsZC5maWVsZFNpemVDbGFzcyBhcyB1bmtub3duIGFzIEZpbHRlclNpemVDbGFzcztcclxuICAgIGZpbHRlckNvbmZpZy5Jc0VudW1NdWx0aVNlbGVjdCA9IGZpbHRlckZpZWxkLmlzRW51bU11bHRpU2VsZWN0O1xyXG4gICAgZmlsdGVyQ29uZmlnLklzRW51bVNlYXJjaGFibGUgPSBmaWx0ZXJGaWVsZC5pc0VudW1TZWFyY2hhYmxlO1xyXG4gICAgZmlsdGVyQ29uZmlnLklzTG9va3VwTXVsdGlwbGUgPSBmaWx0ZXJGaWVsZC5pc0xvb2t1cE11bHRpcGxlO1xyXG4gICAgZmlsdGVyQ29uZmlnLkxvb2t1cEVudGl0eVR5cGUgPSBmaWx0ZXJGaWVsZC5sb29rdXBFbnRpdHlUeXBlO1xyXG4gICAgZmlsdGVyQ29uZmlnLkxvb2t1cEZ1bGxVcmxIdHRwQ2FsbCA9IGZpbHRlckZpZWxkLmxvb2t1cEVudGl0eVR5cGU7XHJcbiAgICBmaWx0ZXJDb25maWcuTG9va3VwU2VhcmNoVGV4dCA9IGZpbHRlckZpZWxkLmxvb2t1cFNlYXJjaFRleHQ7XHJcbiAgICBmaWx0ZXJDb25maWcuRGF0YUZpbHRlciA9IGZpbHRlckZpZWxkLmRhdGFGaWx0ZXI7XHJcbiAgICBmaWx0ZXJDb25maWcuUHJldmVudFJlbW92YWwgPSBmaWx0ZXJGaWVsZC5wcmV2ZW50UmVtb3ZhbDtcclxuICAgIGZpbHRlckNvbmZpZy5TaG93RW51bUNhbmNlbEJ1dHRvbiA9IGZpbHRlckZpZWxkLnNob3dFbnVtQ2FuY2VsQnV0dG9uO1xyXG4gICAgZmlsdGVyQ29uZmlnLlNob3dMb29rdXBDYW5jZWxCdXR0b24gPSBmaWx0ZXJGaWVsZC5zaG93TG9va3VwQ2FuY2VsQnV0dG9uO1xyXG4gICAgZmlsdGVyQ29uZmlnLlZhbGlkYXRpb25Qcm9wZXJ0aWVzID0gZmlsdGVyRmllbGQudmFsaWRhdGlvblByb3BlcnRpZXM7XHJcbiAgICBmaWx0ZXJDb25maWcuSW5wdXRUeXBlID0gZmlsdGVyRmllbGQuaW5wdXRUeXBlID8/IElucHV0VHlwZS5UZXh0O1xyXG4gICAgZmlsdGVyQ29uZmlnLldoZXJlUGFydFR5cGUgPSBmaWx0ZXJGaWVsZC53aGVyZVBhcnRUeXBlID8/IFdoZXJlUGFydFR5cGUuRXF1YWw7XHJcblxyXG4gICAgcmV0dXJuIGZpbHRlckNvbmZpZztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlVHlwZUNvbnZlcnRlckZpbHRlciB7XHJcbiAgc3RhdGljIGNvbnZlcnRUb0lucHV0VHlwZShiYXNlVHlwZTogQmFzZVR5cGUpOiBJbnB1dFR5cGUgfCB1bmRlZmluZWQge1xyXG4gICAgc3dpdGNoIChiYXNlVHlwZSkge1xyXG4gICAgICBjYXNlIEJhc2VUeXBlLlRleHQ6XHJcbiAgICAgICAgcmV0dXJuIElucHV0VHlwZS5UZXh0O1xyXG4gICAgICBjYXNlIEJhc2VUeXBlLk51bWJlcjpcclxuICAgICAgICByZXR1cm4gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgY2FzZSBCYXNlVHlwZS5EYXRlOlxyXG4gICAgICAgIHJldHVybiBJbnB1dFR5cGUuRGF0ZTtcclxuICAgICAgY2FzZSBCYXNlVHlwZS5FbnVtOlxyXG4gICAgICAgIHJldHVybiBJbnB1dFR5cGUuQ3ZsRW51bTtcclxuICAgICAgY2FzZSBCYXNlVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgIHJldHVybiBJbnB1dFR5cGUuQm9vbGVhbjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { FieldSizeClass } from "./common-enum.model";
|
|
2
|
+
import { BaseFieldModel, BaseType } from "./base-field.model";
|
|
3
|
+
export class FormField extends BaseFieldModel {
|
|
4
|
+
required = false;
|
|
5
|
+
showInForm = true;
|
|
6
|
+
booleanLabelPosition = BoolLabelPosition.After;
|
|
7
|
+
formFieldType;
|
|
8
|
+
lookupObject;
|
|
9
|
+
selectObject;
|
|
10
|
+
validationProperties;
|
|
11
|
+
placeholder;
|
|
12
|
+
externalTemplate;
|
|
13
|
+
fieldSizeClass = FieldSizeClass.SMALL;
|
|
14
|
+
customFieldSizeClasses;
|
|
15
|
+
dependentFieldKey;
|
|
16
|
+
orderPosition;
|
|
17
|
+
dependentValidation;
|
|
18
|
+
static createFormFields(baseFields) {
|
|
19
|
+
if (Array.isArray(baseFields)) {
|
|
20
|
+
const formFields = [];
|
|
21
|
+
baseFields.forEach(field => {
|
|
22
|
+
formFields.push(this.createFormField(field));
|
|
23
|
+
});
|
|
24
|
+
return formFields;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return this.createFormField(baseFields);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
static createFormField(baseField) {
|
|
31
|
+
const formField = new FormField();
|
|
32
|
+
formField.key = baseField.key;
|
|
33
|
+
formField.display = baseField.display;
|
|
34
|
+
formField.value = baseField.value;
|
|
35
|
+
formField.enumModel = baseField.enumModel;
|
|
36
|
+
formField.formFieldType = BaseTypeConverter.convertToFormFieldType(baseField.baseType);
|
|
37
|
+
formField.baseType = null;
|
|
38
|
+
return formField;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export var FormFieldType;
|
|
42
|
+
(function (FormFieldType) {
|
|
43
|
+
FormFieldType[FormFieldType["Text"] = 1] = "Text";
|
|
44
|
+
FormFieldType[FormFieldType["Number"] = 2] = "Number";
|
|
45
|
+
FormFieldType[FormFieldType["Date"] = 3] = "Date";
|
|
46
|
+
FormFieldType[FormFieldType["Enum"] = 4] = "Enum";
|
|
47
|
+
FormFieldType[FormFieldType["Boolean"] = 5] = "Boolean";
|
|
48
|
+
FormFieldType[FormFieldType["ExternalTemplate"] = 6] = "ExternalTemplate";
|
|
49
|
+
FormFieldType[FormFieldType["Cvl"] = 7] = "Cvl";
|
|
50
|
+
FormFieldType[FormFieldType["Lookup"] = 8] = "Lookup";
|
|
51
|
+
FormFieldType[FormFieldType["DateTime"] = 9] = "DateTime";
|
|
52
|
+
FormFieldType[FormFieldType["DateRange"] = 10] = "DateRange";
|
|
53
|
+
})(FormFieldType || (FormFieldType = {}));
|
|
54
|
+
export var BoolLabelPosition;
|
|
55
|
+
(function (BoolLabelPosition) {
|
|
56
|
+
BoolLabelPosition["Before"] = "before";
|
|
57
|
+
BoolLabelPosition["After"] = "after";
|
|
58
|
+
})(BoolLabelPosition || (BoolLabelPosition = {}));
|
|
59
|
+
export class LookupObject {
|
|
60
|
+
fullUrlHttpCall;
|
|
61
|
+
lookupEntityType;
|
|
62
|
+
showLookupCancelButton = true;
|
|
63
|
+
isLookupSearchable = false;
|
|
64
|
+
isLookupMultiple = false;
|
|
65
|
+
placeholder;
|
|
66
|
+
bindLabel = "Label";
|
|
67
|
+
bindKey = "ID";
|
|
68
|
+
items;
|
|
69
|
+
notFoundText = "Nessun risultato trovato";
|
|
70
|
+
genericAddComponent;
|
|
71
|
+
isMultiple = false;
|
|
72
|
+
isSearchable = true;
|
|
73
|
+
isClearable = true;
|
|
74
|
+
isVirtualScroll = false;
|
|
75
|
+
isReadonly = false;
|
|
76
|
+
isRequired = false;
|
|
77
|
+
isDisabled = false;
|
|
78
|
+
entityType;
|
|
79
|
+
formGroupInput;
|
|
80
|
+
formControlNameInput;
|
|
81
|
+
ngModelInput;
|
|
82
|
+
isSearchWhileComposing = false;
|
|
83
|
+
bindCompleteObject = true;
|
|
84
|
+
appendToInput;
|
|
85
|
+
disableReloadOnLookupAddingCompleteParent = false;
|
|
86
|
+
showOptionTooltip = false;
|
|
87
|
+
sortList = false;
|
|
88
|
+
dataFilter;
|
|
89
|
+
customConfig;
|
|
90
|
+
complexDataFilter;
|
|
91
|
+
initialItems;
|
|
92
|
+
ngModelOptions = null;
|
|
93
|
+
isEditable = false;
|
|
94
|
+
isMultiline = false;
|
|
95
|
+
dropdownPosition = "auto";
|
|
96
|
+
selectOnTab = false;
|
|
97
|
+
addButtonText = "Crea nuovo";
|
|
98
|
+
editButtonText = "Modifica";
|
|
99
|
+
selectAll = false;
|
|
100
|
+
selectAllText = "Seleziona tutto";
|
|
101
|
+
groupBy = "";
|
|
102
|
+
groupValue = () => true;
|
|
103
|
+
groupByProperty;
|
|
104
|
+
selectableGroup = false;
|
|
105
|
+
selectableGroupAsModel = false;
|
|
106
|
+
clearAllText = "Elimina";
|
|
107
|
+
customOption;
|
|
108
|
+
customLabel;
|
|
109
|
+
manipulateDataFn;
|
|
110
|
+
compareFunction = (iteratedObject, bindedObject) => {
|
|
111
|
+
if (iteratedObject == null || bindedObject == null)
|
|
112
|
+
return true;
|
|
113
|
+
const iteratedKeyProperty = iteratedObject.Key != null ? "Key" : this.bindKey;
|
|
114
|
+
const bindedKeyProperty = bindedObject?.Key != null ? "Key" : this.bindKey;
|
|
115
|
+
return iteratedObject[iteratedKeyProperty] === bindedObject ||
|
|
116
|
+
iteratedObject[iteratedKeyProperty] === bindedObject[bindedKeyProperty];
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export class SelectObject {
|
|
120
|
+
isEnumMultiSelect;
|
|
121
|
+
showEnumCancelButton;
|
|
122
|
+
isEnumSearchable;
|
|
123
|
+
enumSearchText;
|
|
124
|
+
arrayData;
|
|
125
|
+
arrayKeyProperty;
|
|
126
|
+
arrayValueProperty;
|
|
127
|
+
enumData;
|
|
128
|
+
enumDataToExclude;
|
|
129
|
+
ngModelOptions;
|
|
130
|
+
ngModelInput;
|
|
131
|
+
isRequired;
|
|
132
|
+
isMultiLanguage;
|
|
133
|
+
multilanguagePrefixKey;
|
|
134
|
+
isAlphabeticalOrderable;
|
|
135
|
+
suffixIcon;
|
|
136
|
+
prefixIcon;
|
|
137
|
+
isReadonly;
|
|
138
|
+
isSearchWhileComposing;
|
|
139
|
+
appendToInput;
|
|
140
|
+
dropdownPosition;
|
|
141
|
+
selectOnTab;
|
|
142
|
+
selectAll;
|
|
143
|
+
selectAllText;
|
|
144
|
+
selectableGroupAsModel;
|
|
145
|
+
clearAllText;
|
|
146
|
+
customOption;
|
|
147
|
+
customLabel;
|
|
148
|
+
class;
|
|
149
|
+
}
|
|
150
|
+
export class BaseTypeConverter {
|
|
151
|
+
static convertToFormFieldType(baseType) {
|
|
152
|
+
switch (baseType) {
|
|
153
|
+
case BaseType.Text:
|
|
154
|
+
return FormFieldType.Text;
|
|
155
|
+
case BaseType.Number:
|
|
156
|
+
return FormFieldType.Number;
|
|
157
|
+
case BaseType.Date:
|
|
158
|
+
return FormFieldType.Date;
|
|
159
|
+
case BaseType.Enum:
|
|
160
|
+
return FormFieldType.Enum;
|
|
161
|
+
case BaseType.Boolean:
|
|
162
|
+
return FormFieldType.Boolean;
|
|
163
|
+
default:
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1hdHRhY2htZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvZXFwLWNvbW1vbi9tb2RlbHMvZm9ybS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU05RCxNQUFNLE9BQU8sU0FBVSxTQUFRLGNBQWM7SUFDM0MsUUFBUSxHQUFhLEtBQUssQ0FBQztJQUMzQixVQUFVLEdBQWEsSUFBSSxDQUFDO0lBQzVCLG9CQUFvQixHQUF1QixpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDbkUsYUFBYSxDQUFpQjtJQUM5QixZQUFZLENBQWdCO0lBQzVCLFlBQVksQ0FBZ0I7SUFDNUIsb0JBQW9CLENBQW9CO0lBQ3hDLFdBQVcsQ0FBVTtJQUNyQixnQkFBZ0IsQ0FBb0I7SUFDcEMsY0FBYyxHQUFvQixjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3ZELHNCQUFzQixDQUFVO0lBQ2hDLGlCQUFpQixDQUFVO0lBQzNCLGFBQWEsQ0FBVTtJQUN2QixtQkFBbUIsQ0FBMkI7SUFJOUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQTZDO1FBQ25FLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM3QixNQUFNLFVBQVUsR0FBZ0IsRUFBRSxDQUFDO1lBQ25DLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxVQUFVLENBQUM7U0FDbkI7YUFBTTtZQUNMLE9BQU8s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QixzQkFBc0IsQ0FBVTtJQUNoQyx1QkFBdUIsQ0FBVztJQUNsQyxVQUFVLENBQVU7SUFDcEIsVUFBVSxDQUFVO0lBQ3BCLFVBQVUsQ0FBVztJQUNyQixzQkFBc0IsQ0FBVztJQUNqQyxhQUFhLENBQXNCO0lBQ25DLGdCQUFnQixDQUE2QjtJQUM3QyxXQUFXLENBQVc7SUFDdEIsU0FBUyxDQUFXO0lBQ3BCLGFBQWEsQ0FBVTtJQUN2QixzQkFBc0IsQ0FBVztJQUNqQyxZQUFZLENBQVU7SUFDdEIsWUFBWSxDQUFvQjtJQUNoQyxXQUFXLENBQW9CO0lBQy9CLEtBQUssQ0FBVTtDQUNoQjtBQUdELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFFBQWtCO1FBQzlDLFFBQVEsUUFBUSxFQUFFO1lBQ2hCLEtBQUssUUFBUSxDQUFDLElBQUk7Z0JBQ2hCLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQztZQUM1QixLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUNsQixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDOUIsS0FBSyxRQUFRLENBQUMsSUFBSTtnQkFDaEIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQzVCLEtBQUssUUFBUSxDQUFDLElBQUk7Z0JBQ2hCLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQztZQUM1QixLQUFLLFFBQVEsQ0FBQyxPQUFPO2dCQUNuQixPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDL0I7Z0JBQ0UsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZpZWxkU2l6ZUNsYXNzIH0gZnJvbSBcIi4vY29tbW9uLWVudW0ubW9kZWxcIjtcclxuaW1wb3J0IHsgQmFzZUZpZWxkTW9kZWwsIEJhc2VUeXBlIH0gZnJvbSBcIi4vYmFzZS1maWVsZC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uT2JqZWN0IH0gZnJvbSBcIi4vZmlsdGVyQ29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IENvbXBsZXhMaW5xUHJlZGljYXRlRFRPLCBMaW5xUHJlZGljYXRlRFRPLCBMb29rdXBDdXN0b21Db25maWcsIExvb2t1cERUTyB9IGZyb20gXCIuL2xpbnFGaWx0ZXJSZXN1bHQubW9kZWxcIjtcclxuaW1wb3J0IHsgRHJvcGRvd25Qb3NpdGlvbiB9IGZyb20gXCJAbmctc2VsZWN0L25nLXNlbGVjdFwiO1xyXG5pbXBvcnQgeyBEeW5hbWljTG9hZGVyRGlyZWN0aXZlRGF0YSB9IGZyb20gXCIuLi9keW5hbWljLWxvYWRlci9keW5hbWljLWxvYWRlci5kaXJlY3RpdmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGQgZXh0ZW5kcyBCYXNlRmllbGRNb2RlbCB7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0luRm9ybT86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGJvb2xlYW5MYWJlbFBvc2l0aW9uPzogQm9vbExhYmVsUG9zaXRpb24gPSBCb29sTGFiZWxQb3NpdGlvbi5BZnRlcjtcclxuICBmb3JtRmllbGRUeXBlPzogRm9ybUZpZWxkVHlwZTtcclxuICBsb29rdXBPYmplY3Q/OiBMb29rdXBPYmplY3Q7XHJcbiAgc2VsZWN0T2JqZWN0PzogU2VsZWN0T2JqZWN0O1xyXG4gIHZhbGlkYXRpb25Qcm9wZXJ0aWVzPzogVmFsaWRhdGlvbk9iamVjdDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBleHRlcm5hbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBmaWVsZFNpemVDbGFzcz86IEZpZWxkU2l6ZUNsYXNzID0gRmllbGRTaXplQ2xhc3MuU01BTEw7XHJcbiAgY3VzdG9tRmllbGRTaXplQ2xhc3Nlcz86IHN0cmluZztcclxuICBkZXBlbmRlbnRGaWVsZEtleT86IHN0cmluZztcclxuICBvcmRlclBvc2l0aW9uPzogbnVtYmVyO1xyXG4gIGRlcGVuZGVudFZhbGlkYXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuXHJcbiAgc3RhdGljIGNyZWF0ZUZvcm1GaWVsZHMoYmFzZUZpZWxkOiBCYXNlRmllbGRNb2RlbCk6IEZvcm1GaWVsZDtcclxuICBzdGF0aWMgY3JlYXRlRm9ybUZpZWxkcyhiYXNlRmllbGRzOiBCYXNlRmllbGRNb2RlbFtdKTogRm9ybUZpZWxkW107XHJcbiAgc3RhdGljIGNyZWF0ZUZvcm1GaWVsZHMoYmFzZUZpZWxkczogQmFzZUZpZWxkTW9kZWwgfCBCYXNlRmllbGRNb2RlbFtdKTogRm9ybUZpZWxkIHwgRm9ybUZpZWxkW10ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYmFzZUZpZWxkcykpIHtcclxuICAgICAgY29uc3QgZm9ybUZpZWxkczogRm9ybUZpZWxkW10gPSBbXTtcclxuICAgICAgYmFzZUZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgICBmb3JtRmllbGRzLnB1c2godGhpcy5jcmVhdGVGb3JtRmllbGQoZmllbGQpKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBmb3JtRmllbGRzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRm9ybUZpZWxkKGJhc2VGaWVsZHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlRm9ybUZpZWxkKGJhc2VGaWVsZDogQmFzZUZpZWxkTW9kZWwpOiBGb3JtRmllbGQge1xyXG4gICAgY29uc3QgZm9ybUZpZWxkOiBGb3JtRmllbGQgPSBuZXcgRm9ybUZpZWxkKCk7XHJcbiAgICBmb3JtRmllbGQua2V5ID0gYmFzZUZpZWxkLmtleTtcclxuICAgIGZvcm1GaWVsZC5kaXNwbGF5ID0gYmFzZUZpZWxkLmRpc3BsYXk7XHJcbiAgICBmb3JtRmllbGQudmFsdWUgPSBiYXNlRmllbGQudmFsdWU7XHJcbiAgICBmb3JtRmllbGQuZW51bU1vZGVsID0gYmFzZUZpZWxkLmVudW1Nb2RlbDtcclxuICAgIGZvcm1GaWVsZC5mb3JtRmllbGRUeXBlID0gQmFzZVR5cGVDb252ZXJ0ZXIuY29udmVydFRvRm9ybUZpZWxkVHlwZShiYXNlRmllbGQuYmFzZVR5cGUpO1xyXG4gICAgZm9ybUZpZWxkLmJhc2VUeXBlID0gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gZm9ybUZpZWxkO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gRm9ybUZpZWxkVHlwZSB7XHJcbiAgVGV4dCA9IDEsXHJcbiAgTnVtYmVyID0gMixcclxuICBEYXRlID0gMyxcclxuICBFbnVtID0gNCxcclxuICBCb29sZWFuID0gNSxcclxuICBFeHRlcm5hbFRlbXBsYXRlID0gNixcclxuICBDdmwgPSA3LFxyXG4gIExvb2t1cCA9IDgsXHJcbiAgRGF0ZVRpbWUgPSA5LFxyXG4gIERhdGVSYW5nZSA9IDEwXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEJvb2xMYWJlbFBvc2l0aW9uIHtcclxuICBCZWZvcmUgPSAnYmVmb3JlJyxcclxuICBBZnRlciA9ICdhZnRlcidcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExvb2t1cE9iamVjdCB7XHJcbiAgZnVsbFVybEh0dHBDYWxsOiBzdHJpbmc7XHJcbiAgbG9va3VwRW50aXR5VHlwZTogc3RyaW5nO1xyXG4gIHNob3dMb29rdXBDYW5jZWxCdXR0b24/OiBib29sZWFuID0gdHJ1ZTtcclxuICBpc0xvb2t1cFNlYXJjaGFibGU/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNMb29rdXBNdWx0aXBsZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBiaW5kTGFiZWw/OiBzdHJpbmcgPSBcIkxhYmVsXCI7XHJcbiAgYmluZEtleT86IHN0cmluZyA9IFwiSURcIjtcclxuICBpdGVtcz86IEFycmF5PGFueT4gfCBudWxsO1xyXG4gIG5vdEZvdW5kVGV4dD86IHN0cmluZyA9IFwiTmVzc3VuIHJpc3VsdGF0byB0cm92YXRvXCI7XHJcbiAgZ2VuZXJpY0FkZENvbXBvbmVudD86IER5bmFtaWNMb2FkZXJEaXJlY3RpdmVEYXRhO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTZWFyY2hhYmxlPzogYm9vbGVhbiA9IHRydWU7XHJcbiAgaXNDbGVhcmFibGU/OiBib29sZWFuID0gdHJ1ZTtcclxuICBpc1ZpcnR1YWxTY3JvbGw/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1JlcXVpcmVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZW50aXR5VHlwZT86IHN0cmluZztcclxuICBmb3JtR3JvdXBJbnB1dD86IGFueTtcclxuICBmb3JtQ29udHJvbE5hbWVJbnB1dD86IGFueTtcclxuICBuZ01vZGVsSW5wdXQ/OiBhbnk7XHJcbiAgaXNTZWFyY2hXaGlsZUNvbXBvc2luZz86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBiaW5kQ29tcGxldGVPYmplY3Q/OiBib29sZWFuID0gdHJ1ZTtcclxuICBhcHBlbmRUb0lucHV0Pzogc3RyaW5nO1xyXG4gIGRpc2FibGVSZWxvYWRPbkxvb2t1cEFkZGluZ0NvbXBsZXRlUGFyZW50PzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dPcHRpb25Ub29sdGlwPzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNvcnRMaXN0PzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGFGaWx0ZXI/OiBBcnJheTxMaW5xUHJlZGljYXRlRFRPPiB8IG51bGw7XHJcbiAgY3VzdG9tQ29uZmlnPzogTG9va3VwQ3VzdG9tQ29uZmlnIHwgbnVsbDtcclxuICBjb21wbGV4RGF0YUZpbHRlcj86IEFycmF5PENvbXBsZXhMaW5xUHJlZGljYXRlRFRPPiB8IG51bGw7XHJcbiAgaW5pdGlhbEl0ZW1zPzogQXJyYXk8YW55PiB8IG51bGw7XHJcbiAgbmdNb2RlbE9wdGlvbnM/OiBhbnkgPSBudWxsO1xyXG4gIGlzRWRpdGFibGU/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNNdWx0aWxpbmU/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25Qb3NpdGlvbj86IERyb3Bkb3duUG9zaXRpb24gPSBcImF1dG9cIjtcclxuICBzZWxlY3RPblRhYj86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhZGRCdXR0b25UZXh0Pzogc3RyaW5nID0gXCJDcmVhIG51b3ZvXCI7XHJcbiAgZWRpdEJ1dHRvblRleHQ/OiBzdHJpbmcgPSBcIk1vZGlmaWNhXCI7XHJcbiAgc2VsZWN0QWxsPzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdEFsbFRleHQ/OiBzdHJpbmcgPSBcIlNlbGV6aW9uYSB0dXR0b1wiO1xyXG4gIGdyb3VwQnk/OiBzdHJpbmcgfCAoKHZhbHVlOiBhbnkpID0+IGFueSkgPSBcIlwiO1xyXG4gIGdyb3VwVmFsdWU/OiAoZ3JvdXBLZXk6IHN0cmluZywgY2hpbGRyZW46IGFueVtdKSA9PiBPYmplY3QgPSAoKSA9PiB0cnVlO1xyXG4gIGdyb3VwQnlQcm9wZXJ0eT86IHN0cmluZztcclxuICBzZWxlY3RhYmxlR3JvdXA/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0YWJsZUdyb3VwQXNNb2RlbD86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjbGVhckFsbFRleHQ/OiBzdHJpbmcgPSBcIkVsaW1pbmFcIjtcclxuICBjdXN0b21PcHRpb24/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGN1c3RvbUxhYmVsPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBtYW5pcHVsYXRlRGF0YUZuPzogKChpdGVtczogYW55KSA9PiBMb29rdXBEVE9bXSkgfCB1bmRlZmluZWQ7XHJcbiAgY29tcGFyZUZ1bmN0aW9uPzogKGl0ZXJhdGVkT2JqZWN0OiBhbnksIGJpbmRlZE9iamVjdDogYW55KSA9PiBib29sZWFuID0gKGl0ZXJhdGVkT2JqZWN0LCBiaW5kZWRPYmplY3QpID0+IHtcclxuICAgIGlmIChpdGVyYXRlZE9iamVjdCA9PSBudWxsIHx8IGJpbmRlZE9iamVjdCA9PSBudWxsKSByZXR1cm4gdHJ1ZTtcclxuICAgIGNvbnN0IGl0ZXJhdGVkS2V5UHJvcGVydHkgPSBpdGVyYXRlZE9iamVjdC5LZXkgIT0gbnVsbCA/IFwiS2V5XCIgOiB0aGlzLmJpbmRLZXk7XHJcbiAgICBjb25zdCBiaW5kZWRLZXlQcm9wZXJ0eSA9IGJpbmRlZE9iamVjdD8uS2V5ICE9IG51bGwgPyBcIktleVwiIDogdGhpcy5iaW5kS2V5O1xyXG4gICAgcmV0dXJuIGl0ZXJhdGVkT2JqZWN0W2l0ZXJhdGVkS2V5UHJvcGVydHldID09PSBiaW5kZWRPYmplY3QgfHxcclxuICAgICAgaXRlcmF0ZWRPYmplY3RbaXRlcmF0ZWRLZXlQcm9wZXJ0eV0gPT09IGJpbmRlZE9iamVjdFtiaW5kZWRLZXlQcm9wZXJ0eV07XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdE9iamVjdCB7XHJcbiAgaXNFbnVtTXVsdGlTZWxlY3Q/OiBib29sZWFuO1xyXG4gIHNob3dFbnVtQ2FuY2VsQnV0dG9uPzogYm9vbGVhbjtcclxuICBpc0VudW1TZWFyY2hhYmxlPzogYm9vbGVhbjtcclxuICBlbnVtU2VhcmNoVGV4dD86IHN0cmluZztcclxuICBhcnJheURhdGE/OiBhbnk7XHJcbiAgYXJyYXlLZXlQcm9wZXJ0eT86IHN0cmluZztcclxuICBhcnJheVZhbHVlUHJvcGVydHk/OiBzdHJpbmc7XHJcbiAgZW51bURhdGE/OiBhbnk7XHJcbiAgZW51bURhdGFUb0V4Y2x1ZGU/OiBBcnJheTxhbnk+O1xyXG4gIG5nTW9kZWxPcHRpb25zPzogYW55O1xyXG4gIG5nTW9kZWxJbnB1dD86IGFueTtcclxuICBpc1JlcXVpcmVkPzogYm9vbGVhbjtcclxuICBpc011bHRpTGFuZ3VhZ2U/OiBib29sZWFuO1xyXG4gIG11bHRpbGFuZ3VhZ2VQcmVmaXhLZXk/OiBzdHJpbmc7XHJcbiAgaXNBbHBoYWJldGljYWxPcmRlcmFibGU/OiBib29sZWFuO1xyXG4gIHN1ZmZpeEljb24/OiBzdHJpbmc7XHJcbiAgcHJlZml4SWNvbj86IHN0cmluZztcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICBpc1NlYXJjaFdoaWxlQ29tcG9zaW5nPzogYm9vbGVhbjtcclxuICBhcHBlbmRUb0lucHV0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGRyb3Bkb3duUG9zaXRpb24/OiBcImJvdHRvbVwiIHwgXCJ0b3BcIiB8IFwiYXV0b1wiO1xyXG4gIHNlbGVjdE9uVGFiPzogYm9vbGVhbjtcclxuICBzZWxlY3RBbGw/OiBib29sZWFuO1xyXG4gIHNlbGVjdEFsbFRleHQ/OiBzdHJpbmc7XHJcbiAgc2VsZWN0YWJsZUdyb3VwQXNNb2RlbD86IGJvb2xlYW47XHJcbiAgY2xlYXJBbGxUZXh0Pzogc3RyaW5nO1xyXG4gIGN1c3RvbU9wdGlvbj86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgY3VzdG9tTGFiZWw/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGNsYXNzPzogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VUeXBlQ29udmVydGVyIHtcclxuICBzdGF0aWMgY29udmVydFRvRm9ybUZpZWxkVHlwZShiYXNlVHlwZTogQmFzZVR5cGUpOiBGb3JtRmllbGRUeXBlIHwgdW5kZWZpbmVkIHtcclxuICAgIHN3aXRjaCAoYmFzZVR5cGUpIHtcclxuICAgICAgY2FzZSBCYXNlVHlwZS5UZXh0OlxyXG4gICAgICAgIHJldHVybiBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgIGNhc2UgQmFzZVR5cGUuTnVtYmVyOlxyXG4gICAgICAgIHJldHVybiBGb3JtRmllbGRUeXBlLk51bWJlcjtcclxuICAgICAgY2FzZSBCYXNlVHlwZS5EYXRlOlxyXG4gICAgICAgIHJldHVybiBGb3JtRmllbGRUeXBlLkRhdGU7XHJcbiAgICAgIGNhc2UgQmFzZVR5cGUuRW51bTpcclxuICAgICAgICByZXR1cm4gRm9ybUZpZWxkVHlwZS5FbnVtO1xyXG4gICAgICBjYXNlIEJhc2VUeXBlLkJvb2xlYW46XHJcbiAgICAgICAgcmV0dXJuIEZvcm1GaWVsZFR5cGUuQm9vbGVhbjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuIl19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classe utilizzata per la definizione di filtri avanzati.
|
|
3
|
+
* Si basa sul concetto del LinqPredicate documentato nella guida EqProject.
|
|
4
|
+
*
|
|
5
|
+
* Ciascun oggetto LinqPredicateDTO può contenenere la definizione di N filtri diversi (di tipo LinqFilterDTO) che potranno essere messi tutti in OR tra loro.
|
|
6
|
+
* In presenza di più oggetti di tipo LinqPredicateDTO tutti i LinqPredicateDTO saranni invece messi in AND tra loro.
|
|
7
|
+
* In questo modo sarà possibile realizzare condizioni complesse
|
|
8
|
+
*/
|
|
9
|
+
export class LinqPredicateDTO {
|
|
10
|
+
/**
|
|
11
|
+
* Elenco di filtri di uno stesso predicato.
|
|
12
|
+
* Tutti i filtri contenuti in questa proprietà saranno considerati parte di tante OR
|
|
13
|
+
*/
|
|
14
|
+
PropertyFilters;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Permette di definire ogni singola condizione di una where part.
|
|
18
|
+
*/
|
|
19
|
+
export class LinqFilterDTO {
|
|
20
|
+
/**
|
|
21
|
+
* Nome della proprietà su cui applicare il filtro
|
|
22
|
+
*/
|
|
23
|
+
PropertyName;
|
|
24
|
+
/**
|
|
25
|
+
* Valore della proprietà su cui applicare il filtro
|
|
26
|
+
*/
|
|
27
|
+
PropertyValue;
|
|
28
|
+
/**
|
|
29
|
+
* Tipo di relazione. Identifica cioè l'operatore di confronto della where part
|
|
30
|
+
*/
|
|
31
|
+
RelationType;
|
|
32
|
+
/**
|
|
33
|
+
* Se RelationType = ContainsElement o NotContainsElement allora in questa proprietà ci verrà definito
|
|
34
|
+
* il nome della proprietà degli oggetti della lista su cui applicare l'operatore Any
|
|
35
|
+
*/
|
|
36
|
+
ListElementPropertyName;
|
|
37
|
+
static createFilter(propertyName, propertyValue, relationType, listElementPropertyName = null) {
|
|
38
|
+
let filter = new LinqFilterDTO();
|
|
39
|
+
filter.ListElementPropertyName = listElementPropertyName;
|
|
40
|
+
filter.PropertyName = propertyName;
|
|
41
|
+
filter.RelationType = relationType;
|
|
42
|
+
filter.PropertyValue = propertyValue;
|
|
43
|
+
return filter;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export class LookupCustomConfig {
|
|
47
|
+
LabelProperties;
|
|
48
|
+
IncludeFullObject;
|
|
49
|
+
}
|
|
50
|
+
export class ComplexLinqPredicateDTO {
|
|
51
|
+
Predicates;
|
|
52
|
+
/**
|
|
53
|
+
* Ricostruisce l'array di predicati complessi a partire dalla matrice di LinqPredicateDTO passata nel parametro.
|
|
54
|
+
* Ogni riga della matrice diventerà un elemento della lista restituita.
|
|
55
|
+
* Ogni elemento delle lista conterrà i dati della riga della matrice.
|
|
56
|
+
* @param complexPredicates Restituisce un array di oggetti di tipo ComplexLinqPredicateDTO
|
|
57
|
+
*/
|
|
58
|
+
static CreateComplexPredicate(complexPredicates) {
|
|
59
|
+
let results = new Array();
|
|
60
|
+
complexPredicates.forEach(cp => {
|
|
61
|
+
let complexPredicate = new ComplexLinqPredicateDTO();
|
|
62
|
+
complexPredicate.Predicates = cp;
|
|
63
|
+
results.push(complexPredicate);
|
|
64
|
+
});
|
|
65
|
+
return results;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export class LookupDTO {
|
|
69
|
+
ID;
|
|
70
|
+
Label;
|
|
71
|
+
FullObject;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlucUZpbHRlclJlc3VsdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1hdHRhY2htZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvZXFwLWNvbW1vbi9tb2RlbHMvbGlucUZpbHRlclJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7O09BR0c7SUFDSSxlQUFlLENBQXVCO0NBQzlDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUN4Qjs7T0FFRztJQUNJLFlBQVksQ0FBUztJQUU1Qjs7T0FFRztJQUNJLGFBQWEsQ0FBTTtJQUUxQjs7T0FFRztJQUNJLFlBQVksQ0FBZ0I7SUFFbkM7OztPQUdHO0lBQ0ksdUJBQXVCLENBQVM7SUFFdkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFvQixFQUFFLGFBQWtCLEVBQUUsWUFBMkIsRUFBRSwwQkFBa0MsSUFBSTtRQUMvSCxJQUFJLE1BQU0sR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNoRCxNQUFNLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDekQsTUFBTSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDbkMsTUFBTSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDbkMsTUFBTSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDckMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixlQUFlLENBQW1DO0lBQ2xELGlCQUFpQixDQUE2QjtDQUMvQztBQUVELE1BQU0sT0FBTyx1QkFBdUI7SUFDM0IsVUFBVSxDQUFzQztJQUV2RDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUQ7UUFDN0UsSUFBSSxPQUFPLEdBQW1DLElBQUksS0FBSyxFQUEyQixDQUFDO1FBRW5GLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUM3QixJQUFJLGdCQUFnQixHQUE0QixJQUFJLHVCQUF1QixFQUFFLENBQUM7WUFDOUUsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sU0FBUztJQUNwQixFQUFFLENBQXFDO0lBQ3ZDLEtBQUssQ0FBNEI7SUFDakMsVUFBVSxDQUFNO0NBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2hlcmVQYXJ0VHlwZSB9IGZyb20gXCIuL2ZpbHRlckNvbmZpZy5tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSB1dGlsaXp6YXRhIHBlciBsYSBkZWZpbml6aW9uZSBkaSBmaWx0cmkgYXZhbnphdGkuXHJcbiAqIFNpIGJhc2Egc3VsIGNvbmNldHRvIGRlbCBMaW5xUHJlZGljYXRlIGRvY3VtZW50YXRvIG5lbGxhIGd1aWRhIEVxUHJvamVjdC5cclxuICogXHJcbiAqIENpYXNjdW4gb2dnZXR0byBMaW5xUHJlZGljYXRlRFRPIHB1w7IgY29udGVuZW5lcmUgbGEgZGVmaW5pemlvbmUgZGkgTiBmaWx0cmkgZGl2ZXJzaSAoZGkgdGlwbyBMaW5xRmlsdGVyRFRPKSBjaGUgcG90cmFubm8gZXNzZXJlIG1lc3NpIHR1dHRpIGluIE9SIHRyYSBsb3JvLlxyXG4gKiBJbiBwcmVzZW56YSBkaSBwacO5IG9nZ2V0dGkgZGkgdGlwbyBMaW5xUHJlZGljYXRlRFRPIHR1dHRpIGkgTGlucVByZWRpY2F0ZURUTyBzYXJhbm5pIGludmVjZSBtZXNzaSBpbiBBTkQgdHJhIGxvcm8uXHJcbiAqIEluIHF1ZXN0byBtb2RvIHNhcsOgIHBvc3NpYmlsZSByZWFsaXp6YXJlIGNvbmRpemlvbmkgY29tcGxlc3NlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGlucVByZWRpY2F0ZURUTyB7XHJcbiAgLyoqXHJcbiAgICogRWxlbmNvIGRpIGZpbHRyaSBkaSB1bm8gc3Rlc3NvIHByZWRpY2F0by5cclxuICAgKiBUdXR0aSBpIGZpbHRyaSBjb250ZW51dGkgaW4gcXVlc3RhIHByb3ByaWV0w6Agc2FyYW5ubyBjb25zaWRlcmF0aSBwYXJ0ZSBkaSB0YW50ZSBPUlxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcm9wZXJ0eUZpbHRlcnM6IEFycmF5PExpbnFGaWx0ZXJEVE8+O1xyXG59XHJcblxyXG4vKipcclxuICogUGVybWV0dGUgZGkgZGVmaW5pcmUgb2duaSBzaW5nb2xhIGNvbmRpemlvbmUgZGkgdW5hIHdoZXJlIHBhcnQuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGlucUZpbHRlckRUTyB7XHJcbiAgLyoqXHJcbiAgICogTm9tZSBkZWxsYSBwcm9wcmlldMOgIHN1IGN1aSBhcHBsaWNhcmUgaWwgZmlsdHJvXHJcbiAgICovXHJcbiAgcHVibGljIFByb3BlcnR5TmFtZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBWYWxvcmUgZGVsbGEgcHJvcHJpZXTDoCBzdSBjdWkgYXBwbGljYXJlIGlsIGZpbHRyb1xyXG4gICAqL1xyXG4gIHB1YmxpYyBQcm9wZXJ0eVZhbHVlOiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRpcG8gZGkgcmVsYXppb25lLiBJZGVudGlmaWNhIGNpb8OoIGwnb3BlcmF0b3JlIGRpIGNvbmZyb250byBkZWxsYSB3aGVyZSBwYXJ0XHJcbiAgICovXHJcbiAgcHVibGljIFJlbGF0aW9uVHlwZTogV2hlcmVQYXJ0VHlwZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2UgUmVsYXRpb25UeXBlID0gQ29udGFpbnNFbGVtZW50IG8gTm90Q29udGFpbnNFbGVtZW50IGFsbG9yYSBpbiBxdWVzdGEgcHJvcHJpZXTDoCBjaSB2ZXJyw6AgZGVmaW5pdG9cclxuICAgKiBpbCBub21lIGRlbGxhIHByb3ByaWV0w6AgZGVnbGkgb2dnZXR0aSBkZWxsYSBsaXN0YSBzdSBjdWkgYXBwbGljYXJlIGwnb3BlcmF0b3JlIEFueVxyXG4gICAqL1xyXG4gIHB1YmxpYyBMaXN0RWxlbWVudFByb3BlcnR5TmFtZTogc3RyaW5nO1xyXG5cclxuICBzdGF0aWMgY3JlYXRlRmlsdGVyKHByb3BlcnR5TmFtZTogc3RyaW5nLCBwcm9wZXJ0eVZhbHVlOiBhbnksIHJlbGF0aW9uVHlwZTogV2hlcmVQYXJ0VHlwZSwgbGlzdEVsZW1lbnRQcm9wZXJ0eU5hbWU6IHN0cmluZyA9IG51bGwpOiBMaW5xRmlsdGVyRFRPIHtcclxuICAgIGxldCBmaWx0ZXI6IExpbnFGaWx0ZXJEVE8gPSBuZXcgTGlucUZpbHRlckRUTygpO1xyXG4gICAgZmlsdGVyLkxpc3RFbGVtZW50UHJvcGVydHlOYW1lID0gbGlzdEVsZW1lbnRQcm9wZXJ0eU5hbWU7XHJcbiAgICBmaWx0ZXIuUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gICAgZmlsdGVyLlJlbGF0aW9uVHlwZSA9IHJlbGF0aW9uVHlwZTtcclxuICAgIGZpbHRlci5Qcm9wZXJ0eVZhbHVlID0gcHJvcGVydHlWYWx1ZTtcclxuICAgIHJldHVybiBmaWx0ZXI7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTG9va3VwQ3VzdG9tQ29uZmlnIHtcclxuICBMYWJlbFByb3BlcnRpZXM6IEFycmF5PHN0cmluZz4gfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gIEluY2x1ZGVGdWxsT2JqZWN0OiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBsZXhMaW5xUHJlZGljYXRlRFRPIHtcclxuICBwdWJsaWMgUHJlZGljYXRlczogQXJyYXk8TGlucVByZWRpY2F0ZURUTz4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJpY29zdHJ1aXNjZSBsJ2FycmF5IGRpIHByZWRpY2F0aSBjb21wbGVzc2kgYSBwYXJ0aXJlIGRhbGxhIG1hdHJpY2UgZGkgTGlucVByZWRpY2F0ZURUTyBwYXNzYXRhIG5lbCBwYXJhbWV0cm8uXHJcbiAgICogT2duaSByaWdhIGRlbGxhIG1hdHJpY2UgZGl2ZW50ZXLDoCB1biBlbGVtZW50byBkZWxsYSBsaXN0YSByZXN0aXR1aXRhLlxyXG4gICAqIE9nbmkgZWxlbWVudG8gZGVsbGUgbGlzdGEgY29udGVycsOgIGkgZGF0aSBkZWxsYSByaWdhIGRlbGxhIG1hdHJpY2UuXHJcbiAgICogQHBhcmFtIGNvbXBsZXhQcmVkaWNhdGVzIFJlc3RpdHVpc2NlIHVuIGFycmF5IGRpIG9nZ2V0dGkgZGkgdGlwbyBDb21wbGV4TGlucVByZWRpY2F0ZURUT1xyXG4gICAqL1xyXG4gIHN0YXRpYyBDcmVhdGVDb21wbGV4UHJlZGljYXRlKGNvbXBsZXhQcmVkaWNhdGVzOiBBcnJheTxBcnJheTxMaW5xUHJlZGljYXRlRFRPPj4pOiBBcnJheTxDb21wbGV4TGlucVByZWRpY2F0ZURUTz4ge1xyXG4gICAgbGV0IHJlc3VsdHM6IEFycmF5PENvbXBsZXhMaW5xUHJlZGljYXRlRFRPPiA9IG5ldyBBcnJheTxDb21wbGV4TGlucVByZWRpY2F0ZURUTz4oKTtcclxuXHJcbiAgICBjb21wbGV4UHJlZGljYXRlcy5mb3JFYWNoKGNwID0+IHtcclxuICAgICAgbGV0IGNvbXBsZXhQcmVkaWNhdGU6IENvbXBsZXhMaW5xUHJlZGljYXRlRFRPID0gbmV3IENvbXBsZXhMaW5xUHJlZGljYXRlRFRPKCk7XHJcbiAgICAgIGNvbXBsZXhQcmVkaWNhdGUuUHJlZGljYXRlcyA9IGNwO1xyXG4gICAgICByZXN1bHRzLnB1c2goY29tcGxleFByZWRpY2F0ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb29rdXBEVE8ge1xyXG4gIElEOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gIExhYmVsOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gIEZ1bGxPYmplY3Q6IGFueTtcclxufSJdfQ==
|