@esfaenza/extensions 18.2.2 → 19.2.1

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.
@@ -12,7 +12,9 @@ import * as i0 from "@angular/core";
12
12
  *
13
13
  * @param {Type<LocalizationService>} loc Tipo ereditato dal LocalizationService che può essere creato a runtime sotto contesto della DI di Angular
14
14
  */
15
- export declare function ExportLocalization(loc: Type<LocalizationService>): <T extends new (...args: any[]) => {}>(constructor: T) => {
15
+ export declare function ExportLocalization(loc: Type<LocalizationService>): <T extends {
16
+ new (...args: any[]): {};
17
+ }>(constructor: T) => {
16
18
  new (...args: any[]): {
17
19
  __loc__: Type<LocalizationService>;
18
20
  };
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@esfaenza/extensions",
3
- "version": "18.2.2",
3
+ "version": "19.2.1",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },
7
7
  "peerDependencies": {
8
- "@esfaenza/localizations": "^18.2.2",
9
- "@angular/common": "^18.2.13",
10
- "@angular/core": "^18.2.13",
8
+ "@esfaenza/localizations": "^19.2.1",
9
+ "@angular/common": "^19.2.14",
10
+ "@angular/core": "^19.2.14",
11
11
  "sweetalert2": "11.17.2",
12
- "ngx-toastr": "18.0.0",
12
+ "ngx-toastr": "19.0.0",
13
13
  "dayjs": "1.11.13",
14
14
  "exceljs": "4.4.0",
15
15
  "stream": "0.0.3"
@@ -22,8 +22,6 @@
22
22
  },
23
23
  ".": {
24
24
  "types": "./index.d.ts",
25
- "esm2022": "./esm2022/esfaenza-extensions.mjs",
26
- "esm": "./esm2022/esfaenza-extensions.mjs",
27
25
  "default": "./fesm2022/esfaenza-extensions.mjs"
28
26
  }
29
27
  },
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNmYWVuemEtZXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2VzZmFlbnphLWV4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,24 +0,0 @@
1
- /**
2
- * Classe che rappresenta una risposta ricevuta da un Backend
3
- */
4
- export class CallResult {
5
- /** Tempo impiegato perché la chiamata terminasse */
6
- elapsedtime;
7
- /** **true** se tutto è andato bene, **false** altrimenti */
8
- success;
9
- /** Indica se ci sono errori */
10
- haserror;
11
- /** Codice dell'eventuale errore restituito */
12
- errorcode;
13
- /** Log dell'eventuale errore restituito */
14
- error;
15
- /** ID dell'eventuale entità relativa a questa risposta */
16
- entityid;
17
- /** Indica se ci sono warning */
18
- haswarning;
19
- /** Log dell'eventuale warning restituito */
20
- warning;
21
- /** Entità collegata a questo CallResult */
22
- entity;
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbFJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9tb2RlbHMvQ2FsbFJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBRW5CLG9EQUFvRDtJQUNwRCxXQUFXLENBQVM7SUFDcEIsNERBQTREO0lBQzVELE9BQU8sQ0FBVTtJQUNqQiwrQkFBK0I7SUFDL0IsUUFBUSxDQUFVO0lBQ2xCLDhDQUE4QztJQUM5QyxTQUFTLENBQVM7SUFDbEIsMkNBQTJDO0lBQzNDLEtBQUssQ0FBUztJQUNkLDBEQUEwRDtJQUMxRCxRQUFRLENBQU07SUFDZCxnQ0FBZ0M7SUFDaEMsVUFBVSxDQUFVO0lBQ3BCLDRDQUE0QztJQUM1QyxPQUFPLENBQVM7SUFDaEIsMkNBQTJDO0lBQzNDLE1BQU0sQ0FBSTtDQUNiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENsYXNzZSBjaGUgcmFwcHJlc2VudGEgdW5hIHJpc3Bvc3RhIHJpY2V2dXRhIGRhIHVuIEJhY2tlbmRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDYWxsUmVzdWx0PFQgPSBuZXZlcj57XHJcblxyXG4gICAgLyoqIFRlbXBvIGltcGllZ2F0byBwZXJjaMOpIGxhIGNoaWFtYXRhIHRlcm1pbmFzc2UgKi9cclxuICAgIGVsYXBzZWR0aW1lOiBzdHJpbmc7XHJcbiAgICAvKiogKip0cnVlKiogc2UgdHV0dG8gw6ggYW5kYXRvIGJlbmUsICoqZmFsc2UqKiBhbHRyaW1lbnRpICovXHJcbiAgICBzdWNjZXNzOiBib29sZWFuO1xyXG4gICAgLyoqIEluZGljYSBzZSBjaSBzb25vIGVycm9yaSAqL1xyXG4gICAgaGFzZXJyb3I6IGJvb2xlYW47XHJcbiAgICAvKiogQ29kaWNlIGRlbGwnZXZlbnR1YWxlIGVycm9yZSByZXN0aXR1aXRvICovXHJcbiAgICBlcnJvcmNvZGU6IHN0cmluZztcclxuICAgIC8qKiBMb2cgZGVsbCdldmVudHVhbGUgZXJyb3JlIHJlc3RpdHVpdG8gKi9cclxuICAgIGVycm9yOiBzdHJpbmc7XHJcbiAgICAvKiogSUQgZGVsbCdldmVudHVhbGUgZW50aXTDoCByZWxhdGl2YSBhIHF1ZXN0YSByaXNwb3N0YSAqL1xyXG4gICAgZW50aXR5aWQ6IGFueTtcclxuICAgIC8qKiBJbmRpY2Egc2UgY2kgc29ubyB3YXJuaW5nICovXHJcbiAgICBoYXN3YXJuaW5nOiBib29sZWFuO1xyXG4gICAgLyoqIExvZyBkZWxsJ2V2ZW50dWFsZSB3YXJuaW5nIHJlc3RpdHVpdG8gKi9cclxuICAgIHdhcm5pbmc6IHN0cmluZztcclxuICAgIC8qKiBFbnRpdMOgIGNvbGxlZ2F0YSBhIHF1ZXN0byBDYWxsUmVzdWx0ICovXHJcbiAgICBlbnRpdHk6IFQ7XHJcbn0iXX0=
@@ -1,26 +0,0 @@
1
- /**
2
- * Header per il file CSV che sta venendo generato
3
- */
4
- export class CsvHeaders {
5
- /**
6
- * Intestazione della colonna
7
- */
8
- label;
9
- /**
10
- * Nome della proprietà visualizzata in questa colonna
11
- */
12
- key;
13
- /**
14
- * Ordine della colonna
15
- */
16
- order;
17
- /**
18
- * Nome della chiave della proprietà lato es-table
19
- */
20
- propKey;
21
- /**
22
- * Tipo della colonna (per eventuali formattazioni se si scarica in Excel)
23
- */
24
- type;
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3N2SGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9tb2RlbHMvQ3N2SGVhZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBRXJCOztPQUVHO0lBQ0gsS0FBSyxDQUFTO0lBRWQ7O09BRUc7SUFDSCxHQUFHLENBQVM7SUFFWjs7T0FFRztJQUNILEtBQUssQ0FBUztJQUVkOztPQUVHO0lBQ0gsT0FBTyxDQUFTO0lBRWhCOztPQUVHO0lBQ0gsSUFBSSxDQUErQjtDQUNwQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBIZWFkZXIgcGVyIGlsIGZpbGUgQ1NWIGNoZSBzdGEgdmVuZW5kbyBnZW5lcmF0b1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENzdkhlYWRlcnMge1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlc3RhemlvbmUgZGVsbGEgY29sb25uYVxyXG4gICAqL1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE5vbWUgZGVsbGEgcHJvcHJpZXTDoCB2aXN1YWxpenphdGEgaW4gcXVlc3RhIGNvbG9ubmFcclxuICAgKi9cclxuICBrZXk6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogT3JkaW5lIGRlbGxhIGNvbG9ubmFcclxuICAgKi9cclxuICBvcmRlcjogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBOb21lIGRlbGxhIGNoaWF2ZSBkZWxsYSBwcm9wcmlldMOgIGxhdG8gZXMtdGFibGVcclxuICAgKi9cclxuICBwcm9wS2V5OiBzdHJpbmc7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogVGlwbyBkZWxsYSBjb2xvbm5hIChwZXIgZXZlbnR1YWxpIGZvcm1hdHRhemlvbmkgc2Ugc2kgc2NhcmljYSBpbiBFeGNlbClcclxuICAgKi9cclxuICB0eXBlOiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2RhdGUnO1xyXG59XHJcbiJdfQ==
@@ -1,32 +0,0 @@
1
- /**
2
- * Suffisso della proprietà da generare in cui salvare il navigatore
3
- * utilizzato dal servizio di esportazione per prendere il valore delle proprietà di un oggetto
4
- */
5
- export const csvValueNavigator = "_csvnav";
6
- /** Suffisso con le informazioni del tipo per le esportazioni di oggetti */
7
- export const csvValueType = "_csvtype";
8
- /** Suffisso della proprietà da generare in cui salvare l'ordine di esportazione */
9
- export const csvOrdPrefix = "_csvord";
10
- /** Suffisso della proprietà da generare in cui salvare la visibilità di questa proprietà */
11
- export const csvVisPrefix = "_csvvis";
12
- /** Suffisso della proprietà da generare in cui salvare il nome della colonna in cui salvare questa proprietà */
13
- export const csvHdrPrefix = "_csvhdr";
14
- /** Suffisso della proprietà da generare in cui salvare il codice del th a cui si riferisce questo campo */
15
- export const csvPropKey = "_csvkey";
16
- /** Suffisso della proprietà da generare in cui salvare il valore da prendere per una proprietà di tipo Lista */
17
- export const listCsvValPrefix = "_listcsvval";
18
- /** Suffisso della proprietà da generare in cui salvare l'Header della proprietà di tipo Lista relativo al valore esportato nella proprietà con suffisso **listCsvValPrefix** */
19
- export const listCsvHdrPrefix = "_listcsvhdr";
20
- /** Suffisso della proprietà da generare in cui salvare il formato della proprietà di tipo Lista relativo al valore esportato nella proprietà con suffisso **listCsvValPrefix** */
21
- export const listCsvValFormat = "_listcsvvalformat";
22
- /** Suffisso della proprietà da generare in cui salvare il valore da prendere per una proprietà di tipo Dizionario */
23
- export const dictionaryCsvValPrefix = "_flatlistcsvval";
24
- /** Suffisso della proprietà da generare in cui salvare l'Header della proprietà di un Dizionario relativo al valore esportato nella proprietà con suffisso **dictionaryCsvValPrefix** */
25
- export const dictionaryCsvHdrPrefix = "_flatlistcsvhdr";
26
- /** Suffisso della proprietà da generare in cui salvare il formato della proprietà che si sta esportando */
27
- export const csvFormatPrefix = "_csvfmt";
28
- /** Nome della proprietà che contiene tutti i nomi di tutte le proprietà da esportare */
29
- export const exportList = "__export_list__";
30
- /** Nome della proprietà che contiene la classe di localizzazione da utilizzare per una data esportazione */
31
- export const locProperty = "__loc__";
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0Q29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL21vZGVscy9FeHBvcnRDb25zdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQVcsU0FBUyxDQUFDO0FBQ25ELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVcsVUFBVSxDQUFDO0FBQy9DLG1GQUFtRjtBQUNuRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVcsU0FBUyxDQUFDO0FBQzlDLDRGQUE0RjtBQUM1RixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVcsU0FBUyxDQUFDO0FBQzlDLGdIQUFnSDtBQUNoSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVcsU0FBUyxDQUFDO0FBQzlDLDJHQUEyRztBQUMzRyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQVcsU0FBUyxDQUFDO0FBQzVDLGdIQUFnSDtBQUNoSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBVyxhQUFhLENBQUM7QUFDdEQsZ0xBQWdMO0FBQ2hMLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFXLGFBQWEsQ0FBQztBQUN0RCxrTEFBa0w7QUFDbEwsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQVcsbUJBQW1CLENBQUM7QUFDNUQscUhBQXFIO0FBQ3JILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFXLGlCQUFpQixDQUFDO0FBQ2hFLHlMQUF5TDtBQUN6TCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBVyxpQkFBaUIsQ0FBQztBQUNoRSwyR0FBMkc7QUFDM0csTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFXLFNBQVMsQ0FBQztBQUNqRCx3RkFBd0Y7QUFDeEYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFXLGlCQUFpQixDQUFDO0FBQ3BELDRHQUE0RztBQUM1RyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQVcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFN1ZmZpc3NvIGRlbGxhIHByb3ByaWV0w6AgZGEgZ2VuZXJhcmUgaW4gY3VpIHNhbHZhcmUgaWwgbmF2aWdhdG9yZSBcclxuICogdXRpbGl6emF0byBkYWwgc2Vydml6aW8gZGkgZXNwb3J0YXppb25lIHBlciBwcmVuZGVyZSBpbCB2YWxvcmUgZGVsbGUgcHJvcHJpZXTDoCBkaSB1biBvZ2dldHRvXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY3N2VmFsdWVOYXZpZ2F0b3I6IHN0cmluZyA9IFwiX2Nzdm5hdlwiO1xyXG4vKiogU3VmZmlzc28gY29uIGxlIGluZm9ybWF6aW9uaSBkZWwgdGlwbyBwZXIgbGUgZXNwb3J0YXppb25pIGRpIG9nZ2V0dGkgKi9cclxuZXhwb3J0IGNvbnN0IGNzdlZhbHVlVHlwZTogc3RyaW5nID0gXCJfY3N2dHlwZVwiO1xyXG4vKiogU3VmZmlzc28gZGVsbGEgcHJvcHJpZXTDoCBkYSBnZW5lcmFyZSBpbiBjdWkgc2FsdmFyZSBsJ29yZGluZSBkaSBlc3BvcnRhemlvbmUgKi9cclxuZXhwb3J0IGNvbnN0IGNzdk9yZFByZWZpeDogc3RyaW5nID0gXCJfY3N2b3JkXCI7XHJcbi8qKiBTdWZmaXNzbyBkZWxsYSBwcm9wcmlldMOgIGRhIGdlbmVyYXJlIGluIGN1aSBzYWx2YXJlIGxhIHZpc2liaWxpdMOgIGRpIHF1ZXN0YSBwcm9wcmlldMOgICovXHJcbmV4cG9ydCBjb25zdCBjc3ZWaXNQcmVmaXg6IHN0cmluZyA9IFwiX2NzdnZpc1wiO1xyXG4vKiogU3VmZmlzc28gZGVsbGEgcHJvcHJpZXTDoCBkYSBnZW5lcmFyZSBpbiBjdWkgc2FsdmFyZSBpbCBub21lIGRlbGxhIGNvbG9ubmEgaW4gY3VpIHNhbHZhcmUgcXVlc3RhIHByb3ByaWV0w6AgKi9cclxuZXhwb3J0IGNvbnN0IGNzdkhkclByZWZpeDogc3RyaW5nID0gXCJfY3N2aGRyXCI7XHJcbi8qKiBTdWZmaXNzbyBkZWxsYSBwcm9wcmlldMOgIGRhIGdlbmVyYXJlIGluIGN1aSBzYWx2YXJlIGlsIGNvZGljZSBkZWwgdGggYSBjdWkgc2kgcmlmZXJpc2NlIHF1ZXN0byBjYW1wbyAqL1xyXG5leHBvcnQgY29uc3QgY3N2UHJvcEtleTogc3RyaW5nID0gXCJfY3N2a2V5XCI7XHJcbi8qKiBTdWZmaXNzbyBkZWxsYSBwcm9wcmlldMOgIGRhIGdlbmVyYXJlIGluIGN1aSBzYWx2YXJlIGlsIHZhbG9yZSBkYSBwcmVuZGVyZSBwZXIgdW5hIHByb3ByaWV0w6AgZGkgdGlwbyBMaXN0YSAqL1xyXG5leHBvcnQgY29uc3QgbGlzdENzdlZhbFByZWZpeDogc3RyaW5nID0gXCJfbGlzdGNzdnZhbFwiO1xyXG4vKiogU3VmZmlzc28gZGVsbGEgcHJvcHJpZXTDoCBkYSBnZW5lcmFyZSBpbiBjdWkgc2FsdmFyZSBsJ0hlYWRlciBkZWxsYSBwcm9wcmlldMOgIGRpIHRpcG8gTGlzdGEgcmVsYXRpdm8gYWwgdmFsb3JlIGVzcG9ydGF0byBuZWxsYSBwcm9wcmlldMOgIGNvbiBzdWZmaXNzbyAqKmxpc3RDc3ZWYWxQcmVmaXgqKiAqL1xyXG5leHBvcnQgY29uc3QgbGlzdENzdkhkclByZWZpeDogc3RyaW5nID0gXCJfbGlzdGNzdmhkclwiO1xyXG4vKiogU3VmZmlzc28gZGVsbGEgcHJvcHJpZXTDoCBkYSBnZW5lcmFyZSBpbiBjdWkgc2FsdmFyZSBpbCBmb3JtYXRvIGRlbGxhIHByb3ByaWV0w6AgZGkgdGlwbyBMaXN0YSByZWxhdGl2byBhbCB2YWxvcmUgZXNwb3J0YXRvIG5lbGxhIHByb3ByaWV0w6AgY29uIHN1ZmZpc3NvICoqbGlzdENzdlZhbFByZWZpeCoqICovXHJcbmV4cG9ydCBjb25zdCBsaXN0Q3N2VmFsRm9ybWF0OiBzdHJpbmcgPSBcIl9saXN0Y3N2dmFsZm9ybWF0XCI7XHJcbi8qKiBTdWZmaXNzbyBkZWxsYSBwcm9wcmlldMOgIGRhIGdlbmVyYXJlIGluIGN1aSBzYWx2YXJlIGlsIHZhbG9yZSBkYSBwcmVuZGVyZSBwZXIgdW5hIHByb3ByaWV0w6AgZGkgdGlwbyBEaXppb25hcmlvICovXHJcbmV4cG9ydCBjb25zdCBkaWN0aW9uYXJ5Q3N2VmFsUHJlZml4OiBzdHJpbmcgPSBcIl9mbGF0bGlzdGNzdnZhbFwiO1xyXG4vKiogU3VmZmlzc28gZGVsbGEgcHJvcHJpZXTDoCBkYSBnZW5lcmFyZSBpbiBjdWkgc2FsdmFyZSBsJ0hlYWRlciBkZWxsYSBwcm9wcmlldMOgIGRpIHVuIERpemlvbmFyaW8gcmVsYXRpdm8gYWwgdmFsb3JlIGVzcG9ydGF0byBuZWxsYSBwcm9wcmlldMOgIGNvbiBzdWZmaXNzbyAqKmRpY3Rpb25hcnlDc3ZWYWxQcmVmaXgqKiAqL1xyXG5leHBvcnQgY29uc3QgZGljdGlvbmFyeUNzdkhkclByZWZpeDogc3RyaW5nID0gXCJfZmxhdGxpc3Rjc3ZoZHJcIjtcclxuLyoqIFN1ZmZpc3NvIGRlbGxhIHByb3ByaWV0w6AgZGEgZ2VuZXJhcmUgaW4gY3VpIHNhbHZhcmUgaWwgZm9ybWF0byBkZWxsYSBwcm9wcmlldMOgIGNoZSBzaSBzdGEgZXNwb3J0YW5kbyAqL1xyXG5leHBvcnQgY29uc3QgY3N2Rm9ybWF0UHJlZml4OiBzdHJpbmcgPSBcIl9jc3ZmbXRcIjtcclxuLyoqIE5vbWUgZGVsbGEgcHJvcHJpZXTDoCBjaGUgY29udGllbmUgdHV0dGkgaSBub21pIGRpIHR1dHRlIGxlIHByb3ByaWV0w6AgZGEgZXNwb3J0YXJlICovXHJcbmV4cG9ydCBjb25zdCBleHBvcnRMaXN0OiBzdHJpbmcgPSBcIl9fZXhwb3J0X2xpc3RfX1wiO1xyXG4vKiogTm9tZSBkZWxsYSBwcm9wcmlldMOgIGNoZSBjb250aWVuZSBsYSBjbGFzc2UgZGkgbG9jYWxpenphemlvbmUgZGEgdXRpbGl6emFyZSBwZXIgdW5hIGRhdGEgZXNwb3J0YXppb25lICovXHJcbmV4cG9ydCBjb25zdCBsb2NQcm9wZXJ0eTogc3RyaW5nID0gXCJfX2xvY19fXCI7Il19
@@ -1,10 +0,0 @@
1
- /** Classe di configurazione per il modulo di estensione */
2
- export class ExtensionsModuleConfig {
3
- /** Indica se i metodi di estensione che utilizzano le date permettono l'uso di date in utc */
4
- allow_utc;
5
- /** Prefisso delle searchView che serve per storicizzarle evitando di tirarsi in memoria anche tutti gli oggetti. Se vuoto viene supposto 'Hot' */
6
- appsearch_prefix;
7
- /** Attiva la modalità di debug per l'esposizione di messaggi significativi */
8
- debugMode;
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0ZW5zaW9uc01vZHVsZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9tb2RlbHMvRXh0ZW5zaW9uc01vZHVsZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyw4RkFBOEY7SUFDOUYsU0FBUyxDQUFXO0lBRXBCLGtKQUFrSjtJQUNsSixnQkFBZ0IsQ0FBVTtJQUUxQiw4RUFBOEU7SUFDOUUsU0FBUyxDQUFXO0NBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIENsYXNzZSBkaSBjb25maWd1cmF6aW9uZSBwZXIgaWwgbW9kdWxvIGRpIGVzdGVuc2lvbmUgKi9cclxuZXhwb3J0IGNsYXNzIEV4dGVuc2lvbnNNb2R1bGVDb25maWcge1xyXG5cclxuICAvKiogSW5kaWNhIHNlIGkgbWV0b2RpIGRpIGVzdGVuc2lvbmUgY2hlIHV0aWxpenphbm8gbGUgZGF0ZSBwZXJtZXR0b25vIGwndXNvIGRpIGRhdGUgaW4gdXRjICovXHJcbiAgYWxsb3dfdXRjPzogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFByZWZpc3NvIGRlbGxlIHNlYXJjaFZpZXcgY2hlIHNlcnZlIHBlciBzdG9yaWNpenphcmxlIGV2aXRhbmRvIGRpIHRpcmFyc2kgaW4gbWVtb3JpYSBhbmNoZSB0dXR0aSBnbGkgb2dnZXR0aS4gU2UgdnVvdG8gdmllbmUgc3VwcG9zdG8gJ0hvdCcgKi9cclxuICBhcHBzZWFyY2hfcHJlZml4Pzogc3RyaW5nO1xyXG5cclxuICAvKiogQXR0aXZhIGxhIG1vZGFsaXTDoCBkaSBkZWJ1ZyBwZXIgbCdlc3Bvc2l6aW9uZSBkaSBtZXNzYWdnaSBzaWduaWZpY2F0aXZpICovXHJcbiAgZGVidWdNb2RlPzogYm9vbGVhbjtcclxufSJdfQ==
@@ -1,10 +0,0 @@
1
- /**
2
- * Rappresentazione di un oggetto generico
3
- */
4
- export class GenericItem {
5
- /**
6
- * Dizionario Chiave - Valore delle proprietà di questo oggetto generico
7
- */
8
- properties;
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJpY0l0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL3NyYy9saWIvbW9kZWxzL0dlbmVyaWNJdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFFdEI7O09BRUc7SUFDSCxVQUFVLENBQXlCO0NBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFJhcHByZXNlbnRhemlvbmUgZGkgdW4gb2dnZXR0byBnZW5lcmljb1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNJdGVtIHtcclxuXHJcbiAgLyoqXHJcbiAgICogRGl6aW9uYXJpbyBDaGlhdmUgLSBWYWxvcmUgZGVsbGUgcHJvcHJpZXTDoCBkaSBxdWVzdG8gb2dnZXR0byBnZW5lcmljb1xyXG4gICAqL1xyXG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbn1cclxuIl19
@@ -1,7 +0,0 @@
1
- /** Enumeratore dei tipi di messaggio che i moduli esterni possono contattare sull'applicazione principale */
2
- export var InboundMessageTypes;
3
- (function (InboundMessageTypes) {
4
- /** Evento di navigazione */
5
- InboundMessageTypes[InboundMessageTypes["Navigation"] = 0] = "Navigation";
6
- })(InboundMessageTypes || (InboundMessageTypes = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5ib3VuZE1lc3NhZ2VUeXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9tb2RlbHMvSW5ib3VuZE1lc3NhZ2VUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFFN0csTUFBTSxDQUFOLElBQVksbUJBR1g7QUFIRCxXQUFZLG1CQUFtQjtJQUMzQiw0QkFBNEI7SUFDNUIseUVBQVUsQ0FBQTtBQUNkLENBQUMsRUFIVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBRzlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEVudW1lcmF0b3JlIGRlaSB0aXBpIGRpIG1lc3NhZ2dpbyBjaGUgaSBtb2R1bGkgZXN0ZXJuaSBwb3Nzb25vIGNvbnRhdHRhcmUgc3VsbCdhcHBsaWNhemlvbmUgcHJpbmNpcGFsZSAqL1xyXG5cclxuZXhwb3J0IGVudW0gSW5ib3VuZE1lc3NhZ2VUeXBlcyB7XHJcbiAgICAvKiogRXZlbnRvIGRpIG5hdmlnYXppb25lICovXHJcbiAgICBOYXZpZ2F0aW9uXHJcbn1cclxuIl19
@@ -1,16 +0,0 @@
1
- /** Classe che rappresenta un generico messaggio scambiato fra applicazione e moduli */
2
- export class InterComMessage {
3
- type;
4
- message;
5
- /**
6
- * Costruttore
7
- *
8
- * @param type Tipo di messaggio
9
- * @param message Contenuto del messaggio
10
- */
11
- constructor(type, message) {
12
- this.type = type;
13
- this.message = message;
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZXJDb21NZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL21vZGVscy9JbnRlckNvbU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUZBQXVGO0FBRXZGLE1BQU0sT0FBTyxlQUFlO0lBT0w7SUFBa0I7SUFOckM7Ozs7O09BS0c7SUFDSCxZQUFtQixJQUFTLEVBQVMsT0FBWTtRQUE5QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBSztJQUFJLENBQUM7Q0FDekQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQ2xhc3NlIGNoZSByYXBwcmVzZW50YSB1biBnZW5lcmljbyBtZXNzYWdnaW8gc2NhbWJpYXRvIGZyYSBhcHBsaWNhemlvbmUgZSBtb2R1bGkgKi9cclxuXHJcbmV4cG9ydCBjbGFzcyBJbnRlckNvbU1lc3NhZ2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb3N0cnV0dG9yZVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0eXBlIFRpcG8gZGkgbWVzc2FnZ2lvXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBDb250ZW51dG8gZGVsIG1lc3NhZ2dpb1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdHlwZTogYW55LCBwdWJsaWMgbWVzc2FnZTogYW55KSB7IH1cclxufVxyXG4iXX0=
@@ -1,25 +0,0 @@
1
- /**
2
- * Mappatura del TypeCode del C#
3
- */
4
- export var TypeCode;
5
- (function (TypeCode) {
6
- /** @ignore */ TypeCode[TypeCode["Empty"] = 0] = "Empty";
7
- /** @ignore */ TypeCode[TypeCode["Obj"] = 1] = "Obj";
8
- /** @ignore */ TypeCode[TypeCode["DBNull"] = 2] = "DBNull";
9
- /** @ignore */ TypeCode[TypeCode["Boolean"] = 3] = "Boolean";
10
- /** @ignore */ TypeCode[TypeCode["Char"] = 4] = "Char";
11
- /** @ignore */ TypeCode[TypeCode["SByte"] = 5] = "SByte";
12
- /** @ignore */ TypeCode[TypeCode["Byte"] = 6] = "Byte";
13
- /** @ignore */ TypeCode[TypeCode["Int16"] = 7] = "Int16";
14
- /** @ignore */ TypeCode[TypeCode["UInt16"] = 8] = "UInt16";
15
- /** @ignore */ TypeCode[TypeCode["Int32"] = 9] = "Int32";
16
- /** @ignore */ TypeCode[TypeCode["UInt32"] = 10] = "UInt32";
17
- /** @ignore */ TypeCode[TypeCode["Int64"] = 11] = "Int64";
18
- /** @ignore */ TypeCode[TypeCode["UInt64"] = 12] = "UInt64";
19
- /** @ignore */ TypeCode[TypeCode["Single"] = 13] = "Single";
20
- /** @ignore */ TypeCode[TypeCode["Double"] = 14] = "Double";
21
- /** @ignore */ TypeCode[TypeCode["Decimal"] = 15] = "Decimal";
22
- /** @ignore */ TypeCode[TypeCode["DateTime"] = 16] = "DateTime";
23
- /** @ignore */ TypeCode[TypeCode["String"] = 18] = "String";
24
- })(TypeCode || (TypeCode = {}));
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZUNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL3NyYy9saWIvbW9kZWxzL1R5cGVDb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksUUFtQlg7QUFuQkQsV0FBWSxRQUFRO0lBQ2hCLGNBQWMsQ0FBQyx5Q0FBUyxDQUFBO0lBQ3hCLGNBQWMsQ0FBQyxxQ0FBTyxDQUFBO0lBQ3RCLGNBQWMsQ0FBQywyQ0FBVSxDQUFBO0lBQ3pCLGNBQWMsQ0FBQyw2Q0FBVyxDQUFBO0lBQzFCLGNBQWMsQ0FBQyx1Q0FBUSxDQUFBO0lBQ3ZCLGNBQWMsQ0FBQyx5Q0FBUyxDQUFBO0lBQ3hCLGNBQWMsQ0FBQyx1Q0FBUSxDQUFBO0lBQ3ZCLGNBQWMsQ0FBQyx5Q0FBUyxDQUFBO0lBQ3hCLGNBQWMsQ0FBQywyQ0FBVSxDQUFBO0lBQ3pCLGNBQWMsQ0FBQyx5Q0FBUyxDQUFBO0lBQ3hCLGNBQWMsQ0FBQyw0Q0FBVyxDQUFBO0lBQzFCLGNBQWMsQ0FBQywwQ0FBVSxDQUFBO0lBQ3pCLGNBQWMsQ0FBQyw0Q0FBVyxDQUFBO0lBQzFCLGNBQWMsQ0FBQyw0Q0FBVyxDQUFBO0lBQzFCLGNBQWMsQ0FBQyw0Q0FBVyxDQUFBO0lBQzFCLGNBQWMsQ0FBQyw4Q0FBWSxDQUFBO0lBQzNCLGNBQWMsQ0FBQyxnREFBYSxDQUFBO0lBQzVCLGNBQWMsQ0FBQyw0Q0FBVyxDQUFBO0FBQzlCLENBQUMsRUFuQlcsUUFBUSxLQUFSLFFBQVEsUUFtQm5CIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8qKlxyXG4gKiBNYXBwYXR1cmEgZGVsIFR5cGVDb2RlIGRlbCBDI1xyXG4gKi9cclxuZXhwb3J0IGVudW0gVHlwZUNvZGUge1xyXG4gICAgLyoqIEBpZ25vcmUgKi8gRW1wdHkgPSAwLFxyXG4gICAgLyoqIEBpZ25vcmUgKi8gT2JqID0gMSxcclxuICAgIC8qKiBAaWdub3JlICovIERCTnVsbCA9IDIsXHJcbiAgICAvKiogQGlnbm9yZSAqLyBCb29sZWFuID0gMyxcclxuICAgIC8qKiBAaWdub3JlICovIENoYXIgPSA0LFxyXG4gICAgLyoqIEBpZ25vcmUgKi8gU0J5dGUgPSA1LFxyXG4gICAgLyoqIEBpZ25vcmUgKi8gQnl0ZSA9IDYsXHJcbiAgICAvKiogQGlnbm9yZSAqLyBJbnQxNiA9IDcsXHJcbiAgICAvKiogQGlnbm9yZSAqLyBVSW50MTYgPSA4LFxyXG4gICAgLyoqIEBpZ25vcmUgKi8gSW50MzIgPSA5LFxyXG4gICAgLyoqIEBpZ25vcmUgKi8gVUludDMyID0gMTAsXHJcbiAgICAvKiogQGlnbm9yZSAqLyBJbnQ2NCA9IDExLFxyXG4gICAgLyoqIEBpZ25vcmUgKi8gVUludDY0ID0gMTIsXHJcbiAgICAvKiogQGlnbm9yZSAqLyBTaW5nbGUgPSAxMyxcclxuICAgIC8qKiBAaWdub3JlICovIERvdWJsZSA9IDE0LFxyXG4gICAgLyoqIEBpZ25vcmUgKi8gRGVjaW1hbCA9IDE1LFxyXG4gICAgLyoqIEBpZ25vcmUgKi8gRGF0ZVRpbWUgPSAxNixcclxuICAgIC8qKiBAaWdub3JlICovIFN0cmluZyA9IDE4XHJcbn0iXX0=
@@ -1,32 +0,0 @@
1
- // Angular
2
- import { NgModule } from '@angular/core';
3
- // Esfaenza
4
- import { LocalizationModule } from '@esfaenza/localizations';
5
- import { APPSEARCH_PREFIX, EXT_ALLOW_UTC, EXT_DEBUG_MODE } from '../tokens';
6
- // Pipes
7
- import { LocDatePipe } from '../pipes/loc_date.pipe';
8
- import * as i0 from "@angular/core";
9
- export class ExtensionsModule {
10
- static forRoot(config) {
11
- return {
12
- ngModule: ExtensionsModule,
13
- providers: [
14
- { provide: APPSEARCH_PREFIX, useValue: config?.appsearch_prefix || 'Hot' },
15
- { provide: EXT_ALLOW_UTC, useValue: config?.allow_utc == null ? false : config?.allow_utc },
16
- { provide: EXT_DEBUG_MODE, useValue: config?.debugMode || false },
17
- ]
18
- };
19
- }
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ExtensionsModule, declarations: [LocDatePipe], imports: [LocalizationModule], exports: [LocDatePipe] });
22
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExtensionsModule, imports: [LocalizationModule] });
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExtensionsModule, decorators: [{
25
- type: NgModule,
26
- args: [{
27
- imports: [LocalizationModule],
28
- declarations: [LocDatePipe],
29
- exports: [LocDatePipe]
30
- }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL3NyYy9saWIvbW9kdWxlcy9leHRlbnNpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFOUQsV0FBVztBQUNYLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSTdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVFLFFBQVE7QUFDUixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBT3JELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUErQjtRQUM1QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsSUFBSSxLQUFLLEVBQUM7Z0JBQ3pFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQztnQkFDMUYsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxJQUFJLEtBQUssRUFBRTthQUNsRTtTQUNGLENBQUM7SUFDSixDQUFDO3dHQVZVLGdCQUFnQjt5R0FBaEIsZ0JBQWdCLGlCQUhaLFdBQVcsYUFEaEIsa0JBQWtCLGFBRWxCLFdBQVc7eUdBRVYsZ0JBQWdCLFlBSmpCLGtCQUFrQjs7NEZBSWpCLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy8gRXNmYWVuemFcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uTW9kdWxlIH0gZnJvbSAnQGVzZmFlbnphL2xvY2FsaXphdGlvbnMnO1xyXG5cclxuLy8gTW9kZWxsaVxyXG5pbXBvcnQgeyBFeHRlbnNpb25zTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL0V4dGVuc2lvbnNNb2R1bGVDb25maWcnO1xyXG5pbXBvcnQgeyBBUFBTRUFSQ0hfUFJFRklYLCBFWFRfQUxMT1dfVVRDLCBFWFRfREVCVUdfTU9ERSB9IGZyb20gJy4uL3Rva2Vucyc7XHJcblxyXG4vLyBQaXBlc1xyXG5pbXBvcnQgeyBMb2NEYXRlUGlwZSB9IGZyb20gJy4uL3BpcGVzL2xvY19kYXRlLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbTG9jYWxpemF0aW9uTW9kdWxlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtMb2NEYXRlUGlwZV0sXHJcbiAgZXhwb3J0czogW0xvY0RhdGVQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaW9uc01vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogRXh0ZW5zaW9uc01vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RXh0ZW5zaW9uc01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEV4dGVuc2lvbnNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogQVBQU0VBUkNIX1BSRUZJWCwgdXNlVmFsdWU6IGNvbmZpZz8uYXBwc2VhcmNoX3ByZWZpeCB8fCAnSG90J30sXHJcbiAgICAgICAgeyBwcm92aWRlOiBFWFRfQUxMT1dfVVRDLCB1c2VWYWx1ZTogY29uZmlnPy5hbGxvd191dGMgPT0gbnVsbCA/IGZhbHNlIDogY29uZmlnPy5hbGxvd191dGN9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogRVhUX0RFQlVHX01PREUsIHVzZVZhbHVlOiBjb25maWc/LmRlYnVnTW9kZSB8fCBmYWxzZSB9LFxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufSJdfQ==
@@ -1,38 +0,0 @@
1
- // Angular
2
- import { Pipe } from "@angular/core";
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../services/extensions.dates.service";
5
- /**
6
- * Pipe che permette di formattare una data in base al formato specificato. Utilizza il **DateService** di **@esfaenza/extensions** per ricondurre l'input a una data valida
7
- */
8
- export class LocDatePipe {
9
- dts;
10
- /**
11
- * @ignore
12
- */
13
- constructor(dts) {
14
- this.dts = dts;
15
- }
16
- /**
17
- * Trasformazione della data in input in base al formato richiesto
18
- *
19
- * @param {any} value Valore da ricondurre ad una data e formattare
20
- * @param {string} format Formato in output della data da visualizzare
21
- *
22
- * @returns {string} Data formattata in base al formato
23
- */
24
- transform(value, format = "DD/MM/YYYY") {
25
- if (value == null || value === "")
26
- return null;
27
- var detatchedValue = JSON.parse(JSON.stringify(value));
28
- var dt = this.dts.getDateConvertion(detatchedValue);
29
- return dt.format(format);
30
- }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocDatePipe, deps: [{ token: i1.DateService }], target: i0.ɵɵFactoryTarget.Pipe });
32
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocDatePipe, name: "loc_date" });
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocDatePipe, decorators: [{
35
- type: Pipe,
36
- args: [{ name: "loc_date", pure: true }]
37
- }], ctorParameters: () => [{ type: i1.DateService }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jX2RhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9waXBlcy9sb2NfZGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBR3BEOztHQUVHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUFLQTtJQUhwQjs7T0FFRztJQUNILFlBQW9CLEdBQWdCO1FBQWhCLFFBQUcsR0FBSCxHQUFHLENBQWE7SUFBSSxDQUFDO0lBRXpDOzs7Ozs7O09BT0c7SUFDSCxTQUFTLENBQUMsS0FBVSxFQUFFLFNBQWlCLFlBQVk7UUFDL0MsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFL0MsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQzt3R0FyQlEsV0FBVztzR0FBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQUR2QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5kYXRlcy5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogUGlwZSBjaGUgcGVybWV0dGUgZGkgZm9ybWF0dGFyZSB1bmEgZGF0YSBpbiBiYXNlIGFsIGZvcm1hdG8gc3BlY2lmaWNhdG8uIFV0aWxpenphIGlsICoqRGF0ZVNlcnZpY2UqKiBkaSAqKkBlc2ZhZW56YS9leHRlbnNpb25zKiogcGVyIHJpY29uZHVycmUgbCdpbnB1dCBhIHVuYSBkYXRhIHZhbGlkYVxyXG4gKi9cclxuQFBpcGUoeyBuYW1lOiBcImxvY19kYXRlXCIsIHB1cmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIExvY0RhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZHRzOiBEYXRlU2VydmljZSkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFzZm9ybWF6aW9uZSBkZWxsYSBkYXRhIGluIGlucHV0IGluIGJhc2UgYWwgZm9ybWF0byByaWNoaWVzdG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IHZhbHVlIFZhbG9yZSBkYSByaWNvbmR1cnJlIGFkIHVuYSBkYXRhIGUgZm9ybWF0dGFyZVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1hdCBGb3JtYXRvIGluIG91dHB1dCBkZWxsYSBkYXRhIGRhIHZpc3VhbGl6emFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBEYXRhIGZvcm1hdHRhdGEgaW4gYmFzZSBhbCBmb3JtYXRvXHJcbiAgICAgKi9cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBmb3JtYXQ6IHN0cmluZyA9IFwiREQvTU0vWVlZWVwiKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gXCJcIikgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIHZhciBkZXRhdGNoZWRWYWx1ZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcclxuICAgICAgICB2YXIgZHQgPSB0aGlzLmR0cy5nZXREYXRlQ29udmVydGlvbihkZXRhdGNoZWRWYWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIGR0LmZvcm1hdChmb3JtYXQpO1xyXG4gICAgfVxyXG59Il19
@@ -1,30 +0,0 @@
1
- // Angular
2
- import { Injectable } from "@angular/core";
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./extensions.embedding.service";
5
- /**
6
- * Service che fornisce un accesso base in lettura/scrittura sulla clipboard
7
- */
8
- export class BaseExtensionsService {
9
- emb;
10
- RedirectMap = {};
11
- RoutesMap = {};
12
- constructor(emb) {
13
- this.emb = emb;
14
- for (let prop in this.RedirectMap) {
15
- this.RoutesMap[prop] = { route: null };
16
- this.RoutesMap[prop].route = (param) => {
17
- let obj = {};
18
- obj[this.RedirectMap[prop].params[0]] = param;
19
- return [(this.emb.Embedded ? "pages_ext/" : "pages/") + this.RedirectMap[prop].url, obj];
20
- };
21
- }
22
- }
23
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseExtensionsService, deps: [{ token: i1.AppEmbeddingExtensions }], target: i0.ɵɵFactoryTarget.Injectable });
24
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseExtensionsService, providedIn: "root" });
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseExtensionsService, decorators: [{
27
- type: Injectable,
28
- args: [{ providedIn: "root" }]
29
- }], ctorParameters: () => [{ type: i1.AppEmbeddingExtensions }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQUtWO0lBSGIsV0FBVyxHQUEyRCxFQUFFLENBQUM7SUFDekUsU0FBUyxHQUEyRCxFQUFFLENBQUM7SUFFOUUsWUFBb0IsR0FBMkI7UUFBM0IsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFDM0MsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUM5QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM3RixDQUFDLENBQUE7UUFDTCxDQUFDO0lBQ0wsQ0FBQzt3R0FkUSxxQkFBcUI7NEdBQXJCLHFCQUFxQixjQURSLE1BQU07OzRGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucyB9IGZyb20gXCIuL2V4dGVuc2lvbnMuZW1iZWRkaW5nLnNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGNoZSBmb3JuaXNjZSB1biBhY2Nlc3NvIGJhc2UgaW4gbGV0dHVyYS9zY3JpdHR1cmEgc3VsbGEgY2xpcGJvYXJkXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlRXh0ZW5zaW9uc1NlcnZpY2Uge1xyXG5cclxuICAgIHB1YmxpYyBSZWRpcmVjdE1hcDogeyBbaW5kZXg6IHN0cmluZ106IHsgdXJsOiBzdHJpbmcsIHBhcmFtczogc3RyaW5nW10gfSB9ID0ge307XHJcbiAgICBwdWJsaWMgUm91dGVzTWFwOiB7IFtpbmRleDogc3RyaW5nXTogeyByb3V0ZTogKHBhcmFtOiBzdHJpbmcpID0+IGFueSB9IH0gPSB7fTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucykge1xyXG4gICAgICAgIGZvciAobGV0IHByb3AgaW4gdGhpcy5SZWRpcmVjdE1hcCkge1xyXG4gICAgICAgICAgICB0aGlzLlJvdXRlc01hcFtwcm9wXSA9IHsgcm91dGU6IG51bGwgfTtcclxuICAgICAgICAgICAgdGhpcy5Sb3V0ZXNNYXBbcHJvcF0ucm91dGUgPSAocGFyYW06IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgICAgICAgICAgb2JqW3RoaXMuUmVkaXJlY3RNYXBbcHJvcF0ucGFyYW1zWzBdXSA9IHBhcmFtO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFsodGhpcy5lbWIuRW1iZWRkZWQgPyBcInBhZ2VzX2V4dC9cIiA6IFwicGFnZXMvXCIpICsgdGhpcy5SZWRpcmVjdE1hcFtwcm9wXS51cmwsIG9ial07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,221 +0,0 @@
1
- // Angular
2
- import { Injectable, Optional } from "@angular/core";
3
- // Librerie
4
- import Swal from "sweetalert2";
5
- import { first } from "rxjs/operators";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./extensions.messages.service";
8
- import * as i2 from "@esfaenza/localizations";
9
- /**
10
- * Service che fornisce un accesso base in lettura/scrittura sulla clipboard
11
- */
12
- export class ClipboardService {
13
- msgService;
14
- locProvider;
15
- /**
16
- * Oggetto statico di localizzazione per i messaggi di questa Service
17
- */
18
- loc = {
19
- "Unfortunately Firefox doesn't yet support direct Clipboard access if not via extensions, Please use Chrome to do this operation": {
20
- 'en-US': "Unfortunately Firefox doesn't yet support direct Clipboard access if not via extensions, Please use Chrome to do this operation",
21
- 'it-IT': "Mi dispiace ma Firefox non supporta l'accesso diretto alla Clipboard, se non attraverso le estensioni. Si prega di usare Chrome"
22
- },
23
- "Generic error during 'copy' command execution": {
24
- 'en-US': "Generic error during 'copy' command execution",
25
- 'it-IT': "Errore generico durante l'esecuzione del comando 'copy'"
26
- },
27
- "Error during Clipboard content read operation": {
28
- 'en-US': "Error during Clipboard content read operation",
29
- 'it-IT': "Errore nella lettura del contenuto della Clipboard"
30
- },
31
- "Error during Clipboard content copy operation": {
32
- 'en-US': "Error during Clipboard content copy operation",
33
- 'it-IT': "Errore nella scrittura del contenuto nella Clipboard"
34
- },
35
- "Please insert your clipboard content": {
36
- 'en-US': "Please insert your clipboard content",
37
- 'it-IT': "Si prega di incollare il contenuto della Clipboard"
38
- },
39
- "User input required": {
40
- 'en-US': "User input required",
41
- 'it-IT': "Richiesto Input utente"
42
- },
43
- "Your current browser does not support reading from the clipboard directly. Please paste your clipboard's content in this Input field and confirm the operation": {
44
- 'en-US': "Your current browser does not support reading from the clipboard directly. Please paste your clipboard's content in this Input field and confirm the operation",
45
- 'it-IT': "Il browser corrente non supporta la lettura diretta dei dati della Clipboard, si prega di effettuare un'incolla (CTRL + V) nella casella di testo e confermare l'operazione"
46
- },
47
- "Confirm": {
48
- 'en-US': "Confirm",
49
- 'it-IT': "Conferma"
50
- },
51
- "Cancel": {
52
- 'en-US': "Cancel",
53
- 'it-IT': "Annulla"
54
- },
55
- };
56
- /**
57
- * Costruttore
58
- *
59
- * @ignore
60
- */
61
- constructor(msgService, locProvider) {
62
- this.msgService = msgService;
63
- this.locProvider = locProvider;
64
- }
65
- /**
66
- * Prende il valore della clipboard.
67
- * Si può specificare se ci si aspetta una lista o una matrice di valori in modo da ricevere già un risultato utilizzabile
68
- *
69
- * @param {'array' | 'matrix'} style Stile dell'output desiderato, se array o matrice
70
- * @param {Function} valueFoundCallback Callback che questa funzione chiamerà una volta ottenuto i valori richiesti dalla clipboard
71
- */
72
- async getClipboard(style, valueFoundCallback) {
73
- let LOCALE = this.locProvider ? await this.locProvider.Locale.pipe(first()).toPromise() : 'it-IT';
74
- if (navigator.userAgent.indexOf("Firefox") != -1) {
75
- Swal.fire({
76
- title: this.loc["User input required"][LOCALE],
77
- text: this.loc["Your current browser does not support reading from the clipboard directly. Please paste your clipboard's content in this Input field and confirm the operation"][LOCALE],
78
- input: 'textarea',
79
- icon: "warning",
80
- confirmButtonText: this.loc["Confirm"][LOCALE],
81
- cancelButtonText: this.loc["Cancel"][LOCALE],
82
- showCancelButton: true,
83
- customClass: {
84
- confirmButton: "btn btn-primary",
85
- cancelButton: "btn btn-secondary app-margin-right-15",
86
- container: "app-wrap",
87
- },
88
- reverseButtons: true,
89
- allowOutsideClick: false,
90
- inputValidator: (value) => {
91
- if (!value)
92
- return this.loc["Please insert your clipboard content"][LOCALE];
93
- }
94
- }).then(t => {
95
- if (t.isConfirmed) {
96
- console.log("[@esfaenza/extensions] Retrieving input data from user input");
97
- this.doClipboardDataGet(t.value, style, valueFoundCallback);
98
- }
99
- });
100
- return;
101
- }
102
- if (window.clipboardData) {
103
- console.log("[@esfaenza/extensions] Found clipboardData");
104
- let data = window.clipboardData.getData("Text");
105
- this.doClipboardDataGet(data, style, valueFoundCallback);
106
- }
107
- else if (window.navigator.clipboard) {
108
- console.log("[@esfaenza/extensions] Found navigator clipboard");
109
- window.navigator.permissions.query({ name: 'clipboard-read' }).then(result => {
110
- if (!(result.state === 'granted' || result.state === 'prompt')) {
111
- console.error("[@esfaenza/extensions] Clipboard permission not granted");
112
- if (valueFoundCallback)
113
- valueFoundCallback([]);
114
- return;
115
- }
116
- console.log("[@esfaenza/extensions] Clipboard permission granted, retrieving values");
117
- window.navigator.clipboard.readText()
118
- .then((t) => this.doClipboardDataGet(t, style, valueFoundCallback))
119
- .catch((err) => this.msgService.simpleError(this.loc["Error during Clipboard content read operation"][LOCALE] + ": " + err));
120
- });
121
- }
122
- }
123
- /** @ignore */
124
- doClipboardDataGet(clipboardText, style, valueFoundCallback) {
125
- console.log("[@esfaenza/extensions] Retrieved clipboard values: " + clipboardText);
126
- let value = style == "array" ? this.getClipboardLines(clipboardText) :
127
- style == "matrix" ? this.getClipboardMatrix(clipboardText) : [];
128
- console.log(`[@esfaenza/extensions] Adapted for ${style}: ${JSON.stringify(value)}`);
129
- if (valueFoundCallback)
130
- valueFoundCallback(value);
131
- }
132
- /**
133
- * Ottiene il contenuto della clipboard diviso per righe (separate da newline)
134
- *
135
- * @param {string} data contenuto letto dalla clipboard
136
- *
137
- * @returns {string[]} Array contenente il testo preso dalla clipboard diviso per riga
138
- */
139
- getClipboardLines(data) {
140
- let trimmedData = data.trim();
141
- if (!trimmedData.includes("\r\n") && trimmedData.includes("\n"))
142
- return trimmedData.split("\n");
143
- return trimmedData.split("\r\n");
144
- }
145
- /**
146
- * Ottiene il contenuto della clipboard diviso per righe (separate da newline) e colonne (separate da tab)
147
- *
148
- * @param {string} data contenuto letto dalla clipboard
149
- *
150
- * @returns {string[][]} Matrice contenente il testo preso dalla clipboard diviso per riga e colonna
151
- */
152
- getClipboardMatrix(data) {
153
- var ret = [];
154
- var rows = !data.includes("\r\n") && data.includes("\n") ? data.split("\n") : data.split("\r\n");
155
- // A quanto pare ogni valore è separato da un \t... spero che sia uno standard di quando si copia da excel altrimenti ciao
156
- for (let i = 0; i < rows.length; i++)
157
- ret.push(rows[i].split('\t').map(t => t.trim()));
158
- return ret;
159
- }
160
- /**
161
- * Metodo che copia un testo all'interno della clipboard
162
- *
163
- * @param {string} text Testo da inserire nella clipboard
164
- */
165
- async copyTextToClipboard(text) {
166
- let LOCALE = this.locProvider ? await this.locProvider.Locale.pipe(first()).toPromise() : 'it-IT';
167
- var textArea = document.createElement("textarea");
168
- //
169
- // *** This styling is an extra step which is likely not required. ***
170
- //
171
- // Why is it here? To ensure:
172
- // 1. the element is able to have focus and selection.
173
- // 2. if element was to flash render it has minimal visual impact.
174
- // 3. less flakyness with selection and copying which **might** occur if
175
- // the textarea element is not visible.
176
- //
177
- // The likelihood is the element won't even render, not even a flash,
178
- // so some of these are just precautions. However in IE the element
179
- // is visible whilst the popup box asking the user for permission for
180
- // the web page to copy to the clipboard.
181
- //
182
- // Place in top-left corner of screen regardless of scroll position.
183
- textArea.style.position = "fixed";
184
- textArea.style.top = "0";
185
- textArea.style.left = "0";
186
- // Ensure it has a small width and height. Setting to 1px / 1em
187
- // doesn't work as this gives a negative w/h on some browsers.
188
- textArea.style.width = "2em";
189
- textArea.style.height = "2em";
190
- // We don't need padding, reducing the size if it does flash render.
191
- textArea.style.padding = "0";
192
- // Clean up any borders.
193
- textArea.style.border = "none";
194
- textArea.style.outline = "none";
195
- textArea.style.boxShadow = "none";
196
- // Avoid flash of white box if rendered for any reason.
197
- textArea.style.background = "transparent";
198
- textArea.value = text;
199
- document.body.appendChild(textArea);
200
- textArea.focus();
201
- textArea.select();
202
- try {
203
- var successful = document.execCommand("copy");
204
- if (!successful)
205
- this.msgService.simpleError(this.loc["Generic error during 'copy' command execution"][LOCALE]);
206
- }
207
- catch (err) {
208
- this.msgService.simpleError(this.loc["Error during Clipboard content copy operation"][LOCALE] + ": " + err);
209
- }
210
- document.body.removeChild(textArea);
211
- }
212
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, deps: [{ token: i1.MessageService }, { token: i2.BaseLocalization, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
213
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, providedIn: "root" });
214
- }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, decorators: [{
216
- type: Injectable,
217
- args: [{ providedIn: "root" }]
218
- }], ctorParameters: () => [{ type: i1.MessageService }, { type: i2.BaseLocalization, decorators: [{
219
- type: Optional
220
- }] }] });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5jbGlwYm9hcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmNsaXBib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFyRCxXQUFXO0FBQ1gsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV2Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFpREU7SUFBZ0Q7SUEvQzNFOztPQUVHO0lBQ0ssR0FBRyxHQUFHO1FBQ1YsaUlBQWlJLEVBQUU7WUFDL0gsT0FBTyxFQUFFLGlJQUFpSTtZQUMxSSxPQUFPLEVBQUUsaUlBQWlJO1NBQzdJO1FBQ0QsK0NBQStDLEVBQUU7WUFDN0MsT0FBTyxFQUFFLCtDQUErQztZQUN4RCxPQUFPLEVBQUUseURBQXlEO1NBQ3JFO1FBQ0QsK0NBQStDLEVBQUU7WUFDN0MsT0FBTyxFQUFFLCtDQUErQztZQUN4RCxPQUFPLEVBQUUsb0RBQW9EO1NBQ2hFO1FBQ0QsK0NBQStDLEVBQUM7WUFDNUMsT0FBTyxFQUFFLCtDQUErQztZQUN4RCxPQUFPLEVBQUUsc0RBQXNEO1NBQ2xFO1FBQ0Qsc0NBQXNDLEVBQUU7WUFDcEMsT0FBTyxFQUFFLHNDQUFzQztZQUMvQyxPQUFPLEVBQUUsb0RBQW9EO1NBQ2hFO1FBQ0QscUJBQXFCLEVBQUU7WUFDbkIsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixPQUFPLEVBQUUsd0JBQXdCO1NBQ3BDO1FBQ0QsZ0tBQWdLLEVBQUU7WUFDOUosT0FBTyxFQUFFLGdLQUFnSztZQUN6SyxPQUFPLEVBQUUsNktBQTZLO1NBQ3pMO1FBQ0QsU0FBUyxFQUFFO1lBQ1AsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLFVBQVU7U0FDdEI7UUFDRCxRQUFRLEVBQUU7WUFDTixPQUFPLEVBQUUsUUFBUTtZQUNqQixPQUFPLEVBQUUsU0FBUztTQUNyQjtLQUNKLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsWUFBMkIsVUFBMEIsRUFBc0IsV0FBNkI7UUFBN0UsZUFBVSxHQUFWLFVBQVUsQ0FBZ0I7UUFBc0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQUksQ0FBQztJQUU3Rzs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQXlCLEVBQUUsa0JBQTREO1FBQzdHLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFFLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUVuRyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFL0MsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDTixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFDOUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0tBQWdLLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3hMLEtBQUssRUFBRSxVQUFVO2dCQUNqQixJQUFJLEVBQUUsU0FBUztnQkFDZixpQkFBaUIsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFDOUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQzVDLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLFdBQVcsRUFBRTtvQkFDVCxhQUFhLEVBQUUsaUJBQWlCO29CQUNoQyxZQUFZLEVBQUUsdUNBQXVDO29CQUNyRCxTQUFTLEVBQUUsVUFBVTtpQkFDeEI7Z0JBQ0QsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUN4QixJQUFJLENBQUMsS0FBSzt3QkFDUixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDbkUsQ0FBQzthQUNGLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsOERBQThELENBQUMsQ0FBQztvQkFDNUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2hFLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU87UUFDYixDQUFDO1FBRUQsSUFBVSxNQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQzFELElBQUksSUFBSSxHQUFTLE1BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDN0QsQ0FBQzthQUVJLElBQVUsTUFBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7WUFDMUQsTUFBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2hGLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLEVBQzlELENBQUM7b0JBQ0csT0FBTyxDQUFDLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO29CQUN6RSxJQUFJLGtCQUFrQjt3QkFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDL0MsT0FBTztnQkFDWCxDQUFDO2dCQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsd0VBQXdFLENBQUMsQ0FBQztnQkFDaEYsTUFBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO3FCQUN2QyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7cUJBQzFFLEtBQUssQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFJLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ04sa0JBQWtCLENBQUMsYUFBcUIsRUFBRSxLQUF5QixFQUFFLGtCQUE0QjtRQUNyRyxPQUFPLENBQUMsR0FBRyxDQUFDLHFEQUFxRCxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQ25GLElBQUksS0FBSyxHQUFHLEtBQUssSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BFLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRixJQUFJLGtCQUFrQjtZQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ2xDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUMzRCxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkMsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxrQkFBa0IsQ0FBQyxJQUFZO1FBQ25DLElBQUksR0FBRyxHQUFlLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqRywwSEFBMEg7UUFDMUgsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQ2hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBWTtRQUN6QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBRSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFbkcsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRCxFQUFFO1FBQ0Ysc0VBQXNFO1FBQ3RFLEVBQUU7UUFDRiw2QkFBNkI7UUFDN0Isc0RBQXNEO1FBQ3RELGtFQUFrRTtRQUNsRSx3RUFBd0U7UUFDeEUsMENBQTBDO1FBQzFDLEVBQUU7UUFDRixxRUFBcUU7UUFDckUsbUVBQW1FO1FBQ25FLHFFQUFxRTtRQUNyRSx5Q0FBeUM7UUFDekMsRUFBRTtRQUVGLG9FQUFvRTtRQUNwRSxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDbEMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUUxQiwrREFBK0Q7UUFDL0QsOERBQThEO1FBQzlELFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM3QixRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFOUIsb0VBQW9FO1FBQ3BFLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUU3Qix3QkFBd0I7UUFDeEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUNoQyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFFbEMsdURBQXVEO1FBQ3ZELFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztRQUUxQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUV0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQztZQUNELElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUMsSUFBRyxDQUFDLFVBQVU7Z0JBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLCtDQUErQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9HLENBQUM7UUFFRCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO3dHQTFOUSxnQkFBZ0I7NEdBQWhCLGdCQUFnQixjQURKLE1BQU07OzRGQUNsQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFrRDRCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIEVzXHJcbmltcG9ydCB7IEJhc2VMb2NhbGl6YXRpb24gfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuL2V4dGVuc2lvbnMubWVzc2FnZXMuc2VydmljZSc7XHJcblxyXG4vLyBMaWJyZXJpZVxyXG5pbXBvcnQgU3dhbCBmcm9tIFwic3dlZXRhbGVydDJcIjtcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGNoZSBmb3JuaXNjZSB1biBhY2Nlc3NvIGJhc2UgaW4gbGV0dHVyYS9zY3JpdHR1cmEgc3VsbGEgY2xpcGJvYXJkXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJyb290XCJ9KVxyXG5leHBvcnQgY2xhc3MgQ2xpcGJvYXJkU2VydmljZSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPZ2dldHRvIHN0YXRpY28gZGkgbG9jYWxpenphemlvbmUgcGVyIGkgbWVzc2FnZ2kgZGkgcXVlc3RhIFNlcnZpY2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBsb2MgPSB7XHJcbiAgICAgICAgXCJVbmZvcnR1bmF0ZWx5IEZpcmVmb3ggZG9lc24ndCB5ZXQgc3VwcG9ydCBkaXJlY3QgQ2xpcGJvYXJkIGFjY2VzcyBpZiBub3QgdmlhIGV4dGVuc2lvbnMsIFBsZWFzZSB1c2UgQ2hyb21lIHRvIGRvIHRoaXMgb3BlcmF0aW9uXCI6IHtcclxuICAgICAgICAgICAgJ2VuLVVTJzogXCJVbmZvcnR1bmF0ZWx5IEZpcmVmb3ggZG9lc24ndCB5ZXQgc3VwcG9ydCBkaXJlY3QgQ2xpcGJvYXJkIGFjY2VzcyBpZiBub3QgdmlhIGV4dGVuc2lvbnMsIFBsZWFzZSB1c2UgQ2hyb21lIHRvIGRvIHRoaXMgb3BlcmF0aW9uXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiTWkgZGlzcGlhY2UgbWEgRmlyZWZveCBub24gc3VwcG9ydGEgbCdhY2Nlc3NvIGRpcmV0dG8gYWxsYSBDbGlwYm9hcmQsIHNlIG5vbiBhdHRyYXZlcnNvIGxlIGVzdGVuc2lvbmkuIFNpIHByZWdhIGRpIHVzYXJlIENocm9tZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIkdlbmVyaWMgZXJyb3IgZHVyaW5nICdjb3B5JyBjb21tYW5kIGV4ZWN1dGlvblwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiR2VuZXJpYyBlcnJvciBkdXJpbmcgJ2NvcHknIGNvbW1hbmQgZXhlY3V0aW9uXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiRXJyb3JlIGdlbmVyaWNvIGR1cmFudGUgbCdlc2VjdXppb25lIGRlbCBjb21hbmRvICdjb3B5J1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIkVycm9yIGR1cmluZyBDbGlwYm9hcmQgY29udGVudCByZWFkIG9wZXJhdGlvblwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiRXJyb3IgZHVyaW5nIENsaXBib2FyZCBjb250ZW50IHJlYWQgb3BlcmF0aW9uXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiRXJyb3JlIG5lbGxhIGxldHR1cmEgZGVsIGNvbnRlbnV0byBkZWxsYSBDbGlwYm9hcmRcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJFcnJvciBkdXJpbmcgQ2xpcGJvYXJkIGNvbnRlbnQgY29weSBvcGVyYXRpb25cIjp7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiRXJyb3IgZHVyaW5nIENsaXBib2FyZCBjb250ZW50IGNvcHkgb3BlcmF0aW9uXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiRXJyb3JlIG5lbGxhIHNjcml0dHVyYSBkZWwgY29udGVudXRvIG5lbGxhIENsaXBib2FyZFwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIlBsZWFzZSBpbnNlcnQgeW91ciBjbGlwYm9hcmQgY29udGVudFwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiUGxlYXNlIGluc2VydCB5b3VyIGNsaXBib2FyZCBjb250ZW50XCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiU2kgcHJlZ2EgZGkgaW5jb2xsYXJlIGlsIGNvbnRlbnV0byBkZWxsYSBDbGlwYm9hcmRcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJVc2VyIGlucHV0IHJlcXVpcmVkXCI6IHtcclxuICAgICAgICAgICAgJ2VuLVVTJzogXCJVc2VyIGlucHV0IHJlcXVpcmVkXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiUmljaGllc3RvIElucHV0IHV0ZW50ZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIllvdXIgY3VycmVudCBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyBmcm9tIHRoZSBjbGlwYm9hcmQgZGlyZWN0bHkuIFBsZWFzZSBwYXN0ZSB5b3VyIGNsaXBib2FyZCdzIGNvbnRlbnQgaW4gdGhpcyBJbnB1dCBmaWVsZCBhbmQgY29uZmlybSB0aGUgb3BlcmF0aW9uXCI6IHtcclxuICAgICAgICAgICAgJ2VuLVVTJzogXCJZb3VyIGN1cnJlbnQgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHJlYWRpbmcgZnJvbSB0aGUgY2xpcGJvYXJkIGRpcmVjdGx5LiBQbGVhc2UgcGFzdGUgeW91ciBjbGlwYm9hcmQncyBjb250ZW50IGluIHRoaXMgSW5wdXQgZmllbGQgYW5kIGNvbmZpcm0gdGhlIG9wZXJhdGlvblwiLFxyXG4gICAgICAgICAgICAnaXQtSVQnOiBcIklsIGJyb3dzZXIgY29ycmVudGUgbm9uIHN1cHBvcnRhIGxhIGxldHR1cmEgZGlyZXR0YSBkZWkgZGF0aSBkZWxsYSBDbGlwYm9hcmQsIHNpIHByZWdhIGRpIGVmZmV0dHVhcmUgdW4naW5jb2xsYSAoQ1RSTCArIFYpIG5lbGxhIGNhc2VsbGEgZGkgdGVzdG8gZSBjb25mZXJtYXJlIGwnb3BlcmF6aW9uZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIkNvbmZpcm1cIjoge1xyXG4gICAgICAgICAgICAnZW4tVVMnOiBcIkNvbmZpcm1cIixcclxuICAgICAgICAgICAgJ2l0LUlUJzogXCJDb25mZXJtYVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIkNhbmNlbFwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiQ2FuY2VsXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiQW5udWxsYVwiXHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb3N0cnV0dG9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIG1zZ1NlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBAT3B0aW9uYWwoKSBwcml2YXRlIGxvY1Byb3ZpZGVyOiBCYXNlTG9jYWxpemF0aW9uKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByZW5kZSBpbCB2YWxvcmUgZGVsbGEgY2xpcGJvYXJkLiBcclxuICAgICAqIFNpIHB1w7Igc3BlY2lmaWNhcmUgc2UgY2kgc2kgYXNwZXR0YSB1bmEgbGlzdGEgbyB1bmEgbWF0cmljZSBkaSB2YWxvcmkgaW4gbW9kbyBkYSByaWNldmVyZSBnacOgIHVuIHJpc3VsdGF0byB1dGlsaXp6YWJpbGVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHsnYXJyYXknIHwgJ21hdHJpeCd9IHN0eWxlIFN0aWxlIGRlbGwnb3V0cHV0IGRlc2lkZXJhdG8sIHNlIGFycmF5IG8gbWF0cmljZVxyXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gdmFsdWVGb3VuZENhbGxiYWNrIENhbGxiYWNrIGNoZSBxdWVzdGEgZnVuemlvbmUgY2hpYW1lcsOgIHVuYSB2b2x0YSBvdHRlbnV0byBpIHZhbG9yaSByaWNoaWVzdGkgZGFsbGEgY2xpcGJvYXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBnZXRDbGlwYm9hcmQoc3R5bGU6ICdhcnJheScgfCAnbWF0cml4JywgdmFsdWVGb3VuZENhbGxiYWNrIDogKHZhbHVlczogc3RyaW5nW10gfCBzdHJpbmdbXVtdKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgbGV0IExPQ0FMRSA9IHRoaXMubG9jUHJvdmlkZXIgPyAgYXdhaXQgdGhpcy5sb2NQcm92aWRlci5Mb2NhbGUucGlwZShmaXJzdCgpKS50b1Byb21pc2UoKSA6ICdpdC1JVCc7XHJcblxyXG4gICAgICAgIGlmIChuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoXCJGaXJlZm94XCIpICE9IC0xKSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMubG9jW1wiVXNlciBpbnB1dCByZXF1aXJlZFwiXVtMT0NBTEVdLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogdGhpcy5sb2NbXCJZb3VyIGN1cnJlbnQgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHJlYWRpbmcgZnJvbSB0aGUgY2xpcGJvYXJkIGRpcmVjdGx5LiBQbGVhc2UgcGFzdGUgeW91ciBjbGlwYm9hcmQncyBjb250ZW50IGluIHRoaXMgSW5wdXQgZmllbGQgYW5kIGNvbmZpcm0gdGhlIG9wZXJhdGlvblwiXVtMT0NBTEVdLFxyXG4gICAgICAgICAgICAgICAgaW5wdXQ6ICd0ZXh0YXJlYScsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiB0aGlzLmxvY1tcIkNvbmZpcm1cIl1bTE9DQUxFXSxcclxuICAgICAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IHRoaXMubG9jW1wiQ2FuY2VsXCJdW0xPQ0FMRV0sXHJcbiAgICAgICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tQ2xhc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiBcImJ0biBidG4tcHJpbWFyeVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbEJ1dHRvbjogXCJidG4gYnRuLXNlY29uZGFyeSBhcHAtbWFyZ2luLXJpZ2h0LTE1XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyOiBcImFwcC13cmFwXCIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgcmV2ZXJzZUJ1dHRvbnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpbnB1dFZhbGlkYXRvcjogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jW1wiUGxlYXNlIGluc2VydCB5b3VyIGNsaXBib2FyZCBjb250ZW50XCJdW0xPQ0FMRV1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KS50aGVuKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAodC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbQGVzZmFlbnphL2V4dGVuc2lvbnNdIFJldHJpZXZpbmcgaW5wdXQgZGF0YSBmcm9tIHVzZXIgaW5wdXRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRvQ2xpcGJvYXJkRGF0YUdldCh0LnZhbHVlLCBzdHlsZSwgdmFsdWVGb3VuZENhbGxiYWNrKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICgoPGFueT53aW5kb3cpLmNsaXBib2FyZERhdGEpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJbQGVzZmFlbnphL2V4dGVuc2lvbnNdIEZvdW5kIGNsaXBib2FyZERhdGFcIik7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gKDxhbnk+d2luZG93KS5jbGlwYm9hcmREYXRhLmdldERhdGEoXCJUZXh0XCIpO1xyXG4gICAgICAgICAgICB0aGlzLmRvQ2xpcGJvYXJkRGF0YUdldChkYXRhLCBzdHlsZSwgdmFsdWVGb3VuZENhbGxiYWNrKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKCg8YW55PndpbmRvdykubmF2aWdhdG9yLmNsaXBib2FyZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIltAZXNmYWVuemEvZXh0ZW5zaW9uc10gRm91bmQgbmF2aWdhdG9yIGNsaXBib2FyZFwiKTtcclxuICAgICAgICAgICAgKDxhbnk+d2luZG93KS5uYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoeyBuYW1lOiAnY2xpcGJvYXJkLXJlYWQnIH0pLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghKHJlc3VsdC5zdGF0ZSA9PT0gJ2dyYW50ZWQnIHx8IHJlc3VsdC5zdGF0ZSA9PT0gJ3Byb21wdCcpKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJbQGVzZmFlbnphL2V4dGVuc2lvbnNdIENsaXBib2FyZCBwZXJtaXNzaW9uIG5vdCBncmFudGVkXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZUZvdW5kQ2FsbGJhY2spIHZhbHVlRm91bmRDYWxsYmFjayhbXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW0Blc2ZhZW56YS9leHRlbnNpb25zXSBDbGlwYm9hcmQgcGVybWlzc2lvbiBncmFudGVkLCByZXRyaWV2aW5nIHZhbHVlc1wiKTtcclxuICAgICAgICAgICAgICAgICg8YW55PndpbmRvdykubmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkVGV4dCgpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHQ6IHN0cmluZykgPT4gdGhpcy5kb0NsaXBib2FyZERhdGFHZXQodCwgc3R5bGUsIHZhbHVlRm91bmRDYWxsYmFjaykpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnI6IGFueSkgPT4gdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZUVycm9yKHRoaXMubG9jW1wiRXJyb3IgZHVyaW5nIENsaXBib2FyZCBjb250ZW50IHJlYWQgb3BlcmF0aW9uXCJdW0xPQ0FMRV0gKyBcIjogXCIgKyBlcnIpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwcml2YXRlIGRvQ2xpcGJvYXJkRGF0YUdldChjbGlwYm9hcmRUZXh0OiBzdHJpbmcsIHN0eWxlOiBcIm1hdHJpeFwiIHwgXCJhcnJheVwiLCB2YWx1ZUZvdW5kQ2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJbQGVzZmFlbnphL2V4dGVuc2lvbnNdIFJldHJpZXZlZCBjbGlwYm9hcmQgdmFsdWVzOiBcIiArIGNsaXBib2FyZFRleHQpO1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IHN0eWxlID09IFwiYXJyYXlcIiA/IHRoaXMuZ2V0Q2xpcGJvYXJkTGluZXMoY2xpcGJvYXJkVGV4dCkgOlxyXG4gICAgICAgICAgICBzdHlsZSA9PSBcIm1hdHJpeFwiID8gdGhpcy5nZXRDbGlwYm9hcmRNYXRyaXgoY2xpcGJvYXJkVGV4dCkgOiBbXTtcclxuICAgICAgICBjb25zb2xlLmxvZyhgW0Blc2ZhZW56YS9leHRlbnNpb25zXSBBZGFwdGVkIGZvciAke3N0eWxlfTogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XHJcbiAgICAgICAgaWYgKHZhbHVlRm91bmRDYWxsYmFjaykgdmFsdWVGb3VuZENhbGxiYWNrKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgY29udGVudXRvIGRlbGxhIGNsaXBib2FyZCBkaXZpc28gcGVyIHJpZ2hlIChzZXBhcmF0ZSBkYSBuZXdsaW5lKVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YSBjb250ZW51dG8gbGV0dG8gZGFsbGEgY2xpcGJvYXJkXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmdbXX0gQXJyYXkgY29udGVuZW50ZSBpbCB0ZXN0byBwcmVzbyBkYWxsYSBjbGlwYm9hcmQgZGl2aXNvIHBlciByaWdhXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Q2xpcGJvYXJkTGluZXMoZGF0YTogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgICAgIGxldCB0cmltbWVkRGF0YSA9IGRhdGEudHJpbSgpO1xyXG5cclxuICAgICAgICBpZiAoIXRyaW1tZWREYXRhLmluY2x1ZGVzKFwiXFxyXFxuXCIpICYmIHRyaW1tZWREYXRhLmluY2x1ZGVzKFwiXFxuXCIpKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJpbW1lZERhdGEuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gICAgICAgIHJldHVybiB0cmltbWVkRGF0YS5zcGxpdChcIlxcclxcblwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgY29udGVudXRvIGRlbGxhIGNsaXBib2FyZCBkaXZpc28gcGVyIHJpZ2hlIChzZXBhcmF0ZSBkYSBuZXdsaW5lKSBlIGNvbG9ubmUgKHNlcGFyYXRlIGRhIHRhYilcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGEgY29udGVudXRvIGxldHRvIGRhbGxhIGNsaXBib2FyZFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nW11bXX0gTWF0cmljZSBjb250ZW5lbnRlIGlsIHRlc3RvIHByZXNvIGRhbGxhIGNsaXBib2FyZCBkaXZpc28gcGVyIHJpZ2EgZSBjb2xvbm5hXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Q2xpcGJvYXJkTWF0cml4KGRhdGE6IHN0cmluZyk6IHN0cmluZ1tdW10ge1xyXG4gICAgICAgIHZhciByZXQ6IHN0cmluZ1tdW10gPSBbXTtcclxuICAgICAgICB2YXIgcm93cyA9ICFkYXRhLmluY2x1ZGVzKFwiXFxyXFxuXCIpICYmIGRhdGEuaW5jbHVkZXMoXCJcXG5cIikgPyBkYXRhLnNwbGl0KFwiXFxuXCIpIDogZGF0YS5zcGxpdChcIlxcclxcblwiKTtcclxuXHJcbiAgICAgICAgLy8gQSBxdWFudG8gcGFyZSBvZ25pIHZhbG9yZSDDqCBzZXBhcmF0byBkYSB1biBcXHQuLi4gc3Blcm8gY2hlIHNpYSB1bm8gc3RhbmRhcmQgZGkgcXVhbmRvIHNpIGNvcGlhIGRhIGV4Y2VsIGFsdHJpbWVudGkgY2lhb1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgcmV0LnB1c2gocm93c1tpXS5zcGxpdCgnXFx0JykubWFwKHQgPT4gdC50cmltKCkpKTtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIGNoZSBjb3BpYSB1biB0ZXN0byBhbGwnaW50ZXJubyBkZWxsYSBjbGlwYm9hcmRcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgVGVzdG8gZGEgaW5zZXJpcmUgbmVsbGEgY2xpcGJvYXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBjb3B5VGV4dFRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBMT0NBTEUgPSB0aGlzLmxvY1Byb3ZpZGVyID8gIGF3YWl0IHRoaXMubG9jUHJvdmlkZXIuTG9jYWxlLnBpcGUoZmlyc3QoKSkudG9Qcm9taXNlKCkgOiAnaXQtSVQnO1xyXG5cclxuICAgICAgICB2YXIgdGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGV4dGFyZWFcIik7XHJcblxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gKioqIFRoaXMgc3R5bGluZyBpcyBhbiBleHRyYSBzdGVwIHdoaWNoIGlzIGxpa2VseSBub3QgcmVxdWlyZWQuICoqKlxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gV2h5IGlzIGl0IGhlcmU/IFRvIGVuc3VyZTpcclxuICAgICAgICAvLyAxLiB0aGUgZWxlbWVudCBpcyBhYmxlIHRvIGhhdmUgZm9jdXMgYW5kIHNlbGVjdGlvbi5cclxuICAgICAgICAvLyAyLiBpZiBlbGVtZW50IHdhcyB0byBmbGFzaCByZW5kZXIgaXQgaGFzIG1pbmltYWwgdmlzdWFsIGltcGFjdC5cclxuICAgICAgICAvLyAzLiBsZXNzIGZsYWt5bmVzcyB3aXRoIHNlbGVjdGlvbiBhbmQgY29weWluZyB3aGljaCAqKm1pZ2h0Kiogb2NjdXIgaWZcclxuICAgICAgICAvLyAgICB0aGUgdGV4dGFyZWEgZWxlbWVudCBpcyBub3QgdmlzaWJsZS5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFRoZSBsaWtlbGlob29kIGlzIHRoZSBlbGVtZW50IHdvbid0IGV2ZW4gcmVuZGVyLCBub3QgZXZlbiBhIGZsYXNoLFxyXG4gICAgICAgIC8vIHNvIHNvbWUgb2YgdGhlc2UgYXJlIGp1c3QgcHJlY2F1dGlvbnMuIEhvd2V2ZXIgaW4gSUUgdGhlIGVsZW1lbnRcclxuICAgICAgICAvLyBpcyB2aXNpYmxlIHdoaWxzdCB0aGUgcG9wdXAgYm94IGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbiBmb3JcclxuICAgICAgICAvLyB0aGUgd2ViIHBhZ2UgdG8gY29weSB0byB0aGUgY2xpcGJvYXJkLlxyXG4gICAgICAgIC8vXHJcblxyXG4gICAgICAgIC8vIFBsYWNlIGluIHRvcC1sZWZ0IGNvcm5lciBvZiBzY3JlZW4gcmVnYXJkbGVzcyBvZiBzY3JvbGwgcG9zaXRpb24uXHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUucG9zaXRpb24gPSBcImZpeGVkXCI7XHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUudG9wID0gXCIwXCI7XHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUubGVmdCA9IFwiMFwiO1xyXG5cclxuICAgICAgICAvLyBFbnN1cmUgaXQgaGFzIGEgc21hbGwgd2lkdGggYW5kIGhlaWdodC4gU2V0dGluZyB0byAxcHggLyAxZW1cclxuICAgICAgICAvLyBkb2Vzbid0IHdvcmsgYXMgdGhpcyBnaXZlcyBhIG5lZ2F0aXZlIHcvaCBvbiBzb21lIGJyb3dzZXJzLlxyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLndpZHRoID0gXCIyZW1cIjtcclxuICAgICAgICB0ZXh0QXJlYS5zdHlsZS5oZWlnaHQgPSBcIjJlbVwiO1xyXG5cclxuICAgICAgICAvLyBXZSBkb24ndCBuZWVkIHBhZGRpbmcsIHJlZHVjaW5nIHRoZSBzaXplIGlmIGl0IGRvZXMgZmxhc2ggcmVuZGVyLlxyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLnBhZGRpbmcgPSBcIjBcIjtcclxuXHJcbiAgICAgICAgLy8gQ2xlYW4gdXAgYW55IGJvcmRlcnMuXHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUuYm9yZGVyID0gXCJub25lXCI7XHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUub3V0bGluZSA9IFwibm9uZVwiO1xyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLmJveFNoYWRvdyA9IFwibm9uZVwiO1xyXG5cclxuICAgICAgICAvLyBBdm9pZCBmbGFzaCBvZiB3aGl0ZSBib3ggaWYgcmVuZGVyZWQgZm9yIGFueSByZWFzb24uXHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUuYmFja2dyb3VuZCA9IFwidHJhbnNwYXJlbnRcIjtcclxuXHJcbiAgICAgICAgdGV4dEFyZWEudmFsdWUgPSB0ZXh0O1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRBcmVhKTtcclxuICAgICAgICB0ZXh0QXJlYS5mb2N1cygpO1xyXG4gICAgICAgIHRleHRBcmVhLnNlbGVjdCgpO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB2YXIgc3VjY2Vzc2Z1bCA9IGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcclxuICAgICAgICAgICAgaWYoIXN1Y2Nlc3NmdWwpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlRXJyb3IodGhpcy5sb2NbXCJHZW5lcmljIGVycm9yIGR1cmluZyAnY29weScgY29tbWFuZCBleGVjdXRpb25cIl1bTE9DQUxFXSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnU2VydmljZS5zaW1wbGVFcnJvcih0aGlzLmxvY1tcIkVycm9yIGR1cmluZyBDbGlwYm9hcmQgY29udGVudCBjb3B5IG9wZXJhdGlvblwiXVtMT0NBTEVdICsgXCI6IFwiKyBlcnIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0QXJlYSk7XHJcbiAgICB9XHJcbn0iXX0=