@esfaenza/extensions 15.2.47 → 15.2.50
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 → esm2020}/esfaenza-extensions.mjs +4 -4
- package/esm2020/lib/models/CallResult.mjs +6 -0
- package/esm2020/lib/models/CsvHeaders.mjs +6 -0
- package/{esm2022 → esm2020}/lib/models/ExportConsts.mjs +31 -31
- package/esm2020/lib/models/ExtensionsModuleConfig.mjs +4 -0
- package/esm2020/lib/models/GenericItem.mjs +6 -0
- package/{esm2022 → esm2020}/lib/models/InboundMessageTypes.mjs +6 -6
- package/esm2020/lib/models/InterComMessage.mjs +14 -0
- package/{esm2022 → esm2020}/lib/models/TypeCode.mjs +24 -24
- package/{esm2022 → esm2020}/lib/modules/extensions.module.mjs +32 -32
- package/esm2020/lib/pipes/loc_date.pipe.mjs +37 -0
- package/esm2020/lib/services/extensions.base.mjs +29 -0
- package/esm2020/lib/services/extensions.clipboard.service.mjs +219 -0
- package/esm2020/lib/services/extensions.dates.service.mjs +246 -0
- package/esm2020/lib/services/extensions.embedding.service.mjs +208 -0
- package/esm2020/lib/services/extensions.exports.service.mjs +615 -0
- package/esm2020/lib/services/extensions.hashing.service.mjs +310 -0
- package/esm2020/lib/services/extensions.intercom.service.mjs +54 -0
- package/esm2020/lib/services/extensions.messages.service.mjs +433 -0
- package/esm2020/lib/services/extensions.utilities.service.mjs +252 -0
- package/{esm2022 → esm2020}/lib/tokens.mjs +11 -11
- package/{esm2022 → esm2020}/public-api.mjs +21 -21
- package/fesm2015/esfaenza-extensions.mjs +2517 -0
- package/fesm2015/esfaenza-extensions.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/esfaenza-extensions.mjs +2445 -2509
- package/fesm2020/esfaenza-extensions.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/models/CallResult.d.ts +23 -23
- package/lib/models/CsvHeaders.d.ts +25 -25
- package/lib/models/ExportConsts.d.ts +31 -31
- package/lib/models/ExtensionsModuleConfig.d.ts +9 -9
- package/lib/models/GenericItem.d.ts +9 -9
- package/lib/models/InboundMessageTypes.d.ts +5 -5
- package/lib/models/InterComMessage.d.ts +12 -12
- package/lib/models/TypeCode.d.ts +23 -23
- package/lib/modules/extensions.module.d.ts +11 -11
- package/lib/pipes/loc_date.pipe.d.ts +24 -24
- package/lib/services/extensions.base.d.ts +22 -22
- package/lib/services/extensions.clipboard.service.d.ts +54 -54
- package/lib/services/extensions.dates.service.d.ts +101 -99
- package/lib/services/extensions.embedding.service.d.ts +28 -28
- package/lib/services/extensions.exports.service.d.ts +234 -234
- package/lib/services/extensions.hashing.service.d.ts +121 -121
- package/lib/services/extensions.intercom.service.d.ts +28 -28
- package/lib/services/extensions.messages.service.d.ts +195 -195
- package/lib/services/extensions.utilities.service.d.ts +107 -107
- package/lib/tokens.d.ts +11 -11
- package/package.json +11 -5
- package/public-api.d.ts +18 -18
- package/esm2022/lib/models/CallResult.mjs +0 -24
- package/esm2022/lib/models/CsvHeaders.mjs +0 -26
- package/esm2022/lib/models/ExtensionsModuleConfig.mjs +0 -10
- package/esm2022/lib/models/GenericItem.mjs +0 -10
- package/esm2022/lib/models/InterComMessage.mjs +0 -16
- package/esm2022/lib/pipes/loc_date.pipe.mjs +0 -38
- package/esm2022/lib/services/extensions.base.mjs +0 -30
- package/esm2022/lib/services/extensions.clipboard.service.mjs +0 -221
- package/esm2022/lib/services/extensions.dates.service.mjs +0 -244
- package/esm2022/lib/services/extensions.embedding.service.mjs +0 -213
- package/esm2022/lib/services/extensions.exports.service.mjs +0 -617
- package/esm2022/lib/services/extensions.hashing.service.mjs +0 -308
- package/esm2022/lib/services/extensions.intercom.service.mjs +0 -52
- package/esm2022/lib/services/extensions.messages.service.mjs +0 -450
- package/esm2022/lib/services/extensions.utilities.service.mjs +0 -250
- package/fesm2022/esfaenza-extensions.mjs.map +0 -1
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
// Modelli
|
|
4
|
+
import { TypeCode } from '../models/TypeCode';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Service che fornisce metodi di pubblica utilità
|
|
8
|
+
*/
|
|
9
|
+
export class UtilityService {
|
|
10
|
+
constructor() {
|
|
11
|
+
// Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
12
|
+
//TODO: spostarla in un metodo di utilit� (esfaenza/extensions)
|
|
13
|
+
/** @ignore */
|
|
14
|
+
this.executionTimers = {};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Deseleziona il testo eventualmente selezionato
|
|
18
|
+
*/
|
|
19
|
+
clearTextSelection() {
|
|
20
|
+
if (window.getSelection) {
|
|
21
|
+
if (window.getSelection().empty) // Chrome
|
|
22
|
+
window.getSelection().empty();
|
|
23
|
+
else if (window.getSelection().removeAllRanges) // Firefox
|
|
24
|
+
window.getSelection().removeAllRanges();
|
|
25
|
+
}
|
|
26
|
+
else if (document.selection) // IE?
|
|
27
|
+
document.selection.empty();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Partendo da una lista, dato il nome della proprietà chiave e il valore della chiave selezionata,
|
|
31
|
+
* trova e restituisce l'oggetto desiderato
|
|
32
|
+
*
|
|
33
|
+
* @param {T[]} sourceList Lista di oggetti dentro cui cercare
|
|
34
|
+
* @param {string} sourceItemIdField Nome della proprietà che rappresenta la chiave di un oggetto di tipo T
|
|
35
|
+
* @param {string} selectedValue Valore di chiave selezionato
|
|
36
|
+
*
|
|
37
|
+
* @returns {T} Oggetto la cui proprietà **sourceItemIdField** assume il valore **selectedValue**
|
|
38
|
+
*/
|
|
39
|
+
getSelectedItem(sourceList, sourceItemIdField, selectedValue) {
|
|
40
|
+
for (let i = 0; i < sourceList.length; i++) {
|
|
41
|
+
var item = sourceList[i];
|
|
42
|
+
if (item[sourceItemIdField] == selectedValue)
|
|
43
|
+
return item;
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Effettua il reset di un Form di Angular
|
|
49
|
+
*
|
|
50
|
+
* @param {NgForm} form Form da resettare
|
|
51
|
+
* @param {string} exception1 Campo da non resettare
|
|
52
|
+
* @param {string} exception2 Campo da non resettare
|
|
53
|
+
*/
|
|
54
|
+
cleanForm(form, exception1 = null, exception2 = null) {
|
|
55
|
+
for (let name in form.controls) {
|
|
56
|
+
if (name && name != exception1 && name != exception1 + "_internal" && name != exception2 && name != exception2 + "_internal") {
|
|
57
|
+
form.controls[name].reset();
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
form.controls[name].markAsPristine();
|
|
61
|
+
form.controls[name].markAsUntouched();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//Reimposto il submitted
|
|
65
|
+
form.submitted = false;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Helper che permette di scaricare un file dato un URL (Generato da una chiamata ad **window.URL.createObjectURL**)
|
|
69
|
+
*
|
|
70
|
+
* @param {string} url ObjectURL che rappresenta il file da scaricare
|
|
71
|
+
* @param {string} filename Nome del file suggerito in fase di salvataggio
|
|
72
|
+
*/
|
|
73
|
+
fileDownload(url, fileName) {
|
|
74
|
+
var a = document.createElement("a");
|
|
75
|
+
document.body.appendChild(a);
|
|
76
|
+
a.className = "ta-display-none";
|
|
77
|
+
a.href = url;
|
|
78
|
+
a.download = fileName;
|
|
79
|
+
a.click();
|
|
80
|
+
window.URL.revokeObjectURL(url);
|
|
81
|
+
document.body.removeChild(a);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Helper per la formattazione di un numero di millisecondi in una stringa più comprensibile per un umano
|
|
85
|
+
*
|
|
86
|
+
* @param {number} duration Tempo espresso in millisecondi
|
|
87
|
+
*
|
|
88
|
+
* @returns {string} Durata formattata
|
|
89
|
+
*/
|
|
90
|
+
msToTime(duration) {
|
|
91
|
+
if (!duration)
|
|
92
|
+
return "";
|
|
93
|
+
var milliseconds = parseInt(((duration % 1000) / 100).toString()), seconds = parseInt(((duration / 1000) % 60).toString()), minutes = parseInt(((duration / (1000 * 60)) % 60).toString()), hours = parseInt(((duration / (1000 * 60 * 60)) % 24).toString());
|
|
94
|
+
var st_hours = (hours < 10) ? "0" + hours : hours;
|
|
95
|
+
var st_minutes = (minutes < 10) ? "0" + minutes : minutes;
|
|
96
|
+
var st_seconds = (seconds < 10) ? "0" + seconds : seconds;
|
|
97
|
+
return st_hours + ":" + st_minutes + ":" + st_seconds + "." + milliseconds;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Helper che permette di scaricare un file in Base64
|
|
101
|
+
*
|
|
102
|
+
* @param {string} base64Data Base64 che rappresenta il file da scaricare
|
|
103
|
+
* @param {string} filename Nome del file suggerito in fase di salvataggio
|
|
104
|
+
*/
|
|
105
|
+
saveFile(base64Data, filename) {
|
|
106
|
+
var sampleArr = this.base64ToArrayBuffer(base64Data);
|
|
107
|
+
this.saveByteArray(sampleArr, filename);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Trasforma un Base64 in un ArrayBuffer
|
|
111
|
+
*
|
|
112
|
+
* @param {string} base64Data Base64 da trasformare
|
|
113
|
+
*
|
|
114
|
+
* @returns {Uint8Array} Array UTF8
|
|
115
|
+
*/
|
|
116
|
+
base64ToArrayBuffer(base64Data) {
|
|
117
|
+
var binaryString = window.atob(base64Data);
|
|
118
|
+
var binaryLen = binaryString.length;
|
|
119
|
+
var bytes = new Uint8Array(binaryLen);
|
|
120
|
+
for (var i = 0; i < binaryLen; i++) {
|
|
121
|
+
var ascii = binaryString.charCodeAt(i);
|
|
122
|
+
bytes[i] = ascii;
|
|
123
|
+
}
|
|
124
|
+
return bytes;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Helper che permette di scaricare un file dato un array di Byte (**Uint8Array**)
|
|
128
|
+
*
|
|
129
|
+
* @param {Uint8Array} byte Rappresentazione del file da scaricare
|
|
130
|
+
* @param {string} filename Nome del file suggerito in fase di salvataggio
|
|
131
|
+
*/
|
|
132
|
+
saveByteArray(byte, filename) {
|
|
133
|
+
var blob = new Blob([byte]);
|
|
134
|
+
var link = document.createElement("a");
|
|
135
|
+
document.body.appendChild(link);
|
|
136
|
+
link.href = window.URL.createObjectURL(blob);
|
|
137
|
+
var fileName = filename;
|
|
138
|
+
link.download = fileName;
|
|
139
|
+
link.click();
|
|
140
|
+
document.body.removeChild(link);
|
|
141
|
+
}
|
|
142
|
+
;
|
|
143
|
+
/**
|
|
144
|
+
* Utility per lo swap di due elementi di un array
|
|
145
|
+
*
|
|
146
|
+
* @param {any[]} array Array di cui invertire due elementi
|
|
147
|
+
* @param {number} x Indice del primo elemento
|
|
148
|
+
* @param {number} y Indice del secondo elemento
|
|
149
|
+
*/
|
|
150
|
+
swap(array, x, y) {
|
|
151
|
+
var b = array[x];
|
|
152
|
+
array[x] = array[y];
|
|
153
|
+
array[y] = b;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Helper di trascodifica da tipo c# a tipo Typescript
|
|
157
|
+
*
|
|
158
|
+
* @param {TypeCode} type Tipo da trascodificare
|
|
159
|
+
*
|
|
160
|
+
* @returns {"boolean" | "number" | "string" | "date"} Tipo Typescript corrispondente
|
|
161
|
+
*/
|
|
162
|
+
getJsTypeFromTypeCode(type) {
|
|
163
|
+
switch (type) {
|
|
164
|
+
case TypeCode.Boolean:
|
|
165
|
+
return "boolean";
|
|
166
|
+
case TypeCode.Decimal:
|
|
167
|
+
case TypeCode.Double:
|
|
168
|
+
case TypeCode.Single:
|
|
169
|
+
case TypeCode.Int16:
|
|
170
|
+
case TypeCode.Int32:
|
|
171
|
+
case TypeCode.Int64:
|
|
172
|
+
case TypeCode.Byte:
|
|
173
|
+
case TypeCode.SByte:
|
|
174
|
+
case TypeCode.UInt16:
|
|
175
|
+
case TypeCode.UInt32:
|
|
176
|
+
case TypeCode.UInt64:
|
|
177
|
+
return "number";
|
|
178
|
+
case TypeCode.Char:
|
|
179
|
+
case TypeCode.String:
|
|
180
|
+
return "string";
|
|
181
|
+
case TypeCode.DateTime:
|
|
182
|
+
return "date";
|
|
183
|
+
default:
|
|
184
|
+
console.log("Unrecognized input type. Typecode:" + type);
|
|
185
|
+
return "string";
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Effettua la clonazione profonda di un oggetto in maniera molto più performante che JSON.parse(JSON.stringify()).
|
|
190
|
+
*
|
|
191
|
+
* Usare solo per oggetti puri e quantomeno semplici per evitare complicazioni derivanti dalle semplificazioni che questo metodo assume
|
|
192
|
+
*
|
|
193
|
+
* @param {any} source Oggetto da clonare
|
|
194
|
+
*
|
|
195
|
+
* @return {any} Clone dell'oggetto passato
|
|
196
|
+
*/
|
|
197
|
+
deepClone(source, type = null) {
|
|
198
|
+
// Valori semplici
|
|
199
|
+
if (source == null || typeof source !== 'object')
|
|
200
|
+
return source;
|
|
201
|
+
// Pseudo Struct
|
|
202
|
+
switch (toString.call(source)) {
|
|
203
|
+
case '[object Boolean]':
|
|
204
|
+
case '[object Number]':
|
|
205
|
+
case '[object String]':
|
|
206
|
+
case '[object Date]':
|
|
207
|
+
return new source.constructor(source.valueOf());
|
|
208
|
+
// Clonazione di un file -> Restituisco il riferimento al file stesso
|
|
209
|
+
case "[object File]":
|
|
210
|
+
return source;
|
|
211
|
+
default: break;
|
|
212
|
+
}
|
|
213
|
+
// Oggetti Complessi
|
|
214
|
+
return this.recursiveStep(source, Array.isArray(source) || source instanceof Array ? [] : (type == null ? Object.create(Object.getPrototypeOf(source)) : new type()));
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* @ignore
|
|
218
|
+
* Step ricorsivo per la clonatura degli oggetti. Vedere **deepClone**
|
|
219
|
+
*/
|
|
220
|
+
recursiveStep(source, destination) {
|
|
221
|
+
if (Array.isArray(source) || source instanceof Array) {
|
|
222
|
+
for (var i = 0, ii = source.length; i < ii; i++)
|
|
223
|
+
destination.push(this.deepClone(source[i]));
|
|
224
|
+
}
|
|
225
|
+
else if (source && typeof source.hasOwnProperty === 'function') {
|
|
226
|
+
for (let key in source) {
|
|
227
|
+
if (source.hasOwnProperty(key))
|
|
228
|
+
destination[key] = this.deepClone(source[key]);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return destination;
|
|
232
|
+
}
|
|
233
|
+
cast(object, clss) {
|
|
234
|
+
let ret = Object.assign(Object.create(clss.prototype), object);
|
|
235
|
+
return ret;
|
|
236
|
+
}
|
|
237
|
+
/** @ignore */
|
|
238
|
+
throttla(id, func, throttleTime) {
|
|
239
|
+
//Se ho la funzione che vuole eseguire ripulisco quel timeout
|
|
240
|
+
if (this.executionTimers[id])
|
|
241
|
+
clearTimeout(this.executionTimers[id]);
|
|
242
|
+
//Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
|
|
243
|
+
this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
UtilityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UtilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
247
|
+
UtilityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UtilityService, providedIn: "root" });
|
|
248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UtilityService, decorators: [{
|
|
249
|
+
type: Injectable,
|
|
250
|
+
args: [{ providedIn: "root" }]
|
|
251
|
+
}] });
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy51dGlsaXRpZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLnV0aWxpdGllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBR2pELFVBQVU7QUFDVixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRTlDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUF3UEksbUZBQW1GO1FBQ25GLCtEQUErRDtRQUMvRCxjQUFjO1FBQ04sb0JBQWUsR0FBNkIsRUFBRSxDQUFDO0tBVTFEO0lBbFFHOztPQUVHO0lBQ0ksa0JBQWtCO1FBQ3JCLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUksU0FBUztnQkFDeEMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUM3QixJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUcsVUFBVTtnQkFDdkQsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBRS9DO2FBQU0sSUFBVSxRQUFTLENBQUMsU0FBUyxFQUFHLE1BQU07WUFDbkMsUUFBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksZUFBZSxDQUFJLFVBQWUsRUFBRSxpQkFBeUIsRUFBRSxhQUFxQjtRQUN2RixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxhQUFhO2dCQUN4QyxPQUFPLElBQUksQ0FBQztTQUNuQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxTQUFTLENBQUMsSUFBWSxFQUFFLGFBQXFCLElBQUksRUFBRSxhQUFxQixJQUFJO1FBQy9FLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM1QixJQUFJLElBQUksSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSSxVQUFVLEdBQUcsV0FBVyxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLFVBQVUsR0FBRyxXQUFXLEVBQUU7Z0JBQzFILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDL0I7aUJBQ0k7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN6QztTQUNKO1FBRUQsd0JBQXdCO1FBQ3ZCLElBQStCLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxZQUFZLENBQUMsR0FBVyxFQUFFLFFBQWdCO1FBQzdDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztRQUNoQyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxRQUFRLENBQUMsUUFBZ0I7UUFDNUIsSUFBSSxDQUFDLFFBQVE7WUFDVCxPQUFPLEVBQUUsQ0FBQztRQUVkLElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzdELE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUN2RCxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUM5RCxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUV0RSxJQUFJLFFBQVEsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xELElBQUksVUFBVSxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDMUQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUUxRCxPQUFPLFFBQVEsR0FBRyxHQUFHLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxVQUFVLEdBQUcsR0FBRyxHQUFHLFlBQVksQ0FBQztJQUMvRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxRQUFRLENBQUMsVUFBa0IsRUFBRSxRQUFnQjtRQUNoRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLG1CQUFtQixDQUFDLFVBQWtCO1FBQzFDLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNwQyxJQUFJLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hDLElBQUksS0FBSyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNwQjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGFBQWEsQ0FBQyxJQUFnQixFQUFFLFFBQWdCO1FBQ3BELElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QixJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFBQSxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0ksSUFBSSxDQUFDLEtBQVksRUFBRSxDQUFTLEVBQUUsQ0FBUztRQUMxQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxxQkFBcUIsQ0FBQyxJQUFjO1FBQ3ZDLFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxRQUFRLENBQUMsT0FBTztnQkFDakIsT0FBTyxTQUFTLENBQUM7WUFFckIsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ3RCLEtBQUssUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNyQixLQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDckIsS0FBSyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3BCLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNwQixLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDcEIsS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ25CLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNwQixLQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDckIsS0FBSyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JCLEtBQUssUUFBUSxDQUFDLE1BQU07Z0JBQ2hCLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztZQUNuQixLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUNoQixPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLFFBQVEsQ0FBQyxRQUFRO2dCQUNsQixPQUFPLE1BQU0sQ0FBQztZQUNsQjtnQkFDSSxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLFFBQVEsQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFNBQVMsQ0FBQyxNQUFXLEVBQUUsT0FBa0IsSUFBSTtRQUVoRCxrQkFBa0I7UUFDbEIsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7WUFDNUMsT0FBTyxNQUFNLENBQUM7UUFFbEIsZ0JBQWdCO1FBQ2hCLFFBQVEsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUUzQixLQUFLLGtCQUFrQixDQUFDO1lBQ3hCLEtBQUssaUJBQWlCLENBQUM7WUFDdkIsS0FBSyxpQkFBaUIsQ0FBQztZQUN2QixLQUFLLGVBQWU7Z0JBQ2hCLE9BQU8sSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELHFFQUFxRTtZQUNyRSxLQUFLLGVBQWU7Z0JBQ2hCLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxDQUFDLE1BQU07U0FDbEI7UUFFRCxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUssQ0FBQztJQUVEOzs7T0FHRztJQUNLLGFBQWEsQ0FBQyxNQUFXLEVBQUUsV0FBZ0I7UUFDL0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sWUFBWSxLQUFLLEVBQUU7WUFDbEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQzNDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25EO2FBQU0sSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsY0FBYyxLQUFLLFVBQVUsRUFBRTtZQUM5RCxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRTtnQkFDcEIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztvQkFDMUIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDdEQ7U0FDSjtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBVyxFQUFFLElBQWU7UUFDN0IsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFNRCxjQUFjO0lBQ1AsUUFBUSxDQUFDLEVBQVUsRUFBRSxJQUFjLEVBQUUsWUFBb0I7UUFDNUQsNkRBQTZEO1FBQzdELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDeEIsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUzQywrRUFBK0U7UUFDL0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM1RyxDQUFDOzsyR0FuUVEsY0FBYzsrR0FBZCxjQUFjLGNBREQsTUFBTTsyRkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgVHlwZUNvZGUgfSBmcm9tICcuLi9tb2RlbHMvVHlwZUNvZGUnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgY2hlIGZvcm5pc2NlIG1ldG9kaSBkaSBwdWJibGljYSB1dGlsaXTDoFxyXG4gKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxyXG5leHBvcnQgY2xhc3MgVXRpbGl0eVNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzZWxlemlvbmEgaWwgdGVzdG8gZXZlbnR1YWxtZW50ZSBzZWxlemlvbmF0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xlYXJUZXh0U2VsZWN0aW9uKCkge1xyXG4gICAgICAgIGlmICh3aW5kb3cuZ2V0U2VsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZW1wdHkpICAgLy8gQ2hyb21lXHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZW1wdHkoKTtcclxuICAgICAgICAgICAgZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcykgIC8vIEZpcmVmb3hcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTtcclxuXHJcbiAgICAgICAgfSBlbHNlIGlmICgoPGFueT5kb2N1bWVudCkuc2VsZWN0aW9uKSAgLy8gSUU/XHJcbiAgICAgICAgICAgICg8YW55PmRvY3VtZW50KS5zZWxlY3Rpb24uZW1wdHkoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcnRlbmRvIGRhIHVuYSBsaXN0YSwgZGF0byBpbCBub21lIGRlbGxhIHByb3ByaWV0w6AgY2hpYXZlIGUgaWwgdmFsb3JlIGRlbGxhIGNoaWF2ZSBzZWxlemlvbmF0YSwgXHJcbiAgICAgKiB0cm92YSBlIHJlc3RpdHVpc2NlIGwnb2dnZXR0byBkZXNpZGVyYXRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7VFtdfSBzb3VyY2VMaXN0IExpc3RhIGRpIG9nZ2V0dGkgZGVudHJvIGN1aSBjZXJjYXJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlSXRlbUlkRmllbGQgTm9tZSBkZWxsYSBwcm9wcmlldMOgIGNoZSByYXBwcmVzZW50YSBsYSBjaGlhdmUgZGkgdW4gb2dnZXR0byBkaSB0aXBvIFRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RlZFZhbHVlIFZhbG9yZSBkaSBjaGlhdmUgc2VsZXppb25hdG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge1R9IE9nZ2V0dG8gbGEgY3VpIHByb3ByaWV0w6AgKipzb3VyY2VJdGVtSWRGaWVsZCoqIGFzc3VtZSBpbCB2YWxvcmUgKipzZWxlY3RlZFZhbHVlKipcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFNlbGVjdGVkSXRlbTxUPihzb3VyY2VMaXN0OiBUW10sIHNvdXJjZUl0ZW1JZEZpZWxkOiBzdHJpbmcsIHNlbGVjdGVkVmFsdWU6IHN0cmluZyk6IFQge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc291cmNlTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgaXRlbSA9IHNvdXJjZUxpc3RbaV07XHJcbiAgICAgICAgICAgIGlmIChpdGVtW3NvdXJjZUl0ZW1JZEZpZWxkXSA9PSBzZWxlY3RlZFZhbHVlKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWZmZXR0dWEgaWwgcmVzZXQgZGkgdW4gRm9ybSBkaSBBbmd1bGFyXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7TmdGb3JtfSBmb3JtIEZvcm0gZGEgcmVzZXR0YXJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXhjZXB0aW9uMSBDYW1wbyBkYSBub24gcmVzZXR0YXJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXhjZXB0aW9uMiBDYW1wbyBkYSBub24gcmVzZXR0YXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGVhbkZvcm0oZm9ybTogTmdGb3JtLCBleGNlcHRpb24xOiBzdHJpbmcgPSBudWxsLCBleGNlcHRpb24yOiBzdHJpbmcgPSBudWxsKSB7XHJcbiAgICAgICAgZm9yIChsZXQgbmFtZSBpbiBmb3JtLmNvbnRyb2xzKSB7XHJcbiAgICAgICAgICAgIGlmIChuYW1lICYmIG5hbWUgIT0gZXhjZXB0aW9uMSAmJiBuYW1lICE9IGV4Y2VwdGlvbjEgKyBcIl9pbnRlcm5hbFwiICYmIG5hbWUgIT0gZXhjZXB0aW9uMiAmJiBuYW1lICE9IGV4Y2VwdGlvbjIgKyBcIl9pbnRlcm5hbFwiKSB7XHJcbiAgICAgICAgICAgICAgICBmb3JtLmNvbnRyb2xzW25hbWVdLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBmb3JtLmNvbnRyb2xzW25hbWVdLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgICAgICAgICBmb3JtLmNvbnRyb2xzW25hbWVdLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1JlaW1wb3N0byBpbCBzdWJtaXR0ZWRcclxuICAgICAgICAoZm9ybSBhcyB7IHN1Ym1pdHRlZDogYm9vbGVhbiB9KS5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjaGUgcGVybWV0dGUgZGkgc2NhcmljYXJlIHVuIGZpbGUgZGF0byB1biBVUkwgKEdlbmVyYXRvIGRhIHVuYSBjaGlhbWF0YSBhZCAqKndpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKiopXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgT2JqZWN0VVJMIGNoZSByYXBwcmVzZW50YSBpbCBmaWxlIGRhIHNjYXJpY2FyZVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lIE5vbWUgZGVsIGZpbGUgc3VnZ2VyaXRvIGluIGZhc2UgZGkgc2FsdmF0YWdnaW9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZpbGVEb3dubG9hZCh1cmw6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgICAgICBhLmNsYXNzTmFtZSA9IFwidGEtZGlzcGxheS1ub25lXCI7XHJcbiAgICAgICAgYS5ocmVmID0gdXJsO1xyXG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgICAgICBhLmNsaWNrKCk7XHJcbiAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIHBlciBsYSBmb3JtYXR0YXppb25lIGRpIHVuIG51bWVybyBkaSBtaWxsaXNlY29uZGkgaW4gdW5hIHN0cmluZ2EgcGnDuSBjb21wcmVuc2liaWxlIHBlciB1biB1bWFub1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZHVyYXRpb24gVGVtcG8gZXNwcmVzc28gaW4gbWlsbGlzZWNvbmRpXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IER1cmF0YSBmb3JtYXR0YXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtc1RvVGltZShkdXJhdGlvbjogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWR1cmF0aW9uKVxyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuXHJcbiAgICAgICAgdmFyIG1pbGxpc2Vjb25kcyA9IHBhcnNlSW50KCgoZHVyYXRpb24gJSAxMDAwKSAvIDEwMCkudG9TdHJpbmcoKSksXHJcbiAgICAgICAgICAgIHNlY29uZHMgPSBwYXJzZUludCgoKGR1cmF0aW9uIC8gMTAwMCkgJSA2MCkudG9TdHJpbmcoKSksXHJcbiAgICAgICAgICAgIG1pbnV0ZXMgPSBwYXJzZUludCgoKGR1cmF0aW9uIC8gKDEwMDAgKiA2MCkpICUgNjApLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICBob3VycyA9IHBhcnNlSW50KCgoZHVyYXRpb24gLyAoMTAwMCAqIDYwICogNjApKSAlIDI0KS50b1N0cmluZygpKTtcclxuXHJcbiAgICAgICAgdmFyIHN0X2hvdXJzID0gKGhvdXJzIDwgMTApID8gXCIwXCIgKyBob3VycyA6IGhvdXJzO1xyXG4gICAgICAgIHZhciBzdF9taW51dGVzID0gKG1pbnV0ZXMgPCAxMCkgPyBcIjBcIiArIG1pbnV0ZXMgOiBtaW51dGVzO1xyXG4gICAgICAgIHZhciBzdF9zZWNvbmRzID0gKHNlY29uZHMgPCAxMCkgPyBcIjBcIiArIHNlY29uZHMgOiBzZWNvbmRzO1xyXG5cclxuICAgICAgICByZXR1cm4gc3RfaG91cnMgKyBcIjpcIiArIHN0X21pbnV0ZXMgKyBcIjpcIiArIHN0X3NlY29uZHMgKyBcIi5cIiArIG1pbGxpc2Vjb25kcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjaGUgcGVybWV0dGUgZGkgc2NhcmljYXJlIHVuIGZpbGUgaW4gQmFzZTY0XHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlNjREYXRhIEJhc2U2NCBjaGUgcmFwcHJlc2VudGEgaWwgZmlsZSBkYSBzY2FyaWNhcmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZSBOb21lIGRlbCBmaWxlIHN1Z2dlcml0byBpbiBmYXNlIGRpIHNhbHZhdGFnZ2lvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzYXZlRmlsZShiYXNlNjREYXRhOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICB2YXIgc2FtcGxlQXJyID0gdGhpcy5iYXNlNjRUb0FycmF5QnVmZmVyKGJhc2U2NERhdGEpO1xyXG4gICAgICAgIHRoaXMuc2F2ZUJ5dGVBcnJheShzYW1wbGVBcnIsIGZpbGVuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRyYXNmb3JtYSB1biBCYXNlNjQgaW4gdW4gQXJyYXlCdWZmZXJcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGJhc2U2NERhdGEgQmFzZTY0IGRhIHRyYXNmb3JtYXJlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtVaW50OEFycmF5fSBBcnJheSBVVEY4XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYmFzZTY0VG9BcnJheUJ1ZmZlcihiYXNlNjREYXRhOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcclxuICAgICAgICB2YXIgYmluYXJ5U3RyaW5nID0gd2luZG93LmF0b2IoYmFzZTY0RGF0YSk7XHJcbiAgICAgICAgdmFyIGJpbmFyeUxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XHJcbiAgICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYmluYXJ5TGVuKTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJpbmFyeUxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHZhciBhc2NpaSA9IGJpbmFyeVN0cmluZy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICBieXRlc1tpXSA9IGFzY2lpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnl0ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgY2hlIHBlcm1ldHRlIGRpIHNjYXJpY2FyZSB1biBmaWxlIGRhdG8gdW4gYXJyYXkgZGkgQnl0ZSAoKipVaW50OEFycmF5KiopXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7VWludDhBcnJheX0gYnl0ZSBSYXBwcmVzZW50YXppb25lIGRlbCBmaWxlIGRhIHNjYXJpY2FyZVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lIE5vbWUgZGVsIGZpbGUgc3VnZ2VyaXRvIGluIGZhc2UgZGkgc2FsdmF0YWdnaW9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzYXZlQnl0ZUFycmF5KGJ5dGU6IFVpbnQ4QXJyYXksIGZpbGVuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtieXRlXSk7XHJcbiAgICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgICAgIGxpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICAgIHZhciBmaWxlTmFtZSA9IGZpbGVuYW1lO1xyXG4gICAgICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVdGlsaXR5IHBlciBsbyBzd2FwIGRpIGR1ZSBlbGVtZW50aSBkaSB1biBhcnJheVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSBhcnJheSBBcnJheSBkaSBjdWkgaW52ZXJ0aXJlIGR1ZSBlbGVtZW50aVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggSW5kaWNlIGRlbCBwcmltbyBlbGVtZW50b1xyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgSW5kaWNlIGRlbCBzZWNvbmRvIGVsZW1lbnRvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzd2FwKGFycmF5OiBhbnlbXSwgeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcclxuICAgICAgICB2YXIgYiA9IGFycmF5W3hdO1xyXG4gICAgICAgIGFycmF5W3hdID0gYXJyYXlbeV07XHJcbiAgICAgICAgYXJyYXlbeV0gPSBiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGRpIHRyYXNjb2RpZmljYSBkYSB0aXBvIGMjIGEgdGlwbyBUeXBlc2NyaXB0XHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7VHlwZUNvZGV9IHR5cGUgVGlwbyBkYSB0cmFzY29kaWZpY2FyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7XCJib29sZWFuXCIgfCBcIm51bWJlclwiIHwgXCJzdHJpbmdcIiB8IFwiZGF0ZVwifSBUaXBvIFR5cGVzY3JpcHQgY29ycmlzcG9uZGVudGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEpzVHlwZUZyb21UeXBlQ29kZSh0eXBlOiBUeXBlQ29kZSk6IFwiYm9vbGVhblwiIHwgXCJudW1iZXJcIiB8IFwic3RyaW5nXCIgfCBcImRhdGVcIiB7XHJcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuQm9vbGVhbjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcImJvb2xlYW5cIjtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuRGVjaW1hbDpcclxuICAgICAgICAgICAgY2FzZSBUeXBlQ29kZS5Eb3VibGU6XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuU2luZ2xlOlxyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLkludDE2OlxyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLkludDMyOlxyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLkludDY0OlxyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLkJ5dGU6XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuU0J5dGU6XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuVUludDE2OlxyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLlVJbnQzMjpcclxuICAgICAgICAgICAgY2FzZSBUeXBlQ29kZS5VSW50NjQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJudW1iZXJcIjtcclxuICAgICAgICAgICAgY2FzZSBUeXBlQ29kZS5DaGFyOlxyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLlN0cmluZzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcInN0cmluZ1wiO1xyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLkRhdGVUaW1lOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiZGF0ZVwiO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJVbnJlY29nbml6ZWQgaW5wdXQgdHlwZS4gVHlwZWNvZGU6XCIgKyB0eXBlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcInN0cmluZ1wiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVmZmV0dHVhIGxhIGNsb25hemlvbmUgcHJvZm9uZGEgZGkgdW4gb2dnZXR0byBpbiBtYW5pZXJhIG1vbHRvIHBpw7kgcGVyZm9ybWFudGUgY2hlIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoKSkuXHJcbiAgICAgKiBcclxuICAgICAqIFVzYXJlIHNvbG8gcGVyIG9nZ2V0dGkgcHVyaSBlIHF1YW50b21lbm8gc2VtcGxpY2kgcGVyIGV2aXRhcmUgY29tcGxpY2F6aW9uaSBkZXJpdmFudGkgZGFsbGUgc2VtcGxpZmljYXppb25pIGNoZSBxdWVzdG8gbWV0b2RvIGFzc3VtZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gc291cmNlIE9nZ2V0dG8gZGEgY2xvbmFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHthbnl9IENsb25lIGRlbGwnb2dnZXR0byBwYXNzYXRvIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVlcENsb25lKHNvdXJjZTogYW55LCB0eXBlOiBUeXBlPGFueT4gPSBudWxsKTogYW55IHtcclxuXHJcbiAgICAgICAgLy8gVmFsb3JpIHNlbXBsaWNpXHJcbiAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsIHx8IHR5cGVvZiBzb3VyY2UgIT09ICdvYmplY3QnKVxyXG4gICAgICAgICAgICByZXR1cm4gc291cmNlO1xyXG5cclxuICAgICAgICAvLyBQc2V1ZG8gU3RydWN0XHJcbiAgICAgICAgc3dpdGNoICh0b1N0cmluZy5jYWxsKHNvdXJjZSkpIHtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgJ1tvYmplY3QgQm9vbGVhbl0nOlxyXG4gICAgICAgICAgICBjYXNlICdbb2JqZWN0IE51bWJlcl0nOlxyXG4gICAgICAgICAgICBjYXNlICdbb2JqZWN0IFN0cmluZ10nOlxyXG4gICAgICAgICAgICBjYXNlICdbb2JqZWN0IERhdGVdJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgc291cmNlLmNvbnN0cnVjdG9yKHNvdXJjZS52YWx1ZU9mKCkpO1xyXG4gICAgICAgICAgICAvLyBDbG9uYXppb25lIGRpIHVuIGZpbGUgLT4gUmVzdGl0dWlzY28gaWwgcmlmZXJpbWVudG8gYWwgZmlsZSBzdGVzc29cclxuICAgICAgICAgICAgY2FzZSBcIltvYmplY3QgRmlsZV1cIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2U7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gT2dnZXR0aSBDb21wbGVzc2lcclxuICAgICAgICByZXR1cm4gdGhpcy5yZWN1cnNpdmVTdGVwKHNvdXJjZSwgQXJyYXkuaXNBcnJheShzb3VyY2UpIHx8IHNvdXJjZSBpbnN0YW5jZW9mIEFycmF5ID8gW10gOiAodHlwZSA9PSBudWxsID8gT2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2Yoc291cmNlKSkgOiBuZXcgdHlwZSgpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKiBTdGVwIHJpY29yc2l2byBwZXIgbGEgY2xvbmF0dXJhIGRlZ2xpIG9nZ2V0dGkuIFZlZGVyZSAqKmRlZXBDbG9uZSoqXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVjdXJzaXZlU3RlcChzb3VyY2U6IGFueSwgZGVzdGluYXRpb246IGFueSkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkgfHwgc291cmNlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGlpID0gc291cmNlLmxlbmd0aDsgaSA8IGlpOyBpKyspXHJcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi5wdXNoKHRoaXMuZGVlcENsb25lKHNvdXJjZVtpXSkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc291cmNlICYmIHR5cGVvZiBzb3VyY2UuaGFzT3duUHJvcGVydHkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHNvdXJjZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShrZXkpKVxyXG4gICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uW2tleV0gPSB0aGlzLmRlZXBDbG9uZShzb3VyY2Vba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBkZXN0aW5hdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBjYXN0KG9iamVjdDogYW55LCBjbHNzOiBUeXBlPGFueT4pIHtcclxuICAgICAgICBsZXQgcmV0ID0gT2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKGNsc3MucHJvdG90eXBlKSwgb2JqZWN0KTtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEZ1bnppb25lIGRpIHRocm90dGxpbmcgcGVyIG5vbiBzcGFtbWFyZSByaWNoaWVzdGUgaW4gY2FzbyBkaSBhbmltYXppb25pIGF0dGl2YXRlXHJcbiAgICAvL1RPRE86IHNwb3N0YXJsYSBpbiB1biBtZXRvZG8gZGkgdXRpbGl077+9IChlc2ZhZW56YS9leHRlbnNpb25zKVxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHByaXZhdGUgZXhlY3V0aW9uVGltZXJzOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwdWJsaWMgdGhyb3R0bGEoaWQ6IHN0cmluZywgZnVuYzogRnVuY3Rpb24sIHRocm90dGxlVGltZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgLy9TZSBobyBsYSBmdW56aW9uZSBjaGUgdnVvbGUgZXNlZ3VpcmUgcmlwdWxpc2NvIHF1ZWwgdGltZW91dFxyXG4gICAgICAgIGlmICh0aGlzLmV4ZWN1dGlvblRpbWVyc1tpZF0pXHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmV4ZWN1dGlvblRpbWVyc1tpZF0pO1xyXG5cclxuICAgICAgICAvL1JpY3JlbyBpbCB0aW1lb3V0IHBlciBlc2VndWlyZSBxdWVsbGEgZnVuemlvbmUgZG9wbyB0aHJvdHRsZVRpbWUgbWlsbGlzZWNvbmRpXHJcbiAgICAgICAgdGhpcy5leGVjdXRpb25UaW1lcnNbaWRdID0gc2V0VGltZW91dCgoKSA9PiB7IGZ1bmMoKTsgdGhpcy5leGVjdXRpb25UaW1lcnNbaWRdID0gbnVsbDsgfSwgdGhyb3R0bGVUaW1lKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Token che indica il prefisso delle searchView che serve per storicizzarle evitando di tirarsi in memoria anche tutti gli oggetti. Se vuoto viene supposto 'Hot'
|
|
4
|
-
*/
|
|
5
|
-
export const APPSEARCH_PREFIX = new InjectionToken('APPSEARCH_PREFIX');
|
|
6
|
-
/**
|
|
7
|
-
* Token che indica se i metodi di estensione che utilizzano le date permettono l'uso di date in utc
|
|
8
|
-
*/
|
|
9
|
-
export const EXT_ALLOW_UTC = new InjectionToken('EXT_ALLOW_UTC');
|
|
10
|
-
/** Modalità di Debug */
|
|
11
|
-
export const EXT_DEBUG_MODE = new InjectionToken('EXT_DEBUG_MODE');
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Token che indica il prefisso delle searchView che serve per storicizzarle evitando di tirarsi in memoria anche tutti gli oggetti. Se vuoto viene supposto 'Hot'
|
|
4
|
+
*/
|
|
5
|
+
export const APPSEARCH_PREFIX = new InjectionToken('APPSEARCH_PREFIX');
|
|
6
|
+
/**
|
|
7
|
+
* Token che indica se i metodi di estensione che utilizzano le date permettono l'uso di date in utc
|
|
8
|
+
*/
|
|
9
|
+
export const EXT_ALLOW_UTC = new InjectionToken('EXT_ALLOW_UTC');
|
|
10
|
+
/** Modalità di Debug */
|
|
11
|
+
export const EXT_DEBUG_MODE = new InjectionToken('EXT_DEBUG_MODE');
|
|
12
12
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL3Rva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQTJCLElBQUksY0FBYyxDQUFTLGtCQUFrQixDQUFDLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTRCLElBQUksY0FBYyxDQUFVLGVBQWUsQ0FBQyxDQUFDO0FBRW5HLHdCQUF3QjtBQUN4QixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQTRCLElBQUksY0FBYyxDQUFVLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRva2VuIGNoZSBpbmRpY2EgaWwgcHJlZmlzc28gZGVsbGUgc2VhcmNoVmlldyBjaGUgc2VydmUgcGVyIHN0b3JpY2l6emFybGUgZXZpdGFuZG8gZGkgdGlyYXJzaSBpbiBtZW1vcmlhIGFuY2hlIHR1dHRpIGdsaSBvZ2dldHRpLiBTZSB2dW90byB2aWVuZSBzdXBwb3N0byAnSG90J1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEFQUFNFQVJDSF9QUkVGSVg6IEluamVjdGlvblRva2VuPHN0cmluZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignQVBQU0VBUkNIX1BSRUZJWCcpO1xyXG5cclxuLyoqXHJcbiAqIFRva2VuIGNoZSBpbmRpY2Egc2UgaSBtZXRvZGkgZGkgZXN0ZW5zaW9uZSBjaGUgdXRpbGl6emFubyBsZSBkYXRlIHBlcm1ldHRvbm8gbCd1c28gZGkgZGF0ZSBpbiB1dGNcclxuICovXHJcbmV4cG9ydCBjb25zdCBFWFRfQUxMT1dfVVRDOiBJbmplY3Rpb25Ub2tlbjxib29sZWFuPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignRVhUX0FMTE9XX1VUQycpO1xyXG5cclxuLyoqIE1vZGFsaXTDoCBkaSBEZWJ1ZyAqL1xyXG5leHBvcnQgY29uc3QgRVhUX0RFQlVHX01PREU6IEluamVjdGlvblRva2VuPGJvb2xlYW4+ID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KCdFWFRfREVCVUdfTU9ERScpOyJdfQ==
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of extensions
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/modules/extensions.module';
|
|
5
|
-
export * from './lib/services/extensions.base';
|
|
6
|
-
export * from './lib/services/extensions.dates.service';
|
|
7
|
-
export * from './lib/services/extensions.exports.service';
|
|
8
|
-
export * from './lib/services/extensions.clipboard.service';
|
|
9
|
-
export * from './lib/services/extensions.hashing.service';
|
|
10
|
-
export * from './lib/services/extensions.messages.service';
|
|
11
|
-
export * from './lib/services/extensions.utilities.service';
|
|
12
|
-
export * from './lib/services/extensions.embedding.service';
|
|
13
|
-
export * from './lib/tokens';
|
|
14
|
-
export * from './lib/models/CallResult';
|
|
15
|
-
export * from './lib/models/CsvHeaders';
|
|
16
|
-
export * from './lib/models/GenericItem';
|
|
17
|
-
export * from './lib/pipes/loc_date.pipe';
|
|
18
|
-
/** Intercom */
|
|
19
|
-
export * from './lib/models/InboundMessageTypes';
|
|
20
|
-
export * from './lib/models/InterComMessage';
|
|
21
|
-
export * from './lib/services/extensions.intercom.service';
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of extensions
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/modules/extensions.module';
|
|
5
|
+
export * from './lib/services/extensions.base';
|
|
6
|
+
export * from './lib/services/extensions.dates.service';
|
|
7
|
+
export * from './lib/services/extensions.exports.service';
|
|
8
|
+
export * from './lib/services/extensions.clipboard.service';
|
|
9
|
+
export * from './lib/services/extensions.hashing.service';
|
|
10
|
+
export * from './lib/services/extensions.messages.service';
|
|
11
|
+
export * from './lib/services/extensions.utilities.service';
|
|
12
|
+
export * from './lib/services/extensions.embedding.service';
|
|
13
|
+
export * from './lib/tokens';
|
|
14
|
+
export * from './lib/models/CallResult';
|
|
15
|
+
export * from './lib/models/CsvHeaders';
|
|
16
|
+
export * from './lib/models/GenericItem';
|
|
17
|
+
export * from './lib/pipes/loc_date.pipe';
|
|
18
|
+
/** Intercom */
|
|
19
|
+
export * from './lib/models/InboundMessageTypes';
|
|
20
|
+
export * from './lib/models/InterComMessage';
|
|
21
|
+
export * from './lib/services/extensions.intercom.service';
|
|
22
22
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGVBQWU7QUFDZixjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBleHRlbnNpb25zXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2V4dGVuc2lvbnMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5iYXNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5kYXRlcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5leHBvcnRzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmNsaXBib2FyZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5oYXNoaW5nLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLm1lc3NhZ2VzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLnV0aWxpdGllcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5lbWJlZGRpbmcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9DYWxsUmVzdWx0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL0NzdkhlYWRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvR2VuZXJpY0l0ZW0nO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvbG9jX2RhdGUucGlwZSc7XHJcblxyXG4vKiogSW50ZXJjb20gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL0luYm91bmRNZXNzYWdlVHlwZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvSW50ZXJDb21NZXNzYWdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5pbnRlcmNvbS5zZXJ2aWNlJzsiXX0=
|