@arsedizioni/ars-utils 18.2.343 → 18.2.344
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.
|
@@ -4,7 +4,7 @@ import { BroadcastService, SystemUtils } from '@arsedizioni/ars-utils/core';
|
|
|
4
4
|
import { DialogService } from '@arsedizioni/ars-utils/ui';
|
|
5
5
|
import { of, throwError } from 'rxjs';
|
|
6
6
|
import { catchError, map } from 'rxjs/operators';
|
|
7
|
-
import { ClipperDashboard,
|
|
7
|
+
import { ClipperDashboard, ClipperQueryReferencesMode } from '../definitions';
|
|
8
8
|
import { ClipperMessages } from '../messages';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class ClipperService {
|
|
@@ -234,10 +234,7 @@ export class ClipperService {
|
|
|
234
234
|
* Get facets for a query
|
|
235
235
|
*/
|
|
236
236
|
queryFacets(params) {
|
|
237
|
-
return this.httpClient.post(
|
|
238
|
-
(params.models?.length === 1 && params.models[0] === ClipperModel.Coordinamento)
|
|
239
|
-
? this._serviceUri + '/documents/changes/facets'
|
|
240
|
-
: this._serviceUri + '/documents/facets', params);
|
|
237
|
+
return this.httpClient.post(this._serviceUri + '/documents/facets', params);
|
|
241
238
|
}
|
|
242
239
|
/**
|
|
243
240
|
* Update document state
|
|
@@ -550,4 +547,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImpor
|
|
|
550
547
|
providedIn: 'root',
|
|
551
548
|
}]
|
|
552
549
|
}] });
|
|
553
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2NsaXBwZXIuY29tbW9uL2NvbW1vbi9zZXJ2aWNlcy9jbGlwcGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFxQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQ00sZ0JBQWdCLEVBQ0EsV0FBVyxFQUN2QyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQWdCLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQStLLFlBQVksRUFBMkYsMEJBQTBCLEVBQWdPLE1BQU0sZ0JBQWdCLENBQUM7QUFDaGtCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBTTlDLE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBS1UsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUd0QyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFJbEMsZUFBVSxHQUFxQixJQUFJLENBQUM7UUFZNUIsYUFBUSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsQyxjQUFTLEdBQUcsTUFBTSxDQUFVLEtB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Q0gsSUFBSSxDQUFDLFVBQVUsR0FBRywwQkFBMEIsRUFDNUMsTUFBTSxDQUNQLENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEVBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixJQUFJLENBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyw0QkFBNEIsRUFDOUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQ1gsQ0FBQztJQUNOLENBQUM7OEdBcHNCVSxjQUFjO2tIQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQXBpUmVzdWx0LCBCcm9hZGNhc3RTZXJ2aWNlLFxyXG4gIEZvbGRlclRyZWUsIE5hbWVWYWx1ZUl0ZW0sIFN5c3RlbVV0aWxzXHJcbn0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWknO1xyXG5pbXBvcnQgeyBMb2dpbk9BdXRoVHlwZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWkub2F1dGgnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ2xpcHBlckRhc2hib2FyZCwgQ2xpcHBlckRhc2hib2FyZFJlc3VsdCwgQ2xpcHBlckRvY3VtZW50SW5mbywgQ2xpcHBlckRvY3VtZW50U3RydWN0dXJlLCBDbGlwcGVyRG9jdW1lbnRVcGRhdGVTdGF0ZVBhcmFtcywgQ2xpcHBlckV4cG9ydERvY3VtZW50c1BhcmFtcywgQ2xpcHBlckxvZ2luSW5mbywgQ2xpcHBlckxvZ2luUmVzdWx0LCBDbGlwcGVyTW9kZWwsIENsaXBwZXJNb2R1bGUsIENsaXBwZXJPVFBJbmZvLCBDbGlwcGVyUXVlcnlBcnNFdmVudHNQYXJhbXMsIENsaXBwZXJRdWVyeUFyc0V2ZW50c1Jlc3VsdCwgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUsIENsaXBwZXJSZWZlcmVuY2VzU2VhcmNoUGFyYW1zLCBDbGlwcGVyU2VhcmNoRmFjZXRzUmVzdWx0LCBDbGlwcGVyU2VhcmNoUGFyYW1zLCBDbGlwcGVyU2VhcmNoUmVzdWx0LCBDbGlwcGVyU2VuZERvY3VtZW50c0J5RW1haWxQYXJhbXMsIENsaXBwZXJUYXhvbm9teVBhcmFtcywgQ2xpcHBlclVzZXJMaW5rLCBDbGlwcGVyVXNlclNlYXJjaCwgQ2xpcHBlclVzZXJXb3JraW5nRG9jdW1lbnQgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XHJcbmltcG9ydCB7IENsaXBwZXJNZXNzYWdlcyB9IGZyb20gJy4uL21lc3NhZ2VzJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIGh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XHJcbiAgcHJpdmF0ZSBicm9hZGNhc3RTZXJ2aWNlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uIHwgbnVsbDtcclxuICBwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2UgPSBpbmplY3QoQnJvYWRjYXN0U2VydmljZSk7XHJcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfc2VydmljZVVyaTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZ2V0IHNlcnZpY2VVcmkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlVXJpO1xyXG4gIH1cclxuICBwcml2YXRlIF9sb2dpbkluZm86IENsaXBwZXJMb2dpbkluZm8gPSBudWxsO1xyXG4gIGdldCBsb2dpbkluZm8oKTogQ2xpcHBlckxvZ2luSW5mbyB7XHJcbiAgICBpZiAoIXRoaXMuX2xvZ2luSW5mbykge1xyXG4gICAgICBjb25zdCBsb2dpbkluZm8gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2xpcHBlcl9sb2dpbicpO1xyXG4gICAgICBpZiAobG9naW5JbmZvKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIHRoaXMuX2xvZ2luSW5mbyA9IEpTT04ucGFyc2UobG9naW5JbmZvKSBhcyBDbGlwcGVyTG9naW5JbmZvO1xyXG4gICAgICAgIH0gY2F0Y2ggeyB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9sb2dpbkluZm87XHJcbiAgfVxyXG4gIHB1YmxpYyByZWFkb25seSBsb2dnZWRJbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGxvZ2dpbmdJbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNuYXBzaG90ID0gc2lnbmFsPENsaXBwZXJTZWFyY2hSZXN1bHQ+KG51bGwpO1xyXG4gIHB1YmxpYyByZWFkb25seSByZWZlcmVuY2VzU25hcHNob3QgPSBzaWduYWw8Q2xpcHBlclNlYXJjaFJlc3VsdD4obnVsbCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRhc2hib2FyZDogQ2xpcHBlckRhc2hib2FyZCA9IG5ldyBDbGlwcGVyRGFzaGJvYXJkKCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGJhZyA9IHNpZ25hbDxDbGlwcGVyRG9jdW1lbnRJbmZvW10+KFtdKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgYmFnVG90YWw6IFNpZ25hbDxudW1iZXI+ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFnKCkubGVuZ3RoO1xyXG4gIH0pO1xyXG4gIHB1YmxpYyByZWFkb25seSB2aXNpYmxlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc3VwcG9ydHNSUyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuYnJvYWRjYXN0U2VydmljZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgc2VydmljZVxyXG4gICAqIEBwYXJhbSBzZXJ2aWNlVXJpIDogdGhlIHNlcnZpY2UgdXJpXHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZShcclxuICAgIHNlcnZpY2VVcmk6IHN0cmluZykge1xyXG5cclxuICAgIC8vIENyZWF0ZSB1bmlxdWUgY2xpZW50IGlkXHJcbiAgICBpZiAoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbGlwcGVyX2NsaWVudF9pZCcpKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjbGlwcGVyX2NsaWVudF9pZCcsIFN5c3RlbVV0aWxzLmdlbmVyYXRlVVVJRCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJbml0aWFsaXplXHJcbiAgICB0aGlzLl9zZXJ2aWNlVXJpID0gc2VydmljZVVyaTtcclxuXHJcbiAgICAvLyBSZWFjdCB0byBtZXNzYWdlIGJyb2FkY2FzdGluZ1xyXG4gICAgaWYgKCF0aGlzLmJyb2FkY2FzdFNlcnZpY2VTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlU3Vic2NyaXB0aW9uID0gdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmdldE1lc3NhZ2UoKS5zdWJzY3JpYmUobWVzc2FnZSA9PiB7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UuaWQgPT09IENsaXBwZXJNZXNzYWdlcy5MT0dJTl9DSEFOR0VEKSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dpbihcclxuICAgICAgICAgICAgICBtZXNzYWdlLmRhdGEuZW1haWwsXHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5kYXRhLnBhc3N3b3JkLFxyXG4gICAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5kYXRhLm9hdXRoLFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2UuZGF0YS5vYXV0aEFjY2Vzc1Rva2VuKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXIuc3VjY2VzcylcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVycm9yKHIubWVzc2FnZSwgbnVsbCwgXCJFcnJvcmUgZGkgQ2xpcHBlclwiKTtcclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UudG9hc3QoJ0Nvbm5lc3NvIGEgQ2xpcHBlcicsIDE1MDAsICdwb3dlcicpO1xyXG4gICAgICAgICAgICAgICAgICAvLyBMb2FkIGJhZ1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRCYWcoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmlkID09PSBDbGlwcGVyTWVzc2FnZXMuTE9HT1VUX0NPTVBMRVRFRCB8fFxyXG4gICAgICAgICAgbWVzc2FnZS5pZCA9PT0gQ2xpcHBlck1lc3NhZ2VzLkxPR0lOX0RJU0NPTk5FQ1RFRCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMubG9nZ2VkSW4oKSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ291dCgpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICAgICAgICBpZiAoIXIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVycm9yKFwiPHA+XCIgKyByLm1lc3NhZ2UgKyBcIjwvcD48YnI+PGJyPjxocj48cCBjbGFzcz0nc21hbGwnPjxpPlBlciBlbGltaW5hcmUgbGEgY29uZmlndXJhemlvbmUgZGkgQ2xpcHBlciBhY2NlZGVyZSBhOjxicj48Yj5tZW51ID4gcGVyc29uYWxpenphID4gY29sbGVnYW1lbnRpPC9iPjwvaT48L3A+XCIsIG51bGwsIFwiRXJyb3JlIGRpIENsaXBwZXJcIik7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50b2FzdCgnRGlzY29ubmVzc28gZGEgQ2xpcHBlcicsIDE1MDAsICdwb3dlcl9vZmYnKTtcclxuICAgICAgICAgICAgICAgIC8vIEVtcHR5IGJhZ1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iYWcuc2V0KFtdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXZlbHVhdGUgY3VycmVudCBzZXNzaW9uIHN0b3JhZ2UgaW4gY2FzZSBvZiBwYWdlIHJlZnJlc2ggKEY1KVxyXG4gICAgaWYgKCF0aGlzLmxvZ2dlZEluKCkgJiYgdGhpcy5nZXRUb2tlbigpKSB7XHJcbiAgICAgIC8vIEF1dG8gbG9naW5cclxuICAgICAgdGhpcy5sb2dnZWRJbi5zZXQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICogU2V0IEpXVCB0b2tlbnNcclxuICogQHBhcmFtIHZhbHVlIDogdGhlIGxvZ2luIHJlc3VsdFxyXG4gKi9cclxuICBwcml2YXRlIHNldFRva2VuKHZhbHVlOiBDbGlwcGVyTG9naW5SZXN1bHQpIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2NsaXBwZXJfand0JywgdmFsdWUudG9rZW4pO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnY2xpcHBlcl9qd3RfcmVmcmVzaCcsIHZhbHVlLnJlZnJlc2hUb2tlbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gY3VycmVudCBKV1QgdG9rZW5cclxuICAgKiBAcGFyYW0gcmVmcmVzaDogdHJ1ZSB0byBnZXQgdGhlIHJlZnJlc2ggdG9rZW4uIERlZmF1bHQgaXMgZmFsc2UuXHJcbiAgICovXHJcbiAgZ2V0VG9rZW4ocmVmcmVzaDogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcclxuICAgIGxldCB0b2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0ocmVmcmVzaCA/ICdjbGlwcGVyX2p3dF9yZWZyZXNoJyA6ICdjbGlwcGVyX2p3dCcpO1xyXG4gICAgaWYgKHRva2VuICYmIHRva2VuWzBdID09PSAnXCInKSB7XHJcbiAgICAgIHJldHVybiB0b2tlbi5zdWJzdHJpbmcoMSwgdG9rZW4ubGVuZ3RoIC0gMSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG9rZW4gPz8gJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJmb3JtIGxvZ2luICAgXHJcbiAgICogQHBhcmFtIGVtYWlsOiB0aGUgb3B0aW9hbmwgZW1haWwgaWYgdXNpbmcgT0F1dGgyXHJcbiAgICogQHBhcm1hIHBhc3N3b3JkOiB0aGUgb3B0aW9uYWwgcGFzc3dvcmQgaWYgdXNpbmcgT0F1dGgyXHJcbiAgICogQHBhcmFtIHJlbWVtYmVyOiByZW1lbWJlciBjcmVkZW50aWFscyBcclxuICAgKiBAcGFyYW0gb2F1dGg6IHRoZSBvcHRpb25hbCBvcGVuIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnRlZFxyXG4gICAqIEBwYXJhbSBvYXV0aEFjY2Vzc1Rva2VuOiB0aGUgb3B0aW9uYWwgT0F1dGgyIGFjY2VzcyB0b2tlblxyXG4gICAqIEByZXR1cm5zOiB0aGUgbG9naW4gcmVzdWx0XHJcbiAgICovXHJcbiAgbG9naW4oZW1haWw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsLFxyXG4gICAgcGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsLFxyXG4gICAgcmVtZW1iZXI6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkID0gZmFsc2UsXHJcbiAgICBvYXV0aDogTG9naW5PQXV0aFR5cGUgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbCxcclxuICAgIG9hdXRoQWNjZXNzVG9rZW46IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsKSB7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB0aGlzLmxvZ2dpbmdJbi5zZXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyTG9naW5SZXN1bHQ+PihcclxuICAgICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9sb2dpbjInLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVzZXI6IG9hdXRoID8gbnVsbCA6IGVtYWlsLFxyXG4gICAgICAgICAgcGFzc3dvcmQ6IG9hdXRoID8gbnVsbCA6IHBhc3N3b3JkLFxyXG4gICAgICAgICAgY2xpZW50SWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2xpcHBlcl9jbGllbnRfaWRcIiksXHJcbiAgICAgICAgICBPQVVUSDogb2F1dGhcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6XHJcbiAgICAgICAgICAgICFvYXV0aFxyXG4gICAgICAgICAgICAgID8gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgICAgICA6IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgICAgICAuc2V0KFwiQXV0aG9yaXphdGlvblwiLCBvYXV0aEFjY2Vzc1Rva2VuKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2luZ0luLnNldChmYWxzZSk7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpcHBlcl9sb2dpbicpO1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBtYXAociA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dpbmdJbi5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgaWYgKHIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAvLyBTdG9yZSBhY2Nlc3MgdG9rZW5cclxuICAgICAgICAgICAgdGhpcy5zZXRUb2tlbihyLnZhbHVlKTtcclxuICAgICAgICAgICAgY29uc3QgbG9naW5JbmZvOiBDbGlwcGVyTG9naW5JbmZvID0ge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHIudmFsdWUuY29udGV4dCxcclxuICAgICAgICAgICAgICB1c2VyU2V0dGluZ3M6IHIudmFsdWUuc2V0dGluZ3MsXHJcbiAgICAgICAgICAgICAgT0FVVEg6IG9hdXRoXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFvYXV0aCkge1xyXG4gICAgICAgICAgICAgIGxvZ2luSW5mby51c2VyQ3JlZGVudGlhbHMgPVxyXG4gICAgICAgICAgICAgICAgU3lzdGVtVXRpbHMuY2lwaGVyKFxyXG4gICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgZW1haWw6IGVtYWlsLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgICAgICAgICAgICAgICAgICByZW1lbWJlcjogcmVtZW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgIH0pLCBsb2dpbkluZm8uY29udGV4dC51c2VySWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBpbmZvXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgICdjbGlwcGVyX2xvZ2luJyxcclxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShsb2dpbkluZm8pXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9sb2dpbkluZm8gPSBsb2dpbkluZm87XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlZEluLnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyZm9ybSBsb2dvdXRcclxuICAgKi9cclxuICBsb2dvdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8YW55Pih0aGlzLl9zZXJ2aWNlVXJpICsgJy9sb2dvdXQnLCB7fSkucGlwZShcclxuICAgICAgbWFwKHIgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICByZXR1cm4gclxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoX2UpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIFJlc2V0IGxvZ2luIHJlZnJlc2ggdGltZXIgYW5kIGxvZ2luIHN0YXRlXHJcbiAqL1xyXG4gIHJlc2V0KCkgeyAgIFxyXG4gICAgLy8gQ2xlYXIgbG9naW4gaW5mb1xyXG4gICAgdGhpcy5fbG9naW5JbmZvID0gbnVsbDtcclxuXHJcbiAgICAvLyBMb2dnZWQgb3V0XHJcbiAgICB0aGlzLmxvZ2dlZEluLnNldChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciBsb2dpbiBkYXRhXHJcbiAgICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICAvLyBDbGVhciBsb2NhbCBzdG9yYWdlXHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdjbGlwcGVyX2p3dCcpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpcHBlcl9qd3RfcmVmcmVzaCcpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpcHBlcl9vYXV0aCcpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NsaXBwZXJfbG9naW4nKTtcclxuXHJcbiAgICAvLyBSZXNldCBsb2dpblxyXG4gICAgdGhpcy5yZXNldCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gKiBQZXJmb3JtIHRva2VuIHJlZnJlc2hcclxuICovXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxDbGlwcGVyTG9naW5SZXN1bHQ+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvcmVmcmVzaDIvP3Rva2VuPScgKyB0aGlzLmdldFRva2VuKHRydWUpXHJcbiAgICApLnBpcGUobWFwKHIgPT4ge1xyXG4gICAgICAvLyBVcGRhdGUgdG9rZW5cclxuICAgICAgdGhpcy5zZXRUb2tlbihyLnZhbHVlKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogR2V0IGEgbmV3IG9uZSB0aW1lIHBhc3N3b3JkXHJcbiAgKiBAcGFyYW0gaWQ6IHRoZSBvcHRpb25hbCByZXBvc2l0b3J5IGlkIFxyXG4gICovXHJcbiAgbmV3T1RQKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxDbGlwcGVyT1RQSW5mbz4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9vdHAvbmV3Lz9pZD0nICsgaWQsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZCBBcnMgZXZlbnRzIGNhbGVuZGFyXHJcbiAgICovXHJcbiAgZXZlbnRzKHBhcmFtczogQ2xpcHBlclF1ZXJ5QXJzRXZlbnRzUGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PENsaXBwZXJRdWVyeUFyc0V2ZW50c1Jlc3VsdD4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9hcnMvZXZlbnRzJyxcclxuICAgICAgcGFyYW1zXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFF1ZXJ5IGRvY3VtZW50c1xyXG4gICAqL1xyXG4gIHF1ZXJ5KHBhcmFtczogQ2xpcHBlclNlYXJjaFBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyU2VhcmNoUmVzdWx0Pj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cycsXHJcbiAgICAgIHBhcmFtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBmYWNldHMgZm9yIGEgcXVlcnlcclxuICAgKi9cclxuICBxdWVyeUZhY2V0cyhwYXJhbXM6IENsaXBwZXJTZWFyY2hQYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8Q2xpcHBlclNlYXJjaEZhY2V0c1Jlc3VsdD4+KFxyXG4gICAgICBwYXJhbXMubW9kZWwgPT09IENsaXBwZXJNb2RlbC5Db29yZGluYW1lbnRvIHx8XHJcbiAgICAgICAgKHBhcmFtcy5tb2RlbHM/Lmxlbmd0aCA9PT0gMSAmJiBwYXJhbXMubW9kZWxzWzBdID09PSBDbGlwcGVyTW9kZWwuQ29vcmRpbmFtZW50bylcclxuICAgICAgICA/IHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9jaGFuZ2VzL2ZhY2V0cydcclxuICAgICAgICA6IHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9mYWNldHMnLFxyXG4gICAgICBwYXJhbXNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgKiBVcGRhdGUgZG9jdW1lbnQgc3RhdGVcclxuICAqL1xyXG4gIHVwZGF0ZVN0YXRlKHBhcmFtczogQ2xpcHBlckRvY3VtZW50VXBkYXRlU3RhdGVQYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8bnVtYmVyPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9zdGF0ZS91cGRhdGUnLFxyXG4gICAgICBwYXJhbXNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeHBvcnQgYSBkb2N1bWVudCBpbiBwZGYgZm9ybWF0XHJcbiAgICovXHJcbiAgZXhwb3J0UGRmKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvZXhwb3J0LycgKyBpZCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvKipcclxuICogRXhwb3J0IGRvY3VtZW50IGxpc3QgKHF1ZXJ5IG9yIHNlbGVjdGVkIGl0ZW1zKSBvciBleHBvcnQgZGVhZGxpbmVzIGFzIGljc1xyXG4gKi9cclxuICBleHBvcnQocGFyYW1zOiBDbGlwcGVyRXhwb3J0RG9jdW1lbnRzUGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9leHBvcnQnLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmQgZG9jdW1lbnRzIGxpbmsgYnkgZW1haWxcclxuICAgKi9cclxuICBzZW5kVG8ocGFyYW1zOiBDbGlwcGVyU2VuZERvY3VtZW50c0J5RW1haWxQYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8bnVtYmVyPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9zZW5kJyxcclxuICAgICAgcGFyYW1zXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheSBhIHBhZ2UgdGhlIGZ1bGwgZG9jdW1lbnQgcmVwb3J0XHJcbiAgICovXHJcbiAgcmVwb3J0KGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvcmVwb3J0LycgKyBpZCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGRvY3VtZW50IGNvbW1lbnRcclxuICAgKi9cclxuICBjb21tZW50KGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxzdHJpbmc+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2NvbW1lbnQvJyArIGlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGRvY3VtZW50IGluZm9cclxuICAgKi9cclxuICBpbmZvKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxDbGlwcGVyRG9jdW1lbnRJbmZvPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9pbmZvLycgKyBpZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBkb2N1bWVudCBzdHJ1Y3R1cmVcclxuICAgKi9cclxuICBpbmRleChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcGlSZXN1bHQ8Q2xpcHBlckRvY3VtZW50U3RydWN0dXJlPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9zdHJ1Y3R1cmUvJyArIGlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGRvY3VtZW50IGxhc3QgdXBkYXRlXHJcbiAgICovXHJcbiAgbGFzdFVwZGF0ZShpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcGlSZXN1bHQ8c3RyaW5nPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9sYXN0LXVwZGF0ZS8nICsgaWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBRdWVyeSBkb2N1bWVudCByZWZlcmVuY2VzXHJcbiAgICovXHJcbiAgcmVmZXJlbmNlcyhwYXJhbXM6IENsaXBwZXJSZWZlcmVuY2VzU2VhcmNoUGFyYW1zKSB7XHJcbiAgICBsZXQgbW9kZSA9IHBhcmFtcy5tb2RlO1xyXG4gICAgaWYgKCFtb2RlKSBtb2RlID0gQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuUmVmZXJlbmNlc0luO1xyXG4gICAgc3dpdGNoIChtb2RlKSB7XHJcbiAgICAgIGNhc2UgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuUmVmZXJlbmNlc0luOlxyXG4gICAgICBjYXNlIENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLlJlZmVyZW5jZXNPdXQ6XHJcbiAgICAgICAgcGFyYW1zLm1vZGUgPSBtb2RlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8Q2xpcHBlclNlYXJjaFJlc3VsdD4+KFxyXG4gICAgICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL3JlZmVyZW5jZXMnLFxyXG4gICAgICAgICAgcGFyYW1zXHJcbiAgICAgICAgKTtcclxuICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5DaGFuZ2VzSW46XHJcbiAgICAgIGNhc2UgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuQ2hhbmdlc091dDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PENsaXBwZXJTZWFyY2hSZXN1bHQ+PihcclxuICAgICAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9jaGFuZ2VzJyxcclxuICAgICAgICAgIHBhcmFtc1xyXG4gICAgICAgICk7XHJcbiAgICAgIGNhc2UgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuSnVyaXM6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyU2VhcmNoUmVzdWx0Pj4oXHJcbiAgICAgICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvanVyaXMnLFxyXG4gICAgICAgICAgcGFyYW1zXHJcbiAgICAgICAgKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBmYWNldHMgZm9yIGEgZG9jdW1lbnQgcmVmZXJlbmNlc1xyXG4gICAqL1xyXG4gIHJlZmVyZW5jZXNGYWNldHMocGFyYW1zOiBDbGlwcGVyUmVmZXJlbmNlc1NlYXJjaFBhcmFtcykge1xyXG4gICAgbGV0IG1vZGUgPSBwYXJhbXMubW9kZSA/PyBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5SZWZlcmVuY2VzSW47XHJcbiAgICBzd2l0Y2ggKG1vZGUpIHtcclxuICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5SZWZlcmVuY2VzSW46XHJcbiAgICAgIGNhc2UgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuUmVmZXJlbmNlc091dDpcclxuICAgICAgICBwYXJhbXMubW9kZSA9IG1vZGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyU2VhcmNoRmFjZXRzUmVzdWx0Pj4oXHJcbiAgICAgICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvcmVmZXJlbmNlcy9mYWNldHMnLFxyXG4gICAgICAgICAgcGFyYW1zXHJcbiAgICAgICAgKTtcclxuICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5DaGFuZ2VzSW46XHJcbiAgICAgIGNhc2UgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuQ2hhbmdlc091dDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PENsaXBwZXJTZWFyY2hGYWNldHNSZXN1bHQ+PihcclxuICAgICAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9jaGFuZ2VzL2ZhY2V0cycsXHJcbiAgICAgICAgICBwYXJhbXNcclxuICAgICAgICApO1xyXG4gICAgICBjYXNlIENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLkp1cmlzOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8Q2xpcHBlclNlYXJjaEZhY2V0c1Jlc3VsdD4+KFxyXG4gICAgICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2p1cmlzL2ZhY2V0cycsXHJcbiAgICAgICAgICBwYXJhbXNcclxuICAgICAgICApO1xyXG4gICAgICBkZWZhdWx0OiByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBkb2N1bWVudCBqdXJpcyBhcnRpY2xlc1xyXG4gICAqL1xyXG4gIGp1cmlzQXJ0aWNsZXMocGFyYW1zOiBDbGlwcGVyU2VhcmNoUGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PENsaXBwZXJTZWFyY2hSZXN1bHQ+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2p1cmlzL2FydGljbGVzJyxcclxuICAgICAgcGFyYW1zXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBHZXQgY2FsZW5kYXIgc25hcHNob3QgYmFzZWQgb24gdGhlIGRlYWRsaW5lc1xyXG4gICovXHJcbiAgY2FsZW5kYXJTbmFwc2hvdChwYXJhbXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxhbnk+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2NhbGVuZGFyL3NuYXBzaG90JyxcclxuICAgICAgcGFyYW1zXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIHRoZSB0YXhvbm9teVxyXG4gICAqL1xyXG4gIGdldFRheG9ub215KHBhcmFtczogQ2xpcHBlclRheG9ub215UGFyYW1zIHwgbnVsbCA9IG51bGwpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8Rm9sZGVyVHJlZT4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy90YXhvbm9teScsXHJcbiAgICAgIHBhcmFtcyA/PyB7IG1vZGVsOiAwLCBjb3VudEl0ZW1zOiBmYWxzZSB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgdG9waWNzXHJcbiAgICovXHJcbiAgZ2V0VG9waWNzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzdWx0PE5hbWVWYWx1ZUl0ZW08c3RyaW5nPltdPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL3RvcGljcydcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSB0YWdzXHJcbiAgICovXHJcbiAgZ2V0VGFncygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxOYW1lVmFsdWVJdGVtPHN0cmluZz5bXT4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy90YWdzJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICAvLy9cclxuICAvLyBEQVNIQk9BUkRcclxuICAvLy9cclxuICAvKipcclxuICAqIFJldHJpZXZlIGN1cnJlbnQgZGFzaGJvYXJkXHJcbiAgKi9cclxuICBsb2FkRGFzaGJvYXJkKCkge1xyXG4gICAgdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyRGFzaGJvYXJkUmVzdWx0Pj4oXHJcbiAgICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvYWNjb3VudC9kYXNoYm9hcmQnLFxyXG4gICAgICAgIHsgcmVmcmVzaGluZzogdHJ1ZSB9XHJcbiAgICAgICkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIGlmIChyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMuZGFzaGJvYXJkLmRvY3VtZW50VXBkYXRlcyA9IHIudmFsdWUuZG9jdW1lbnRVcGRhdGVzO1xyXG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmQuZXhwaXJlZERlYWRsaW5lcyA9IHIudmFsdWUuZXhwaXJlZERlYWRsaW5lcztcclxuICAgICAgICAgIHRoaXMuZGFzaGJvYXJkLmV4cGlyaW5nRGVhZGxpbmVzID0gci52YWx1ZS5leHBpcmluZ0RlYWRsaW5lcztcclxuICAgICAgICAgIHRoaXMuZGFzaGJvYXJkLmlzVHJpYWwgPSByLnZhbHVlLmlzVHJpYWw7XHJcbiAgICAgICAgICB0aGlzLmRhc2hib2FyZC5pdGVtcy5zZXQoci52YWx1ZS5pdGVtcyk7XHJcbiAgICAgICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc2VuZE1lc3NhZ2UoQ2xpcHBlck1lc3NhZ2VzLkNPTU1BTkRfREFTSEJPQVJEX1VQREFURUQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIFVwZGF0ZSB1bnJlYWQgaXRlbXNcclxuICAqIEBwYXJhbSBtb2R1bGUgOiB0aGUgbW9kdWxlXHJcbiAgKiBAcGFyYW0gaW5jcmVtZW50IDogdGhlIGluY3JlbWVudCAoY2FuIGJlIG5lZ2F0aXZlKVxyXG4gICovXHJcbiAgdXBkYXRlVW5yZWFkSXRlbXMobW9kdWxlOiBDbGlwcGVyTW9kdWxlLCBpbmNyZW1lbnQ6IG51bWJlcikge1xyXG4gICAgY29uc29sZS5sb2coJ21vZHVsZTonICsgbW9kdWxlKTtcclxuICAgIHRoaXMuZGFzaGJvYXJkLnVwZGF0ZVVucmVhZEl0ZW1zKG1vZHVsZSwgaW5jcmVtZW50KTtcclxuICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZS5zZW5kTWVzc2FnZShDbGlwcGVyTWVzc2FnZXMuQ09NTUFORF9EQVNIQk9BUkRfVVBEQVRFRCk7XHJcbiAgfVxyXG5cclxuICAvLy9cclxuICAvLyBMSU5LU1xyXG4gIC8vL1xyXG5cclxuICAvKipcclxuICAqIFNhdmUgYSB1c2VyIGxpbmtcclxuICAqIEBwYXJhbSBpdGVtOiB0aGUgdXNlciBsaW5rXHJcbiAgKi9cclxuICBzYXZlTGluayhpdGVtOiBDbGlwcGVyVXNlckxpbmspIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8Ym9vbGVhbj4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9hY2NvdW50L2xpbmtzL3NhdmUnLFxyXG4gICAgICBpdGVtXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGEgdXNlciBsaW5rXHJcbiAgICogQHBhcmFtIGl0ZW06IHRoZSB1c2VyIGxpbmtcclxuICAgKi9cclxuICBkZWxldGVMaW5rKGl0ZW06IENsaXBwZXJVc2VyTGluaykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxib29sZWFuPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2FjY291bnQvbGlua3MvZGVsZXRlJyxcclxuICAgICAgaXRlbVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICAvLy9cclxuICAvLyBCQUcgLSBXT1JLSU5HIERPQ1VNRU5UU1xyXG4gIC8vL1xyXG5cclxuICAvKipcclxuICAgKiBMb2FkIHdvcmtpbmcgZG9jdW1lbnRzXHJcbiAgICovXHJcbiAgbG9hZEJhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgLmdldDxBcGlSZXN1bHQ8Q2xpcHBlclVzZXJXb3JraW5nRG9jdW1lbnRbXT4+KFxyXG4gICAgICAgIHRoaXMuc2VydmljZVVyaSArICcvZG9jdW1lbnRzL3dvcmtpbmcnXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICByID0+IHtcclxuICAgICAgICAgIGlmICghci5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5lcnJvcihyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHIudmFsdWUpIHtcclxuICAgICAgICAgICAgICBjb25zdCBpdGVtczogQ2xpcHBlckRvY3VtZW50SW5mb1tdID0gW107XHJcbiAgICAgICAgICAgICAgci52YWx1ZS5mb3JFYWNoKG4gPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKG4uZG9jdW1lbnREZXNjcmlwdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50SW5mbyA9IEpTT04ucGFyc2Uobi5kb2N1bWVudERlc2NyaXB0b3IpO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnRJbmZvKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbi5kb2N1bWVudElkID0gZG9jdW1lbnRJbmZvLkRvY3VtZW50SWQgfHwgZG9jdW1lbnRJbmZvLklkO1xyXG4gICAgICAgICAgICAgICAgICAgIG4udGl0bGUxID0gZG9jdW1lbnRJbmZvLlRpdGxlMSA/PyBkb2N1bWVudEluZm8uVGl0bGUyO1xyXG4gICAgICAgICAgICAgICAgICAgIG4udGl0bGUyID0gZG9jdW1lbnRJbmZvLlRpdGxlMSA/IGRvY3VtZW50SW5mby5UaXRsZTIgOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIG4uZG9jdW1lbnREZXNjcmlwdG9yID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaChuKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmJhZy5zZXQoaXRlbXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgb25lIG9yIG1vcmUgd29ya2luZyBkb2N1bWVudFxyXG4gICAqIEBwYXJhbSBkb2N1bWVudElkcyA6IHRoZSBkb2N1bWVudCBpZHMgdG8gYWRkXHJcbiAgICovXHJcbiAgYWRkVG9CYWcoZG9jdW1lbnRJZHM6IHN0cmluZ1tdKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyVXNlcldvcmtpbmdEb2N1bWVudFtdPj4oXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvd29ya2luZy9hZGQnLFxyXG4gICAgICAgIHsgZG9jdW1lbnRJZHM6IGRvY3VtZW50SWRzIH1cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIGlmICghci5zdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZXJyb3Ioci5tZXNzYWdlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHIudmFsdWUpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3SXRlbXM6IENsaXBwZXJEb2N1bWVudEluZm9bXSA9IFtdO1xyXG4gICAgICAgICAgICByLnZhbHVlLmZvckVhY2gobiA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG4uZG9jdW1lbnREZXNjcmlwdG9yKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudEluZm8gPSBKU09OLnBhcnNlKG4uZG9jdW1lbnREZXNjcmlwdG9yKTtcclxuICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudEluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgbi5kb2N1bWVudElkID0gZG9jdW1lbnRJbmZvLkRvY3VtZW50SWQgfHwgZG9jdW1lbnRJbmZvLklkO1xyXG4gICAgICAgICAgICAgICAgICBuLnRpdGxlMSA9IGRvY3VtZW50SW5mby5UaXRsZTEgPz8gZG9jdW1lbnRJbmZvLlRpdGxlMjtcclxuICAgICAgICAgICAgICAgICAgbi50aXRsZTIgPSBkb2N1bWVudEluZm8uVGl0bGUxID8gZG9jdW1lbnRJbmZvLlRpdGxlMiA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBuLmRvY3VtZW50RGVzY3JpcHRvciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBuZXdJdGVtcy5wdXNoKG4pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChuZXdJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5iYWcudXBkYXRlKHZhbHVlcyA9PiBbLi4udmFsdWVzLCAuLi5uZXdJdGVtc10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50b2FzdCgnT3BlcmF6aW9uZSBjb21wbGV0YXRhIGNvbiBzdWNjZXNzby4nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIG9uZSB3b3JraW5nIGRvY3VtZW50XHJcbiAgICogQHBhcmFtIGRvY3VtZW50SWQgOiB0aGUgZG9jdW1lbnQgaWRcclxuICAgKi9cclxuICByZW1vdmVGcm9tQmFnKGRvY3VtZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucG9zdDxBcGlSZXN1bHQ8bnVtYmVyPj4oXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvd29ya2luZy9kZWxldGUnLFxyXG4gICAgICAgIHsgZG9jdW1lbnRJZHM6IFtkb2N1bWVudElkXSB9XHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBpZiAoIXIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVycm9yKHIubWVzc2FnZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHAgPSB0aGlzLmJhZygpLmZpbmRJbmRleChuID0+IG4uZG9jdW1lbnRJZCA9PT0gZG9jdW1lbnRJZCk7XHJcbiAgICAgICAgICBpZiAocCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5iYWcudXBkYXRlKHZhbHVlcyA9PiB7XHJcbiAgICAgICAgICAgICAgdmFsdWVzLnNwbGljZShwLCAxKTtcclxuICAgICAgICAgICAgICByZXR1cm4gWy4uLnZhbHVlc107XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UudG9hc3QoJ09wZXJhemlvbmUgY29tcGxldGF0YSBjb24gc3VjY2Vzc28uJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGFsbCB3b3JraW5nIGRvY3VtZW50c1xyXG4gICAqL1xyXG4gIGNsZWFyQmFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucG9zdDxBcGlSZXN1bHQ8bnVtYmVyPj4oXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvd29ya2luZy9kZWxldGUnLFxyXG4gICAgICAgIHsgZGVsZXRlQWxsOiB0cnVlIH1cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIGlmICghci5zdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZXJyb3Ioci5tZXNzYWdlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5iYWcuc2V0KFtdKTtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50b2FzdCgnT3BlcmF6aW9uZSBjb21wbGV0YXRhIGNvbiBzdWNjZXNzby4nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8vXHJcbiAgLy8gV09SS0lORyBTRUFSQ0hFU1xyXG4gIC8vL1xyXG5cclxuICAvKipcclxuICAgKiBMb2FkIHdvcmtpbmcgc2VhcmNoZXNcclxuICAgKiBAcGFyYW06IG1vZHVsZTogdGhlIG1vZHVsZSB0byBsb2FkIHNlYXJjaGVzIGZvclxyXG4gICAqL1xyXG4gIGxvYWRTZWFyY2hlcyhtb2R1bGU6IENsaXBwZXJNb2R1bGUpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgLmdldDxBcGlSZXN1bHQ8Q2xpcHBlclVzZXJTZWFyY2hbXT4+KFxyXG4gICAgICAgIHRoaXMuc2VydmljZVVyaSArICcvZG9jdW1lbnRzL3NlYXJjaGVzLz9tb2R1bGU9JyArIG1vZHVsZVxyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTYXZlIGEgd29ya2luZyBzZWFyY2hcclxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZHMgOiB0aGUgZG9jdW1lbnQgaWRzIHRvIGFkZFxyXG4gICAqL1xyXG4gIHNhdmVTZWFyY2gocGFyYW1zOiBDbGlwcGVyVXNlclNlYXJjaCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucG9zdDxBcGlSZXN1bHQ8Q2xpcHBlclVzZXJTZWFyY2g+PihcclxuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9zZWFyY2hlcy9zYXZlJyxcclxuICAgICAgICBwYXJhbXNcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBvbmUgd29ya2luZyBzZWFyY2hcclxuICAgKiBAcGFyYW0gaWQgOiB0aGUgaWQgdG8gcmVtb3ZlXHJcbiAgICovXHJcbiAgZGVsZXRlU2VhcmNoKGlkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgLnBvc3Q8QXBpUmVzdWx0PG51bWJlcj4+KFxyXG4gICAgICAgIHRoaXMuc2VydmljZVVyaSArICcvZG9jdW1lbnRzL3NlYXJjaGVzL2RlbGV0ZScsXHJcbiAgICAgICAgeyBpZDogaWQgfVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
550
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2NsaXBwZXIuY29tbW9uL2NvbW1vbi9zZXJ2aWNlcy9jbGlwcGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFxQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQ00sZ0JBQWdCLEVBQ0EsV0FBVyxFQUN2QyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQWdCLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXdRLDBCQUEwQixFQUFnTyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xqQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU05QyxNQUFNLE9BQU8sY0FBYztJQUgzQjtRQUtVLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFHdEMsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBSWxDLGVBQVUsR0FBcUIsSUFBSSxDQUFDO1FBWTVCLGFBQVEsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FB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Qzs4R0Fqc0JVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgU2lnbmFsLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBcGlSZXN1bHQsIEJyb2FkY2FzdFNlcnZpY2UsXHJcbiAgRm9sZGVyVHJlZSwgTmFtZVZhbHVlSXRlbSwgU3lzdGVtVXRpbHNcclxufSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy91aSc7XHJcbmltcG9ydCB7IExvZ2luT0F1dGhUeXBlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy91aS5vYXV0aCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDbGlwcGVyRGFzaGJvYXJkLCBDbGlwcGVyRGFzaGJvYXJkUmVzdWx0LCBDbGlwcGVyRG9jdW1lbnRJbmZvLCBDbGlwcGVyRG9jdW1lbnRTdHJ1Y3R1cmUsIENsaXBwZXJEb2N1bWVudFVwZGF0ZVN0YXRlUGFyYW1zLCBDbGlwcGVyRXhwb3J0RG9jdW1lbnRzUGFyYW1zLCBDbGlwcGVyTG9naW5JbmZvLCBDbGlwcGVyTG9naW5SZXN1bHQsIENsaXBwZXJNb2R1bGUsIENsaXBwZXJPVFBJbmZvLCBDbGlwcGVyUXVlcnlBcnNFdmVudHNQYXJhbXMsIENsaXBwZXJRdWVyeUFyc0V2ZW50c1Jlc3VsdCwgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUsIENsaXBwZXJSZWZlcmVuY2VzU2VhcmNoUGFyYW1zLCBDbGlwcGVyU2VhcmNoRmFjZXRzUmVzdWx0LCBDbGlwcGVyU2VhcmNoUGFyYW1zLCBDbGlwcGVyU2VhcmNoUmVzdWx0LCBDbGlwcGVyU2VuZERvY3VtZW50c0J5RW1haWxQYXJhbXMsIENsaXBwZXJUYXhvbm9teVBhcmFtcywgQ2xpcHBlclVzZXJMaW5rLCBDbGlwcGVyVXNlclNlYXJjaCwgQ2xpcHBlclVzZXJXb3JraW5nRG9jdW1lbnQgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XHJcbmltcG9ydCB7IENsaXBwZXJNZXNzYWdlcyB9IGZyb20gJy4uL21lc3NhZ2VzJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpcHBlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIGh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XHJcbiAgcHJpdmF0ZSBicm9hZGNhc3RTZXJ2aWNlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uIHwgbnVsbDtcclxuICBwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2UgPSBpbmplY3QoQnJvYWRjYXN0U2VydmljZSk7XHJcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfc2VydmljZVVyaTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZ2V0IHNlcnZpY2VVcmkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlVXJpO1xyXG4gIH1cclxuICBwcml2YXRlIF9sb2dpbkluZm86IENsaXBwZXJMb2dpbkluZm8gPSBudWxsO1xyXG4gIGdldCBsb2dpbkluZm8oKTogQ2xpcHBlckxvZ2luSW5mbyB7XHJcbiAgICBpZiAoIXRoaXMuX2xvZ2luSW5mbykge1xyXG4gICAgICBjb25zdCBsb2dpbkluZm8gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2xpcHBlcl9sb2dpbicpO1xyXG4gICAgICBpZiAobG9naW5JbmZvKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIHRoaXMuX2xvZ2luSW5mbyA9IEpTT04ucGFyc2UobG9naW5JbmZvKSBhcyBDbGlwcGVyTG9naW5JbmZvO1xyXG4gICAgICAgIH0gY2F0Y2ggeyB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9sb2dpbkluZm87XHJcbiAgfVxyXG4gIHB1YmxpYyByZWFkb25seSBsb2dnZWRJbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGxvZ2dpbmdJbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNuYXBzaG90ID0gc2lnbmFsPENsaXBwZXJTZWFyY2hSZXN1bHQ+KG51bGwpO1xyXG4gIHB1YmxpYyByZWFkb25seSByZWZlcmVuY2VzU25hcHNob3QgPSBzaWduYWw8Q2xpcHBlclNlYXJjaFJlc3VsdD4obnVsbCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRhc2hib2FyZDogQ2xpcHBlckRhc2hib2FyZCA9IG5ldyBDbGlwcGVyRGFzaGJvYXJkKCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGJhZyA9IHNpZ25hbDxDbGlwcGVyRG9jdW1lbnRJbmZvW10+KFtdKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgYmFnVG90YWw6IFNpZ25hbDxudW1iZXI+ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFnKCkubGVuZ3RoO1xyXG4gIH0pO1xyXG4gIHB1YmxpYyByZWFkb25seSB2aXNpYmxlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc3VwcG9ydHNSUyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuYnJvYWRjYXN0U2VydmljZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgc2VydmljZVxyXG4gICAqIEBwYXJhbSBzZXJ2aWNlVXJpIDogdGhlIHNlcnZpY2UgdXJpXHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZShcclxuICAgIHNlcnZpY2VVcmk6IHN0cmluZykge1xyXG5cclxuICAgIC8vIENyZWF0ZSB1bmlxdWUgY2xpZW50IGlkXHJcbiAgICBpZiAoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbGlwcGVyX2NsaWVudF9pZCcpKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjbGlwcGVyX2NsaWVudF9pZCcsIFN5c3RlbVV0aWxzLmdlbmVyYXRlVVVJRCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJbml0aWFsaXplXHJcbiAgICB0aGlzLl9zZXJ2aWNlVXJpID0gc2VydmljZVVyaTtcclxuXHJcbiAgICAvLyBSZWFjdCB0byBtZXNzYWdlIGJyb2FkY2FzdGluZ1xyXG4gICAgaWYgKCF0aGlzLmJyb2FkY2FzdFNlcnZpY2VTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlU3Vic2NyaXB0aW9uID0gdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmdldE1lc3NhZ2UoKS5zdWJzY3JpYmUobWVzc2FnZSA9PiB7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UuaWQgPT09IENsaXBwZXJNZXNzYWdlcy5MT0dJTl9DSEFOR0VEKSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dpbihcclxuICAgICAgICAgICAgICBtZXNzYWdlLmRhdGEuZW1haWwsXHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5kYXRhLnBhc3N3b3JkLFxyXG4gICAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5kYXRhLm9hdXRoLFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2UuZGF0YS5vYXV0aEFjY2Vzc1Rva2VuKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXIuc3VjY2VzcylcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVycm9yKHIubWVzc2FnZSwgbnVsbCwgXCJFcnJvcmUgZGkgQ2xpcHBlclwiKTtcclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UudG9hc3QoJ0Nvbm5lc3NvIGEgQ2xpcHBlcicsIDE1MDAsICdwb3dlcicpO1xyXG4gICAgICAgICAgICAgICAgICAvLyBMb2FkIGJhZ1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRCYWcoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmlkID09PSBDbGlwcGVyTWVzc2FnZXMuTE9HT1VUX0NPTVBMRVRFRCB8fFxyXG4gICAgICAgICAgbWVzc2FnZS5pZCA9PT0gQ2xpcHBlck1lc3NhZ2VzLkxPR0lOX0RJU0NPTk5FQ1RFRCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMubG9nZ2VkSW4oKSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ291dCgpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICAgICAgICBpZiAoIXIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVycm9yKFwiPHA+XCIgKyByLm1lc3NhZ2UgKyBcIjwvcD48YnI+PGJyPjxocj48cCBjbGFzcz0nc21hbGwnPjxpPlBlciBlbGltaW5hcmUgbGEgY29uZmlndXJhemlvbmUgZGkgQ2xpcHBlciBhY2NlZGVyZSBhOjxicj48Yj5tZW51ID4gcGVyc29uYWxpenphID4gY29sbGVnYW1lbnRpPC9iPjwvaT48L3A+XCIsIG51bGwsIFwiRXJyb3JlIGRpIENsaXBwZXJcIik7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50b2FzdCgnRGlzY29ubmVzc28gZGEgQ2xpcHBlcicsIDE1MDAsICdwb3dlcl9vZmYnKTtcclxuICAgICAgICAgICAgICAgIC8vIEVtcHR5IGJhZ1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iYWcuc2V0KFtdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXZlbHVhdGUgY3VycmVudCBzZXNzaW9uIHN0b3JhZ2UgaW4gY2FzZSBvZiBwYWdlIHJlZnJlc2ggKEY1KVxyXG4gICAgaWYgKCF0aGlzLmxvZ2dlZEluKCkgJiYgdGhpcy5nZXRUb2tlbigpKSB7XHJcbiAgICAgIC8vIEF1dG8gbG9naW5cclxuICAgICAgdGhpcy5sb2dnZWRJbi5zZXQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICogU2V0IEpXVCB0b2tlbnNcclxuICogQHBhcmFtIHZhbHVlIDogdGhlIGxvZ2luIHJlc3VsdFxyXG4gKi9cclxuICBwcml2YXRlIHNldFRva2VuKHZhbHVlOiBDbGlwcGVyTG9naW5SZXN1bHQpIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2NsaXBwZXJfand0JywgdmFsdWUudG9rZW4pO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnY2xpcHBlcl9qd3RfcmVmcmVzaCcsIHZhbHVlLnJlZnJlc2hUb2tlbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gY3VycmVudCBKV1QgdG9rZW5cclxuICAgKiBAcGFyYW0gcmVmcmVzaDogdHJ1ZSB0byBnZXQgdGhlIHJlZnJlc2ggdG9rZW4uIERlZmF1bHQgaXMgZmFsc2UuXHJcbiAgICovXHJcbiAgZ2V0VG9rZW4ocmVmcmVzaDogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcclxuICAgIGxldCB0b2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0ocmVmcmVzaCA/ICdjbGlwcGVyX2p3dF9yZWZyZXNoJyA6ICdjbGlwcGVyX2p3dCcpO1xyXG4gICAgaWYgKHRva2VuICYmIHRva2VuWzBdID09PSAnXCInKSB7XHJcbiAgICAgIHJldHVybiB0b2tlbi5zdWJzdHJpbmcoMSwgdG9rZW4ubGVuZ3RoIC0gMSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG9rZW4gPz8gJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJmb3JtIGxvZ2luICAgXHJcbiAgICogQHBhcmFtIGVtYWlsOiB0aGUgb3B0aW9hbmwgZW1haWwgaWYgdXNpbmcgT0F1dGgyXHJcbiAgICogQHBhcm1hIHBhc3N3b3JkOiB0aGUgb3B0aW9uYWwgcGFzc3dvcmQgaWYgdXNpbmcgT0F1dGgyXHJcbiAgICogQHBhcmFtIHJlbWVtYmVyOiByZW1lbWJlciBjcmVkZW50aWFscyBcclxuICAgKiBAcGFyYW0gb2F1dGg6IHRoZSBvcHRpb25hbCBvcGVuIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnRlZFxyXG4gICAqIEBwYXJhbSBvYXV0aEFjY2Vzc1Rva2VuOiB0aGUgb3B0aW9uYWwgT0F1dGgyIGFjY2VzcyB0b2tlblxyXG4gICAqIEByZXR1cm5zOiB0aGUgbG9naW4gcmVzdWx0XHJcbiAgICovXHJcbiAgbG9naW4oZW1haWw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsLFxyXG4gICAgcGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsLFxyXG4gICAgcmVtZW1iZXI6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkID0gZmFsc2UsXHJcbiAgICBvYXV0aDogTG9naW5PQXV0aFR5cGUgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbCxcclxuICAgIG9hdXRoQWNjZXNzVG9rZW46IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsKSB7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB0aGlzLmxvZ2dpbmdJbi5zZXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyTG9naW5SZXN1bHQ+PihcclxuICAgICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9sb2dpbjInLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVzZXI6IG9hdXRoID8gbnVsbCA6IGVtYWlsLFxyXG4gICAgICAgICAgcGFzc3dvcmQ6IG9hdXRoID8gbnVsbCA6IHBhc3N3b3JkLFxyXG4gICAgICAgICAgY2xpZW50SWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2xpcHBlcl9jbGllbnRfaWRcIiksXHJcbiAgICAgICAgICBPQVVUSDogb2F1dGhcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6XHJcbiAgICAgICAgICAgICFvYXV0aFxyXG4gICAgICAgICAgICAgID8gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgICAgICA6IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgICAgICAuc2V0KFwiQXV0aG9yaXphdGlvblwiLCBvYXV0aEFjY2Vzc1Rva2VuKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2luZ0luLnNldChmYWxzZSk7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpcHBlcl9sb2dpbicpO1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBtYXAociA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dpbmdJbi5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgaWYgKHIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAvLyBTdG9yZSBhY2Nlc3MgdG9rZW5cclxuICAgICAgICAgICAgdGhpcy5zZXRUb2tlbihyLnZhbHVlKTtcclxuICAgICAgICAgICAgY29uc3QgbG9naW5JbmZvOiBDbGlwcGVyTG9naW5JbmZvID0ge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHIudmFsdWUuY29udGV4dCxcclxuICAgICAgICAgICAgICB1c2VyU2V0dGluZ3M6IHIudmFsdWUuc2V0dGluZ3MsXHJcbiAgICAgICAgICAgICAgT0FVVEg6IG9hdXRoXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFvYXV0aCkge1xyXG4gICAgICAgICAgICAgIGxvZ2luSW5mby51c2VyQ3JlZGVudGlhbHMgPVxyXG4gICAgICAgICAgICAgICAgU3lzdGVtVXRpbHMuY2lwaGVyKFxyXG4gICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICAgICAgZW1haWw6IGVtYWlsLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgICAgICAgICAgICAgICAgICByZW1lbWJlcjogcmVtZW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgIH0pLCBsb2dpbkluZm8uY29udGV4dC51c2VySWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBpbmZvXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgICdjbGlwcGVyX2xvZ2luJyxcclxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShsb2dpbkluZm8pXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9sb2dpbkluZm8gPSBsb2dpbkluZm87XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlZEluLnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyZm9ybSBsb2dvdXRcclxuICAgKi9cclxuICBsb2dvdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8YW55Pih0aGlzLl9zZXJ2aWNlVXJpICsgJy9sb2dvdXQnLCB7fSkucGlwZShcclxuICAgICAgbWFwKHIgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICByZXR1cm4gclxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoX2UpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIFJlc2V0IGxvZ2luIHJlZnJlc2ggdGltZXIgYW5kIGxvZ2luIHN0YXRlXHJcbiAqL1xyXG4gIHJlc2V0KCkgeyAgIFxyXG4gICAgLy8gQ2xlYXIgbG9naW4gaW5mb1xyXG4gICAgdGhpcy5fbG9naW5JbmZvID0gbnVsbDtcclxuXHJcbiAgICAvLyBMb2dnZWQgb3V0XHJcbiAgICB0aGlzLmxvZ2dlZEluLnNldChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciBsb2dpbiBkYXRhXHJcbiAgICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICAvLyBDbGVhciBsb2NhbCBzdG9yYWdlXHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdjbGlwcGVyX2p3dCcpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpcHBlcl9qd3RfcmVmcmVzaCcpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpcHBlcl9vYXV0aCcpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NsaXBwZXJfbG9naW4nKTtcclxuXHJcbiAgICAvLyBSZXNldCBsb2dpblxyXG4gICAgdGhpcy5yZXNldCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gKiBQZXJmb3JtIHRva2VuIHJlZnJlc2hcclxuICovXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxDbGlwcGVyTG9naW5SZXN1bHQ+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvcmVmcmVzaDIvP3Rva2VuPScgKyB0aGlzLmdldFRva2VuKHRydWUpXHJcbiAgICApLnBpcGUobWFwKHIgPT4ge1xyXG4gICAgICAvLyBVcGRhdGUgdG9rZW5cclxuICAgICAgdGhpcy5zZXRUb2tlbihyLnZhbHVlKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogR2V0IGEgbmV3IG9uZSB0aW1lIHBhc3N3b3JkXHJcbiAgKiBAcGFyYW0gaWQ6IHRoZSBvcHRpb25hbCByZXBvc2l0b3J5IGlkIFxyXG4gICovXHJcbiAgbmV3T1RQKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxDbGlwcGVyT1RQSW5mbz4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9vdHAvbmV3Lz9pZD0nICsgaWQsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZCBBcnMgZXZlbnRzIGNhbGVuZGFyXHJcbiAgICovXHJcbiAgZXZlbnRzKHBhcmFtczogQ2xpcHBlclF1ZXJ5QXJzRXZlbnRzUGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PENsaXBwZXJRdWVyeUFyc0V2ZW50c1Jlc3VsdD4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9hcnMvZXZlbnRzJyxcclxuICAgICAgcGFyYW1zXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFF1ZXJ5IGRvY3VtZW50c1xyXG4gICAqL1xyXG4gIHF1ZXJ5KHBhcmFtczogQ2xpcHBlclNlYXJjaFBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyU2VhcmNoUmVzdWx0Pj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cycsXHJcbiAgICAgIHBhcmFtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBmYWNldHMgZm9yIGEgcXVlcnlcclxuICAgKi9cclxuICBxdWVyeUZhY2V0cyhwYXJhbXM6IENsaXBwZXJTZWFyY2hQYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8Q2xpcHBlclNlYXJjaEZhY2V0c1Jlc3VsdD4+KFxyXG4gICAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9mYWNldHMnLFxyXG4gICAgICAgIHBhcmFtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAqIFVwZGF0ZSBkb2N1bWVudCBzdGF0ZVxyXG4gICovXHJcbiAgdXBkYXRlU3RhdGUocGFyYW1zOiBDbGlwcGVyRG9jdW1lbnRVcGRhdGVTdGF0ZVBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxudW1iZXI+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL3N0YXRlL3VwZGF0ZScsXHJcbiAgICAgIHBhcmFtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4cG9ydCBhIGRvY3VtZW50IGluIHBkZiBmb3JtYXRcclxuICAgKi9cclxuICBleHBvcnRQZGYoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9leHBvcnQvJyArIGlkLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gKiBFeHBvcnQgZG9jdW1lbnQgbGlzdCAocXVlcnkgb3Igc2VsZWN0ZWQgaXRlbXMpIG9yIGV4cG9ydCBkZWFkbGluZXMgYXMgaWNzXHJcbiAqL1xyXG4gIGV4cG9ydChwYXJhbXM6IENsaXBwZXJFeHBvcnREb2N1bWVudHNQYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2V4cG9ydCcsXHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZCBkb2N1bWVudHMgbGluayBieSBlbWFpbFxyXG4gICAqL1xyXG4gIHNlbmRUbyhwYXJhbXM6IENsaXBwZXJTZW5kRG9jdW1lbnRzQnlFbWFpbFBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxudW1iZXI+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL3NlbmQnLFxyXG4gICAgICBwYXJhbXNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNwbGF5IGEgcGFnZSB0aGUgZnVsbCBkb2N1bWVudCByZXBvcnRcclxuICAgKi9cclxuICByZXBvcnQoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9yZXBvcnQvJyArIGlkLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgZG9jdW1lbnQgY29tbWVudFxyXG4gICAqL1xyXG4gIGNvbW1lbnQoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzdWx0PHN0cmluZz4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvY29tbWVudC8nICsgaWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgZG9jdW1lbnQgaW5mb1xyXG4gICAqL1xyXG4gIGluZm8oaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzdWx0PENsaXBwZXJEb2N1bWVudEluZm8+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2luZm8vJyArIGlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGRvY3VtZW50IHN0cnVjdHVyZVxyXG4gICAqL1xyXG4gIGluZGV4KGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxDbGlwcGVyRG9jdW1lbnRTdHJ1Y3R1cmU+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL3N0cnVjdHVyZS8nICsgaWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgZG9jdW1lbnQgbGFzdCB1cGRhdGVcclxuICAgKi9cclxuICBsYXN0VXBkYXRlKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxzdHJpbmc+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2xhc3QtdXBkYXRlLycgKyBpZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFF1ZXJ5IGRvY3VtZW50IHJlZmVyZW5jZXNcclxuICAgKi9cclxuICByZWZlcmVuY2VzKHBhcmFtczogQ2xpcHBlclJlZmVyZW5jZXNTZWFyY2hQYXJhbXMpIHtcclxuICAgIGxldCBtb2RlID0gcGFyYW1zLm1vZGU7XHJcbiAgICBpZiAoIW1vZGUpIG1vZGUgPSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5SZWZlcmVuY2VzSW47XHJcbiAgICBzd2l0Y2ggKG1vZGUpIHtcclxuICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5SZWZlcmVuY2VzSW46XHJcbiAgICAgIGNhc2UgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuUmVmZXJlbmNlc091dDpcclxuICAgICAgICBwYXJhbXMubW9kZSA9IG1vZGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyU2VhcmNoUmVzdWx0Pj4oXHJcbiAgICAgICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvcmVmZXJlbmNlcycsXHJcbiAgICAgICAgICBwYXJhbXNcclxuICAgICAgICApO1xyXG4gICAgICBjYXNlIENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLkNoYW5nZXNJbjpcclxuICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5DaGFuZ2VzT3V0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8Q2xpcHBlclNlYXJjaFJlc3VsdD4+KFxyXG4gICAgICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2NoYW5nZXMnLFxyXG4gICAgICAgICAgcGFyYW1zXHJcbiAgICAgICAgKTtcclxuICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5KdXJpczpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PENsaXBwZXJTZWFyY2hSZXN1bHQ+PihcclxuICAgICAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9qdXJpcycsXHJcbiAgICAgICAgICBwYXJhbXNcclxuICAgICAgICApO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGZhY2V0cyBmb3IgYSBkb2N1bWVudCByZWZlcmVuY2VzXHJcbiAgICovXHJcbiAgcmVmZXJlbmNlc0ZhY2V0cyhwYXJhbXM6IENsaXBwZXJSZWZlcmVuY2VzU2VhcmNoUGFyYW1zKSB7XHJcbiAgICBsZXQgbW9kZSA9IHBhcmFtcy5tb2RlID8/IENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLlJlZmVyZW5jZXNJbjtcclxuICAgIHN3aXRjaCAobW9kZSkge1xyXG4gICAgICBjYXNlIENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLlJlZmVyZW5jZXNJbjpcclxuICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5SZWZlcmVuY2VzT3V0OlxyXG4gICAgICAgIHBhcmFtcy5tb2RlID0gbW9kZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PENsaXBwZXJTZWFyY2hGYWNldHNSZXN1bHQ+PihcclxuICAgICAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9yZWZlcmVuY2VzL2ZhY2V0cycsXHJcbiAgICAgICAgICBwYXJhbXNcclxuICAgICAgICApO1xyXG4gICAgICBjYXNlIENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLkNoYW5nZXNJbjpcclxuICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5DaGFuZ2VzT3V0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8Q2xpcHBlclNlYXJjaEZhY2V0c1Jlc3VsdD4+KFxyXG4gICAgICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2NoYW5nZXMvZmFjZXRzJyxcclxuICAgICAgICAgIHBhcmFtc1xyXG4gICAgICAgICk7XHJcbiAgICAgIGNhc2UgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuSnVyaXM6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyU2VhcmNoRmFjZXRzUmVzdWx0Pj4oXHJcbiAgICAgICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvanVyaXMvZmFjZXRzJyxcclxuICAgICAgICAgIHBhcmFtc1xyXG4gICAgICAgICk7XHJcbiAgICAgIGRlZmF1bHQ6IHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGRvY3VtZW50IGp1cmlzIGFydGljbGVzXHJcbiAgICovXHJcbiAganVyaXNBcnRpY2xlcyhwYXJhbXM6IENsaXBwZXJTZWFyY2hQYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8Q2xpcHBlclNlYXJjaFJlc3VsdD4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvanVyaXMvYXJ0aWNsZXMnLFxyXG4gICAgICBwYXJhbXNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIEdldCBjYWxlbmRhciBzbmFwc2hvdCBiYXNlZCBvbiB0aGUgZGVhZGxpbmVzXHJcbiAgKi9cclxuICBjYWxlbmRhclNuYXBzaG90KHBhcmFtczogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PGFueT4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvY2FsZW5kYXIvc25hcHNob3QnLFxyXG4gICAgICBwYXJhbXNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgdGhlIHRheG9ub215XHJcbiAgICovXHJcbiAgZ2V0VGF4b25vbXkocGFyYW1zOiBDbGlwcGVyVGF4b25vbXlQYXJhbXMgfCBudWxsID0gbnVsbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxGb2xkZXJUcmVlPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL3RheG9ub215JyxcclxuICAgICAgcGFyYW1zID8/IHsgbW9kZWw6IDAsIGNvdW50SXRlbXM6IGZhbHNlIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSB0b3BpY3NcclxuICAgKi9cclxuICBnZXRUb3BpY3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcGlSZXN1bHQ8TmFtZVZhbHVlSXRlbTxzdHJpbmc+W10+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvdG9waWNzJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIHRhZ3NcclxuICAgKi9cclxuICBnZXRUYWdzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzdWx0PE5hbWVWYWx1ZUl0ZW08c3RyaW5nPltdPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL3RhZ3MnXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vL1xyXG4gIC8vIERBU0hCT0FSRFxyXG4gIC8vL1xyXG4gIC8qKlxyXG4gICogUmV0cmlldmUgY3VycmVudCBkYXNoYm9hcmRcclxuICAqL1xyXG4gIGxvYWREYXNoYm9hcmQoKSB7XHJcbiAgICB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgLnBvc3Q8QXBpUmVzdWx0PENsaXBwZXJEYXNoYm9hcmRSZXN1bHQ+PihcclxuICAgICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9hY2NvdW50L2Rhc2hib2FyZCcsXHJcbiAgICAgICAgeyByZWZyZXNoaW5nOiB0cnVlIH1cclxuICAgICAgKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgaWYgKHIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmQuZG9jdW1lbnRVcGRhdGVzID0gci52YWx1ZS5kb2N1bWVudFVwZGF0ZXM7XHJcbiAgICAgICAgICB0aGlzLmRhc2hib2FyZC5leHBpcmVkRGVhZGxpbmVzID0gci52YWx1ZS5leHBpcmVkRGVhZGxpbmVzO1xyXG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmQuZXhwaXJpbmdEZWFkbGluZXMgPSByLnZhbHVlLmV4cGlyaW5nRGVhZGxpbmVzO1xyXG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmQuaXNUcmlhbCA9IHIudmFsdWUuaXNUcmlhbDtcclxuICAgICAgICAgIHRoaXMuZGFzaGJvYXJkLml0ZW1zLnNldChyLnZhbHVlLml0ZW1zKTtcclxuICAgICAgICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZS5zZW5kTWVzc2FnZShDbGlwcGVyTWVzc2FnZXMuQ09NTUFORF9EQVNIQk9BUkRfVVBEQVRFRCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogVXBkYXRlIHVucmVhZCBpdGVtc1xyXG4gICogQHBhcmFtIG1vZHVsZSA6IHRoZSBtb2R1bGVcclxuICAqIEBwYXJhbSBpbmNyZW1lbnQgOiB0aGUgaW5jcmVtZW50IChjYW4gYmUgbmVnYXRpdmUpXHJcbiAgKi9cclxuICB1cGRhdGVVbnJlYWRJdGVtcyhtb2R1bGU6IENsaXBwZXJNb2R1bGUsIGluY3JlbWVudDogbnVtYmVyKSB7XHJcbiAgICBjb25zb2xlLmxvZygnbW9kdWxlOicgKyBtb2R1bGUpO1xyXG4gICAgdGhpcy5kYXNoYm9hcmQudXBkYXRlVW5yZWFkSXRlbXMobW9kdWxlLCBpbmNyZW1lbnQpO1xyXG4gICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLnNlbmRNZXNzYWdlKENsaXBwZXJNZXNzYWdlcy5DT01NQU5EX0RBU0hCT0FSRF9VUERBVEVEKTtcclxuICB9XHJcblxyXG4gIC8vL1xyXG4gIC8vIExJTktTXHJcbiAgLy8vXHJcblxyXG4gIC8qKlxyXG4gICogU2F2ZSBhIHVzZXIgbGlua1xyXG4gICogQHBhcmFtIGl0ZW06IHRoZSB1c2VyIGxpbmtcclxuICAqL1xyXG4gIHNhdmVMaW5rKGl0ZW06IENsaXBwZXJVc2VyTGluaykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxib29sZWFuPj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2FjY291bnQvbGlua3Mvc2F2ZScsXHJcbiAgICAgIGl0ZW1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgYSB1c2VyIGxpbmtcclxuICAgKiBAcGFyYW0gaXRlbTogdGhlIHVzZXIgbGlua1xyXG4gICAqL1xyXG4gIGRlbGV0ZUxpbmsoaXRlbTogQ2xpcHBlclVzZXJMaW5rKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PGJvb2xlYW4+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvYWNjb3VudC9saW5rcy9kZWxldGUnLFxyXG4gICAgICBpdGVtXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vL1xyXG4gIC8vIEJBRyAtIFdPUktJTkcgRE9DVU1FTlRTXHJcbiAgLy8vXHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWQgd29ya2luZyBkb2N1bWVudHNcclxuICAgKi9cclxuICBsb2FkQmFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAuZ2V0PEFwaVJlc3VsdDxDbGlwcGVyVXNlcldvcmtpbmdEb2N1bWVudFtdPj4oXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvd29ya2luZydcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIHIgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVycm9yKHIubWVzc2FnZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoci52YWx1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW1zOiBDbGlwcGVyRG9jdW1lbnRJbmZvW10gPSBbXTtcclxuICAgICAgICAgICAgICByLnZhbHVlLmZvckVhY2gobiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobi5kb2N1bWVudERlc2NyaXB0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRJbmZvID0gSlNPTi5wYXJzZShuLmRvY3VtZW50RGVzY3JpcHRvcik7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudEluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBuLmRvY3VtZW50SWQgPSBkb2N1bWVudEluZm8uRG9jdW1lbnRJZCB8fCBkb2N1bWVudEluZm8uSWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgbi50aXRsZTEgPSBkb2N1bWVudEluZm8uVGl0bGUxID8/IGRvY3VtZW50SW5mby5UaXRsZTI7XHJcbiAgICAgICAgICAgICAgICAgICAgbi50aXRsZTIgPSBkb2N1bWVudEluZm8uVGl0bGUxID8gZG9jdW1lbnRJbmZvLlRpdGxlMiA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgbi5kb2N1bWVudERlc2NyaXB0b3IgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKG4pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuYmFnLnNldChpdGVtcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBvbmUgb3IgbW9yZSB3b3JraW5nIGRvY3VtZW50XHJcbiAgICogQHBhcmFtIGRvY3VtZW50SWRzIDogdGhlIGRvY3VtZW50IGlkcyB0byBhZGRcclxuICAgKi9cclxuICBhZGRUb0JhZyhkb2N1bWVudElkczogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgLnBvc3Q8QXBpUmVzdWx0PENsaXBwZXJVc2VyV29ya2luZ0RvY3VtZW50W10+PihcclxuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy93b3JraW5nL2FkZCcsXHJcbiAgICAgICAgeyBkb2N1bWVudElkczogZG9jdW1lbnRJZHMgfVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgaWYgKCFyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5lcnJvcihyLm1lc3NhZ2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoci52YWx1ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdJdGVtczogQ2xpcHBlckRvY3VtZW50SW5mb1tdID0gW107XHJcbiAgICAgICAgICAgIHIudmFsdWUuZm9yRWFjaChuID0+IHtcclxuICAgICAgICAgICAgICBpZiAobi5kb2N1bWVudERlc2NyaXB0b3IpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50SW5mbyA9IEpTT04ucGFyc2Uobi5kb2N1bWVudERlc2NyaXB0b3IpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50SW5mbykge1xyXG4gICAgICAgICAgICAgICAgICBuLmRvY3VtZW50SWQgPSBkb2N1bWVudEluZm8uRG9jdW1lbnRJZCB8fCBkb2N1bWVudEluZm8uSWQ7XHJcbiAgICAgICAgICAgICAgICAgIG4udGl0bGUxID0gZG9jdW1lbnRJbmZvLlRpdGxlMSA/PyBkb2N1bWVudEluZm8uVGl0bGUyO1xyXG4gICAgICAgICAgICAgICAgICBuLnRpdGxlMiA9IGRvY3VtZW50SW5mby5UaXRsZTEgPyBkb2N1bWVudEluZm8uVGl0bGUyIDogbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG4uZG9jdW1lbnREZXNjcmlwdG9yID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIG5ld0l0ZW1zLnB1c2gobik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKG5ld0l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmJhZy51cGRhdGUodmFsdWVzID0+IFsuLi52YWx1ZXMsIC4uLm5ld0l0ZW1zXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnRvYXN0KCdPcGVyYXppb25lIGNvbXBsZXRhdGEgY29uIHN1Y2Nlc3NvLicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgb25lIHdvcmtpbmcgZG9jdW1lbnRcclxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZCA6IHRoZSBkb2N1bWVudCBpZFxyXG4gICAqL1xyXG4gIHJlbW92ZUZyb21CYWcoZG9jdW1lbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PEFwaVJlc3VsdDxudW1iZXI+PihcclxuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy93b3JraW5nL2RlbGV0ZScsXHJcbiAgICAgICAgeyBkb2N1bWVudElkczogW2RvY3VtZW50SWRdIH1cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIGlmICghci5zdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZXJyb3Ioci5tZXNzYWdlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgcCA9IHRoaXMuYmFnKCkuZmluZEluZGV4KG4gPT4gbi5kb2N1bWVudElkID09PSBkb2N1bWVudElkKTtcclxuICAgICAgICAgIGlmIChwICE9PSAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLmJhZy51cGRhdGUodmFsdWVzID0+IHtcclxuICAgICAgICAgICAgICB2YWx1ZXMuc3BsaWNlKHAsIDEpO1xyXG4gICAgICAgICAgICAgIHJldHVybiBbLi4udmFsdWVzXTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50b2FzdCgnT3BlcmF6aW9uZSBjb21wbGV0YXRhIGNvbiBzdWNjZXNzby4nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgYWxsIHdvcmtpbmcgZG9jdW1lbnRzXHJcbiAgICovXHJcbiAgY2xlYXJCYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PEFwaVJlc3VsdDxudW1iZXI+PihcclxuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy93b3JraW5nL2RlbGV0ZScsXHJcbiAgICAgICAgeyBkZWxldGVBbGw6IHRydWUgfVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgaWYgKCFyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5lcnJvcihyLm1lc3NhZ2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmJhZy5zZXQoW10pO1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnRvYXN0KCdPcGVyYXppb25lIGNvbXBsZXRhdGEgY29uIHN1Y2Nlc3NvLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLy9cclxuICAvLyBXT1JLSU5HIFNFQVJDSEVTXHJcbiAgLy8vXHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWQgd29ya2luZyBzZWFyY2hlc1xyXG4gICAqIEBwYXJhbTogbW9kdWxlOiB0aGUgbW9kdWxlIHRvIGxvYWQgc2VhcmNoZXMgZm9yXHJcbiAgICovXHJcbiAgbG9hZFNlYXJjaGVzKG1vZHVsZTogQ2xpcHBlck1vZHVsZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAuZ2V0PEFwaVJlc3VsdDxDbGlwcGVyVXNlclNlYXJjaFtdPj4oXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvc2VhcmNoZXMvP21vZHVsZT0nICsgbW9kdWxlXHJcbiAgICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhdmUgYSB3b3JraW5nIHNlYXJjaFxyXG4gICAqIEBwYXJhbSBkb2N1bWVudElkcyA6IHRoZSBkb2N1bWVudCBpZHMgdG8gYWRkXHJcbiAgICovXHJcbiAgc2F2ZVNlYXJjaChwYXJhbXM6IENsaXBwZXJVc2VyU2VhcmNoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PEFwaVJlc3VsdDxDbGlwcGVyVXNlclNlYXJjaD4+KFxyXG4gICAgICAgIHRoaXMuc2VydmljZVVyaSArICcvZG9jdW1lbnRzL3NlYXJjaGVzL3NhdmUnLFxyXG4gICAgICAgIHBhcmFtc1xyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIG9uZSB3b3JraW5nIHNlYXJjaFxyXG4gICAqIEBwYXJhbSBpZCA6IHRoZSBpZCB0byByZW1vdmVcclxuICAgKi9cclxuICBkZWxldGVTZWFyY2goaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAucG9zdDxBcGlSZXN1bHQ8bnVtYmVyPj4oXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpICsgJy9kb2N1bWVudHMvc2VhcmNoZXMvZGVsZXRlJyxcclxuICAgICAgICB7IGlkOiBpZCB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -2077,10 +2077,7 @@ class ClipperService {
|
|
|
2077
2077
|
* Get facets for a query
|
|
2078
2078
|
*/
|
|
2079
2079
|
queryFacets(params) {
|
|
2080
|
-
return this.httpClient.post(
|
|
2081
|
-
(params.models?.length === 1 && params.models[0] === ClipperModel.Coordinamento)
|
|
2082
|
-
? this._serviceUri + '/documents/changes/facets'
|
|
2083
|
-
: this._serviceUri + '/documents/facets', params);
|
|
2080
|
+
return this.httpClient.post(this._serviceUri + '/documents/facets', params);
|
|
2084
2081
|
}
|
|
2085
2082
|
/**
|
|
2086
2083
|
* Update document state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arsedizioni-ars-utils-clipper.common.mjs","sources":["../../../projects/ars-utils/clipper.common/common/messages.ts","../../../projects/ars-utils/clipper.common/common/definitions.ts","../../../projects/ars-utils/clipper.common/common/services/clipper.service.ts","../../../projects/ars-utils/clipper.common/common/interceptors/auth.interceptor.ts","../../../projects/ars-utils/clipper.common/common/common.module.ts","../../../projects/ars-utils/clipper.common/public_api.ts","../../../projects/ars-utils/clipper.common/arsedizioni-ars-utils-clipper.common.ts"],"sourcesContent":["export const ClipperMessages = {\r\n /**\r\n * Messages\r\n */\r\n\r\n // Login\r\n LOGIN_CHANGED: '§clipper-login-changed',\r\n LOGIN_COMPLETED: '§clipper-login-completed',\r\n LOGIN_DISCONNECTED: '§clipper-login-disconnected',\r\n LOGIN_STARTED: '§clipper-login-started',\r\n LOGOUT_COMPLETED: '§clipper-logout-completed',\r\n LOGOUT: '§clipper-logout',\r\n\r\n // Document\r\n DOCUMENT_NAVIGATE: '$clipper-document-navigate',\r\n DOCUMENT_NAVIGATED: '$clipper-document-navigated',\r\n DOCUMENT_SELECTED: '$clipper-document-selected',\r\n DOCUMENT_SELECTED_INNER: '$clipper-document-selected_inner',\r\n\r\n // Commands\r\n COMMAND_ARCHIVE_ADD: '$clipper-command-archive-add',\r\n COMMAND_CALENDAR_ADD: '$clipper-command-calendar-add',\r\n COMMAND_WORKING_OPEN: '$clipper-command-working-documents-open',\r\n COMMAND_WORKING_ADD: '$clipper-command-working-documents-add',\r\n COMMAND_SEARCH_RESTORED: '$clipper-command-search-restored',\r\n COMMAND_SEARCH_EXECUTED: '$clipper-command-search-executed',\r\n COMMAND_HISTORY_OPEN: '$clipper-history-open',\r\n COMMAND_DASHBOARD_UPDATED: '$clipper-dashboard-updated',\r\n\r\n // Interop\r\n INTEROP_RS_NEW_LAW: '$clipper-interop-rs-new-law',\r\n INTEROP_RS_NEW_ACTIVITY: '$clipper-interop-rs-new-activity',\r\n INTEROP_RS_USAGE_REPORT: '$clipper-interop-rs-usage-report',\r\n\r\n // Updates\r\n UPDATE_RELOAD: '§update-reload',\r\n};\r\n","\r\nimport { SendToDialogResult } from '@arsedizioni/ars-utils/ui.application';\r\nimport { LoginResult, NameValueItem } from '@arsedizioni/ars-utils/core';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { computed, Signal, signal } from '@angular/core';\r\n\r\n\r\nexport enum ClipperSelectionMode {\r\n Single = 1,\r\n Multi = 2,\r\n Any = 3\r\n}\r\n\r\nexport enum ClipperModuleGroup {\r\n Home = 0,\r\n NormativaVigente = 1,\r\n RimaniAggiornato = 2,\r\n Contributi = 3,\r\n DGInfo = 4,\r\n Calendario = 11,\r\n Archivio = 12,\r\n Ricerca = 99\r\n}\r\n\r\nexport enum ClipperModule {\r\n NormativaVigente = 4,\r\n News = 1,\r\n GazzetteBollettiniEFontiDiverse = 2,\r\n Giurisprudenza = 5,\r\n ModificheAbrogazioniERinvii = 3,\r\n ScadenzeESegnalazioni = 12,\r\n AllerteAlimentari = 8,\r\n Approfondimenti = 6,\r\n QuesitiECasiRisolti = 10,\r\n MetodiDiAnalisi = 11,\r\n Ricerca = 99\r\n\r\n}\r\n\r\nexport enum ClipperModel {\r\n Unknown = 0,\r\n AggiornamentoNormativo = 2,\r\n News = 3,\r\n Articoli = 4,\r\n Juris = 5,\r\n Quesiti = 8,\r\n NormativaVigente = 9,\r\n Scadenze = 10,\r\n Coordinamento = 11,\r\n AllerteAlimentari = 13,\r\n MetodiDiAnalisi = 14,\r\n GiurisprudenzaRecente = 18,\r\n Segnalazioni = 20,\r\n RimaniAggiornato = 21\r\n}\r\n\r\nexport const ClipperModels: NameValueItem<number>[] = [\r\n { value: ClipperModel.AggiornamentoNormativo, name: \"Testi storici\" },\r\n { value: ClipperModel.News, name: 'News' },\r\n { value: ClipperModel.Articoli, name: 'Articoli' },\r\n { value: ClipperModel.Juris, name: 'Note a sentenza' },\r\n { value: ClipperModel.GiurisprudenzaRecente, name: 'Giurisprudenza' },\r\n { value: ClipperModel.Quesiti, name: 'Quesiti' },\r\n { value: ClipperModel.NormativaVigente, name: 'Normativa vigente' },\r\n { value: ClipperModel.Scadenze, name: 'Scadenze' },\r\n { value: ClipperModel.AllerteAlimentari, name: 'Allerte alimentari' },\r\n { value: ClipperModel.Coordinamento, name: 'Modifiche e abrogazioni' },\r\n]\r\n\r\nexport const ClipperModuleGroups: NameValueItem<number>[] = [\r\n { name: \"Ultime novità\", value: ClipperModuleGroup.Home },\r\n { name: \"Ricerca\", value: ClipperModuleGroup.Ricerca },\r\n { name: \"Normativa vigente\", value: ClipperModuleGroup.NormativaVigente },\r\n { name: \"Rimani aggiornato\", value: ClipperModuleGroup.RimaniAggiornato },\r\n { name: \"Contributi\", value: ClipperModuleGroup.Contributi },\r\n { name: \"DG Info\", value: ClipperModuleGroup.DGInfo },\r\n { name: \"Calendario\", value: ClipperModuleGroup.Calendario },\r\n { name: \"Archivio\", value: ClipperModuleGroup.Archivio }\r\n];\r\n\r\nexport const ClipperModules: NameValueItem<number>[] = [\r\n { name: 'News, articoli di approfondimento e note a sentenza', shortName: 'Novità', value: ClipperModule.News },\r\n { name: 'Gazzette, Bollettini e fonti diverse', shortName: 'Gazzette, Bollettini e fonti diverse', value: ClipperModule.GazzetteBollettiniEFontiDiverse },\r\n { name: 'Giurisprudenza', shortName: 'Giurisprudenza', value: ClipperModule.Giurisprudenza },\r\n { name: 'Modifiche, abrogazioni e rinvii', shortName: 'Modifiche, abrogazioni e rinvii', value: ClipperModule.ModificheAbrogazioniERinvii },\r\n { name: 'Allerte alimentari', shortName: 'Allerte alimentari', value: ClipperModule.AllerteAlimentari },\r\n { name: 'Scadenze e segnalazioni', shortName: 'Scadenze e segnalazioni', value: ClipperModule.ScadenzeESegnalazioni },\r\n { name: 'Normativa vigente', shortName: 'Normativa vigente', value: ClipperModule.NormativaVigente },\r\n { name: 'Quesiti e casi risolti', shortName: 'Quesiti', value: ClipperModule.QuesitiECasiRisolti },\r\n]\r\n\r\nexport enum ClipperChannel {\r\n None = 0,\r\n LavoroEAmbiente = 1,\r\n SostanzeAlimentari = 2,\r\n MerciPericolose = 3,\r\n Energia = 4,\r\n}\r\n\r\nexport const ClipperChannels: NameValueItem<ClipperChannel>[] = [\r\n { value: ClipperChannel.LavoroEAmbiente, name: \"Lavoro e Ambiente\", header: \"LA\" },\r\n { value: ClipperChannel.SostanzeAlimentari, name: \"Sostanze Alimentari\", header: \"SA\" },\r\n { value: ClipperChannel.Energia, name: \"Energia\", header: \"E\" },\r\n { value: ClipperChannel.MerciPericolose, name: \"Merci Pericolose\", header: \"OP\" }\r\n]\r\n\r\nexport const ClipperRegions: NameValueItem<string>[] = [\r\n {\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n value: '4RTAA',\r\n name: 'Trentino Alto Adige',\r\n },\r\n {\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n value: '4PAT',\r\n name: 'Prov. Aut. Trento',\r\n },\r\n {\r\n value: '4PAB',\r\n name: 'Prov. Aut. Bolzano',\r\n }\r\n]\r\n\r\nexport interface SectorInfo extends NameValueItem<string> {\r\n\r\n shortName?: string | null;\r\n group?: string | null;\r\n channels?: string | null;\r\n sectorId?: string | null;\r\n}\r\n\r\nexport const ClipperSectors: SectorInfo[] = [\r\n {\r\n value: 'LC',\r\n name: 'Legislazione comunitaria',\r\n shortName: 'Comunitaria',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'LN',\r\n name: 'Legislazione nazionale',\r\n shortName: 'Nazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n\r\n {\r\n value: 'LR',\r\n name: 'Legislazione regionale',\r\n shortName: 'Regionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RAB',\r\n name: ' Abruzzo',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4PAB',\r\n name: ' Prov. Aut. Bolzano',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RBA',\r\n name: ' Basilicata',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RCAL',\r\n name: ' Calabria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RCAM',\r\n name: ' Campania',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4REM',\r\n name: ' Emilia Romagna',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RFVG',\r\n name: ' Friuli Venezia Giulia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLA',\r\n name: ' Lazio',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLI',\r\n name: ' Liguria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLO',\r\n name: ' Lombardia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RMA',\r\n name: ' Marche',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RMO',\r\n name: ' Molise',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RPI',\r\n name: ' Piemonte',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RPU',\r\n name: ' Puglia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RSA',\r\n name: ' Sardegna',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RSI',\r\n name: ' Sicilia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RTO',\r\n name: ' Toscana',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RTAA',\r\n name: ' Trentino Alto Adige',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4PAT',\r\n name: ' Prov. Aut. Trento',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RUM',\r\n name: ' Umbria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RVA',\r\n name: \" Valle D'Aosta\",\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RVE',\r\n name: ' Veneto',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'GC',\r\n name: 'Giurisprudenza comunitaria',\r\n shortName: 'Giuris. comunitaria',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'GN',\r\n name: 'Giurisprudenza nazionale',\r\n shortName: 'Giurisprudenza',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'TN',\r\n name: 'Normativa tecnica',\r\n shortName: 'Tecnica',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'TI',\r\n name: 'Normativa tecnica internazionale',\r\n shortName: 'Tecnica internaz.',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'NI',\r\n name: 'Normativa internazionale',\r\n shortName: 'Internazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'SN',\r\n name: 'Documentazione scientifica',\r\n shortName: 'Scientifica',\r\n group: 'S',\r\n channels: '|SA|',\r\n },\r\n]\r\n\r\nexport const ClipperSectorTypes: NameValueItem<string>[] = [\r\n\r\n {\r\n parentValue: 'NI',\r\n value: '14',\r\n name: 'Convenzione Internazionale',\r\n },\r\n {\r\n parentValue: 'NI',\r\n value: '6',\r\n name: 'Accordo Multilaterale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '4',\r\n name: 'Accordo (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '75',\r\n name: 'Altri documenti (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '17',\r\n name: 'Circolare Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '58',\r\n name: 'Circolare (Comitati)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '10',\r\n name: 'Circolare Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '13',\r\n name: 'Comunicato (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '15',\r\n name: 'Costituzione della Repubblica',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '18',\r\n name: 'Decreto Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '21',\r\n name: 'Decreto Capo Provv. Stato',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '22',\r\n name: 'Decreto Pres. Cons. Ministri',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '25',\r\n name: 'Decreto Presidente Repubblica',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '27',\r\n name: 'Decreto Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '28',\r\n name: 'Decreto Legge Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '29',\r\n name: 'D.Lgs. Capo Provv. Stato',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '30',\r\n name: 'D.Lgs. Governo',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '32',\r\n name: 'D.Lgs. Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '33',\r\n name: 'Decreto Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '34',\r\n name: 'Decreto Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '35',\r\n name: 'Deliberazione (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '47',\r\n name: 'Determinazione (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '26',\r\n name: 'Documento di consultazione',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '48',\r\n name: 'Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '42',\r\n name: 'Lettera Circolare (Comitati)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '43',\r\n name: 'Lettera Circolare Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '56',\r\n name: 'Nota Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '91',\r\n name: 'Ordinanza Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '82',\r\n name: 'Ordinanza Pres. Cons. Ministri',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '57',\r\n name: 'Ordinanza Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '76',\r\n name: 'Provvedimento (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '66',\r\n name: 'Regio Decreto',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '67',\r\n name: 'Regio Decreto Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '68',\r\n name: 'Regio Decreto Legislativo',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '71',\r\n name: 'Statuto delle Regioni Ordinarie',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '139',\r\n name: 'Accordi (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '140',\r\n name: 'Atti diversi (CE/UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '131',\r\n name: 'Posizione Comune (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '132',\r\n name: 'Posizione Comune (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '126',\r\n name: 'Comunicazione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '127',\r\n name: 'Comunicazione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '111',\r\n name: 'Decisione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '112',\r\n name: 'Decisione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '113',\r\n name: 'Decisione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '121',\r\n name: 'Direttiva (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '122',\r\n name: 'Direttiva (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '123',\r\n name: 'Direttiva (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '138',\r\n name: 'Parere',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '128',\r\n name: 'Raccomandazione (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '129',\r\n name: 'Raccomandazione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '130',\r\n name: 'Raccomandazione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '116',\r\n name: 'Regolamento (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '117',\r\n name: 'Regolamento (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '118',\r\n name: 'Regolamento (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '135',\r\n name: 'Rettifica',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '133',\r\n name: 'Risoluzione',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '134',\r\n name: 'Trattato',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '69',\r\n name: 'Altri documenti (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '11',\r\n name: 'Circolare Pres. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '46',\r\n name: \"Circolare dell'Assessore\",\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '83',\r\n name: 'Circolare reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '70',\r\n name: 'Comunicato (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '80',\r\n name: 'Decreto del Dirigente',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '24',\r\n name: 'Decreto Pres. Giunta Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '23',\r\n name: 'Decreto Pres. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '19',\r\n name: \"Decreto dell'Assessore Regionale\",\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '31',\r\n name: 'Delib. Consiglio Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '36',\r\n name: 'Delib. Consiglio Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '37',\r\n name: 'Delib. Giunta Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '38',\r\n name: 'Delib. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '81',\r\n name: 'Determinazione del Dirigente',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '12',\r\n name: 'Direttiva (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '49',\r\n name: 'Legge Prov. Aut.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '50',\r\n name: 'Legge Regionale',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '51',\r\n name: 'Linee guida (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '9',\r\n name: 'Ordinanza Pres. Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '55',\r\n name: 'Ordinanza Pres. Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '85',\r\n name: 'Provvedimento (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '65',\r\n name: 'Regolamento Regionale',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '63',\r\n name: 'Decisione',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '41',\r\n name: 'Decreto Penale',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '54',\r\n name: 'Ordinanza',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '62',\r\n name: 'Ricorso',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '72',\r\n name: 'Sentenza',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '143',\r\n name: 'Ordinanza (CE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '144',\r\n name: 'Ordinanza (UE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '141',\r\n name: 'Sentenza (CE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '142',\r\n name: 'Sentenza (UE)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '73',\r\n name: 'Altri documenti (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '44',\r\n name: 'Circolare (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '20',\r\n name: 'Comunicato (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '60',\r\n name: 'Decreto (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '40',\r\n name: 'Delibera (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '53',\r\n name: 'Fascicolo (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '45',\r\n name: 'Istruzione Tecnica',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '59',\r\n name: 'Lettera Circolare (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '79',\r\n name: 'Linee guida (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '98',\r\n name: 'Norma Tecnica',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '97',\r\n name: 'Opuscolo Tecnico',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '77',\r\n name: 'Pubblicazione (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '86',\r\n name: 'Quaderno',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '52',\r\n name: 'Regolamento (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '84',\r\n name: 'Istruzione Operativa (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '94',\r\n name: 'Nota (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'NI',\r\n value: '104',\r\n name: 'Regolamento UNECE',\r\n },\r\n {\r\n parentValue: 'SN',\r\n value: '105',\r\n name: 'Documento',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '106',\r\n name: 'Direttiva (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '74',\r\n name: 'Prassi di riferimento',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '16',\r\n name: 'Linee guida (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '3',\r\n name: 'Direttiva (naz.)',\r\n },\r\n {\r\n parentValue: 'TI',\r\n value: '107',\r\n name: 'Normativa Tecnica Internazionale',\r\n },\r\n]\r\n\r\nexport const ClipperAuthors: SectorInfo[] = [\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RTAA',\r\n name: 'Trentino Trentino Alto Adige',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4PAB',\r\n name: 'Prov. Autonoma di Bolzano',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4PAT',\r\n name: 'Prov. Autonoma di Trento',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6CEI',\r\n name: 'C.E.I. - Comitato Elettrotecnico Italiano',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6CNR',\r\n name: 'C.N.R. - Consiglio Nazionale delle Ricerche',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6ENPI',\r\n name: 'E.N.P.I. - Ente Nazionale Prevenzione Infortuni',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6INAI',\r\n name:\r\n 'I.N.A.I.L. - Istituto nazionale Assicurazione Infortuni sul Lavoro',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6ISPS',\r\n name:\r\n 'I.S.P.E.S.L. - Istituto Superiore per la Prevenzione e la Sicurezza del Lavoro',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6INPS',\r\n name: 'I.N.P.S. - Istituto Nazionale Previdenza Sociale',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6ISS',\r\n name: 'I.S.S. - Istituto Superiore di Sanità',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6UNI',\r\n name: 'U.N.I. - Ente Nazionale Italiano di Unificazione',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CC',\r\n name: 'Corte Costituzionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CCC',\r\n name: 'Corte di Cassazione Civile',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CCP',\r\n name: 'Corte di Cassazione Penale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CASA',\r\n name: \"Corte d'Assise d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CAS',\r\n name: \"Corte d'Assise\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CA',\r\n name: \"Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5PCA',\r\n name: \"Procura Generale Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5GDP',\r\n name: 'Giudice di Pace',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5PR',\r\n name: 'Procura della Repubblica',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5T',\r\n name: 'Tribunale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5P',\r\n name: 'Pretura',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CDS',\r\n name: 'Consiglio di Stato',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TAR',\r\n name: 'Tribunale Amministrativo Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TSA',\r\n name: 'Tribunale Superiore delle Acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TGA',\r\n name: 'Tribunale Regionale acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CTP',\r\n name: 'Commissione Tributaria Provinciale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CTR',\r\n name: 'Commissione Tributaria Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CGAS',\r\n name: 'Cons. di Giustizia Amm.va della Sicilia',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CDC',\r\n name: 'Corte dei Conti',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3CJCE',\r\n name: 'Corte di Giustizia CEE/CE',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3CEDM',\r\n name: \"Corte Europea per i Diritti dell'Uomo\",\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3CWJ',\r\n name: 'Corte Internazionale di Giustizia',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3T1CE',\r\n name: 'Tribunale di Primo Grado CEE/CE',\r\n },\r\n]\r\n\r\nexport const ClipperSources: NameValueItem<string>[] = [\r\n {\r\n value: 'ACCML',\r\n name: 'Accordi Multilaterali',\r\n },\r\n {\r\n value: 'AEEG',\r\n name: \"Sito Autorità per l'Energia Elettrica, il Gas e il Sistema Idrico\",\r\n },\r\n {\r\n value: 'ARERA',\r\n name: 'Sito Autorità di Regolazione per Energia, Reti e Ambiente',\r\n },\r\n {\r\n value: 'BUR',\r\n name: 'Bollettino Uff. Regione',\r\n },\r\n {\r\n value: 'BUS',\r\n name: 'Suppl. speciale al Bollettino Uff.',\r\n },\r\n {\r\n value: 'BUSO',\r\n name: 'Suppl. ordin. al Bollettino Uff.',\r\n },\r\n {\r\n value: 'BUSS',\r\n name: 'Suppl. straord. al Bollettino Uff.',\r\n },\r\n {\r\n value: 'GU',\r\n name: 'Gazzetta Ufficiale Italiana',\r\n },\r\n {\r\n value: 'GUCC',\r\n name: 'Gazz. Uff. Corte Costituzionale',\r\n },\r\n {\r\n value: 'GUCE',\r\n name: 'Gazzetta ufficiale delle Comunità europee',\r\n },\r\n {\r\n value: 'GUES',\r\n name: 'Gazz. Uff. Ediz. Speciale',\r\n },\r\n {\r\n value: 'GURS',\r\n name: 'Gazz. Uff. Regione Sicilia',\r\n },\r\n {\r\n value: 'GUS',\r\n name: 'Gazz. Uff. Serie Speciale',\r\n },\r\n {\r\n value: 'GUSO',\r\n name: 'Suppl. ordin. alla Gazzetta Ufficiale',\r\n },\r\n {\r\n value: 'GUSS',\r\n name: 'Suppl. straord. alla Gazzetta Ufficiale',\r\n },\r\n {\r\n value: 'GUUE',\r\n name: 'Gazzetta ufficiale dell’Unione europea',\r\n },\r\n {\r\n value: 'MAC',\r\n name: 'Massimario Civile',\r\n },\r\n {\r\n value: 'MAP',\r\n name: 'Massimario Penale',\r\n },\r\n {\r\n value: 'NONE',\r\n name: 'Fonti diverse',\r\n }\r\n]\r\n\r\n\r\nexport interface ClipperChannelSettingsItem<T> {\r\n name: string;\r\n value: T;\r\n checked: boolean;\r\n}\r\n\r\nexport class ClipperChannelSettings {\r\n channelId: ClipperChannel;\r\n channelName: string;\r\n isEnabled?: boolean | null = false;\r\n isActive?: boolean | null = false;\r\n sectors: ClipperChannelSettingsItem<string>[] = [];\r\n regions: ClipperChannelSettingsItem<string>[] = [];\r\n\r\n /**\r\n * Check at least one of sector values is contained in sectors list\r\n * @param values : the admitted values\r\n * @returns true if at least one value has been found\r\n */\r\n hasAnyOfSectors(values: string[]): boolean {\r\n if (this.isEnabled === true && this.isActive === true) {\r\n for (let i = 0; i < values.length; i++) {\r\n if (this.sectors.filter(n => n.value === values[i])?.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Check at least one of region values is contained in regions list\r\n * @param values : the admitted values\r\n * @returns true if at least one value has been found\r\n */\r\n hasAnyOfRegions(values: string[]): boolean {\r\n if (this.isEnabled === true && this.isActive === true) {\r\n for (let i = 0; i < values.length; i++) {\r\n if (this.regions.filter(n => n.value === values[i])?.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport interface ClipperUserChannelInfo {\r\n channel: ClipperChannel;\r\n channelName?: string | null;\r\n expiringDate: string;\r\n isTrial?: boolean | null;\r\n isDisabled: boolean;\r\n isDvd: boolean;\r\n isActive: boolean;\r\n documentsViewable?: number | null;\r\n documentsViewed?: number | null;\r\n settings?: ClipperChannelSettings | null;\r\n}\r\n\r\nexport interface ClipperUserInfo {\r\n userId: number;\r\n customerId?: number | null;\r\n companyName: string;\r\n displayName: string;\r\n firstName: string;\r\n email: string;\r\n OAUTH?: boolean | null;\r\n sessionId?: string | null;\r\n scope: number;\r\n isAuthenticated: boolean;\r\n isTemporary: boolean;\r\n hasTrial: boolean;\r\n hasTeam: boolean;\r\n channels: ClipperUserChannelInfo[];\r\n firstChannelTrial: ClipperUserChannelInfo;\r\n}\r\n\r\nexport interface ClipperLoginResult extends LoginResult<ClipperUserInfo> {\r\n settings?: ClipperChannelSettings[] | null;\r\n}\r\n\r\nexport interface ClipperLoginInfo {\r\n context: ClipperUserInfo;\r\n complianceContext?: any | null;\r\n userSettings?: ClipperChannelSettings[] | null;\r\n userCredentials?: string | null;\r\n OAUTH?: LoginOAuthType | null;\r\n}\r\n\r\nexport class ClipperSearchParams {\r\n version: number = 6;\r\n searchId?: number | null = null;\r\n searchName?: string | null = null;\r\n text?: string | null = null;\r\n title?: string | null = null;\r\n titleOnly?: boolean | null = false;\r\n showUnreadDocumentsOnly?: boolean | null = false;\r\n showCommentedDocumentsOnly?: boolean | null = false;\r\n number?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n year?: number | null = null;\r\n sourceNumber?: string | null = null;\r\n source?: string | null = null;\r\n sourceFromDate?: Date | null = null;\r\n sourceToDate?: Date | null = null;\r\n sourceYear?: number | null = null;\r\n sector?: string | null = null;\r\n sectors?: SectorInfo[] | null = null;\r\n topic?: string | null = null;\r\n taxonomy?: string | null = null;\r\n taxonomies?: NameValueItem<string>[] | null = null;\r\n taxonomyPath?: string | null = null;\r\n taxonomyNode?: string | null = null;\r\n type?: string | null = null;\r\n types?: NameValueItem<string>[] | null = null;\r\n tag?: string | null = null;\r\n tags?: NameValueItem<string>[] | null = null;\r\n author?: string | null = null;\r\n authors?: NameValueItem<string>[] | null = null;\r\n changeReason?: number | null = null;\r\n changedNumber?: string | null = null;\r\n changedYear?: number | null = null;\r\n changedTitle?: string | null = null;\r\n modifierNumber?: string | null = null;\r\n modifierYear?: number | null = null;\r\n modifierTitle?: string | null = null;\r\n model?: ClipperModel | null = null;\r\n models?: ClipperModel[] | null = null;\r\n module?: ClipperModule | null = null;\r\n modules?: NameValueItem<ClipperModule>[] | null = null;\r\n mode?: ClipperQueryReferencesMode | null = null;\r\n channels?: NameValueItem<ClipperChannel>[] | null = [...ClipperChannels];\r\n count?: number | null = 15;\r\n id?: string | null = null;\r\n anchor?: string | null = null;\r\n excludeTextReferences?: boolean | null = false;\r\n excludeNotesReferences?: boolean | null = false;\r\n useModifierInfo?: boolean | null = false;\r\n returnModifierInfo?: boolean | null = false;\r\n first?: number | null = 0;\r\n sortMode?: number | null = null;\r\n\r\n /**\r\n * Return a valid ClipperReferencesSearchParams\r\n * @returns a ClipperReferencesSearchParams object\r\n */\r\n toReferencesSearchParams(): ClipperReferencesSearchParams {\r\n return {\r\n documentId: this.id,\r\n year: this.year,\r\n sector: this.sector,\r\n author: this.author,\r\n anchor: this.anchor,\r\n model: this.model?.toString() ?? null,\r\n mode: this.mode,\r\n excludeTextReferences: this.excludeTextReferences,\r\n excludeNotesReferences: this.excludeNotesReferences,\r\n returnModifierInfo: this.returnModifierInfo,\r\n useModifierInfo: this.useModifierInfo,\r\n count: 15,\r\n first: 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport interface ClipperReferencesSearchParams {\r\n documentId: string;\r\n year?: number | null;\r\n sector?: string | null;\r\n author?: string | null;\r\n anchor?: string | null;\r\n model?: string | null;\r\n mode?: ClipperQueryReferencesMode | null;\r\n excludeTextReferences?: boolean | null;\r\n excludeNotesReferences?: boolean | null;\r\n useModifierInfo?: boolean | null;\r\n returnModifierInfo?: boolean | null;\r\n count?: number | null;\r\n first?: number | null;\r\n}\r\n\r\nexport enum ClipperDocumentContainer {\r\n None = 0,\r\n LavoroEAmbiente = 1,\r\n SostanzeAlimentari = 2,\r\n OrangeProject = 4,\r\n Energia = 8,\r\n DGInfo = 0x10,\r\n DLGS231 = 0x20,\r\n All = 0x3F\r\n}\r\n\r\nexport const ClipperDocumentChangeReasons: NameValueItem<number>[] = [\r\n { name: 'Abrogazione', value: 1 },\r\n { name: 'Annullamento', value: 5 },\r\n { name: 'Modifica', value: 2 },\r\n { name: 'Sostiuzione', value: 3 },\r\n { name: 'Segnalazione', value: 6 },\r\n { name: 'Rettifica', value: 7 },\r\n]\r\n\r\nexport interface ClipperDocumentAnchorInfo {\r\n documentId: string;\r\n type: number;\r\n typeDescription: string;\r\n text: string;\r\n title?: string | null;\r\n description?: string | null;\r\n uri: string;\r\n ordinal?: string | null;\r\n score?: number | null;\r\n veryRelevant?: boolean | null;\r\n value?: string | null;\r\n level?: number | null;\r\n}\r\n\r\nexport interface ClipperDocumentRelevants {\r\n items: ClipperDocumentAnchorInfo[];\r\n hits: number;\r\n hit: number;\r\n minimumScore: number;\r\n}\r\n\r\nexport interface ClipperDocumentInfo {\r\n id?: string | null;\r\n documentId?: string | null;\r\n model?: number;\r\n modelName?: string | null;\r\n module?: number | null;\r\n moduleName?: string | null;\r\n channelName?: string | null;\r\n group?: string | null;\r\n title2?: string | null;\r\n title1?: string | null;\r\n tags?: string | null;\r\n topics?: string | null;\r\n number?: string | null;\r\n date?: Date | null;\r\n description?: string | null;\r\n publishingDate?: Date | null;\r\n pictureId?: string | null;\r\n sourceNumber?: string | null;\r\n sourceDate?: Date | null;\r\n source?: string | null;\r\n origin?: string | null;\r\n originDescription?: string | null;\r\n author?: string | null;\r\n anchors?: ClipperDocumentAnchorInfo[] | null;\r\n taxonomy?: string | null;\r\n info?: string | null;\r\n isRead?: boolean | null;\r\n isExportable?: boolean | null;\r\n isCommented?: boolean | null;\r\n isJuris?: boolean | null;\r\n isOver?: boolean | null;\r\n isTrial?: boolean | null;\r\n isNew?: boolean | null;\r\n isExpired?: boolean | null;\r\n isExpiring?: boolean | null;\r\n isMenuOpen?: boolean | null;\r\n validityState?: number | null;\r\n validUntilDate?: Date | null;\r\n validityDescription?: string | null;\r\n validityInfo?: string | null;\r\n expiringDate?: Date | null;\r\n expiringDescription?: string | null;\r\n expiringInfo?: string | null;\r\n popularity?: number | null;\r\n part?: number | null;\r\n primaryId?: string | null;\r\n primaryDescription?: string | null;\r\n primaryModel?: number | null;\r\n hasPrimary?: boolean | null;\r\n secondaryId?: string | null;\r\n bag?: any | null;\r\n lastUpdate?: string | null;\r\n\r\n}\r\n\r\nexport class ClipperSearchResult {\r\n days?: string | null = null;\r\n interval?: string | null = null;\r\n items?: ClipperDocumentInfo[] | null = null;\r\n facets?: ClipperSearchFacetsSnapshot | null = new ClipperSearchFacetsSnapshot();\r\n tags?: NameValueItem<string>[] | null;\r\n total?: number | null = null;\r\n searchInfo?: any | null = null;\r\n searchParams?: ClipperSearchParams | null = new ClipperSearchParams();\r\n snapshotMode?: ClipperQueryReferencesMode | null = null;\r\n}\r\n\r\nexport interface ClipperSearchFacet {\r\n type: number;\r\n typeName: string;\r\n title: string;\r\n value: string;\r\n count: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetGroup {\r\n name: string;\r\n selectedValue?: string | null;\r\n selectedValueDescription?: string | null;\r\n values: ClipperSearchFacet[];\r\n index: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetsResult {\r\n interval?: string | null;\r\n facets?: ClipperSearchFacet[][] | null;\r\n total?: number | null;\r\n}\r\n\r\n\r\nexport class ClipperSearchFacetsSnapshot {\r\n groups: ClipperSearchFacetGroup[] = [];\r\n usedGroups: ClipperSearchFacetGroup[] = [];\r\n hasFacets: boolean = false;\r\n hasMoreFacets: boolean = false;\r\n hasTooManyResults: boolean = false;\r\n sector?: string | null = null;\r\n author?: string | null = null;\r\n anchor?: string | null = null;\r\n type?: string | null = null;\r\n reason?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n interval?: string | null = null;\r\n changedInterval: boolean = false;\r\n changedSector: boolean = false;\r\n changedAuthor: boolean = false;\r\n changedAnchor: boolean = false;\r\n changedType: boolean = false;\r\n changedReason: boolean = false;\r\n}\r\n\r\nexport interface ClipperSearchCalendarSnapshotMonth {\r\n days: number[];\r\n monthShortName: string;\r\n monthName: string;\r\n month: number;\r\n year: number;\r\n total: number;\r\n expired: number;\r\n expiring: number;\r\n}\r\n\r\nexport class ClipperSearchCalendarSnapshotResult {\r\n months?: ClipperSearchCalendarSnapshotMonth[] | null = null;\r\n}\r\n\r\n\r\n\r\nexport enum ClipperSort {\r\n Default = 0,\r\n Relevance = 1,\r\n DateAsc = 2,\r\n DateDesc = 3,\r\n SourceDateAsc = 7,\r\n SourceDateDesc = 8,\r\n Popularity = 5\r\n}\r\n\r\nexport enum ClipperQueryReferencesMode {\r\n ReferencesIn = 1,\r\n ReferencesOut = 2,\r\n ChangesIn = 3,\r\n ChangesOut = 5,\r\n Juris = 4\r\n}\r\n\r\nexport enum ClipperFacet {\r\n Sector = 1,\r\n Year = 2,\r\n DocumentType = 3,\r\n Topic = 4,\r\n Article = 5,\r\n Author = 6,\r\n Reason = 95\r\n}\r\n\r\nexport interface ClipperOTPInfo {\r\n code: string;\r\n canPreview?: boolean | null;\r\n canEmbed?: boolean | null;\r\n}\r\n\r\nexport enum ClipperExportDocumentsFormat {\r\n Deafault = 1,\r\n iCalendar = 2\r\n}\r\n\r\nexport interface ClipperExportDocumentsParams {\r\n query: ClipperSearchParams;\r\n ids: string[];\r\n format?: ClipperExportDocumentsFormat | null;\r\n}\r\n\r\nexport interface ClipperSendDocumentsByEmailParams extends SendToDialogResult {\r\n ids: string[];\r\n public: string;\r\n isCalendar: boolean;\r\n}\r\n\r\nexport interface ClipperDocumentStructure {\r\n id: string;\r\n title: string;\r\n items?: ClipperDocumentAnchorInfo[] | null;\r\n}\r\n\r\n\r\nexport interface ClipperSearchFilter {\r\n container: ClipperDocumentContainer;\r\n models: number[];\r\n sectors: string[];\r\n regions: string[];\r\n notifications: number[];\r\n isEnabled: boolean;\r\n isActive: boolean;\r\n}\r\nexport interface ClipperTaxonomyParams {\r\n countItems: boolean;\r\n model: ClipperModel;\r\n userFilters?: ClipperSearchFilter[] | null;\r\n}\r\n\r\nexport interface ClipperUserSearch {\r\n id?: number | null;\r\n userId?: number | null;\r\n name?: string | null;\r\n module?: ClipperModule | null,\r\n data?: string | null;\r\n}\r\n\r\nexport interface ClipperUserWorkingDocument {\r\n userId?: number | null;\r\n documentId?: string | null;\r\n documentDescriptor?: string | null;\r\n title1?: string | null;\r\n title2?: string | null;\r\n timestamp?: string | null;\r\n}\r\n\r\nexport interface ClipperDeleteWorkingDocumentsParams {\r\n documentIds: string[];\r\n deleteAll: boolean;\r\n}\r\n\r\n\r\nexport interface ClipperUserLink {\r\n id: number;\r\n userId: number;\r\n userName: string;\r\n key: string;\r\n}\r\n\r\nexport interface ClipperArsEventInfo {\r\n id: number;\r\n location?: string | null;\r\n title?: string | null;\r\n pictureId?: string | null;\r\n date?: string | null;\r\n endDate?: string | null;\r\n startTime?: string | null;\r\n endTime?: string | null;\r\n hours?: number | null;\r\n days?: number | null;\r\n dateIntervalDescription?: string | null;\r\n durationDescription?: string | null;\r\n group?: string | null;\r\n address?: string | null;\r\n city?: string | null;\r\n isOver?: boolean | null;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperQueryArsEventsParams {\r\n group?: string | null;\r\n group1?: string | null;\r\n collectGroups?: boolean | null;\r\n collectBundles?: boolean | null;\r\n fromDate?: string | null;\r\n untilDate?: string | null;\r\n text?: string | null;\r\n sortBy?: string | null;\r\n count: number\r\n}\r\n\r\nexport interface ClipperQueryArsEventsResult {\r\n interval?: string | null;\r\n items?: ClipperArsEventInfo[] | null;\r\n total?: number | null;\r\n}\r\n\r\nexport interface ClipperDocumentUpdateStateParams {\r\n documentIds: string[] | null;\r\n isRead: boolean | null;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperDashboardItem {\r\n id?: ClipperModule | null;\r\n newItems?: number | null;\r\n unreadItems?: number | null;\r\n lastUpdated?: string | null;\r\n}\r\n\r\nexport interface ClipperDashboardResult {\r\n items?: ClipperDashboardItem[] | null;\r\n isTrial?: boolean | null;\r\n expiredDeadlines?: number | null;\r\n expiringDeadlines?: number | null;\r\n documentUpdates?: number | null;\r\n}\r\n\r\nexport class ClipperDashboard {\r\n items = signal<ClipperDashboardItem[]>([]);\r\n isTrial?: boolean | null = false;\r\n expiredDeadlines?: number | null = null;\r\n expiringDeadlines?: number | null = null;\r\n documentUpdates?: number | null = null;\r\n unreadItems: Signal<[ClipperModule, number][]> = computed(() => {\r\n const states: [ClipperModule, number][] = [];\r\n let totalUnread = 0;\r\n this.items().filter(x => x.id == ClipperModule.News\r\n || x.id === ClipperModule.Approfondimenti\r\n || x.id === ClipperModule.Giurisprudenza).forEach(x => {\r\n totalUnread += x.unreadItems ?? 0;\r\n });\r\n states.push([ClipperModule.News, totalUnread]);\r\n states.push([ClipperModule.GazzetteBollettiniEFontiDiverse, this.items().find(x => x.id == ClipperModule.GazzetteBollettiniEFontiDiverse)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.Giurisprudenza, this.items().find(x => x.id == ClipperModule.Giurisprudenza)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.ModificheAbrogazioniERinvii, this.items().find(x => x.id == ClipperModule.ModificheAbrogazioniERinvii)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.AllerteAlimentari, this.items().find(x => x.id == ClipperModule.AllerteAlimentari)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.QuesitiECasiRisolti, this.items().find(x => x.id == ClipperModule.QuesitiECasiRisolti)?.unreadItems ?? 0]);\r\n return states;\r\n });\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, increment: number) {\r\n let item = this.items()?.find(x => x.id == module);\r\n if (item) {\r\n item.unreadItems += increment;\r\n this.items.update(values => [...values]);\r\n }\r\n }\r\n\r\n /***\r\n * Get the module unread items\r\n * @param module: the module\r\n * @returns the module unread items\r\n */\r\n getUnreadItems(module: ClipperModule): number {\r\n return this.unreadItems()?.find(x => x[0] === module)?.[1];\r\n }\r\n}\r\n\r\n\r\nexport class ClipperUtils {\r\n\r\n /**\r\n * Check if a model is readable\r\n * @param model : the model to check\r\n * @returns : true if the model is readable\r\n */\r\n static isClipperModelReadable(model: ClipperModel): boolean {\r\n return model !== ClipperModel.NormativaVigente &&\r\n model !== ClipperModel.Scadenze &&\r\n model !== ClipperModel.Segnalazioni;\r\n }\r\n\r\n /**\r\n * Return the Clipper module from model \r\n * @param model: the model\r\n * @returns the module id\r\n */\r\n static getClipperModuleFromModel(model: ClipperModel): ClipperModule | null {\r\n switch (model) {\r\n case ClipperModel.AllerteAlimentari: return ClipperModule.AllerteAlimentari;\r\n case ClipperModel.News:\r\n case ClipperModel.Articoli:\r\n case ClipperModel.Juris: return ClipperModule.News;\r\n case ClipperModel.Quesiti: return ClipperModule.QuesitiECasiRisolti;\r\n case ClipperModel.Coordinamento: return ClipperModule.ModificheAbrogazioniERinvii;\r\n case ClipperModel.GiurisprudenzaRecente: return ClipperModule.Giurisprudenza;\r\n case ClipperModel.NormativaVigente: return ClipperModule.NormativaVigente;\r\n case ClipperModel.Segnalazioni:\r\n case ClipperModel.Scadenze: return ClipperModule.ScadenzeESegnalazioni;\r\n case ClipperModel.AggiornamentoNormativo: return ClipperModule.GazzetteBollettiniEFontiDiverse;\r\n }\r\n return null;\r\n }\r\n\r\n\r\n /**\r\n * Return the Clipper group name\r\n * @param value: the group value \r\n * @returns the group name\r\n */\r\n static getClipperModuleGroupName(value: ClipperModuleGroup): string {\r\n return ClipperModuleGroups.filter((n) => n.value === value)?.[0].name;\r\n }\r\n\r\n /**\r\n * Return the list of modules of a group\r\n * @param value: the module name\r\n * @returns the list of modules\r\n */\r\n static getClipperModuleGroupItems(value: ClipperModuleGroup): NameValueItem<ClipperModule>[] {\r\n return ClipperModules.filter((n) => n.parentValue === value);\r\n }\r\n\r\n /**\r\n * Return the list of available sort options for a list of modules\r\n * @param modules : the modules list\r\n * @returns the list of availbale sort options \r\n */\r\n static getClipperAvailableSortOptions(\r\n modules: NameValueItem<ClipperModule>[] | null | undefined = undefined,\r\n params: ClipperSearchParams | null | undefined = undefined): NameValueItem<ClipperSort>[] {\r\n const options: NameValueItem<ClipperSort>[] = [\r\n { name: \"Data decrescente\", value: ClipperSort.DateDesc },\r\n { name: \"Data crescente\", value: ClipperSort.DateAsc },\r\n { name: \"Data fonte decrescente\", value: ClipperSort.SourceDateDesc },\r\n { name: \"Data fonte crescente\", value: ClipperSort.SourceDateAsc },\r\n { name: \"Rilevanza\", value: ClipperSort.Relevance },\r\n { name: \"Popolarità\", value: ClipperSort.Popularity },\r\n ];\r\n let sortOptions: NameValueItem<number>[] = []\r\n if (params && ClipperSearchUtils.isTextQuery(params)) {\r\n sortOptions.push(options[4]);\r\n }\r\n if (modules?.length > 0) {\r\n if (modules.length === 1 && modules[0].value === ClipperModule.GazzetteBollettiniEFontiDiverse) {\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n } else if ((modules.length <= 3 && modules.filter(x => x.value !== ClipperModule.NormativaVigente\r\n && x.value !== ClipperModule.GazzetteBollettiniEFontiDiverse\r\n && x.value !== ClipperModule.Giurisprudenza).length === 0)\r\n || (modules.length === 1 && modules[0].value === ClipperModule.NormativaVigente)\r\n || (modules.length === 1 && modules[0].value === ClipperModule.Giurisprudenza)) {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n sortOptions.push(options[5]); \r\n } else {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n }\r\n } else {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n }\r\n return sortOptions;\r\n }\r\n\r\n}\r\n\r\nexport class ClipperSearchUtils {\r\n \r\n /**\r\n * Clear the search params object\r\n * @param params : the search params to clear\r\n */\r\n static clear(params: ClipperSearchParams) {\r\n params.sector = null;\r\n params.sectors = null;\r\n params.author = null;\r\n params.authors = null;\r\n params.topic = null;\r\n params.taxonomy = null;\r\n params.taxonomyPath = null;\r\n params.taxonomyNode = null;\r\n params.number = null;\r\n params.fromDate = null;\r\n params.toDate = null;\r\n params.year = null;\r\n params.sourceNumber = null;\r\n params.source = null;\r\n params.sourceFromDate = null;\r\n params.sourceToDate = null;\r\n params.sourceYear = null;\r\n params.tags = null;\r\n params.text = null;\r\n params.titleOnly = false;\r\n params.type = null;\r\n params.showUnreadDocumentsOnly = false;\r\n params.showCommentedDocumentsOnly = false;\r\n params.channels = [...ClipperChannels];\r\n params.changeReason = null;\r\n params.changedNumber = null;\r\n params.changedYear = null;\r\n params.changedTitle = null;\r\n params.modifierNumber = null;\r\n params.modifierYear = null;\r\n params.modifierTitle = null;\r\n params.model = null;\r\n params.models = null;\r\n params.module = null;\r\n params.modules = null;\r\n }\r\n\r\n /**\r\n * Get hte model list related to a list of modules\r\n * @param modules: the modules to check\r\n * @returns the list fo models\r\n */\r\n static getModulesModels(modules: NameValueItem<ClipperModule>[] | null | undefined): ClipperModel[] {\r\n const models: ClipperModel[] = [];\r\n if ((modules?.length ?? 0) > 0) {\r\n modules?.forEach(module => {\r\n switch (module.value) {\r\n case ClipperModule.ScadenzeESegnalazioni:\r\n [ClipperModel.Scadenze, ClipperModel.Segnalazioni].forEach(x => models.push(x));\r\n break;\r\n case ClipperModule.QuesitiECasiRisolti:\r\n models.push(ClipperModel.Quesiti);\r\n break;\r\n case ClipperModule.News:\r\n [ClipperModel.Articoli, ClipperModel.News, ClipperModel.Juris].forEach(x => models.push(x));\r\n break;\r\n case ClipperModule.AllerteAlimentari:\r\n models.push(ClipperModel.AllerteAlimentari);\r\n break;\r\n case ClipperModule.GazzetteBollettiniEFontiDiverse:\r\n models.push(ClipperModel.AggiornamentoNormativo);\r\n break;\r\n case ClipperModule.NormativaVigente:\r\n models.push(ClipperModel.NormativaVigente);\r\n break;\r\n case ClipperModule.ModificheAbrogazioniERinvii:\r\n models.push(ClipperModel.Coordinamento);\r\n break;\r\n case ClipperModule.Giurisprudenza:\r\n models.push(ClipperModel.GiurisprudenzaRecente);\r\n break;\r\n }\r\n });\r\n }\r\n return models;\r\n }\r\n\r\n /**\r\n * Check if current filter is a text based search \r\n * @param params : the search params to check\r\n * @returns true if is a text based search\r\n */\r\n static isTextQuery(params: ClipperSearchParams): boolean {\r\n return params.text != null && params.text?.length > 0;\r\n }\r\n\r\n /**\r\n * Try to add a query\r\n * @param q : the new query\r\n * @param queries : the new query\r\n */\r\n private static concatTextQuery(q: string, queries: string): string {\r\n if (q && q.length > 0) {\r\n if (queries.length == 0 && (q[0] === '+' || q[0] === '-'))\r\n q = q.substring(1);\r\n if (q[q.length - 1] !== '\\\"' && q.indexOf(' ') !== -1)\r\n q = \"\\\"\" + q + \"\\\"\";\r\n if (queries.length > 0) queries += \", \";\r\n queries += q;\r\n }\r\n return queries;\r\n }\r\n\r\n /**\r\n * Normalize text query\r\n * @param text : the text query to normalize\r\n * @returns : the text normalized or null\r\n */\r\n static normalizeTextQuery(text: string): string | null {\r\n if (!text || text.length === 0) return null;\r\n let q: string = '';\r\n let queries: string = '';\r\n for (let i = 0; i < text.length; i++) {\r\n if (text[i] === ',') {\r\n queries = this.concatTextQuery(q.trim(), queries);\r\n q = '';\r\n }\r\n else q += text[i];\r\n }\r\n queries = this.concatTextQuery(q.trim(), queries);\r\n return queries;\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, Signal, computed, inject, signal } from '@angular/core';\r\nimport {\r\n ApiResult, BroadcastService,\r\n FolderTree, NameValueItem, SystemUtils\r\n} from '@arsedizioni/ars-utils/core';\r\nimport { DialogService } from '@arsedizioni/ars-utils/ui';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { Subscription, of, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ClipperDashboard, ClipperDashboardResult, ClipperDocumentInfo, ClipperDocumentStructure, ClipperDocumentUpdateStateParams, ClipperExportDocumentsParams, ClipperLoginInfo, ClipperLoginResult, ClipperModel, ClipperModule, ClipperOTPInfo, ClipperQueryArsEventsParams, ClipperQueryArsEventsResult, ClipperQueryReferencesMode, ClipperReferencesSearchParams, ClipperSearchFacetsResult, ClipperSearchParams, ClipperSearchResult, ClipperSendDocumentsByEmailParams, ClipperTaxonomyParams, ClipperUserLink, ClipperUserSearch, ClipperUserWorkingDocument } from '../definitions';\r\nimport { ClipperMessages } from '../messages';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ClipperService implements OnDestroy {\r\n\r\n private httpClient = inject(HttpClient);\r\n private broadcastServiceSubscription?: Subscription | null;\r\n private broadcastService = inject(BroadcastService);\r\n private dialogService = inject(DialogService);\r\n\r\n\r\n private _serviceUri: string | null = null;\r\n get serviceUri(): string {\r\n return this._serviceUri;\r\n }\r\n private _loginInfo: ClipperLoginInfo = null;\r\n get loginInfo(): ClipperLoginInfo {\r\n if (!this._loginInfo) {\r\n const loginInfo = localStorage.getItem('clipper_login');\r\n if (loginInfo) {\r\n try {\r\n this._loginInfo = JSON.parse(loginInfo) as ClipperLoginInfo;\r\n } catch { }\r\n }\r\n }\r\n return this._loginInfo;\r\n }\r\n public readonly loggedIn = signal<boolean>(false);\r\n public readonly loggingIn = signal<boolean>(false);\r\n public readonly snapshot = signal<ClipperSearchResult>(null);\r\n public readonly referencesSnapshot = signal<ClipperSearchResult>(null);\r\n public readonly dashboard: ClipperDashboard = new ClipperDashboard();\r\n public readonly bag = signal<ClipperDocumentInfo[]>([]);\r\n public readonly bagTotal: Signal<number> = computed(() => {\r\n return this.bag().length;\r\n });\r\n public readonly visible = signal<boolean>(false);\r\n public readonly supportsRS = signal<boolean>(false);\r\n\r\n ngOnDestroy() {\r\n if (this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Initialize service\r\n * @param serviceUri : the service uri\r\n */\r\n initialize(\r\n serviceUri: string) {\r\n\r\n // Create unique client id\r\n if (!localStorage.getItem('clipper_client_id')) {\r\n localStorage.setItem('clipper_client_id', SystemUtils.generateUUID());\r\n }\r\n\r\n // Initialize\r\n this._serviceUri = serviceUri;\r\n\r\n // React to message broadcasting\r\n if (!this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription = this.broadcastService.getMessage().subscribe(message => {\r\n if (message.id === ClipperMessages.LOGIN_CHANGED) {\r\n setTimeout(() => {\r\n this.login(\r\n message.data.email,\r\n message.data.password,\r\n true,\r\n message.data.oauth,\r\n message.data.oauthAccessToken).subscribe(r => {\r\n if (!r.success)\r\n this.dialogService.error(r.message, null, \"Errore di Clipper\");\r\n else {\r\n this.dialogService.toast('Connesso a Clipper', 1500, 'power');\r\n // Load bag\r\n this.loadBag();\r\n }\r\n });\r\n }, 500);\r\n } else if (message.id === ClipperMessages.LOGOUT_COMPLETED ||\r\n message.id === ClipperMessages.LOGIN_DISCONNECTED) {\r\n if (this.loggedIn()) {\r\n this.logout().subscribe(r => {\r\n if (!r.success) {\r\n this.dialogService.error(\"<p>\" + r.message + \"</p><br><br><hr><p class='small'><i>Per eliminare la configurazione di Clipper accedere a:<br><b>menu > personalizza > collegamenti</b></i></p>\", null, \"Errore di Clipper\");\r\n } else {\r\n this.dialogService.toast('Disconnesso da Clipper', 1500, 'power_off');\r\n // Empty bag\r\n this.bag.set([]);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Eveluate current session storage in case of page refresh (F5)\r\n if (!this.loggedIn() && this.getToken()) {\r\n // Auto login\r\n this.loggedIn.set(true);\r\n }\r\n }\r\n\r\n /**\r\n * Set JWT tokens\r\n * @param value : the login result\r\n */\r\n private setToken(value: ClipperLoginResult) {\r\n sessionStorage.setItem('clipper_jwt', value.token);\r\n sessionStorage.setItem('clipper_jwt_refresh', value.refreshToken);\r\n }\r\n\r\n /**\r\n * Return current JWT token\r\n * @param refresh: true to get the refresh token. Default is false.\r\n */\r\n getToken(refresh: boolean = false): string {\r\n let token = sessionStorage.getItem(refresh ? 'clipper_jwt_refresh' : 'clipper_jwt');\r\n if (token && token[0] === '\"') {\r\n return token.substring(1, token.length - 1);\r\n }\r\n return token ?? '';\r\n }\r\n\r\n /**\r\n * Perform login \r\n * @param email: the optioanl email if using OAuth2\r\n * @parma password: the optional password if using OAuth2\r\n * @param remember: remember credentials \r\n * @param oauth: the optional open authentication supported\r\n * @param oauthAccessToken: the optional OAuth2 access token\r\n * @returns: the login result\r\n */\r\n login(email: string | null | undefined = null,\r\n password: string | null | undefined = null,\r\n remember: boolean | null | undefined = false,\r\n oauth: LoginOAuthType | null | undefined = null,\r\n oauthAccessToken: string | null | undefined = null) {\r\n this.clear();\r\n this.loggingIn.set(true);\r\n return this.httpClient\r\n .post<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/login2',\r\n {\r\n user: oauth ? null : email,\r\n password: oauth ? null : password,\r\n clientId: localStorage.getItem(\"clipper_client_id\"),\r\n OAUTH: oauth\r\n },\r\n {\r\n headers:\r\n !oauth\r\n ? new HttpHeaders()\r\n : new HttpHeaders()\r\n .set(\"Authorization\", oauthAccessToken)\r\n })\r\n .pipe(\r\n catchError(err => {\r\n this.loggingIn.set(false);\r\n localStorage.removeItem('clipper_login');\r\n return throwError(() => err);\r\n }),\r\n map(r => {\r\n this.loggingIn.set(false);\r\n if (r.success) {\r\n // Store access token\r\n this.setToken(r.value);\r\n const loginInfo: ClipperLoginInfo = {\r\n context: r.value.context,\r\n userSettings: r.value.settings,\r\n OAUTH: oauth\r\n }\r\n if (!oauth) {\r\n loginInfo.userCredentials =\r\n SystemUtils.cipher(\r\n JSON.stringify({\r\n email: email,\r\n password: password,\r\n remember: remember,\r\n }), loginInfo.context.userId.toString());\r\n }\r\n\r\n // Update info\r\n localStorage.setItem(\r\n 'clipper_login',\r\n JSON.stringify(loginInfo)\r\n );\r\n\r\n this._loginInfo = loginInfo;\r\n\r\n this.loggedIn.set(true);\r\n\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Perform logout\r\n */\r\n logout() {\r\n return this.httpClient.post<any>(this._serviceUri + '/logout', {}).pipe(\r\n map(r => {\r\n this.clear();\r\n return r\r\n }),\r\n catchError((_e) => {\r\n this.clear();\r\n return of([]);\r\n }));\r\n }\r\n\r\n /**\r\n * Reset login refresh timer and login state\r\n */\r\n reset() { \r\n // Clear login info\r\n this._loginInfo = null;\r\n\r\n // Logged out\r\n this.loggedIn.set(false);\r\n }\r\n\r\n /**\r\n * Clear login data\r\n */\r\n clear() {\r\n // Clear local storage\r\n sessionStorage.removeItem('clipper_jwt');\r\n sessionStorage.removeItem('clipper_jwt_refresh');\r\n sessionStorage.removeItem('clipper_oauth');\r\n localStorage.removeItem('clipper_login');\r\n\r\n // Reset login\r\n this.reset();\r\n }\r\n\r\n\r\n /**\r\n * Perform token refresh\r\n */\r\n refresh() {\r\n return this.httpClient.get<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/refresh2/?token=' + this.getToken(true)\r\n ).pipe(map(r => {\r\n // Update token\r\n this.setToken(r.value);\r\n }));\r\n }\r\n\r\n /**\r\n * Get a new one time password\r\n * @param id: the optional repository id \r\n */\r\n newOTP(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperOTPInfo>>(\r\n this._serviceUri + '/otp/new/?id=' + id,\r\n );\r\n }\r\n\r\n /**\r\n * Load Ars events calendar\r\n */\r\n events(params: ClipperQueryArsEventsParams) {\r\n return this.httpClient.post<ApiResult<ClipperQueryArsEventsResult>>(\r\n this._serviceUri + '/ars/events',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Query documents\r\n */\r\n query(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Get facets for a query\r\n */\r\n queryFacets(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n params.model === ClipperModel.Coordinamento ||\r\n (params.models?.length === 1 && params.models[0] === ClipperModel.Coordinamento)\r\n ? this._serviceUri + '/documents/changes/facets'\r\n : this._serviceUri + '/documents/facets',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Update document state\r\n */\r\n updateState(params: ClipperDocumentUpdateStateParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/documents/state/update',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Export a document in pdf format\r\n */\r\n exportPdf(id: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/documents/export/' + id,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n\r\n\r\n /**\r\n * Export document list (query or selected items) or export deadlines as ics\r\n */\r\n export(params: ClipperExportDocumentsParams) {\r\n return this.httpClient.post(\r\n this._serviceUri + '/documents/export',\r\n params,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n /**\r\n * Send documents link by email\r\n */\r\n sendTo(params: ClipperSendDocumentsByEmailParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/documents/send',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Display a page the full document report\r\n */\r\n report(id: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/documents/report/' + id,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n /**\r\n * Get document comment\r\n */\r\n comment(id: string) {\r\n return this.httpClient.get<ApiResult<string>>(\r\n this._serviceUri + '/documents/comment/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document info\r\n */\r\n info(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDocumentInfo>>(\r\n this._serviceUri + '/documents/info/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document structure\r\n */\r\n index(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDocumentStructure>>(\r\n this._serviceUri + '/documents/structure/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document last update\r\n */\r\n lastUpdate(id: string) {\r\n return this.httpClient.get<ApiResult<string>>(\r\n this._serviceUri + '/documents/last-update/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Query document references\r\n */\r\n references(params: ClipperReferencesSearchParams) {\r\n let mode = params.mode;\r\n if (!mode) mode = ClipperQueryReferencesMode.ReferencesIn;\r\n switch (mode) {\r\n case ClipperQueryReferencesMode.ReferencesIn:\r\n case ClipperQueryReferencesMode.ReferencesOut:\r\n params.mode = mode;\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/references',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.ChangesIn:\r\n case ClipperQueryReferencesMode.ChangesOut:\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/changes',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.Juris:\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/juris',\r\n params\r\n );\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Get facets for a document references\r\n */\r\n referencesFacets(params: ClipperReferencesSearchParams) {\r\n let mode = params.mode ?? ClipperQueryReferencesMode.ReferencesIn;\r\n switch (mode) {\r\n case ClipperQueryReferencesMode.ReferencesIn:\r\n case ClipperQueryReferencesMode.ReferencesOut:\r\n params.mode = mode;\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/references/facets',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.ChangesIn:\r\n case ClipperQueryReferencesMode.ChangesOut:\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/changes/facets',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.Juris:\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/juris/facets',\r\n params\r\n );\r\n default: return null;\r\n }\r\n }\r\n\r\n /**\r\n * Get document juris articles\r\n */\r\n jurisArticles(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/juris/articles',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Get calendar snapshot based on the deadlines\r\n */\r\n calendarSnapshot(params: any) {\r\n return this.httpClient.post<ApiResult<any>>(\r\n this._serviceUri + '/documents/calendar/snapshot',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Retrieve the taxonomy\r\n */\r\n getTaxonomy(params: ClipperTaxonomyParams | null = null) {\r\n return this.httpClient.post<ApiResult<FolderTree>>(\r\n this._serviceUri + '/taxonomy',\r\n params ?? { model: 0, countItems: false }\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve topics\r\n */\r\n getTopics() {\r\n return this.httpClient.get<ApiResult<NameValueItem<string>[]>>(\r\n this._serviceUri + '/topics'\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve tags\r\n */\r\n getTags() {\r\n return this.httpClient.get<ApiResult<NameValueItem<string>[]>>(\r\n this._serviceUri + '/tags'\r\n );\r\n }\r\n\r\n\r\n ///\r\n // DASHBOARD\r\n ///\r\n /**\r\n * Retrieve current dashboard\r\n */\r\n loadDashboard() {\r\n this.httpClient\r\n .post<ApiResult<ClipperDashboardResult>>(\r\n this._serviceUri + '/account/dashboard',\r\n { refreshing: true }\r\n ).subscribe(r => {\r\n if (r.success) {\r\n this.dashboard.documentUpdates = r.value.documentUpdates;\r\n this.dashboard.expiredDeadlines = r.value.expiredDeadlines;\r\n this.dashboard.expiringDeadlines = r.value.expiringDeadlines;\r\n this.dashboard.isTrial = r.value.isTrial;\r\n this.dashboard.items.set(r.value.items);\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, increment: number) {\r\n console.log('module:' + module);\r\n this.dashboard.updateUnreadItems(module, increment);\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n }\r\n\r\n ///\r\n // LINKS\r\n ///\r\n\r\n /**\r\n * Save a user link\r\n * @param item: the user link\r\n */\r\n saveLink(item: ClipperUserLink) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/links/save',\r\n item\r\n );\r\n }\r\n\r\n /**\r\n * Delete a user link\r\n * @param item: the user link\r\n */\r\n deleteLink(item: ClipperUserLink) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/links/delete',\r\n item\r\n );\r\n }\r\n\r\n\r\n ///\r\n // BAG - WORKING DOCUMENTS\r\n ///\r\n\r\n /**\r\n * Load working documents\r\n */\r\n loadBag() {\r\n return this.httpClient\r\n .get<ApiResult<ClipperUserWorkingDocument[]>>(\r\n this.serviceUri + '/documents/working'\r\n )\r\n .subscribe(\r\n r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n if (r.value) {\r\n const items: ClipperDocumentInfo[] = [];\r\n r.value.forEach(n => {\r\n if (n.documentDescriptor) {\r\n const documentInfo = JSON.parse(n.documentDescriptor);\r\n if (documentInfo) {\r\n n.documentId = documentInfo.DocumentId || documentInfo.Id;\r\n n.title1 = documentInfo.Title1 ?? documentInfo.Title2;\r\n n.title2 = documentInfo.Title1 ? documentInfo.Title2 : null;\r\n }\r\n n.documentDescriptor = null;\r\n items.push(n);\r\n }\r\n });\r\n this.bag.set(items);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Add one or more working document\r\n * @param documentIds : the document ids to add\r\n */\r\n addToBag(documentIds: string[]) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperUserWorkingDocument[]>>(\r\n this.serviceUri + '/documents/working/add',\r\n { documentIds: documentIds }\r\n )\r\n .subscribe(r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n if (r.value) {\r\n const newItems: ClipperDocumentInfo[] = [];\r\n r.value.forEach(n => {\r\n if (n.documentDescriptor) {\r\n const documentInfo = JSON.parse(n.documentDescriptor);\r\n if (documentInfo) {\r\n n.documentId = documentInfo.DocumentId || documentInfo.Id;\r\n n.title1 = documentInfo.Title1 ?? documentInfo.Title2;\r\n n.title2 = documentInfo.Title1 ? documentInfo.Title2 : null;\r\n }\r\n n.documentDescriptor = null;\r\n newItems.push(n);\r\n }\r\n });\r\n if (newItems.length > 0) {\r\n this.bag.update(values => [...values, ...newItems]);\r\n }\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Remove one working document\r\n * @param documentId : the document id\r\n */\r\n removeFromBag(documentId: string) {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/working/delete',\r\n { documentIds: [documentId] }\r\n )\r\n .subscribe(r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n const p = this.bag().findIndex(n => n.documentId === documentId);\r\n if (p !== -1) {\r\n this.bag.update(values => {\r\n values.splice(p, 1);\r\n return [...values];\r\n });\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Clear all working documents\r\n */\r\n clearBag() {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/working/delete',\r\n { deleteAll: true }\r\n )\r\n .subscribe(r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n this.bag.set([]);\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n });\r\n }\r\n\r\n ///\r\n // WORKING SEARCHES\r\n ///\r\n\r\n /**\r\n * Load working searches\r\n * @param: module: the module to load searches for\r\n */\r\n loadSearches(module: ClipperModule) {\r\n return this.httpClient\r\n .get<ApiResult<ClipperUserSearch[]>>(\r\n this.serviceUri + '/documents/searches/?module=' + module\r\n )\r\n }\r\n\r\n /**\r\n * Save a working search\r\n * @param documentIds : the document ids to add\r\n */\r\n saveSearch(params: ClipperUserSearch) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperUserSearch>>(\r\n this.serviceUri + '/documents/searches/save',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Remove one working search\r\n * @param id : the id to remove\r\n */\r\n deleteSearch(id: number) {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/searches/delete',\r\n { id: id }\r\n );\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { BroadcastService } from '@arsedizioni/ars-utils/core';\r\nimport { DialogService } from '@arsedizioni/ars-utils/ui';\r\nimport { Observable, catchError, switchMap, throwError } from 'rxjs';\r\nimport { ClipperService } from '../services/clipper.service';\r\nimport { ClipperMessages } from '../messages';\r\n\r\n@Injectable()\r\nexport class ClipperAuthInterceptor implements HttpInterceptor {\r\n private clipperService = inject(ClipperService);\r\n private broadcastService = inject(BroadcastService);\r\n private dialogService = inject(DialogService);\r\n private lastErrorTime: number = -1;\r\n\r\n intercept(\r\n request: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n request = request.clone({ withCredentials: true });\r\n return next.handle(this.addTokenToRequest(request))\r\n .pipe(\r\n catchError(error => {\r\n this.dialogService.clearBusy();\r\n if (\r\n error instanceof HttpErrorResponse &&\r\n !request.url.includes(\"/login\") &&\r\n error.status === 401\r\n ) {\r\n return this.handle401Error(request, next);\r\n }\r\n const errorTime = new Date().getTime();\r\n if (errorTime - this.lastErrorTime > 5000) {\r\n this.lastErrorTime = errorTime;\r\n const invalidSession = error.status == \"403\";\r\n this.dialogService.error(\r\n \"<p>\" + (error.error?.message ?? error.message ?? \"Impossibile eseguire l'operazione richiesta.\").replaceAll(\"\\r\\n\", \"</p><p>\") + \"</p>\",\r\n null,\r\n \"Errore in Clipper\",\r\n undefined,\r\n undefined,\r\n invalidSession ? 5000 : 15000).afterClosed().subscribe(() => {\r\n if (invalidSession) {\r\n this.broadcastService.sendMessage(ClipperMessages.LOGOUT);\r\n }\r\n });\r\n }\r\n return throwError(() => error);\r\n }));\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n /**\r\n * Handle 401 error\r\n * @param request : the request\r\n * @param next : the http handler\r\n */\r\n private handle401Error(request: HttpRequest<any>, next: HttpHandler) {\r\n if (this.clipperService.loggedIn()) {\r\n return this.clipperService.refresh().pipe(\r\n switchMap(() => {\r\n return next.handle(this.addTokenToRequest(request));\r\n }),\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n /**\r\n * Add token to request\r\n * @param request : the request\r\n * @param token: the token or null to use curre3nt\r\n */\r\n private addTokenToRequest(\r\n request: HttpRequest<any>,\r\n token: string | null = null\r\n ): HttpRequest<any> {\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n if (!token) token = this.clipperService.getToken();\r\n if (token) {\r\n return request.clone({\r\n setHeaders: {\r\n Authorization: 'Bearer ' + token,\r\n 'ngsw-bypass': 'ngsw-bypass'\r\n },\r\n });\r\n }\r\n }\r\n return request;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule()\r\nexport class ArsClipperCommonModule {}\r\n\r\n// Other exports\r\nexport * from './messages';\r\nexport * from './definitions';\r\nexport * from './interceptors/auth.interceptor';\r\nexport * from './services/clipper.service';\r\n\r\n","/*\r\n * Public API Surface of ars-utils\r\n */\r\n\r\nexport * from './common/common.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["catchError"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"arsedizioni-ars-utils-clipper.common.mjs","sources":["../../../projects/ars-utils/clipper.common/common/messages.ts","../../../projects/ars-utils/clipper.common/common/definitions.ts","../../../projects/ars-utils/clipper.common/common/services/clipper.service.ts","../../../projects/ars-utils/clipper.common/common/interceptors/auth.interceptor.ts","../../../projects/ars-utils/clipper.common/common/common.module.ts","../../../projects/ars-utils/clipper.common/public_api.ts","../../../projects/ars-utils/clipper.common/arsedizioni-ars-utils-clipper.common.ts"],"sourcesContent":["export const ClipperMessages = {\r\n /**\r\n * Messages\r\n */\r\n\r\n // Login\r\n LOGIN_CHANGED: '§clipper-login-changed',\r\n LOGIN_COMPLETED: '§clipper-login-completed',\r\n LOGIN_DISCONNECTED: '§clipper-login-disconnected',\r\n LOGIN_STARTED: '§clipper-login-started',\r\n LOGOUT_COMPLETED: '§clipper-logout-completed',\r\n LOGOUT: '§clipper-logout',\r\n\r\n // Document\r\n DOCUMENT_NAVIGATE: '$clipper-document-navigate',\r\n DOCUMENT_NAVIGATED: '$clipper-document-navigated',\r\n DOCUMENT_SELECTED: '$clipper-document-selected',\r\n DOCUMENT_SELECTED_INNER: '$clipper-document-selected_inner',\r\n\r\n // Commands\r\n COMMAND_ARCHIVE_ADD: '$clipper-command-archive-add',\r\n COMMAND_CALENDAR_ADD: '$clipper-command-calendar-add',\r\n COMMAND_WORKING_OPEN: '$clipper-command-working-documents-open',\r\n COMMAND_WORKING_ADD: '$clipper-command-working-documents-add',\r\n COMMAND_SEARCH_RESTORED: '$clipper-command-search-restored',\r\n COMMAND_SEARCH_EXECUTED: '$clipper-command-search-executed',\r\n COMMAND_HISTORY_OPEN: '$clipper-history-open',\r\n COMMAND_DASHBOARD_UPDATED: '$clipper-dashboard-updated',\r\n\r\n // Interop\r\n INTEROP_RS_NEW_LAW: '$clipper-interop-rs-new-law',\r\n INTEROP_RS_NEW_ACTIVITY: '$clipper-interop-rs-new-activity',\r\n INTEROP_RS_USAGE_REPORT: '$clipper-interop-rs-usage-report',\r\n\r\n // Updates\r\n UPDATE_RELOAD: '§update-reload',\r\n};\r\n","\r\nimport { SendToDialogResult } from '@arsedizioni/ars-utils/ui.application';\r\nimport { LoginResult, NameValueItem } from '@arsedizioni/ars-utils/core';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { computed, Signal, signal } from '@angular/core';\r\n\r\n\r\nexport enum ClipperSelectionMode {\r\n Single = 1,\r\n Multi = 2,\r\n Any = 3\r\n}\r\n\r\nexport enum ClipperModuleGroup {\r\n Home = 0,\r\n NormativaVigente = 1,\r\n RimaniAggiornato = 2,\r\n Contributi = 3,\r\n DGInfo = 4,\r\n Calendario = 11,\r\n Archivio = 12,\r\n Ricerca = 99\r\n}\r\n\r\nexport enum ClipperModule {\r\n NormativaVigente = 4,\r\n News = 1,\r\n GazzetteBollettiniEFontiDiverse = 2,\r\n Giurisprudenza = 5,\r\n ModificheAbrogazioniERinvii = 3,\r\n ScadenzeESegnalazioni = 12,\r\n AllerteAlimentari = 8,\r\n Approfondimenti = 6,\r\n QuesitiECasiRisolti = 10,\r\n MetodiDiAnalisi = 11,\r\n Ricerca = 99\r\n\r\n}\r\n\r\nexport enum ClipperModel {\r\n Unknown = 0,\r\n AggiornamentoNormativo = 2,\r\n News = 3,\r\n Articoli = 4,\r\n Juris = 5,\r\n Quesiti = 8,\r\n NormativaVigente = 9,\r\n Scadenze = 10,\r\n Coordinamento = 11,\r\n AllerteAlimentari = 13,\r\n MetodiDiAnalisi = 14,\r\n GiurisprudenzaRecente = 18,\r\n Segnalazioni = 20,\r\n RimaniAggiornato = 21\r\n}\r\n\r\nexport const ClipperModels: NameValueItem<number>[] = [\r\n { value: ClipperModel.AggiornamentoNormativo, name: \"Testi storici\" },\r\n { value: ClipperModel.News, name: 'News' },\r\n { value: ClipperModel.Articoli, name: 'Articoli' },\r\n { value: ClipperModel.Juris, name: 'Note a sentenza' },\r\n { value: ClipperModel.GiurisprudenzaRecente, name: 'Giurisprudenza' },\r\n { value: ClipperModel.Quesiti, name: 'Quesiti' },\r\n { value: ClipperModel.NormativaVigente, name: 'Normativa vigente' },\r\n { value: ClipperModel.Scadenze, name: 'Scadenze' },\r\n { value: ClipperModel.AllerteAlimentari, name: 'Allerte alimentari' },\r\n { value: ClipperModel.Coordinamento, name: 'Modifiche e abrogazioni' },\r\n]\r\n\r\nexport const ClipperModuleGroups: NameValueItem<number>[] = [\r\n { name: \"Ultime novità\", value: ClipperModuleGroup.Home },\r\n { name: \"Ricerca\", value: ClipperModuleGroup.Ricerca },\r\n { name: \"Normativa vigente\", value: ClipperModuleGroup.NormativaVigente },\r\n { name: \"Rimani aggiornato\", value: ClipperModuleGroup.RimaniAggiornato },\r\n { name: \"Contributi\", value: ClipperModuleGroup.Contributi },\r\n { name: \"DG Info\", value: ClipperModuleGroup.DGInfo },\r\n { name: \"Calendario\", value: ClipperModuleGroup.Calendario },\r\n { name: \"Archivio\", value: ClipperModuleGroup.Archivio }\r\n];\r\n\r\nexport const ClipperModules: NameValueItem<number>[] = [\r\n { name: 'News, articoli di approfondimento e note a sentenza', shortName: 'Novità', value: ClipperModule.News },\r\n { name: 'Gazzette, Bollettini e fonti diverse', shortName: 'Gazzette, Bollettini e fonti diverse', value: ClipperModule.GazzetteBollettiniEFontiDiverse },\r\n { name: 'Giurisprudenza', shortName: 'Giurisprudenza', value: ClipperModule.Giurisprudenza },\r\n { name: 'Modifiche, abrogazioni e rinvii', shortName: 'Modifiche, abrogazioni e rinvii', value: ClipperModule.ModificheAbrogazioniERinvii },\r\n { name: 'Allerte alimentari', shortName: 'Allerte alimentari', value: ClipperModule.AllerteAlimentari },\r\n { name: 'Scadenze e segnalazioni', shortName: 'Scadenze e segnalazioni', value: ClipperModule.ScadenzeESegnalazioni },\r\n { name: 'Normativa vigente', shortName: 'Normativa vigente', value: ClipperModule.NormativaVigente },\r\n { name: 'Quesiti e casi risolti', shortName: 'Quesiti', value: ClipperModule.QuesitiECasiRisolti },\r\n]\r\n\r\nexport enum ClipperChannel {\r\n None = 0,\r\n LavoroEAmbiente = 1,\r\n SostanzeAlimentari = 2,\r\n MerciPericolose = 3,\r\n Energia = 4,\r\n}\r\n\r\nexport const ClipperChannels: NameValueItem<ClipperChannel>[] = [\r\n { value: ClipperChannel.LavoroEAmbiente, name: \"Lavoro e Ambiente\", header: \"LA\" },\r\n { value: ClipperChannel.SostanzeAlimentari, name: \"Sostanze Alimentari\", header: \"SA\" },\r\n { value: ClipperChannel.Energia, name: \"Energia\", header: \"E\" },\r\n { value: ClipperChannel.MerciPericolose, name: \"Merci Pericolose\", header: \"OP\" }\r\n]\r\n\r\nexport const ClipperRegions: NameValueItem<string>[] = [\r\n {\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n value: '4RTAA',\r\n name: 'Trentino Alto Adige',\r\n },\r\n {\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n value: '4PAT',\r\n name: 'Prov. Aut. Trento',\r\n },\r\n {\r\n value: '4PAB',\r\n name: 'Prov. Aut. Bolzano',\r\n }\r\n]\r\n\r\nexport interface SectorInfo extends NameValueItem<string> {\r\n\r\n shortName?: string | null;\r\n group?: string | null;\r\n channels?: string | null;\r\n sectorId?: string | null;\r\n}\r\n\r\nexport const ClipperSectors: SectorInfo[] = [\r\n {\r\n value: 'LC',\r\n name: 'Legislazione comunitaria',\r\n shortName: 'Comunitaria',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'LN',\r\n name: 'Legislazione nazionale',\r\n shortName: 'Nazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n\r\n {\r\n value: 'LR',\r\n name: 'Legislazione regionale',\r\n shortName: 'Regionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RAB',\r\n name: ' Abruzzo',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4PAB',\r\n name: ' Prov. Aut. Bolzano',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RBA',\r\n name: ' Basilicata',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RCAL',\r\n name: ' Calabria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RCAM',\r\n name: ' Campania',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4REM',\r\n name: ' Emilia Romagna',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RFVG',\r\n name: ' Friuli Venezia Giulia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLA',\r\n name: ' Lazio',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLI',\r\n name: ' Liguria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLO',\r\n name: ' Lombardia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RMA',\r\n name: ' Marche',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RMO',\r\n name: ' Molise',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RPI',\r\n name: ' Piemonte',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RPU',\r\n name: ' Puglia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RSA',\r\n name: ' Sardegna',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RSI',\r\n name: ' Sicilia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RTO',\r\n name: ' Toscana',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RTAA',\r\n name: ' Trentino Alto Adige',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4PAT',\r\n name: ' Prov. Aut. Trento',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RUM',\r\n name: ' Umbria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RVA',\r\n name: \" Valle D'Aosta\",\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RVE',\r\n name: ' Veneto',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'GC',\r\n name: 'Giurisprudenza comunitaria',\r\n shortName: 'Giuris. comunitaria',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'GN',\r\n name: 'Giurisprudenza nazionale',\r\n shortName: 'Giurisprudenza',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'TN',\r\n name: 'Normativa tecnica',\r\n shortName: 'Tecnica',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'TI',\r\n name: 'Normativa tecnica internazionale',\r\n shortName: 'Tecnica internaz.',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'NI',\r\n name: 'Normativa internazionale',\r\n shortName: 'Internazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'SN',\r\n name: 'Documentazione scientifica',\r\n shortName: 'Scientifica',\r\n group: 'S',\r\n channels: '|SA|',\r\n },\r\n]\r\n\r\nexport const ClipperSectorTypes: NameValueItem<string>[] = [\r\n\r\n {\r\n parentValue: 'NI',\r\n value: '14',\r\n name: 'Convenzione Internazionale',\r\n },\r\n {\r\n parentValue: 'NI',\r\n value: '6',\r\n name: 'Accordo Multilaterale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '4',\r\n name: 'Accordo (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '75',\r\n name: 'Altri documenti (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '17',\r\n name: 'Circolare Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '58',\r\n name: 'Circolare (Comitati)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '10',\r\n name: 'Circolare Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '13',\r\n name: 'Comunicato (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '15',\r\n name: 'Costituzione della Repubblica',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '18',\r\n name: 'Decreto Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '21',\r\n name: 'Decreto Capo Provv. Stato',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '22',\r\n name: 'Decreto Pres. Cons. Ministri',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '25',\r\n name: 'Decreto Presidente Repubblica',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '27',\r\n name: 'Decreto Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '28',\r\n name: 'Decreto Legge Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '29',\r\n name: 'D.Lgs. Capo Provv. Stato',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '30',\r\n name: 'D.Lgs. Governo',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '32',\r\n name: 'D.Lgs. Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '33',\r\n name: 'Decreto Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '34',\r\n name: 'Decreto Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '35',\r\n name: 'Deliberazione (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '47',\r\n name: 'Determinazione (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '26',\r\n name: 'Documento di consultazione',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '48',\r\n name: 'Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '42',\r\n name: 'Lettera Circolare (Comitati)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '43',\r\n name: 'Lettera Circolare Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '56',\r\n name: 'Nota Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '91',\r\n name: 'Ordinanza Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '82',\r\n name: 'Ordinanza Pres. Cons. Ministri',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '57',\r\n name: 'Ordinanza Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '76',\r\n name: 'Provvedimento (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '66',\r\n name: 'Regio Decreto',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '67',\r\n name: 'Regio Decreto Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '68',\r\n name: 'Regio Decreto Legislativo',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '71',\r\n name: 'Statuto delle Regioni Ordinarie',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '139',\r\n name: 'Accordi (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '140',\r\n name: 'Atti diversi (CE/UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '131',\r\n name: 'Posizione Comune (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '132',\r\n name: 'Posizione Comune (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '126',\r\n name: 'Comunicazione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '127',\r\n name: 'Comunicazione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '111',\r\n name: 'Decisione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '112',\r\n name: 'Decisione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '113',\r\n name: 'Decisione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '121',\r\n name: 'Direttiva (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '122',\r\n name: 'Direttiva (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '123',\r\n name: 'Direttiva (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '138',\r\n name: 'Parere',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '128',\r\n name: 'Raccomandazione (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '129',\r\n name: 'Raccomandazione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '130',\r\n name: 'Raccomandazione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '116',\r\n name: 'Regolamento (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '117',\r\n name: 'Regolamento (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '118',\r\n name: 'Regolamento (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '135',\r\n name: 'Rettifica',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '133',\r\n name: 'Risoluzione',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '134',\r\n name: 'Trattato',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '69',\r\n name: 'Altri documenti (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '11',\r\n name: 'Circolare Pres. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '46',\r\n name: \"Circolare dell'Assessore\",\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '83',\r\n name: 'Circolare reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '70',\r\n name: 'Comunicato (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '80',\r\n name: 'Decreto del Dirigente',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '24',\r\n name: 'Decreto Pres. Giunta Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '23',\r\n name: 'Decreto Pres. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '19',\r\n name: \"Decreto dell'Assessore Regionale\",\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '31',\r\n name: 'Delib. Consiglio Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '36',\r\n name: 'Delib. Consiglio Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '37',\r\n name: 'Delib. Giunta Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '38',\r\n name: 'Delib. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '81',\r\n name: 'Determinazione del Dirigente',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '12',\r\n name: 'Direttiva (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '49',\r\n name: 'Legge Prov. Aut.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '50',\r\n name: 'Legge Regionale',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '51',\r\n name: 'Linee guida (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '9',\r\n name: 'Ordinanza Pres. Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '55',\r\n name: 'Ordinanza Pres. Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '85',\r\n name: 'Provvedimento (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '65',\r\n name: 'Regolamento Regionale',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '63',\r\n name: 'Decisione',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '41',\r\n name: 'Decreto Penale',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '54',\r\n name: 'Ordinanza',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '62',\r\n name: 'Ricorso',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '72',\r\n name: 'Sentenza',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '143',\r\n name: 'Ordinanza (CE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '144',\r\n name: 'Ordinanza (UE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '141',\r\n name: 'Sentenza (CE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '142',\r\n name: 'Sentenza (UE)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '73',\r\n name: 'Altri documenti (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '44',\r\n name: 'Circolare (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '20',\r\n name: 'Comunicato (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '60',\r\n name: 'Decreto (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '40',\r\n name: 'Delibera (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '53',\r\n name: 'Fascicolo (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '45',\r\n name: 'Istruzione Tecnica',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '59',\r\n name: 'Lettera Circolare (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '79',\r\n name: 'Linee guida (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '98',\r\n name: 'Norma Tecnica',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '97',\r\n name: 'Opuscolo Tecnico',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '77',\r\n name: 'Pubblicazione (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '86',\r\n name: 'Quaderno',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '52',\r\n name: 'Regolamento (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '84',\r\n name: 'Istruzione Operativa (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '94',\r\n name: 'Nota (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'NI',\r\n value: '104',\r\n name: 'Regolamento UNECE',\r\n },\r\n {\r\n parentValue: 'SN',\r\n value: '105',\r\n name: 'Documento',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '106',\r\n name: 'Direttiva (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '74',\r\n name: 'Prassi di riferimento',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '16',\r\n name: 'Linee guida (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '3',\r\n name: 'Direttiva (naz.)',\r\n },\r\n {\r\n parentValue: 'TI',\r\n value: '107',\r\n name: 'Normativa Tecnica Internazionale',\r\n },\r\n]\r\n\r\nexport const ClipperAuthors: SectorInfo[] = [\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RTAA',\r\n name: 'Trentino Trentino Alto Adige',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4PAB',\r\n name: 'Prov. Autonoma di Bolzano',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4PAT',\r\n name: 'Prov. Autonoma di Trento',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6CEI',\r\n name: 'C.E.I. - Comitato Elettrotecnico Italiano',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6CNR',\r\n name: 'C.N.R. - Consiglio Nazionale delle Ricerche',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6ENPI',\r\n name: 'E.N.P.I. - Ente Nazionale Prevenzione Infortuni',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6INAI',\r\n name:\r\n 'I.N.A.I.L. - Istituto nazionale Assicurazione Infortuni sul Lavoro',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6ISPS',\r\n name:\r\n 'I.S.P.E.S.L. - Istituto Superiore per la Prevenzione e la Sicurezza del Lavoro',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6INPS',\r\n name: 'I.N.P.S. - Istituto Nazionale Previdenza Sociale',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6ISS',\r\n name: 'I.S.S. - Istituto Superiore di Sanità',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6UNI',\r\n name: 'U.N.I. - Ente Nazionale Italiano di Unificazione',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CC',\r\n name: 'Corte Costituzionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CCC',\r\n name: 'Corte di Cassazione Civile',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CCP',\r\n name: 'Corte di Cassazione Penale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CASA',\r\n name: \"Corte d'Assise d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CAS',\r\n name: \"Corte d'Assise\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CA',\r\n name: \"Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5PCA',\r\n name: \"Procura Generale Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5GDP',\r\n name: 'Giudice di Pace',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5PR',\r\n name: 'Procura della Repubblica',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5T',\r\n name: 'Tribunale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5P',\r\n name: 'Pretura',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CDS',\r\n name: 'Consiglio di Stato',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TAR',\r\n name: 'Tribunale Amministrativo Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TSA',\r\n name: 'Tribunale Superiore delle Acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TGA',\r\n name: 'Tribunale Regionale acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CTP',\r\n name: 'Commissione Tributaria Provinciale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CTR',\r\n name: 'Commissione Tributaria Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CGAS',\r\n name: 'Cons. di Giustizia Amm.va della Sicilia',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CDC',\r\n name: 'Corte dei Conti',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3CJCE',\r\n name: 'Corte di Giustizia CEE/CE',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3CEDM',\r\n name: \"Corte Europea per i Diritti dell'Uomo\",\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3CWJ',\r\n name: 'Corte Internazionale di Giustizia',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3T1CE',\r\n name: 'Tribunale di Primo Grado CEE/CE',\r\n },\r\n]\r\n\r\nexport const ClipperSources: NameValueItem<string>[] = [\r\n {\r\n value: 'ACCML',\r\n name: 'Accordi Multilaterali',\r\n },\r\n {\r\n value: 'AEEG',\r\n name: \"Sito Autorità per l'Energia Elettrica, il Gas e il Sistema Idrico\",\r\n },\r\n {\r\n value: 'ARERA',\r\n name: 'Sito Autorità di Regolazione per Energia, Reti e Ambiente',\r\n },\r\n {\r\n value: 'BUR',\r\n name: 'Bollettino Uff. Regione',\r\n },\r\n {\r\n value: 'BUS',\r\n name: 'Suppl. speciale al Bollettino Uff.',\r\n },\r\n {\r\n value: 'BUSO',\r\n name: 'Suppl. ordin. al Bollettino Uff.',\r\n },\r\n {\r\n value: 'BUSS',\r\n name: 'Suppl. straord. al Bollettino Uff.',\r\n },\r\n {\r\n value: 'GU',\r\n name: 'Gazzetta Ufficiale Italiana',\r\n },\r\n {\r\n value: 'GUCC',\r\n name: 'Gazz. Uff. Corte Costituzionale',\r\n },\r\n {\r\n value: 'GUCE',\r\n name: 'Gazzetta ufficiale delle Comunità europee',\r\n },\r\n {\r\n value: 'GUES',\r\n name: 'Gazz. Uff. Ediz. Speciale',\r\n },\r\n {\r\n value: 'GURS',\r\n name: 'Gazz. Uff. Regione Sicilia',\r\n },\r\n {\r\n value: 'GUS',\r\n name: 'Gazz. Uff. Serie Speciale',\r\n },\r\n {\r\n value: 'GUSO',\r\n name: 'Suppl. ordin. alla Gazzetta Ufficiale',\r\n },\r\n {\r\n value: 'GUSS',\r\n name: 'Suppl. straord. alla Gazzetta Ufficiale',\r\n },\r\n {\r\n value: 'GUUE',\r\n name: 'Gazzetta ufficiale dell’Unione europea',\r\n },\r\n {\r\n value: 'MAC',\r\n name: 'Massimario Civile',\r\n },\r\n {\r\n value: 'MAP',\r\n name: 'Massimario Penale',\r\n },\r\n {\r\n value: 'NONE',\r\n name: 'Fonti diverse',\r\n }\r\n]\r\n\r\n\r\nexport interface ClipperChannelSettingsItem<T> {\r\n name: string;\r\n value: T;\r\n checked: boolean;\r\n}\r\n\r\nexport class ClipperChannelSettings {\r\n channelId: ClipperChannel;\r\n channelName: string;\r\n isEnabled?: boolean | null = false;\r\n isActive?: boolean | null = false;\r\n sectors: ClipperChannelSettingsItem<string>[] = [];\r\n regions: ClipperChannelSettingsItem<string>[] = [];\r\n\r\n /**\r\n * Check at least one of sector values is contained in sectors list\r\n * @param values : the admitted values\r\n * @returns true if at least one value has been found\r\n */\r\n hasAnyOfSectors(values: string[]): boolean {\r\n if (this.isEnabled === true && this.isActive === true) {\r\n for (let i = 0; i < values.length; i++) {\r\n if (this.sectors.filter(n => n.value === values[i])?.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Check at least one of region values is contained in regions list\r\n * @param values : the admitted values\r\n * @returns true if at least one value has been found\r\n */\r\n hasAnyOfRegions(values: string[]): boolean {\r\n if (this.isEnabled === true && this.isActive === true) {\r\n for (let i = 0; i < values.length; i++) {\r\n if (this.regions.filter(n => n.value === values[i])?.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport interface ClipperUserChannelInfo {\r\n channel: ClipperChannel;\r\n channelName?: string | null;\r\n expiringDate: string;\r\n isTrial?: boolean | null;\r\n isDisabled: boolean;\r\n isDvd: boolean;\r\n isActive: boolean;\r\n documentsViewable?: number | null;\r\n documentsViewed?: number | null;\r\n settings?: ClipperChannelSettings | null;\r\n}\r\n\r\nexport interface ClipperUserInfo {\r\n userId: number;\r\n customerId?: number | null;\r\n companyName: string;\r\n displayName: string;\r\n firstName: string;\r\n email: string;\r\n OAUTH?: boolean | null;\r\n sessionId?: string | null;\r\n scope: number;\r\n isAuthenticated: boolean;\r\n isTemporary: boolean;\r\n hasTrial: boolean;\r\n hasTeam: boolean;\r\n channels: ClipperUserChannelInfo[];\r\n firstChannelTrial: ClipperUserChannelInfo;\r\n}\r\n\r\nexport interface ClipperLoginResult extends LoginResult<ClipperUserInfo> {\r\n settings?: ClipperChannelSettings[] | null;\r\n}\r\n\r\nexport interface ClipperLoginInfo {\r\n context: ClipperUserInfo;\r\n complianceContext?: any | null;\r\n userSettings?: ClipperChannelSettings[] | null;\r\n userCredentials?: string | null;\r\n OAUTH?: LoginOAuthType | null;\r\n}\r\n\r\nexport class ClipperSearchParams {\r\n version: number = 6;\r\n searchId?: number | null = null;\r\n searchName?: string | null = null;\r\n text?: string | null = null;\r\n title?: string | null = null;\r\n titleOnly?: boolean | null = false;\r\n showUnreadDocumentsOnly?: boolean | null = false;\r\n showCommentedDocumentsOnly?: boolean | null = false;\r\n number?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n year?: number | null = null;\r\n sourceNumber?: string | null = null;\r\n source?: string | null = null;\r\n sourceFromDate?: Date | null = null;\r\n sourceToDate?: Date | null = null;\r\n sourceYear?: number | null = null;\r\n sector?: string | null = null;\r\n sectors?: SectorInfo[] | null = null;\r\n topic?: string | null = null;\r\n taxonomy?: string | null = null;\r\n taxonomies?: NameValueItem<string>[] | null = null;\r\n taxonomyPath?: string | null = null;\r\n taxonomyNode?: string | null = null;\r\n type?: string | null = null;\r\n types?: NameValueItem<string>[] | null = null;\r\n tag?: string | null = null;\r\n tags?: NameValueItem<string>[] | null = null;\r\n author?: string | null = null;\r\n authors?: NameValueItem<string>[] | null = null;\r\n changeReason?: number | null = null;\r\n changedNumber?: string | null = null;\r\n changedYear?: number | null = null;\r\n changedTitle?: string | null = null;\r\n modifierNumber?: string | null = null;\r\n modifierYear?: number | null = null;\r\n modifierTitle?: string | null = null;\r\n model?: ClipperModel | null = null;\r\n models?: ClipperModel[] | null = null;\r\n module?: ClipperModule | null = null;\r\n modules?: NameValueItem<ClipperModule>[] | null = null;\r\n mode?: ClipperQueryReferencesMode | null = null;\r\n channels?: NameValueItem<ClipperChannel>[] | null = [...ClipperChannels];\r\n count?: number | null = 15;\r\n id?: string | null = null;\r\n anchor?: string | null = null;\r\n excludeTextReferences?: boolean | null = false;\r\n excludeNotesReferences?: boolean | null = false;\r\n useModifierInfo?: boolean | null = false;\r\n returnModifierInfo?: boolean | null = false;\r\n first?: number | null = 0;\r\n sortMode?: number | null = null;\r\n\r\n /**\r\n * Return a valid ClipperReferencesSearchParams\r\n * @returns a ClipperReferencesSearchParams object\r\n */\r\n toReferencesSearchParams(): ClipperReferencesSearchParams {\r\n return {\r\n documentId: this.id,\r\n year: this.year,\r\n sector: this.sector,\r\n author: this.author,\r\n anchor: this.anchor,\r\n model: this.model?.toString() ?? null,\r\n mode: this.mode,\r\n excludeTextReferences: this.excludeTextReferences,\r\n excludeNotesReferences: this.excludeNotesReferences,\r\n returnModifierInfo: this.returnModifierInfo,\r\n useModifierInfo: this.useModifierInfo,\r\n count: 15,\r\n first: 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport interface ClipperReferencesSearchParams {\r\n documentId: string;\r\n year?: number | null;\r\n sector?: string | null;\r\n author?: string | null;\r\n anchor?: string | null;\r\n model?: string | null;\r\n mode?: ClipperQueryReferencesMode | null;\r\n excludeTextReferences?: boolean | null;\r\n excludeNotesReferences?: boolean | null;\r\n useModifierInfo?: boolean | null;\r\n returnModifierInfo?: boolean | null;\r\n count?: number | null;\r\n first?: number | null;\r\n}\r\n\r\nexport enum ClipperDocumentContainer {\r\n None = 0,\r\n LavoroEAmbiente = 1,\r\n SostanzeAlimentari = 2,\r\n OrangeProject = 4,\r\n Energia = 8,\r\n DGInfo = 0x10,\r\n DLGS231 = 0x20,\r\n All = 0x3F\r\n}\r\n\r\nexport const ClipperDocumentChangeReasons: NameValueItem<number>[] = [\r\n { name: 'Abrogazione', value: 1 },\r\n { name: 'Annullamento', value: 5 },\r\n { name: 'Modifica', value: 2 },\r\n { name: 'Sostiuzione', value: 3 },\r\n { name: 'Segnalazione', value: 6 },\r\n { name: 'Rettifica', value: 7 },\r\n]\r\n\r\nexport interface ClipperDocumentAnchorInfo {\r\n documentId: string;\r\n type: number;\r\n typeDescription: string;\r\n text: string;\r\n title?: string | null;\r\n description?: string | null;\r\n uri: string;\r\n ordinal?: string | null;\r\n score?: number | null;\r\n veryRelevant?: boolean | null;\r\n value?: string | null;\r\n level?: number | null;\r\n}\r\n\r\nexport interface ClipperDocumentRelevants {\r\n items: ClipperDocumentAnchorInfo[];\r\n hits: number;\r\n hit: number;\r\n minimumScore: number;\r\n}\r\n\r\nexport interface ClipperDocumentInfo {\r\n id?: string | null;\r\n documentId?: string | null;\r\n model?: number;\r\n modelName?: string | null;\r\n module?: number | null;\r\n moduleName?: string | null;\r\n channelName?: string | null;\r\n group?: string | null;\r\n title2?: string | null;\r\n title1?: string | null;\r\n tags?: string | null;\r\n topics?: string | null;\r\n number?: string | null;\r\n date?: Date | null;\r\n description?: string | null;\r\n publishingDate?: Date | null;\r\n pictureId?: string | null;\r\n sourceNumber?: string | null;\r\n sourceDate?: Date | null;\r\n source?: string | null;\r\n origin?: string | null;\r\n originDescription?: string | null;\r\n author?: string | null;\r\n anchors?: ClipperDocumentAnchorInfo[] | null;\r\n taxonomy?: string | null;\r\n info?: string | null;\r\n isRead?: boolean | null;\r\n isExportable?: boolean | null;\r\n isCommented?: boolean | null;\r\n isJuris?: boolean | null;\r\n isOver?: boolean | null;\r\n isTrial?: boolean | null;\r\n isNew?: boolean | null;\r\n isExpired?: boolean | null;\r\n isExpiring?: boolean | null;\r\n isMenuOpen?: boolean | null;\r\n validityState?: number | null;\r\n validUntilDate?: Date | null;\r\n validityDescription?: string | null;\r\n validityInfo?: string | null;\r\n expiringDate?: Date | null;\r\n expiringDescription?: string | null;\r\n expiringInfo?: string | null;\r\n popularity?: number | null;\r\n part?: number | null;\r\n primaryId?: string | null;\r\n primaryDescription?: string | null;\r\n primaryModel?: number | null;\r\n hasPrimary?: boolean | null;\r\n secondaryId?: string | null;\r\n bag?: any | null;\r\n lastUpdate?: string | null;\r\n\r\n}\r\n\r\nexport class ClipperSearchResult {\r\n days?: string | null = null;\r\n interval?: string | null = null;\r\n items?: ClipperDocumentInfo[] | null = null;\r\n facets?: ClipperSearchFacetsSnapshot | null = new ClipperSearchFacetsSnapshot();\r\n tags?: NameValueItem<string>[] | null;\r\n total?: number | null = null;\r\n searchInfo?: any | null = null;\r\n searchParams?: ClipperSearchParams | null = new ClipperSearchParams();\r\n snapshotMode?: ClipperQueryReferencesMode | null = null;\r\n}\r\n\r\nexport interface ClipperSearchFacet {\r\n type: number;\r\n typeName: string;\r\n title: string;\r\n value: string;\r\n count: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetGroup {\r\n name: string;\r\n selectedValue?: string | null;\r\n selectedValueDescription?: string | null;\r\n values: ClipperSearchFacet[];\r\n index: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetsResult {\r\n interval?: string | null;\r\n facets?: ClipperSearchFacet[][] | null;\r\n total?: number | null;\r\n}\r\n\r\n\r\nexport class ClipperSearchFacetsSnapshot {\r\n groups: ClipperSearchFacetGroup[] = [];\r\n usedGroups: ClipperSearchFacetGroup[] = [];\r\n hasFacets: boolean = false;\r\n hasMoreFacets: boolean = false;\r\n hasTooManyResults: boolean = false;\r\n sector?: string | null = null;\r\n author?: string | null = null;\r\n anchor?: string | null = null;\r\n type?: string | null = null;\r\n reason?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n interval?: string | null = null;\r\n changedInterval: boolean = false;\r\n changedSector: boolean = false;\r\n changedAuthor: boolean = false;\r\n changedAnchor: boolean = false;\r\n changedType: boolean = false;\r\n changedReason: boolean = false;\r\n}\r\n\r\nexport interface ClipperSearchCalendarSnapshotMonth {\r\n days: number[];\r\n monthShortName: string;\r\n monthName: string;\r\n month: number;\r\n year: number;\r\n total: number;\r\n expired: number;\r\n expiring: number;\r\n}\r\n\r\nexport class ClipperSearchCalendarSnapshotResult {\r\n months?: ClipperSearchCalendarSnapshotMonth[] | null = null;\r\n}\r\n\r\n\r\n\r\nexport enum ClipperSort {\r\n Default = 0,\r\n Relevance = 1,\r\n DateAsc = 2,\r\n DateDesc = 3,\r\n SourceDateAsc = 7,\r\n SourceDateDesc = 8,\r\n Popularity = 5\r\n}\r\n\r\nexport enum ClipperQueryReferencesMode {\r\n ReferencesIn = 1,\r\n ReferencesOut = 2,\r\n ChangesIn = 3,\r\n ChangesOut = 5,\r\n Juris = 4\r\n}\r\n\r\nexport enum ClipperFacet {\r\n Sector = 1,\r\n Year = 2,\r\n DocumentType = 3,\r\n Topic = 4,\r\n Article = 5,\r\n Author = 6,\r\n Reason = 95\r\n}\r\n\r\nexport interface ClipperOTPInfo {\r\n code: string;\r\n canPreview?: boolean | null;\r\n canEmbed?: boolean | null;\r\n}\r\n\r\nexport enum ClipperExportDocumentsFormat {\r\n Deafault = 1,\r\n iCalendar = 2\r\n}\r\n\r\nexport interface ClipperExportDocumentsParams {\r\n query: ClipperSearchParams;\r\n ids: string[];\r\n format?: ClipperExportDocumentsFormat | null;\r\n}\r\n\r\nexport interface ClipperSendDocumentsByEmailParams extends SendToDialogResult {\r\n ids: string[];\r\n public: string;\r\n isCalendar: boolean;\r\n}\r\n\r\nexport interface ClipperDocumentStructure {\r\n id: string;\r\n title: string;\r\n items?: ClipperDocumentAnchorInfo[] | null;\r\n}\r\n\r\n\r\nexport interface ClipperSearchFilter {\r\n container: ClipperDocumentContainer;\r\n models: number[];\r\n sectors: string[];\r\n regions: string[];\r\n notifications: number[];\r\n isEnabled: boolean;\r\n isActive: boolean;\r\n}\r\nexport interface ClipperTaxonomyParams {\r\n countItems: boolean;\r\n model: ClipperModel;\r\n userFilters?: ClipperSearchFilter[] | null;\r\n}\r\n\r\nexport interface ClipperUserSearch {\r\n id?: number | null;\r\n userId?: number | null;\r\n name?: string | null;\r\n module?: ClipperModule | null,\r\n data?: string | null;\r\n}\r\n\r\nexport interface ClipperUserWorkingDocument {\r\n userId?: number | null;\r\n documentId?: string | null;\r\n documentDescriptor?: string | null;\r\n title1?: string | null;\r\n title2?: string | null;\r\n timestamp?: string | null;\r\n}\r\n\r\nexport interface ClipperDeleteWorkingDocumentsParams {\r\n documentIds: string[];\r\n deleteAll: boolean;\r\n}\r\n\r\n\r\nexport interface ClipperUserLink {\r\n id: number;\r\n userId: number;\r\n userName: string;\r\n key: string;\r\n}\r\n\r\nexport interface ClipperArsEventInfo {\r\n id: number;\r\n location?: string | null;\r\n title?: string | null;\r\n pictureId?: string | null;\r\n date?: string | null;\r\n endDate?: string | null;\r\n startTime?: string | null;\r\n endTime?: string | null;\r\n hours?: number | null;\r\n days?: number | null;\r\n dateIntervalDescription?: string | null;\r\n durationDescription?: string | null;\r\n group?: string | null;\r\n address?: string | null;\r\n city?: string | null;\r\n isOver?: boolean | null;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperQueryArsEventsParams {\r\n group?: string | null;\r\n group1?: string | null;\r\n collectGroups?: boolean | null;\r\n collectBundles?: boolean | null;\r\n fromDate?: string | null;\r\n untilDate?: string | null;\r\n text?: string | null;\r\n sortBy?: string | null;\r\n count: number\r\n}\r\n\r\nexport interface ClipperQueryArsEventsResult {\r\n interval?: string | null;\r\n items?: ClipperArsEventInfo[] | null;\r\n total?: number | null;\r\n}\r\n\r\nexport interface ClipperDocumentUpdateStateParams {\r\n documentIds: string[] | null;\r\n isRead: boolean | null;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperDashboardItem {\r\n id?: ClipperModule | null;\r\n newItems?: number | null;\r\n unreadItems?: number | null;\r\n lastUpdated?: string | null;\r\n}\r\n\r\nexport interface ClipperDashboardResult {\r\n items?: ClipperDashboardItem[] | null;\r\n isTrial?: boolean | null;\r\n expiredDeadlines?: number | null;\r\n expiringDeadlines?: number | null;\r\n documentUpdates?: number | null;\r\n}\r\n\r\nexport class ClipperDashboard {\r\n items = signal<ClipperDashboardItem[]>([]);\r\n isTrial?: boolean | null = false;\r\n expiredDeadlines?: number | null = null;\r\n expiringDeadlines?: number | null = null;\r\n documentUpdates?: number | null = null;\r\n unreadItems: Signal<[ClipperModule, number][]> = computed(() => {\r\n const states: [ClipperModule, number][] = [];\r\n let totalUnread = 0;\r\n this.items().filter(x => x.id == ClipperModule.News\r\n || x.id === ClipperModule.Approfondimenti\r\n || x.id === ClipperModule.Giurisprudenza).forEach(x => {\r\n totalUnread += x.unreadItems ?? 0;\r\n });\r\n states.push([ClipperModule.News, totalUnread]);\r\n states.push([ClipperModule.GazzetteBollettiniEFontiDiverse, this.items().find(x => x.id == ClipperModule.GazzetteBollettiniEFontiDiverse)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.Giurisprudenza, this.items().find(x => x.id == ClipperModule.Giurisprudenza)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.ModificheAbrogazioniERinvii, this.items().find(x => x.id == ClipperModule.ModificheAbrogazioniERinvii)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.AllerteAlimentari, this.items().find(x => x.id == ClipperModule.AllerteAlimentari)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.QuesitiECasiRisolti, this.items().find(x => x.id == ClipperModule.QuesitiECasiRisolti)?.unreadItems ?? 0]);\r\n return states;\r\n });\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, increment: number) {\r\n let item = this.items()?.find(x => x.id == module);\r\n if (item) {\r\n item.unreadItems += increment;\r\n this.items.update(values => [...values]);\r\n }\r\n }\r\n\r\n /***\r\n * Get the module unread items\r\n * @param module: the module\r\n * @returns the module unread items\r\n */\r\n getUnreadItems(module: ClipperModule): number {\r\n return this.unreadItems()?.find(x => x[0] === module)?.[1];\r\n }\r\n}\r\n\r\n\r\nexport class ClipperUtils {\r\n\r\n /**\r\n * Check if a model is readable\r\n * @param model : the model to check\r\n * @returns : true if the model is readable\r\n */\r\n static isClipperModelReadable(model: ClipperModel): boolean {\r\n return model !== ClipperModel.NormativaVigente &&\r\n model !== ClipperModel.Scadenze &&\r\n model !== ClipperModel.Segnalazioni;\r\n }\r\n\r\n /**\r\n * Return the Clipper module from model \r\n * @param model: the model\r\n * @returns the module id\r\n */\r\n static getClipperModuleFromModel(model: ClipperModel): ClipperModule | null {\r\n switch (model) {\r\n case ClipperModel.AllerteAlimentari: return ClipperModule.AllerteAlimentari;\r\n case ClipperModel.News:\r\n case ClipperModel.Articoli:\r\n case ClipperModel.Juris: return ClipperModule.News;\r\n case ClipperModel.Quesiti: return ClipperModule.QuesitiECasiRisolti;\r\n case ClipperModel.Coordinamento: return ClipperModule.ModificheAbrogazioniERinvii;\r\n case ClipperModel.GiurisprudenzaRecente: return ClipperModule.Giurisprudenza;\r\n case ClipperModel.NormativaVigente: return ClipperModule.NormativaVigente;\r\n case ClipperModel.Segnalazioni:\r\n case ClipperModel.Scadenze: return ClipperModule.ScadenzeESegnalazioni;\r\n case ClipperModel.AggiornamentoNormativo: return ClipperModule.GazzetteBollettiniEFontiDiverse;\r\n }\r\n return null;\r\n }\r\n\r\n\r\n /**\r\n * Return the Clipper group name\r\n * @param value: the group value \r\n * @returns the group name\r\n */\r\n static getClipperModuleGroupName(value: ClipperModuleGroup): string {\r\n return ClipperModuleGroups.filter((n) => n.value === value)?.[0].name;\r\n }\r\n\r\n /**\r\n * Return the list of modules of a group\r\n * @param value: the module name\r\n * @returns the list of modules\r\n */\r\n static getClipperModuleGroupItems(value: ClipperModuleGroup): NameValueItem<ClipperModule>[] {\r\n return ClipperModules.filter((n) => n.parentValue === value);\r\n }\r\n\r\n /**\r\n * Return the list of available sort options for a list of modules\r\n * @param modules : the modules list\r\n * @returns the list of availbale sort options \r\n */\r\n static getClipperAvailableSortOptions(\r\n modules: NameValueItem<ClipperModule>[] | null | undefined = undefined,\r\n params: ClipperSearchParams | null | undefined = undefined): NameValueItem<ClipperSort>[] {\r\n const options: NameValueItem<ClipperSort>[] = [\r\n { name: \"Data decrescente\", value: ClipperSort.DateDesc },\r\n { name: \"Data crescente\", value: ClipperSort.DateAsc },\r\n { name: \"Data fonte decrescente\", value: ClipperSort.SourceDateDesc },\r\n { name: \"Data fonte crescente\", value: ClipperSort.SourceDateAsc },\r\n { name: \"Rilevanza\", value: ClipperSort.Relevance },\r\n { name: \"Popolarità\", value: ClipperSort.Popularity },\r\n ];\r\n let sortOptions: NameValueItem<number>[] = []\r\n if (params && ClipperSearchUtils.isTextQuery(params)) {\r\n sortOptions.push(options[4]);\r\n }\r\n if (modules?.length > 0) {\r\n if (modules.length === 1 && modules[0].value === ClipperModule.GazzetteBollettiniEFontiDiverse) {\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n } else if ((modules.length <= 3 && modules.filter(x => x.value !== ClipperModule.NormativaVigente\r\n && x.value !== ClipperModule.GazzetteBollettiniEFontiDiverse\r\n && x.value !== ClipperModule.Giurisprudenza).length === 0)\r\n || (modules.length === 1 && modules[0].value === ClipperModule.NormativaVigente)\r\n || (modules.length === 1 && modules[0].value === ClipperModule.Giurisprudenza)) {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n sortOptions.push(options[5]); \r\n } else {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n }\r\n } else {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n }\r\n return sortOptions;\r\n }\r\n\r\n}\r\n\r\nexport class ClipperSearchUtils {\r\n \r\n /**\r\n * Clear the search params object\r\n * @param params : the search params to clear\r\n */\r\n static clear(params: ClipperSearchParams) {\r\n params.sector = null;\r\n params.sectors = null;\r\n params.author = null;\r\n params.authors = null;\r\n params.topic = null;\r\n params.taxonomy = null;\r\n params.taxonomyPath = null;\r\n params.taxonomyNode = null;\r\n params.number = null;\r\n params.fromDate = null;\r\n params.toDate = null;\r\n params.year = null;\r\n params.sourceNumber = null;\r\n params.source = null;\r\n params.sourceFromDate = null;\r\n params.sourceToDate = null;\r\n params.sourceYear = null;\r\n params.tags = null;\r\n params.text = null;\r\n params.titleOnly = false;\r\n params.type = null;\r\n params.showUnreadDocumentsOnly = false;\r\n params.showCommentedDocumentsOnly = false;\r\n params.channels = [...ClipperChannels];\r\n params.changeReason = null;\r\n params.changedNumber = null;\r\n params.changedYear = null;\r\n params.changedTitle = null;\r\n params.modifierNumber = null;\r\n params.modifierYear = null;\r\n params.modifierTitle = null;\r\n params.model = null;\r\n params.models = null;\r\n params.module = null;\r\n params.modules = null;\r\n }\r\n\r\n /**\r\n * Get hte model list related to a list of modules\r\n * @param modules: the modules to check\r\n * @returns the list fo models\r\n */\r\n static getModulesModels(modules: NameValueItem<ClipperModule>[] | null | undefined): ClipperModel[] {\r\n const models: ClipperModel[] = [];\r\n if ((modules?.length ?? 0) > 0) {\r\n modules?.forEach(module => {\r\n switch (module.value) {\r\n case ClipperModule.ScadenzeESegnalazioni:\r\n [ClipperModel.Scadenze, ClipperModel.Segnalazioni].forEach(x => models.push(x));\r\n break;\r\n case ClipperModule.QuesitiECasiRisolti:\r\n models.push(ClipperModel.Quesiti);\r\n break;\r\n case ClipperModule.News:\r\n [ClipperModel.Articoli, ClipperModel.News, ClipperModel.Juris].forEach(x => models.push(x));\r\n break;\r\n case ClipperModule.AllerteAlimentari:\r\n models.push(ClipperModel.AllerteAlimentari);\r\n break;\r\n case ClipperModule.GazzetteBollettiniEFontiDiverse:\r\n models.push(ClipperModel.AggiornamentoNormativo);\r\n break;\r\n case ClipperModule.NormativaVigente:\r\n models.push(ClipperModel.NormativaVigente);\r\n break;\r\n case ClipperModule.ModificheAbrogazioniERinvii:\r\n models.push(ClipperModel.Coordinamento);\r\n break;\r\n case ClipperModule.Giurisprudenza:\r\n models.push(ClipperModel.GiurisprudenzaRecente);\r\n break;\r\n }\r\n });\r\n }\r\n return models;\r\n }\r\n\r\n /**\r\n * Check if current filter is a text based search \r\n * @param params : the search params to check\r\n * @returns true if is a text based search\r\n */\r\n static isTextQuery(params: ClipperSearchParams): boolean {\r\n return params.text != null && params.text?.length > 0;\r\n }\r\n\r\n /**\r\n * Try to add a query\r\n * @param q : the new query\r\n * @param queries : the new query\r\n */\r\n private static concatTextQuery(q: string, queries: string): string {\r\n if (q && q.length > 0) {\r\n if (queries.length == 0 && (q[0] === '+' || q[0] === '-'))\r\n q = q.substring(1);\r\n if (q[q.length - 1] !== '\\\"' && q.indexOf(' ') !== -1)\r\n q = \"\\\"\" + q + \"\\\"\";\r\n if (queries.length > 0) queries += \", \";\r\n queries += q;\r\n }\r\n return queries;\r\n }\r\n\r\n /**\r\n * Normalize text query\r\n * @param text : the text query to normalize\r\n * @returns : the text normalized or null\r\n */\r\n static normalizeTextQuery(text: string): string | null {\r\n if (!text || text.length === 0) return null;\r\n let q: string = '';\r\n let queries: string = '';\r\n for (let i = 0; i < text.length; i++) {\r\n if (text[i] === ',') {\r\n queries = this.concatTextQuery(q.trim(), queries);\r\n q = '';\r\n }\r\n else q += text[i];\r\n }\r\n queries = this.concatTextQuery(q.trim(), queries);\r\n return queries;\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, Signal, computed, inject, signal } from '@angular/core';\r\nimport {\r\n ApiResult, BroadcastService,\r\n FolderTree, NameValueItem, SystemUtils\r\n} from '@arsedizioni/ars-utils/core';\r\nimport { DialogService } from '@arsedizioni/ars-utils/ui';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { Subscription, of, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ClipperDashboard, ClipperDashboardResult, ClipperDocumentInfo, ClipperDocumentStructure, ClipperDocumentUpdateStateParams, ClipperExportDocumentsParams, ClipperLoginInfo, ClipperLoginResult, ClipperModule, ClipperOTPInfo, ClipperQueryArsEventsParams, ClipperQueryArsEventsResult, ClipperQueryReferencesMode, ClipperReferencesSearchParams, ClipperSearchFacetsResult, ClipperSearchParams, ClipperSearchResult, ClipperSendDocumentsByEmailParams, ClipperTaxonomyParams, ClipperUserLink, ClipperUserSearch, ClipperUserWorkingDocument } from '../definitions';\r\nimport { ClipperMessages } from '../messages';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ClipperService implements OnDestroy {\r\n\r\n private httpClient = inject(HttpClient);\r\n private broadcastServiceSubscription?: Subscription | null;\r\n private broadcastService = inject(BroadcastService);\r\n private dialogService = inject(DialogService);\r\n\r\n\r\n private _serviceUri: string | null = null;\r\n get serviceUri(): string {\r\n return this._serviceUri;\r\n }\r\n private _loginInfo: ClipperLoginInfo = null;\r\n get loginInfo(): ClipperLoginInfo {\r\n if (!this._loginInfo) {\r\n const loginInfo = localStorage.getItem('clipper_login');\r\n if (loginInfo) {\r\n try {\r\n this._loginInfo = JSON.parse(loginInfo) as ClipperLoginInfo;\r\n } catch { }\r\n }\r\n }\r\n return this._loginInfo;\r\n }\r\n public readonly loggedIn = signal<boolean>(false);\r\n public readonly loggingIn = signal<boolean>(false);\r\n public readonly snapshot = signal<ClipperSearchResult>(null);\r\n public readonly referencesSnapshot = signal<ClipperSearchResult>(null);\r\n public readonly dashboard: ClipperDashboard = new ClipperDashboard();\r\n public readonly bag = signal<ClipperDocumentInfo[]>([]);\r\n public readonly bagTotal: Signal<number> = computed(() => {\r\n return this.bag().length;\r\n });\r\n public readonly visible = signal<boolean>(false);\r\n public readonly supportsRS = signal<boolean>(false);\r\n\r\n ngOnDestroy() {\r\n if (this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Initialize service\r\n * @param serviceUri : the service uri\r\n */\r\n initialize(\r\n serviceUri: string) {\r\n\r\n // Create unique client id\r\n if (!localStorage.getItem('clipper_client_id')) {\r\n localStorage.setItem('clipper_client_id', SystemUtils.generateUUID());\r\n }\r\n\r\n // Initialize\r\n this._serviceUri = serviceUri;\r\n\r\n // React to message broadcasting\r\n if (!this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription = this.broadcastService.getMessage().subscribe(message => {\r\n if (message.id === ClipperMessages.LOGIN_CHANGED) {\r\n setTimeout(() => {\r\n this.login(\r\n message.data.email,\r\n message.data.password,\r\n true,\r\n message.data.oauth,\r\n message.data.oauthAccessToken).subscribe(r => {\r\n if (!r.success)\r\n this.dialogService.error(r.message, null, \"Errore di Clipper\");\r\n else {\r\n this.dialogService.toast('Connesso a Clipper', 1500, 'power');\r\n // Load bag\r\n this.loadBag();\r\n }\r\n });\r\n }, 500);\r\n } else if (message.id === ClipperMessages.LOGOUT_COMPLETED ||\r\n message.id === ClipperMessages.LOGIN_DISCONNECTED) {\r\n if (this.loggedIn()) {\r\n this.logout().subscribe(r => {\r\n if (!r.success) {\r\n this.dialogService.error(\"<p>\" + r.message + \"</p><br><br><hr><p class='small'><i>Per eliminare la configurazione di Clipper accedere a:<br><b>menu > personalizza > collegamenti</b></i></p>\", null, \"Errore di Clipper\");\r\n } else {\r\n this.dialogService.toast('Disconnesso da Clipper', 1500, 'power_off');\r\n // Empty bag\r\n this.bag.set([]);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Eveluate current session storage in case of page refresh (F5)\r\n if (!this.loggedIn() && this.getToken()) {\r\n // Auto login\r\n this.loggedIn.set(true);\r\n }\r\n }\r\n\r\n /**\r\n * Set JWT tokens\r\n * @param value : the login result\r\n */\r\n private setToken(value: ClipperLoginResult) {\r\n sessionStorage.setItem('clipper_jwt', value.token);\r\n sessionStorage.setItem('clipper_jwt_refresh', value.refreshToken);\r\n }\r\n\r\n /**\r\n * Return current JWT token\r\n * @param refresh: true to get the refresh token. Default is false.\r\n */\r\n getToken(refresh: boolean = false): string {\r\n let token = sessionStorage.getItem(refresh ? 'clipper_jwt_refresh' : 'clipper_jwt');\r\n if (token && token[0] === '\"') {\r\n return token.substring(1, token.length - 1);\r\n }\r\n return token ?? '';\r\n }\r\n\r\n /**\r\n * Perform login \r\n * @param email: the optioanl email if using OAuth2\r\n * @parma password: the optional password if using OAuth2\r\n * @param remember: remember credentials \r\n * @param oauth: the optional open authentication supported\r\n * @param oauthAccessToken: the optional OAuth2 access token\r\n * @returns: the login result\r\n */\r\n login(email: string | null | undefined = null,\r\n password: string | null | undefined = null,\r\n remember: boolean | null | undefined = false,\r\n oauth: LoginOAuthType | null | undefined = null,\r\n oauthAccessToken: string | null | undefined = null) {\r\n this.clear();\r\n this.loggingIn.set(true);\r\n return this.httpClient\r\n .post<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/login2',\r\n {\r\n user: oauth ? null : email,\r\n password: oauth ? null : password,\r\n clientId: localStorage.getItem(\"clipper_client_id\"),\r\n OAUTH: oauth\r\n },\r\n {\r\n headers:\r\n !oauth\r\n ? new HttpHeaders()\r\n : new HttpHeaders()\r\n .set(\"Authorization\", oauthAccessToken)\r\n })\r\n .pipe(\r\n catchError(err => {\r\n this.loggingIn.set(false);\r\n localStorage.removeItem('clipper_login');\r\n return throwError(() => err);\r\n }),\r\n map(r => {\r\n this.loggingIn.set(false);\r\n if (r.success) {\r\n // Store access token\r\n this.setToken(r.value);\r\n const loginInfo: ClipperLoginInfo = {\r\n context: r.value.context,\r\n userSettings: r.value.settings,\r\n OAUTH: oauth\r\n }\r\n if (!oauth) {\r\n loginInfo.userCredentials =\r\n SystemUtils.cipher(\r\n JSON.stringify({\r\n email: email,\r\n password: password,\r\n remember: remember,\r\n }), loginInfo.context.userId.toString());\r\n }\r\n\r\n // Update info\r\n localStorage.setItem(\r\n 'clipper_login',\r\n JSON.stringify(loginInfo)\r\n );\r\n\r\n this._loginInfo = loginInfo;\r\n\r\n this.loggedIn.set(true);\r\n\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Perform logout\r\n */\r\n logout() {\r\n return this.httpClient.post<any>(this._serviceUri + '/logout', {}).pipe(\r\n map(r => {\r\n this.clear();\r\n return r\r\n }),\r\n catchError((_e) => {\r\n this.clear();\r\n return of([]);\r\n }));\r\n }\r\n\r\n /**\r\n * Reset login refresh timer and login state\r\n */\r\n reset() { \r\n // Clear login info\r\n this._loginInfo = null;\r\n\r\n // Logged out\r\n this.loggedIn.set(false);\r\n }\r\n\r\n /**\r\n * Clear login data\r\n */\r\n clear() {\r\n // Clear local storage\r\n sessionStorage.removeItem('clipper_jwt');\r\n sessionStorage.removeItem('clipper_jwt_refresh');\r\n sessionStorage.removeItem('clipper_oauth');\r\n localStorage.removeItem('clipper_login');\r\n\r\n // Reset login\r\n this.reset();\r\n }\r\n\r\n\r\n /**\r\n * Perform token refresh\r\n */\r\n refresh() {\r\n return this.httpClient.get<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/refresh2/?token=' + this.getToken(true)\r\n ).pipe(map(r => {\r\n // Update token\r\n this.setToken(r.value);\r\n }));\r\n }\r\n\r\n /**\r\n * Get a new one time password\r\n * @param id: the optional repository id \r\n */\r\n newOTP(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperOTPInfo>>(\r\n this._serviceUri + '/otp/new/?id=' + id,\r\n );\r\n }\r\n\r\n /**\r\n * Load Ars events calendar\r\n */\r\n events(params: ClipperQueryArsEventsParams) {\r\n return this.httpClient.post<ApiResult<ClipperQueryArsEventsResult>>(\r\n this._serviceUri + '/ars/events',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Query documents\r\n */\r\n query(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Get facets for a query\r\n */\r\n queryFacets(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/facets',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Update document state\r\n */\r\n updateState(params: ClipperDocumentUpdateStateParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/documents/state/update',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Export a document in pdf format\r\n */\r\n exportPdf(id: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/documents/export/' + id,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n\r\n\r\n /**\r\n * Export document list (query or selected items) or export deadlines as ics\r\n */\r\n export(params: ClipperExportDocumentsParams) {\r\n return this.httpClient.post(\r\n this._serviceUri + '/documents/export',\r\n params,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n /**\r\n * Send documents link by email\r\n */\r\n sendTo(params: ClipperSendDocumentsByEmailParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/documents/send',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Display a page the full document report\r\n */\r\n report(id: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/documents/report/' + id,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n /**\r\n * Get document comment\r\n */\r\n comment(id: string) {\r\n return this.httpClient.get<ApiResult<string>>(\r\n this._serviceUri + '/documents/comment/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document info\r\n */\r\n info(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDocumentInfo>>(\r\n this._serviceUri + '/documents/info/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document structure\r\n */\r\n index(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDocumentStructure>>(\r\n this._serviceUri + '/documents/structure/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document last update\r\n */\r\n lastUpdate(id: string) {\r\n return this.httpClient.get<ApiResult<string>>(\r\n this._serviceUri + '/documents/last-update/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Query document references\r\n */\r\n references(params: ClipperReferencesSearchParams) {\r\n let mode = params.mode;\r\n if (!mode) mode = ClipperQueryReferencesMode.ReferencesIn;\r\n switch (mode) {\r\n case ClipperQueryReferencesMode.ReferencesIn:\r\n case ClipperQueryReferencesMode.ReferencesOut:\r\n params.mode = mode;\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/references',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.ChangesIn:\r\n case ClipperQueryReferencesMode.ChangesOut:\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/changes',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.Juris:\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/juris',\r\n params\r\n );\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Get facets for a document references\r\n */\r\n referencesFacets(params: ClipperReferencesSearchParams) {\r\n let mode = params.mode ?? ClipperQueryReferencesMode.ReferencesIn;\r\n switch (mode) {\r\n case ClipperQueryReferencesMode.ReferencesIn:\r\n case ClipperQueryReferencesMode.ReferencesOut:\r\n params.mode = mode;\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/references/facets',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.ChangesIn:\r\n case ClipperQueryReferencesMode.ChangesOut:\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/changes/facets',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.Juris:\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/juris/facets',\r\n params\r\n );\r\n default: return null;\r\n }\r\n }\r\n\r\n /**\r\n * Get document juris articles\r\n */\r\n jurisArticles(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/juris/articles',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Get calendar snapshot based on the deadlines\r\n */\r\n calendarSnapshot(params: any) {\r\n return this.httpClient.post<ApiResult<any>>(\r\n this._serviceUri + '/documents/calendar/snapshot',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Retrieve the taxonomy\r\n */\r\n getTaxonomy(params: ClipperTaxonomyParams | null = null) {\r\n return this.httpClient.post<ApiResult<FolderTree>>(\r\n this._serviceUri + '/taxonomy',\r\n params ?? { model: 0, countItems: false }\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve topics\r\n */\r\n getTopics() {\r\n return this.httpClient.get<ApiResult<NameValueItem<string>[]>>(\r\n this._serviceUri + '/topics'\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve tags\r\n */\r\n getTags() {\r\n return this.httpClient.get<ApiResult<NameValueItem<string>[]>>(\r\n this._serviceUri + '/tags'\r\n );\r\n }\r\n\r\n\r\n ///\r\n // DASHBOARD\r\n ///\r\n /**\r\n * Retrieve current dashboard\r\n */\r\n loadDashboard() {\r\n this.httpClient\r\n .post<ApiResult<ClipperDashboardResult>>(\r\n this._serviceUri + '/account/dashboard',\r\n { refreshing: true }\r\n ).subscribe(r => {\r\n if (r.success) {\r\n this.dashboard.documentUpdates = r.value.documentUpdates;\r\n this.dashboard.expiredDeadlines = r.value.expiredDeadlines;\r\n this.dashboard.expiringDeadlines = r.value.expiringDeadlines;\r\n this.dashboard.isTrial = r.value.isTrial;\r\n this.dashboard.items.set(r.value.items);\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, increment: number) {\r\n console.log('module:' + module);\r\n this.dashboard.updateUnreadItems(module, increment);\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n }\r\n\r\n ///\r\n // LINKS\r\n ///\r\n\r\n /**\r\n * Save a user link\r\n * @param item: the user link\r\n */\r\n saveLink(item: ClipperUserLink) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/links/save',\r\n item\r\n );\r\n }\r\n\r\n /**\r\n * Delete a user link\r\n * @param item: the user link\r\n */\r\n deleteLink(item: ClipperUserLink) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/links/delete',\r\n item\r\n );\r\n }\r\n\r\n\r\n ///\r\n // BAG - WORKING DOCUMENTS\r\n ///\r\n\r\n /**\r\n * Load working documents\r\n */\r\n loadBag() {\r\n return this.httpClient\r\n .get<ApiResult<ClipperUserWorkingDocument[]>>(\r\n this.serviceUri + '/documents/working'\r\n )\r\n .subscribe(\r\n r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n if (r.value) {\r\n const items: ClipperDocumentInfo[] = [];\r\n r.value.forEach(n => {\r\n if (n.documentDescriptor) {\r\n const documentInfo = JSON.parse(n.documentDescriptor);\r\n if (documentInfo) {\r\n n.documentId = documentInfo.DocumentId || documentInfo.Id;\r\n n.title1 = documentInfo.Title1 ?? documentInfo.Title2;\r\n n.title2 = documentInfo.Title1 ? documentInfo.Title2 : null;\r\n }\r\n n.documentDescriptor = null;\r\n items.push(n);\r\n }\r\n });\r\n this.bag.set(items);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Add one or more working document\r\n * @param documentIds : the document ids to add\r\n */\r\n addToBag(documentIds: string[]) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperUserWorkingDocument[]>>(\r\n this.serviceUri + '/documents/working/add',\r\n { documentIds: documentIds }\r\n )\r\n .subscribe(r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n if (r.value) {\r\n const newItems: ClipperDocumentInfo[] = [];\r\n r.value.forEach(n => {\r\n if (n.documentDescriptor) {\r\n const documentInfo = JSON.parse(n.documentDescriptor);\r\n if (documentInfo) {\r\n n.documentId = documentInfo.DocumentId || documentInfo.Id;\r\n n.title1 = documentInfo.Title1 ?? documentInfo.Title2;\r\n n.title2 = documentInfo.Title1 ? documentInfo.Title2 : null;\r\n }\r\n n.documentDescriptor = null;\r\n newItems.push(n);\r\n }\r\n });\r\n if (newItems.length > 0) {\r\n this.bag.update(values => [...values, ...newItems]);\r\n }\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Remove one working document\r\n * @param documentId : the document id\r\n */\r\n removeFromBag(documentId: string) {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/working/delete',\r\n { documentIds: [documentId] }\r\n )\r\n .subscribe(r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n const p = this.bag().findIndex(n => n.documentId === documentId);\r\n if (p !== -1) {\r\n this.bag.update(values => {\r\n values.splice(p, 1);\r\n return [...values];\r\n });\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Clear all working documents\r\n */\r\n clearBag() {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/working/delete',\r\n { deleteAll: true }\r\n )\r\n .subscribe(r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n this.bag.set([]);\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n });\r\n }\r\n\r\n ///\r\n // WORKING SEARCHES\r\n ///\r\n\r\n /**\r\n * Load working searches\r\n * @param: module: the module to load searches for\r\n */\r\n loadSearches(module: ClipperModule) {\r\n return this.httpClient\r\n .get<ApiResult<ClipperUserSearch[]>>(\r\n this.serviceUri + '/documents/searches/?module=' + module\r\n )\r\n }\r\n\r\n /**\r\n * Save a working search\r\n * @param documentIds : the document ids to add\r\n */\r\n saveSearch(params: ClipperUserSearch) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperUserSearch>>(\r\n this.serviceUri + '/documents/searches/save',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Remove one working search\r\n * @param id : the id to remove\r\n */\r\n deleteSearch(id: number) {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/searches/delete',\r\n { id: id }\r\n );\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { BroadcastService } from '@arsedizioni/ars-utils/core';\r\nimport { DialogService } from '@arsedizioni/ars-utils/ui';\r\nimport { Observable, catchError, switchMap, throwError } from 'rxjs';\r\nimport { ClipperService } from '../services/clipper.service';\r\nimport { ClipperMessages } from '../messages';\r\n\r\n@Injectable()\r\nexport class ClipperAuthInterceptor implements HttpInterceptor {\r\n private clipperService = inject(ClipperService);\r\n private broadcastService = inject(BroadcastService);\r\n private dialogService = inject(DialogService);\r\n private lastErrorTime: number = -1;\r\n\r\n intercept(\r\n request: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n request = request.clone({ withCredentials: true });\r\n return next.handle(this.addTokenToRequest(request))\r\n .pipe(\r\n catchError(error => {\r\n this.dialogService.clearBusy();\r\n if (\r\n error instanceof HttpErrorResponse &&\r\n !request.url.includes(\"/login\") &&\r\n error.status === 401\r\n ) {\r\n return this.handle401Error(request, next);\r\n }\r\n const errorTime = new Date().getTime();\r\n if (errorTime - this.lastErrorTime > 5000) {\r\n this.lastErrorTime = errorTime;\r\n const invalidSession = error.status == \"403\";\r\n this.dialogService.error(\r\n \"<p>\" + (error.error?.message ?? error.message ?? \"Impossibile eseguire l'operazione richiesta.\").replaceAll(\"\\r\\n\", \"</p><p>\") + \"</p>\",\r\n null,\r\n \"Errore in Clipper\",\r\n undefined,\r\n undefined,\r\n invalidSession ? 5000 : 15000).afterClosed().subscribe(() => {\r\n if (invalidSession) {\r\n this.broadcastService.sendMessage(ClipperMessages.LOGOUT);\r\n }\r\n });\r\n }\r\n return throwError(() => error);\r\n }));\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n /**\r\n * Handle 401 error\r\n * @param request : the request\r\n * @param next : the http handler\r\n */\r\n private handle401Error(request: HttpRequest<any>, next: HttpHandler) {\r\n if (this.clipperService.loggedIn()) {\r\n return this.clipperService.refresh().pipe(\r\n switchMap(() => {\r\n return next.handle(this.addTokenToRequest(request));\r\n }),\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n /**\r\n * Add token to request\r\n * @param request : the request\r\n * @param token: the token or null to use curre3nt\r\n */\r\n private addTokenToRequest(\r\n request: HttpRequest<any>,\r\n token: string | null = null\r\n ): HttpRequest<any> {\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n if (!token) token = this.clipperService.getToken();\r\n if (token) {\r\n return request.clone({\r\n setHeaders: {\r\n Authorization: 'Bearer ' + token,\r\n 'ngsw-bypass': 'ngsw-bypass'\r\n },\r\n });\r\n }\r\n }\r\n return request;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule()\r\nexport class ArsClipperCommonModule {}\r\n\r\n// Other exports\r\nexport * from './messages';\r\nexport * from './definitions';\r\nexport * from './interceptors/auth.interceptor';\r\nexport * from './services/clipper.service';\r\n\r\n","/*\r\n * Public API Surface of ars-utils\r\n */\r\n\r\nexport * from './common/common.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["catchError"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arsedizioni/ars-utils",
|
|
3
|
-
"version": "18.2.
|
|
3
|
+
"version": "18.2.344",
|
|
4
4
|
"author": {
|
|
5
5
|
"email": "software@arsedizioni.it",
|
|
6
6
|
"name": "Fabio Buscaroli, Alberto Doria"
|
|
@@ -71,18 +71,18 @@
|
|
|
71
71
|
"esm": "./esm2022/support.ui/arsedizioni-ars-utils-support.ui.mjs",
|
|
72
72
|
"default": "./fesm2022/arsedizioni-ars-utils-support.ui.mjs"
|
|
73
73
|
},
|
|
74
|
-
"./ui": {
|
|
75
|
-
"types": "./ui/index.d.ts",
|
|
76
|
-
"esm2022": "./esm2022/ui/arsedizioni-ars-utils-ui.mjs",
|
|
77
|
-
"esm": "./esm2022/ui/arsedizioni-ars-utils-ui.mjs",
|
|
78
|
-
"default": "./fesm2022/arsedizioni-ars-utils-ui.mjs"
|
|
79
|
-
},
|
|
80
74
|
"./tinymce": {
|
|
81
75
|
"types": "./tinymce/index.d.ts",
|
|
82
76
|
"esm2022": "./esm2022/tinymce/arsedizioni-ars-utils-tinymce.mjs",
|
|
83
77
|
"esm": "./esm2022/tinymce/arsedizioni-ars-utils-tinymce.mjs",
|
|
84
78
|
"default": "./fesm2022/arsedizioni-ars-utils-tinymce.mjs"
|
|
85
79
|
},
|
|
80
|
+
"./ui": {
|
|
81
|
+
"types": "./ui/index.d.ts",
|
|
82
|
+
"esm2022": "./esm2022/ui/arsedizioni-ars-utils-ui.mjs",
|
|
83
|
+
"esm": "./esm2022/ui/arsedizioni-ars-utils-ui.mjs",
|
|
84
|
+
"default": "./fesm2022/arsedizioni-ars-utils-ui.mjs"
|
|
85
|
+
},
|
|
86
86
|
"./ui.application": {
|
|
87
87
|
"types": "./ui.application/index.d.ts",
|
|
88
88
|
"esm2022": "./esm2022/ui.application/arsedizioni-ars-utils-ui.application.mjs",
|