@alfresco/adf-core 8.1.0-15022524077 → 8.1.0-15030781322

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.
@@ -51,7 +51,7 @@
51
51
  "REST_API_FAILED": "No se puede acceder al servidor '{{ hostname }}'",
52
52
  "VARIABLE_DROPDOWN_OPTIONS_FAILED": "Ha habido un problema al cargar elementos desplegables. Contacte con el administrador.",
53
53
  "DATA_TABLE_LOAD_FAILED": "Ha habido un problema al cargar elementos de tabla. Contacte con el administrador.",
54
- "DATA_TABLE_EMPTY_CONTENT": "No data found",
54
+ "DATA_TABLE_EMPTY_CONTENT": "No se encontraron datos",
55
55
  "EXTERNAL_PROPERTY_LOAD_FAILED": "Ha habido un problema al cargar una propiedad externa. Contacte con el administrador.",
56
56
  "FILE_NAME": "Nombre del fichero",
57
57
  "TITLE": "Título",
@@ -51,7 +51,7 @@
51
51
  "REST_API_FAILED": "Le serveur '{{ hostname }}' n'est pas accessible",
52
52
  "VARIABLE_DROPDOWN_OPTIONS_FAILED": "Un problème est survenu lors du chargement des éléments de la liste déroulante. Veuillez contacter un administrateur.",
53
53
  "DATA_TABLE_LOAD_FAILED": "Un problème est survenu lors du chargement des éléments du tableau. Veuillez contacter un administrateur.",
54
- "DATA_TABLE_EMPTY_CONTENT": "No data found",
54
+ "DATA_TABLE_EMPTY_CONTENT": "Données introuvables",
55
55
  "EXTERNAL_PROPERTY_LOAD_FAILED": "Un problème est survenu lors du chargement de la propriété externe. Veuillez contacter un administrateur.",
56
56
  "FILE_NAME": "Nom de fichier",
57
57
  "TITLE": "Titre",
@@ -51,7 +51,7 @@
51
51
  "REST_API_FAILED": "Il server '{{ hostname }}' non è raggiungibile",
52
52
  "VARIABLE_DROPDOWN_OPTIONS_FAILED": "Si è verificato un problema durante il caricamento degli elementi a discesa. Si prega di contattare l’amministratore.",
53
53
  "DATA_TABLE_LOAD_FAILED": "Si è verificato un problema durante il caricamento degli elementi della tabella. Si prega di contattare l’amministratore.",
54
- "DATA_TABLE_EMPTY_CONTENT": "No data found",
54
+ "DATA_TABLE_EMPTY_CONTENT": "Nessun dato trovato",
55
55
  "EXTERNAL_PROPERTY_LOAD_FAILED": "Si è verificato un problema durante il caricamento delle proprietà esterne. Si prega di contattare l’amministratore.",
56
56
  "FILE_NAME": "Nome file",
57
57
  "TITLE": "Titolo",
@@ -51,7 +51,7 @@
51
51
  "REST_API_FAILED": "Serwer '{{ hostname }}' jest nieosiągalny",
52
52
  "VARIABLE_DROPDOWN_OPTIONS_FAILED": "Wystąpił problem podczas ładowania elementów rozwijania. Skontaktuj się z administratorem.",
53
53
  "DATA_TABLE_LOAD_FAILED": "Wystąpił problem podczas ładowania elementów tabeli. Skontaktuj się z administratorem.",
54
- "DATA_TABLE_EMPTY_CONTENT": "No data found",
54
+ "DATA_TABLE_EMPTY_CONTENT": "Brak danych",
55
55
  "EXTERNAL_PROPERTY_LOAD_FAILED": "Wystąpił problem podczas ładowania właściwości zewnętrznej. Skontaktuj się z administratorem.",
56
56
  "FILE_NAME": "Nazwa pliku",
57
57
  "TITLE": "Tytuł",
@@ -51,7 +51,7 @@
51
51
  "REST_API_FAILED": "O servidor `{{ hostname }}` não pode ser acedido",
52
52
  "VARIABLE_DROPDOWN_OPTIONS_FAILED": "Problema ao carregar elementos suspensos. Entre em contacto com o administrador.",
53
53
  "DATA_TABLE_LOAD_FAILED": "Problema ao carregar os elementos da tabela. Entre em contacto com o administrador.",
54
- "DATA_TABLE_EMPTY_CONTENT": "No data found",
54
+ "DATA_TABLE_EMPTY_CONTENT": "Não foram encontrados dados",
55
55
  "EXTERNAL_PROPERTY_LOAD_FAILED": "Houve um problema ao carregar a propriedade externa. Entre em contacto com o administrador.",
56
56
  "FILE_NAME": "Nome do ficheiro",
57
57
  "TITLE": "Título",
@@ -72,9 +72,6 @@ export class FormFieldComponent {
72
72
  }
73
73
  }
74
74
  }
75
- ngOnChanges(changes) {
76
- console.log('changes', changes);
77
- }
78
75
  updateReactiveFormControlOnFormRulesEvent(instance) {
79
76
  instance?.formService.formRulesEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
80
77
  instance?.updateReactiveFormControl();
@@ -131,7 +128,7 @@ export class FormFieldComponent {
131
128
  return module.componentFactories.find((x) => x.componentType === decoratedCmp);
132
129
  }
133
130
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: FormFieldComponent, isStandalone: true, selector: "adf-form-field", inputs: { field: "field" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [id]=\"'field-' + field?.id + '-container'\"\n [style.display]=\"field?.isVisible ? 'block' : 'none'\"\n [style]=\"field | adfFieldStyle\"\n [class.adf-focus]=\"focus\"\n (focusin)=\"focusToggle()\"\n (focusout)=\"focusToggle()\">\n <div #container></div>\n</div>\n", dependencies: [{ kind: "pipe", type: FieldStylePipe, name: "adfFieldStyle" }], encapsulation: i0.ViewEncapsulation.None }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: FormFieldComponent, isStandalone: true, selector: "adf-form-field", inputs: { field: "field" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div [id]=\"'field-' + field?.id + '-container'\"\n [style.display]=\"field?.isVisible ? 'block' : 'none'\"\n [style]=\"field | adfFieldStyle\"\n [class.adf-focus]=\"focus\"\n (focusin)=\"focusToggle()\"\n (focusout)=\"focusToggle()\">\n <div #container></div>\n</div>\n", dependencies: [{ kind: "pipe", type: FieldStylePipe, name: "adfFieldStyle" }], encapsulation: i0.ViewEncapsulation.None }); }
135
132
  }
136
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormFieldComponent, decorators: [{
137
134
  type: Component,
@@ -142,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
142
139
  }], field: [{
143
140
  type: Input
144
141
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUdULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFLUixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFXaEUsTUFBTSxPQUFPLGtCQUFrQjtJQVAvQjtRQVdJOzs7OztXQUtHO1FBRUgsVUFBSyxHQUFtQixJQUFJLENBQUM7UUFJN0IsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUVOLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BELHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3BELGVBQVUsR0FB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LEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgQ29tcGlsZXIsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtUmVuZGVyaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tcmVuZGVyaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0VmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93aWRnZXQtdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1GaWVsZE1vZGVsIH0gZnJvbSAnLi4vd2lkZ2V0cy9jb3JlL2Zvcm0tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRTdHlsZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9maWVsZC1zdHlsZS5waXBlJztcbmltcG9ydCB7IEZvcm1GaWVsZFR5cGVzIH0gZnJvbSAnLi4vd2lkZ2V0cy9jb3JlL2Zvcm0tZmllbGQtdHlwZXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5kZWNsYXJlIGNvbnN0IGFkZjogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1mb3JtLWZpZWxkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGltcG9ydHM6IFtGaWVsZFN0eWxlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICAvKipcbiAgICAgKiBDb250YWlucyBhbGwgdGhlIG5lY2Vzc2FyeSBkYXRhIG5lZWRlZCB0byBkZXRlcm1pbmUgd2hhdCBVSSBXaWRnZXRcbiAgICAgKiB0byB1c2Ugd2hlbiByZW5kZXJpbmcgdGhlIGZpZWxkIGluIHRoZSBmb3JtLiBZb3Ugd291bGQgdHlwaWNhbGx5IG5vdFxuICAgICAqIGNyZWF0ZSB0aGlzIGRhdGEgbWFudWFsbHkgYnV0IGluc3RlYWQgY3JlYXRlIHRoZSBmb3JtIGluIEFQUyBhbmQgZXhwb3J0XG4gICAgICogaXQgdG8gZ2V0IHRvIGFsbCB0aGUgYEZvcm1GaWVsZE1vZGVsYCBkZWZpbml0aW9ucy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkOiBGb3JtRmllbGRNb2RlbCA9IG51bGw7XG5cbiAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gICAgZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVJlbmRlcmluZ1NlcnZpY2UgPSBpbmplY3QoRm9ybVJlbmRlcmluZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlzaWJpbGl0eVNlcnZpY2UgPSBpbmplY3QoV2lkZ2V0VmlzaWJpbGl0eVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBpbGVyID0gaW5qZWN0KENvbXBpbGVyKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCB3OiBhbnkgPSB3aW5kb3c7XG4gICAgICAgIGlmICh3LmFkZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB3LmFkZiA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxGaWVsZCA9IHRoaXMuZ2V0RmllbGQoKTtcbiAgICAgICAgaWYgKG9yaWdpbmFsRmllbGQpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVRlbXBsYXRlID0gdGhpcy5maWVsZC5mb3JtLmN1c3RvbUZpZWxkVGVtcGxhdGVzW29yaWdpbmFsRmllbGQudHlwZV07XG4gICAgICAgICAgICBpZiAoY3VzdG9tVGVtcGxhdGUgJiYgdGhpcy5oYXNDb250cm9sbGVyKG9yaWdpbmFsRmllbGQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5nZXRDb21wb25lbnRGYWN0b3J5U3luYyhvcmlnaW5hbEZpZWxkLnR5cGUsIGN1c3RvbVRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmZpZWxkID0gb3JpZ2luYWxGaWVsZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmZvcm1SZW5kZXJpbmdTZXJ2aWNlLnJlc29sdmVDb21wb25lbnRUeXBlKG9yaWdpbmFsRmllbGQpO1xuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmZpZWxkID0gdGhpcy5maWVsZDtcblxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5maWVsZENoYW5nZWQuc3Vic2NyaWJlKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkICYmIHRoaXMuZmllbGQuZm9ybSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UucmVmcmVzaFZpc2liaWxpdHkoZmllbGQuZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRm9ybUZpZWxkQ2hhbmdlZChmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChGb3JtRmllbGRUeXBlcy5pc1JlYWN0aXZlVHlwZShpbnN0YW5jZT8uZmllbGQ/LnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJlYWN0aXZlRm9ybUNvbnRyb2xPbkZvcm1SdWxlc0V2ZW50KGluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2NoYW5nZXMnLCBjaGFuZ2VzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJlYWN0aXZlRm9ybUNvbnRyb2xPbkZvcm1SdWxlc0V2ZW50KGluc3RhbmNlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaW5zdGFuY2U/LmZvcm1TZXJ2aWNlLmZvcm1SdWxlc0V2ZW50LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YW5jZT8udXBkYXRlUmVhY3RpdmVGb3JtQ29udHJvbCgpO1xuICAgICAgICAgICAgaW5zdGFuY2U/LmZpZWxkPy5mb3JtLnZhbGlkYXRlRm9ybShpbnN0YW5jZT8uZmllbGQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyaWdnZXJGb3JtRmllbGRDaGFuZ2VkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IHZvaWQge1xuICAgICAgICBmaWVsZC5mb3JtLm9uRm9ybUZpZWxkQ2hhbmdlZChmaWVsZCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNUb2dnbGUoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb2N1cyA9ICF0aGlzLmZvY3VzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpZWxkKCk6IEZvcm1GaWVsZE1vZGVsIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQ/LnBhcmFtcykge1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlZEZpZWxkID0gdGhpcy5maWVsZC5wYXJhbXMuZmllbGQ7XG4gICAgICAgICAgICBpZiAod3JhcHBlZEZpZWxkPy50eXBlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWRGaWVsZCBhcyBGb3JtRmllbGRNb2RlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5maWVsZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0NvbnRyb2xsZXIodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhZGY/LmNvbXBvbmVudHM/Llt0eXBlXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbXBvbmVudEZhY3RvcnlTeW5jKHR5cGU6IHN0cmluZywgdGVtcGxhdGU6IHN0cmluZyk6IENvbXBvbmVudEZhY3Rvcnk8YW55PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEluZm8gPSBhZGYuY29tcG9uZW50c1t0eXBlXTtcblxuICAgICAgICBpZiAoY29tcG9uZW50SW5mby5mYWN0b3J5KSB7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50SW5mby5mYWN0b3J5O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBzZWxlY3RvcjogYHJ1bnRpbWUtY29tcG9uZW50LSR7dHlwZX1gLFxuICAgICAgICAgICAgdGVtcGxhdGVcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jcmVhdGVDb21wb25lbnRGYWN0b3J5U3luYyh0aGlzLmNvbXBpbGVyLCBtZXRhZGF0YSwgY29tcG9uZW50SW5mby5jbGFzcyk7XG4gICAgICAgIGNvbXBvbmVudEluZm8uZmFjdG9yeSA9IGZhY3Rvcnk7XG4gICAgICAgIHJldHVybiBmYWN0b3J5O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50RmFjdG9yeVN5bmMoY29tcGlsZXI6IENvbXBpbGVyLCBtZXRhZGF0YTogQ29tcG9uZW50LCBjb21wb25lbnRDbGFzczogYW55KTogQ29tcG9uZW50RmFjdG9yeTxhbnk+IHtcbiAgICAgICAgY29uc3QgY21wQ2xhc3MgPSBjb21wb25lbnRDbGFzcyB8fCBjbGFzcyBSdW50aW1lQ29tcG9uZW50IHt9O1xuICAgICAgICBjb25zdCBkZWNvcmF0ZWRDbXAgPSBDb21wb25lbnQobWV0YWRhdGEpKGNtcENsYXNzKTtcbiAgICAgICAgY29uc3QgbW9kdWxlQ2xhc3MgPSBjbGFzcyBSdW50aW1lQ29tcG9uZW50TW9kdWxlIHt9O1xuICAgICAgICBjb25zdCBkZWNvcmF0ZWROZ01vZHVsZSA9IE5nTW9kdWxlKHsgaW1wb3J0czogW10sIGRlY2xhcmF0aW9uczogW2RlY29yYXRlZENtcF0gfSkobW9kdWxlQ2xhc3MpO1xuICAgICAgICBjb25zdCBtb2R1bGUgPSBjb21waWxlci5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoZGVjb3JhdGVkTmdNb2R1bGUpO1xuXG4gICAgICAgIHJldHVybiBtb2R1bGUuY29tcG9uZW50RmFjdG9yaWVzLmZpbmQoKHgpID0+IHguY29tcG9uZW50VHlwZSA9PT0gZGVjb3JhdGVkQ21wKTtcbiAgICB9XG59XG4iLCI8ZGl2IFtpZF09XCInZmllbGQtJyArIGZpZWxkPy5pZCArICctY29udGFpbmVyJ1wiXG4gICAgIFtzdHlsZS5kaXNwbGF5XT1cImZpZWxkPy5pc1Zpc2libGUgPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAgW3N0eWxlXT1cImZpZWxkIHwgYWRmRmllbGRTdHlsZVwiXG4gICAgIFtjbGFzcy5hZGYtZm9jdXNdPVwiZm9jdXNcIlxuICAgICAoZm9jdXNpbik9XCJmb2N1c1RvZ2dsZSgpXCJcbiAgICAgKGZvY3Vzb3V0KT1cImZvY3VzVG9nZ2xlKClcIj5cbiAgICA8ZGl2ICNjb250YWluZXI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUdULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFHUixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFXaEUsTUFBTSxPQUFPLGtCQUFrQjtJQVAvQjtRQVdJOzs7OztXQUtHO1FBRUgsVUFBSyxHQUFtQixJQUFJLENBQUM7UUFJN0IsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUVOLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BELHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3BELGVBQVUsR0FB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OUYsYUFBYSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVPLDBCQUEwQixDQUFDLFFBQWtCLEVBQUUsUUFBbUIsRUFBRSxjQUFtQjtRQUMzRixNQUFNLFFBQVEsR0FBRyxjQUFjLElBQUksTUFBTSxnQkFBZ0I7U0FBRyxDQUFDO1FBQzdELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxNQUFNLFdBQVcsR0FBRyxNQUFNLHNCQUFzQjtTQUFHLENBQUM7UUFDcEQsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvRixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsaUNBQWlDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU3RSxPQUFPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEtBQUssWUFBWSxDQUFDLENBQUM7SUFDbkYsQ0FBQzs4R0EzSFEsa0JBQWtCO2tHQUFsQixrQkFBa0IseUxBQ0ssZ0JBQWdCLDJDQ2pEcEQsdVNBUUEsdUNEc0NjLGNBQWM7OzJGQUVmLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDSSxnQkFBZ0IsY0FDZCxJQUFJLGlCQUVELGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxjQUFjLENBQUM7OEJBSXpCLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFVaEUsS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIENvbXBpbGVyLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBEZXN0cm95UmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybVJlbmRlcmluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXJlbmRlcmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldFZpc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2lkZ2V0LXZpc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtRmllbGRNb2RlbCB9IGZyb20gJy4uL3dpZGdldHMvY29yZS9mb3JtLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkU3R5bGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvZmllbGQtc3R5bGUucGlwZSc7XG5pbXBvcnQgeyBGb3JtRmllbGRUeXBlcyB9IGZyb20gJy4uL3dpZGdldHMvY29yZS9mb3JtLWZpZWxkLXR5cGVzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZGVjbGFyZSBjb25zdCBhZGY6IGFueTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtZm9ybS1maWVsZCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBpbXBvcnRzOiBbRmllbGRTdHlsZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5zIGFsbCB0aGUgbmVjZXNzYXJ5IGRhdGEgbmVlZGVkIHRvIGRldGVybWluZSB3aGF0IFVJIFdpZGdldFxuICAgICAqIHRvIHVzZSB3aGVuIHJlbmRlcmluZyB0aGUgZmllbGQgaW4gdGhlIGZvcm0uIFlvdSB3b3VsZCB0eXBpY2FsbHkgbm90XG4gICAgICogY3JlYXRlIHRoaXMgZGF0YSBtYW51YWxseSBidXQgaW5zdGVhZCBjcmVhdGUgdGhlIGZvcm0gaW4gQVBTIGFuZCBleHBvcnRcbiAgICAgKiBpdCB0byBnZXQgdG8gYWxsIHRoZSBgRm9ybUZpZWxkTW9kZWxgIGRlZmluaXRpb25zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGQ6IEZvcm1GaWVsZE1vZGVsID0gbnVsbDtcblxuICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT47XG5cbiAgICBmb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtUmVuZGVyaW5nU2VydmljZSA9IGluamVjdChGb3JtUmVuZGVyaW5nU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aXNpYmlsaXR5U2VydmljZSA9IGluamVjdChXaWRnZXRWaXNpYmlsaXR5U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcGlsZXIgPSBpbmplY3QoQ29tcGlsZXIpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHc6IGFueSA9IHdpbmRvdztcbiAgICAgICAgaWYgKHcuYWRmID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHcuYWRmID0ge307XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxGaWVsZCA9IHRoaXMuZ2V0RmllbGQoKTtcbiAgICAgICAgaWYgKG9yaWdpbmFsRmllbGQpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVRlbXBsYXRlID0gdGhpcy5maWVsZC5mb3JtLmN1c3RvbUZpZWxkVGVtcGxhdGVzW29yaWdpbmFsRmllbGQudHlwZV07XG4gICAgICAgICAgICBpZiAoY3VzdG9tVGVtcGxhdGUgJiYgdGhpcy5oYXNDb250cm9sbGVyKG9yaWdpbmFsRmllbGQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5nZXRDb21wb25lbnRGYWN0b3J5U3luYyhvcmlnaW5hbEZpZWxkLnR5cGUsIGN1c3RvbVRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmZpZWxkID0gb3JpZ2luYWxGaWVsZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmZvcm1SZW5kZXJpbmdTZXJ2aWNlLnJlc29sdmVDb21wb25lbnRUeXBlKG9yaWdpbmFsRmllbGQpO1xuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmZpZWxkID0gdGhpcy5maWVsZDtcblxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5maWVsZENoYW5nZWQuc3Vic2NyaWJlKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkICYmIHRoaXMuZmllbGQuZm9ybSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UucmVmcmVzaFZpc2liaWxpdHkoZmllbGQuZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRm9ybUZpZWxkQ2hhbmdlZChmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChGb3JtRmllbGRUeXBlcy5pc1JlYWN0aXZlVHlwZShpbnN0YW5jZT8uZmllbGQ/LnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJlYWN0aXZlRm9ybUNvbnRyb2xPbkZvcm1SdWxlc0V2ZW50KGluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUmVhY3RpdmVGb3JtQ29udHJvbE9uRm9ybVJ1bGVzRXZlbnQoaW5zdGFuY2U6IGFueSk6IHZvaWQge1xuICAgICAgICBpbnN0YW5jZT8uZm9ybVNlcnZpY2UuZm9ybVJ1bGVzRXZlbnQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbmNlPy51cGRhdGVSZWFjdGl2ZUZvcm1Db250cm9sKCk7XG4gICAgICAgICAgICBpbnN0YW5jZT8uZmllbGQ/LmZvcm0udmFsaWRhdGVGb3JtKGluc3RhbmNlPy5maWVsZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdHJpZ2dlckZvcm1GaWVsZENoYW5nZWQoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogdm9pZCB7XG4gICAgICAgIGZpZWxkLmZvcm0ub25Gb3JtRmllbGRDaGFuZ2VkKGZpZWxkKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c1RvZ2dsZSgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzID0gIXRoaXMuZm9jdXM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmllbGQoKTogRm9ybUZpZWxkTW9kZWwge1xuICAgICAgICBpZiAodGhpcy5maWVsZD8ucGFyYW1zKSB7XG4gICAgICAgICAgICBjb25zdCB3cmFwcGVkRmllbGQgPSB0aGlzLmZpZWxkLnBhcmFtcy5maWVsZDtcbiAgICAgICAgICAgIGlmICh3cmFwcGVkRmllbGQ/LnR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZEZpZWxkIGFzIEZvcm1GaWVsZE1vZGVsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzQ29udHJvbGxlcih0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGFkZj8uY29tcG9uZW50cz8uW3R5cGVdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29tcG9uZW50RmFjdG9yeVN5bmModHlwZTogc3RyaW5nLCB0ZW1wbGF0ZTogc3RyaW5nKTogQ29tcG9uZW50RmFjdG9yeTxhbnk+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50SW5mbyA9IGFkZi5jb21wb25lbnRzW3R5cGVdO1xuXG4gICAgICAgIGlmIChjb21wb25lbnRJbmZvLmZhY3RvcnkpIHtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRJbmZvLmZhY3Rvcnk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHNlbGVjdG9yOiBgcnVudGltZS1jb21wb25lbnQtJHt0eXBlfWAsXG4gICAgICAgICAgICB0ZW1wbGF0ZVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNyZWF0ZUNvbXBvbmVudEZhY3RvcnlTeW5jKHRoaXMuY29tcGlsZXIsIG1ldGFkYXRhLCBjb21wb25lbnRJbmZvLmNsYXNzKTtcbiAgICAgICAgY29tcG9uZW50SW5mby5mYWN0b3J5ID0gZmFjdG9yeTtcbiAgICAgICAgcmV0dXJuIGZhY3Rvcnk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnRGYWN0b3J5U3luYyhjb21waWxlcjogQ29tcGlsZXIsIG1ldGFkYXRhOiBDb21wb25lbnQsIGNvbXBvbmVudENsYXNzOiBhbnkpOiBDb21wb25lbnRGYWN0b3J5PGFueT4ge1xuICAgICAgICBjb25zdCBjbXBDbGFzcyA9IGNvbXBvbmVudENsYXNzIHx8IGNsYXNzIFJ1bnRpbWVDb21wb25lbnQge307XG4gICAgICAgIGNvbnN0IGRlY29yYXRlZENtcCA9IENvbXBvbmVudChtZXRhZGF0YSkoY21wQ2xhc3MpO1xuICAgICAgICBjb25zdCBtb2R1bGVDbGFzcyA9IGNsYXNzIFJ1bnRpbWVDb21wb25lbnRNb2R1bGUge307XG4gICAgICAgIGNvbnN0IGRlY29yYXRlZE5nTW9kdWxlID0gTmdNb2R1bGUoeyBpbXBvcnRzOiBbXSwgZGVjbGFyYXRpb25zOiBbZGVjb3JhdGVkQ21wXSB9KShtb2R1bGVDbGFzcyk7XG4gICAgICAgIGNvbnN0IG1vZHVsZSA9IGNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzU3luYyhkZWNvcmF0ZWROZ01vZHVsZSk7XG5cbiAgICAgICAgcmV0dXJuIG1vZHVsZS5jb21wb25lbnRGYWN0b3JpZXMuZmluZCgoeCkgPT4geC5jb21wb25lbnRUeXBlID09PSBkZWNvcmF0ZWRDbXApO1xuICAgIH1cbn1cbiIsIjxkaXYgW2lkXT1cIidmaWVsZC0nICsgZmllbGQ/LmlkICsgJy1jb250YWluZXInXCJcbiAgICAgW3N0eWxlLmRpc3BsYXldPVwiZmllbGQ/LmlzVmlzaWJsZSA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgICBbc3R5bGVdPVwiZmllbGQgfCBhZGZGaWVsZFN0eWxlXCJcbiAgICAgW2NsYXNzLmFkZi1mb2N1c109XCJmb2N1c1wiXG4gICAgIChmb2N1c2luKT1cImZvY3VzVG9nZ2xlKClcIlxuICAgICAoZm9jdXNvdXQpPVwiZm9jdXNUb2dnbGUoKVwiPlxuICAgIDxkaXYgI2NvbnRhaW5lcj48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -123,7 +123,7 @@ export class FormRendererComponent {
123
123
  useFactory: formRulesManagerFactory,
124
124
  deps: [Injector]
125
125
  }
126
- ], ngImport: i0, template: "<div id=\"adf-form-renderer\" class=\"{{ formDefinition.className }}\"\n [ngClass]=\"{ 'adf-readonly-form': formDefinition.readOnly }\">\n <div *ngIf=\"formDefinition.hasTabs()\">\n <div *ngIf=\"hasTabs()\" class=\"alfresco-tabs-widget\">\n <mat-tab-group>\n <mat-tab *ngFor=\"let tab of visibleTabs()\" [label]=\"tab.title | translate \">\n <div class=\"adf-form-tab-content\">\n <ng-template *ngTemplateOutlet=\"render; context: { fieldToRender: tab.fields }\" />\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n </div>\n\n <div *ngIf=\"!formDefinition.hasTabs() && formDefinition.hasFields()\">\n <ng-template *ngTemplateOutlet=\"render; context: { fieldToRender: formDefinition.fields }\" />\n </div>\n</div>\n\n<ng-template #render let-fieldToRender=\"fieldToRender\">\n <div *ngFor=\"let currentRootElement of fieldToRender\">\n <div *ngIf=\"currentRootElement.type === 'container' || currentRootElement.type === 'group'\"\n [id]=\"'field-' + currentRootElement?.id + '-container'\"\n class=\"adf-container-widget\"\n [hidden]=\"!currentRootElement?.isVisible\">\n <adf-header-widget [element]=\"currentRootElement\" />\n\n <div *ngIf=\"currentRootElement?.form?.enableFixedSpace; else fixingTemplate\">\n <div class=\"adf-grid-list\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + getNumberOfColumns(currentRootElement) + ', 1fr)' }\"\n *ngIf=\"currentRootElement?.isExpanded\"\n >\n <div class=\"adf-grid-list-item\"\n *ngFor=\"let field of getContainerFields(currentRootElement)\"\n [ngStyle]=\"{ 'grid-area': 'auto / auto / span ' + (field?.rowspan || 1) + ' / span ' + (field?.colspan || 1) }\"\n >\n <adf-form-field *ngIf=\"field\" [field]=\"field\" />\n </div>\n </div>\n </div>\n\n <ng-template #fixingTemplate>\n <section class=\"adf-grid-list-column-view\" *ngIf=\"currentRootElement?.isExpanded\">\n <div class=\"adf-grid-list-single-column\"\n *ngFor=\"let column of currentRootElement?.columns\"\n [style.width.%]=\"getColumnWidth(currentRootElement)\"\n >\n <ng-container *ngFor=\"let field of column?.fields\">\n <ng-container *ngIf=\"field.type === 'section'; else formField\">\n <adf-form-section [field]=\"field\"/>\n </ng-container>\n <ng-template #formField>\n <div class=\"adf-grid-list-column-view-item\">\n {{field?.value ?? 'empty'}}\n <adf-form-field [field]=\"field\"/>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </section>\n </ng-template>\n\n <ng-template #columnViewItem let-column=\"column\">\n <div class=\"adf-grid-list-column-view-item\" *ngFor=\"let field of column?.fields\">\n <adf-form-field *ngIf=\"field\" [field]=\"field\" />\n </div>\n </ng-template>\n </div>\n <div *ngIf=\"currentRootElement.type === 'dynamic-table'\" class=\"adf-container-widget\">\n <adf-form-field [field]=\"currentRootElement\" />\n </div>\n <div class=\"adf-container-widget\"\n *ngIf=\"currentRootElement.type === 'readonly' && currentRootElement.field.params.field.type === 'dynamic-table'\">\n <adf-form-field [field]=\"currentRootElement.field\"/>\n </div>\n </div>\n</ng-template>\n", styles: [".adf-hidden{display:none}.adf-field-list{padding:0;list-style-type:none;width:100%;height:100%}.alfresco-tabs-widget{width:100%;position:absolute}.alfresco-tabs-widget .adf-form-tab-group{width:100%;z-index:9999}.alfresco-tabs-widget .mat-mdc-tab-body{margin-bottom:8em}.alfresco-tabs-widget .mat-mdc-tab-header{z-index:10;margin:0;background-color:#fff;position:sticky;position:-webkit-sticky;margin-left:0!important;top:0}.alfresco-tabs-widget .mat-mdc-tab-body-wrapper{padding-top:16px}.mat-mdc-card-content:first-child{padding-top:1em}.adf-container-widget .adf-grid-list{display:grid}.adf-container-widget .adf-grid-list-column-view{display:flex;margin-right:-1%;width:100%}@media (max-width: 959.9px){.adf-container-widget .adf-grid-list-column-view{display:flow}}.adf-container-widget .adf-grid-list-column-view-item{width:100%;flex-grow:1;box-sizing:border-box;padding-left:1%;padding-right:1%}.adf-container-widget .adf-grid-list-single-column{display:flex;flex-direction:column;flex:1 1 auto}.adf-container-widget .adf-grid-list-item{box-sizing:border-box;padding-left:3px;padding-right:3px}@media (max-width: 959.9px){.adf-container-widget .adf-grid-list-item{flex:1 0 100%}.adf-container-widget .adf-grid-list--column-view{flex-direction:column}.adf-container-widget .adf-grid-list-single-column-xl{display:none}.adf-container-widget .adf-grid-list-single-column-s{display:block;width:90%!important}.adf-container-widget .adf-grid-list-column-view-item{flex:1 0 auto}}.adf-container-widget mat-input-placeholder{top:1.8em}.adf-container-widget .mat-focused{width:100%}.adf-container-widget .mat-focused .mdc-text-field--focused label{color:var(--theme-primary-color)}.adf-container-widget .mat-focused label{transition:transform .15s linear;background-color:.3s cubic-bezier(.55,0,.55,.2)}.adf-container-widget .mat-focused .mat-mdc-form-field-text-prefix{color:var(--theme-primary-color)}.adf-container-widget .mat-grid-tile{overflow:visible;width:80%}.adf-container-widget adf-form-field,.adf-container-widget mat-form-field{width:100%}.adf-form-container{max-width:100%;max-height:100%}.adf-form-container .mat-mdc-card{padding:16px 24px;overflow:hidden}.adf-form-container .mat-mdc-tab-header{position:fixed;z-index:1000}.adf-form-container .mat-mdc-card-header-text{margin:0}.adf-form-container .mat-mdc-card-content{overflow:hidden;padding-top:0}.adf-form-container mat-tab-label-text{font-size:var(--theme-subheading-2-font-size);line-height:var(--theme-headline-line-height);letter-spacing:-.4px;text-align:left;color:#0000008a;text-transform:uppercase}.adf-form-container .mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:4px}.adf-form-container .mat-mdc-text-field-wrapper{margin:0 12px 0 0}.adf-form-title{font-size:var(--theme-title-font-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adf-form-reload-button{position:absolute;right:12px;top:30px}.adf-form-validation-button{position:absolute;right:50px;top:39px;color:var(--theme-accent-color)}.adf-form-validation-button .adf-invalid-color{color:var(--theme-warn-color)}.adf-form-hide-button{display:none}.adf-task-title{text-align:center}.adf-label{width:32px;height:16px;font-size:var(--theme-caption-font-size);line-height:var(--theme-headline-line-height);text-align:left;white-space:nowrap}.adf-form-mat-card-actions{padding-bottom:25px;padding-right:25px}.adf-form-mat-card-actions .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-form-mat-card-actions .mdc-button__label{min-width:58px}.adf-left-label-input-container{display:flex}.adf-left-label-input-container div:nth-child(2){flex:1}.adf-left-label-input-container .mat-mdc-floating-label{top:auto;bottom:0}.adf-left-label{line-height:64px;margin-right:15px}form-field{width:100%}form-field .mat-mdc-input-element{font-size:var(--theme-body-2-font-size);padding-top:8px;line-height:normal}.adf-error-messages-container{min-height:35px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: FormFieldComponent, selector: "adf-form-field", inputs: ["field"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: HeaderWidgetComponent, selector: "adf-header-widget", inputs: ["element"] }, { kind: "component", type: FormSectionComponent, selector: "adf-form-section", inputs: ["field"] }], encapsulation: i0.ViewEncapsulation.None }); }
126
+ ], ngImport: i0, template: "<div id=\"adf-form-renderer\" class=\"{{ formDefinition.className }}\"\n [ngClass]=\"{ 'adf-readonly-form': formDefinition.readOnly }\">\n <div *ngIf=\"formDefinition.hasTabs()\">\n <div *ngIf=\"hasTabs()\" class=\"alfresco-tabs-widget\">\n <mat-tab-group>\n <mat-tab *ngFor=\"let tab of visibleTabs()\" [label]=\"tab.title | translate \">\n <div class=\"adf-form-tab-content\">\n <ng-template *ngTemplateOutlet=\"render; context: { fieldToRender: tab.fields }\" />\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n </div>\n\n <div *ngIf=\"!formDefinition.hasTabs() && formDefinition.hasFields()\">\n <ng-template *ngTemplateOutlet=\"render; context: { fieldToRender: formDefinition.fields }\" />\n </div>\n</div>\n\n<ng-template #render let-fieldToRender=\"fieldToRender\">\n <div *ngFor=\"let currentRootElement of fieldToRender\">\n <div *ngIf=\"currentRootElement.type === 'container' || currentRootElement.type === 'group'\"\n [id]=\"'field-' + currentRootElement?.id + '-container'\"\n class=\"adf-container-widget\"\n [hidden]=\"!currentRootElement?.isVisible\">\n <adf-header-widget [element]=\"currentRootElement\" />\n <div *ngIf=\"currentRootElement?.form?.enableFixedSpace; else fixingTemplate\">\n <div class=\"adf-grid-list\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + getNumberOfColumns(currentRootElement) + ', 1fr)' }\"\n *ngIf=\"currentRootElement?.isExpanded\">\n <div class=\"adf-grid-list-item\"\n *ngFor=\"let field of getContainerFields(currentRootElement)\"\n [ngStyle]=\"{ 'grid-area': 'auto / auto / span ' + (field?.rowspan || 1) + ' / span ' + (field?.colspan || 1) }\">\n <adf-form-field *ngIf=\"field\" [field]=\"field\" />\n </div>\n </div>\n </div>\n\n <ng-template #fixingTemplate>\n <section class=\"adf-grid-list-column-view\" *ngIf=\"currentRootElement?.isExpanded\">\n <div class=\"adf-grid-list-single-column\"\n *ngFor=\"let column of currentRootElement?.columns\"\n [style.width.%]=\"getColumnWidth(currentRootElement)\">\n <ng-container *ngFor=\"let field of column?.fields\">\n <ng-container *ngIf=\"field.type === 'section'; else formField\">\n <adf-form-section [field]=\"field\"/>\n </ng-container>\n <ng-template #formField>\n <div class=\"adf-grid-list-column-view-item\">\n <adf-form-field [field]=\"field\"/>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </section>\n </ng-template>\n\n <ng-template #columnViewItem let-column=\"column\">\n <div class=\"adf-grid-list-column-view-item\" *ngFor=\"let field of column?.fields\">\n <adf-form-field *ngIf=\"field\" [field]=\"field\" />\n </div>\n </ng-template>\n </div>\n <div *ngIf=\"currentRootElement.type === 'dynamic-table'\" class=\"adf-container-widget\">\n <adf-form-field [field]=\"currentRootElement\" />\n </div>\n <div class=\"adf-container-widget\"\n *ngIf=\"currentRootElement.type === 'readonly' && currentRootElement.field.params.field.type === 'dynamic-table'\">\n <adf-form-field [field]=\"currentRootElement.field\"/>\n </div>\n </div>\n</ng-template>\n", styles: [".adf-hidden{display:none}.adf-field-list{padding:0;list-style-type:none;width:100%;height:100%}.alfresco-tabs-widget{width:100%;position:absolute}.alfresco-tabs-widget .adf-form-tab-group{width:100%;z-index:9999}.alfresco-tabs-widget .mat-mdc-tab-body{margin-bottom:8em}.alfresco-tabs-widget .mat-mdc-tab-header{z-index:10;margin:0;background-color:#fff;position:sticky;position:-webkit-sticky;margin-left:0!important;top:0}.alfresco-tabs-widget .mat-mdc-tab-body-wrapper{padding-top:16px}.mat-mdc-card-content:first-child{padding-top:1em}.adf-container-widget .adf-grid-list{display:grid}.adf-container-widget .adf-grid-list-column-view{display:flex;margin-right:-1%;width:100%}@media (max-width: 959.9px){.adf-container-widget .adf-grid-list-column-view{display:flow}}.adf-container-widget .adf-grid-list-column-view-item{width:100%;flex-grow:1;box-sizing:border-box;padding-left:1%;padding-right:1%}.adf-container-widget .adf-grid-list-single-column{display:flex;flex-direction:column;flex:1 1 auto}.adf-container-widget .adf-grid-list-item{box-sizing:border-box;padding-left:3px;padding-right:3px}@media (max-width: 959.9px){.adf-container-widget .adf-grid-list-item{flex:1 0 100%}.adf-container-widget .adf-grid-list--column-view{flex-direction:column}.adf-container-widget .adf-grid-list-single-column-xl{display:none}.adf-container-widget .adf-grid-list-single-column-s{display:block;width:90%!important}.adf-container-widget .adf-grid-list-column-view-item{flex:1 0 auto}}.adf-container-widget mat-input-placeholder{top:1.8em}.adf-container-widget .mat-focused{width:100%}.adf-container-widget .mat-focused .mdc-text-field--focused label{color:var(--theme-primary-color)}.adf-container-widget .mat-focused label{transition:transform .15s linear;background-color:.3s cubic-bezier(.55,0,.55,.2)}.adf-container-widget .mat-focused .mat-mdc-form-field-text-prefix{color:var(--theme-primary-color)}.adf-container-widget .mat-grid-tile{overflow:visible;width:80%}.adf-container-widget adf-form-field,.adf-container-widget mat-form-field{width:100%}.adf-form-container{max-width:100%;max-height:100%}.adf-form-container .mat-mdc-card{padding:16px 24px;overflow:hidden}.adf-form-container .mat-mdc-tab-header{position:fixed;z-index:1000}.adf-form-container .mat-mdc-card-header-text{margin:0}.adf-form-container .mat-mdc-card-content{overflow:hidden;padding-top:0}.adf-form-container mat-tab-label-text{font-size:var(--theme-subheading-2-font-size);line-height:var(--theme-headline-line-height);letter-spacing:-.4px;text-align:left;color:#0000008a;text-transform:uppercase}.adf-form-container .mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:4px}.adf-form-container .mat-mdc-text-field-wrapper{margin:0 12px 0 0}.adf-form-title{font-size:var(--theme-title-font-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adf-form-reload-button{position:absolute;right:12px;top:30px}.adf-form-validation-button{position:absolute;right:50px;top:39px;color:var(--theme-accent-color)}.adf-form-validation-button .adf-invalid-color{color:var(--theme-warn-color)}.adf-form-hide-button{display:none}.adf-task-title{text-align:center}.adf-label{width:32px;height:16px;font-size:var(--theme-caption-font-size);line-height:var(--theme-headline-line-height);text-align:left;white-space:nowrap}.adf-form-mat-card-actions{padding-bottom:25px;padding-right:25px}.adf-form-mat-card-actions .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-form-mat-card-actions .mdc-button__label{min-width:58px}.adf-left-label-input-container{display:flex}.adf-left-label-input-container div:nth-child(2){flex:1}.adf-left-label-input-container .mat-mdc-floating-label{top:auto;bottom:0}.adf-left-label{line-height:64px;margin-right:15px}form-field{width:100%}form-field .mat-mdc-input-element{font-size:var(--theme-body-2-font-size);padding-top:8px;line-height:normal}.adf-error-messages-container{min-height:35px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: FormFieldComponent, selector: "adf-form-field", inputs: ["field"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: HeaderWidgetComponent, selector: "adf-header-widget", inputs: ["element"] }, { kind: "component", type: FormSectionComponent, selector: "adf-form-section", inputs: ["field"] }], encapsulation: i0.ViewEncapsulation.None }); }
127
127
  }
128
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormRendererComponent, decorators: [{
129
129
  type: Component,
@@ -147,7 +147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
147
147
  NgClass,
148
148
  HeaderWidgetComponent,
149
149
  FormSectionComponent
150
- ], encapsulation: ViewEncapsulation.None, template: "<div id=\"adf-form-renderer\" class=\"{{ formDefinition.className }}\"\n [ngClass]=\"{ 'adf-readonly-form': formDefinition.readOnly }\">\n <div *ngIf=\"formDefinition.hasTabs()\">\n <div *ngIf=\"hasTabs()\" class=\"alfresco-tabs-widget\">\n <mat-tab-group>\n <mat-tab *ngFor=\"let tab of visibleTabs()\" [label]=\"tab.title | translate \">\n <div class=\"adf-form-tab-content\">\n <ng-template *ngTemplateOutlet=\"render; context: { fieldToRender: tab.fields }\" />\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n </div>\n\n <div *ngIf=\"!formDefinition.hasTabs() && formDefinition.hasFields()\">\n <ng-template *ngTemplateOutlet=\"render; context: { fieldToRender: formDefinition.fields }\" />\n </div>\n</div>\n\n<ng-template #render let-fieldToRender=\"fieldToRender\">\n <div *ngFor=\"let currentRootElement of fieldToRender\">\n <div *ngIf=\"currentRootElement.type === 'container' || currentRootElement.type === 'group'\"\n [id]=\"'field-' + currentRootElement?.id + '-container'\"\n class=\"adf-container-widget\"\n [hidden]=\"!currentRootElement?.isVisible\">\n <adf-header-widget [element]=\"currentRootElement\" />\n\n <div *ngIf=\"currentRootElement?.form?.enableFixedSpace; else fixingTemplate\">\n <div class=\"adf-grid-list\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + getNumberOfColumns(currentRootElement) + ', 1fr)' }\"\n *ngIf=\"currentRootElement?.isExpanded\"\n >\n <div class=\"adf-grid-list-item\"\n *ngFor=\"let field of getContainerFields(currentRootElement)\"\n [ngStyle]=\"{ 'grid-area': 'auto / auto / span ' + (field?.rowspan || 1) + ' / span ' + (field?.colspan || 1) }\"\n >\n <adf-form-field *ngIf=\"field\" [field]=\"field\" />\n </div>\n </div>\n </div>\n\n <ng-template #fixingTemplate>\n <section class=\"adf-grid-list-column-view\" *ngIf=\"currentRootElement?.isExpanded\">\n <div class=\"adf-grid-list-single-column\"\n *ngFor=\"let column of currentRootElement?.columns\"\n [style.width.%]=\"getColumnWidth(currentRootElement)\"\n >\n <ng-container *ngFor=\"let field of column?.fields\">\n <ng-container *ngIf=\"field.type === 'section'; else formField\">\n <adf-form-section [field]=\"field\"/>\n </ng-container>\n <ng-template #formField>\n <div class=\"adf-grid-list-column-view-item\">\n {{field?.value ?? 'empty'}}\n <adf-form-field [field]=\"field\"/>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </section>\n </ng-template>\n\n <ng-template #columnViewItem let-column=\"column\">\n <div class=\"adf-grid-list-column-view-item\" *ngFor=\"let field of column?.fields\">\n <adf-form-field *ngIf=\"field\" [field]=\"field\" />\n </div>\n </ng-template>\n </div>\n <div *ngIf=\"currentRootElement.type === 'dynamic-table'\" class=\"adf-container-widget\">\n <adf-form-field [field]=\"currentRootElement\" />\n </div>\n <div class=\"adf-container-widget\"\n *ngIf=\"currentRootElement.type === 'readonly' && currentRootElement.field.params.field.type === 'dynamic-table'\">\n <adf-form-field [field]=\"currentRootElement.field\"/>\n </div>\n </div>\n</ng-template>\n", styles: [".adf-hidden{display:none}.adf-field-list{padding:0;list-style-type:none;width:100%;height:100%}.alfresco-tabs-widget{width:100%;position:absolute}.alfresco-tabs-widget .adf-form-tab-group{width:100%;z-index:9999}.alfresco-tabs-widget .mat-mdc-tab-body{margin-bottom:8em}.alfresco-tabs-widget .mat-mdc-tab-header{z-index:10;margin:0;background-color:#fff;position:sticky;position:-webkit-sticky;margin-left:0!important;top:0}.alfresco-tabs-widget .mat-mdc-tab-body-wrapper{padding-top:16px}.mat-mdc-card-content:first-child{padding-top:1em}.adf-container-widget .adf-grid-list{display:grid}.adf-container-widget .adf-grid-list-column-view{display:flex;margin-right:-1%;width:100%}@media (max-width: 959.9px){.adf-container-widget .adf-grid-list-column-view{display:flow}}.adf-container-widget .adf-grid-list-column-view-item{width:100%;flex-grow:1;box-sizing:border-box;padding-left:1%;padding-right:1%}.adf-container-widget .adf-grid-list-single-column{display:flex;flex-direction:column;flex:1 1 auto}.adf-container-widget .adf-grid-list-item{box-sizing:border-box;padding-left:3px;padding-right:3px}@media (max-width: 959.9px){.adf-container-widget .adf-grid-list-item{flex:1 0 100%}.adf-container-widget .adf-grid-list--column-view{flex-direction:column}.adf-container-widget .adf-grid-list-single-column-xl{display:none}.adf-container-widget .adf-grid-list-single-column-s{display:block;width:90%!important}.adf-container-widget .adf-grid-list-column-view-item{flex:1 0 auto}}.adf-container-widget mat-input-placeholder{top:1.8em}.adf-container-widget .mat-focused{width:100%}.adf-container-widget .mat-focused .mdc-text-field--focused label{color:var(--theme-primary-color)}.adf-container-widget .mat-focused label{transition:transform .15s linear;background-color:.3s cubic-bezier(.55,0,.55,.2)}.adf-container-widget .mat-focused .mat-mdc-form-field-text-prefix{color:var(--theme-primary-color)}.adf-container-widget .mat-grid-tile{overflow:visible;width:80%}.adf-container-widget adf-form-field,.adf-container-widget mat-form-field{width:100%}.adf-form-container{max-width:100%;max-height:100%}.adf-form-container .mat-mdc-card{padding:16px 24px;overflow:hidden}.adf-form-container .mat-mdc-tab-header{position:fixed;z-index:1000}.adf-form-container .mat-mdc-card-header-text{margin:0}.adf-form-container .mat-mdc-card-content{overflow:hidden;padding-top:0}.adf-form-container mat-tab-label-text{font-size:var(--theme-subheading-2-font-size);line-height:var(--theme-headline-line-height);letter-spacing:-.4px;text-align:left;color:#0000008a;text-transform:uppercase}.adf-form-container .mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:4px}.adf-form-container .mat-mdc-text-field-wrapper{margin:0 12px 0 0}.adf-form-title{font-size:var(--theme-title-font-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adf-form-reload-button{position:absolute;right:12px;top:30px}.adf-form-validation-button{position:absolute;right:50px;top:39px;color:var(--theme-accent-color)}.adf-form-validation-button .adf-invalid-color{color:var(--theme-warn-color)}.adf-form-hide-button{display:none}.adf-task-title{text-align:center}.adf-label{width:32px;height:16px;font-size:var(--theme-caption-font-size);line-height:var(--theme-headline-line-height);text-align:left;white-space:nowrap}.adf-form-mat-card-actions{padding-bottom:25px;padding-right:25px}.adf-form-mat-card-actions .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-form-mat-card-actions .mdc-button__label{min-width:58px}.adf-left-label-input-container{display:flex}.adf-left-label-input-container div:nth-child(2){flex:1}.adf-left-label-input-container .mat-mdc-floating-label{top:auto;bottom:0}.adf-left-label{line-height:64px;margin-right:15px}form-field{width:100%}form-field .mat-mdc-input-element{font-size:var(--theme-body-2-font-size);padding-top:8px;line-height:normal}.adf-error-messages-container{min-height:35px}\n"] }]
150
+ ], encapsulation: ViewEncapsulation.None, template: "<div id=\"adf-form-renderer\" class=\"{{ formDefinition.className }}\"\n [ngClass]=\"{ 'adf-readonly-form': formDefinition.readOnly }\">\n <div *ngIf=\"formDefinition.hasTabs()\">\n <div *ngIf=\"hasTabs()\" class=\"alfresco-tabs-widget\">\n <mat-tab-group>\n <mat-tab *ngFor=\"let tab of visibleTabs()\" [label]=\"tab.title | translate \">\n <div class=\"adf-form-tab-content\">\n <ng-template *ngTemplateOutlet=\"render; context: { fieldToRender: tab.fields }\" />\n </div>\n </mat-tab>\n </mat-tab-group>\n </div>\n </div>\n\n <div *ngIf=\"!formDefinition.hasTabs() && formDefinition.hasFields()\">\n <ng-template *ngTemplateOutlet=\"render; context: { fieldToRender: formDefinition.fields }\" />\n </div>\n</div>\n\n<ng-template #render let-fieldToRender=\"fieldToRender\">\n <div *ngFor=\"let currentRootElement of fieldToRender\">\n <div *ngIf=\"currentRootElement.type === 'container' || currentRootElement.type === 'group'\"\n [id]=\"'field-' + currentRootElement?.id + '-container'\"\n class=\"adf-container-widget\"\n [hidden]=\"!currentRootElement?.isVisible\">\n <adf-header-widget [element]=\"currentRootElement\" />\n <div *ngIf=\"currentRootElement?.form?.enableFixedSpace; else fixingTemplate\">\n <div class=\"adf-grid-list\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + getNumberOfColumns(currentRootElement) + ', 1fr)' }\"\n *ngIf=\"currentRootElement?.isExpanded\">\n <div class=\"adf-grid-list-item\"\n *ngFor=\"let field of getContainerFields(currentRootElement)\"\n [ngStyle]=\"{ 'grid-area': 'auto / auto / span ' + (field?.rowspan || 1) + ' / span ' + (field?.colspan || 1) }\">\n <adf-form-field *ngIf=\"field\" [field]=\"field\" />\n </div>\n </div>\n </div>\n\n <ng-template #fixingTemplate>\n <section class=\"adf-grid-list-column-view\" *ngIf=\"currentRootElement?.isExpanded\">\n <div class=\"adf-grid-list-single-column\"\n *ngFor=\"let column of currentRootElement?.columns\"\n [style.width.%]=\"getColumnWidth(currentRootElement)\">\n <ng-container *ngFor=\"let field of column?.fields\">\n <ng-container *ngIf=\"field.type === 'section'; else formField\">\n <adf-form-section [field]=\"field\"/>\n </ng-container>\n <ng-template #formField>\n <div class=\"adf-grid-list-column-view-item\">\n <adf-form-field [field]=\"field\"/>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </section>\n </ng-template>\n\n <ng-template #columnViewItem let-column=\"column\">\n <div class=\"adf-grid-list-column-view-item\" *ngFor=\"let field of column?.fields\">\n <adf-form-field *ngIf=\"field\" [field]=\"field\" />\n </div>\n </ng-template>\n </div>\n <div *ngIf=\"currentRootElement.type === 'dynamic-table'\" class=\"adf-container-widget\">\n <adf-form-field [field]=\"currentRootElement\" />\n </div>\n <div class=\"adf-container-widget\"\n *ngIf=\"currentRootElement.type === 'readonly' && currentRootElement.field.params.field.type === 'dynamic-table'\">\n <adf-form-field [field]=\"currentRootElement.field\"/>\n </div>\n </div>\n</ng-template>\n", styles: [".adf-hidden{display:none}.adf-field-list{padding:0;list-style-type:none;width:100%;height:100%}.alfresco-tabs-widget{width:100%;position:absolute}.alfresco-tabs-widget .adf-form-tab-group{width:100%;z-index:9999}.alfresco-tabs-widget .mat-mdc-tab-body{margin-bottom:8em}.alfresco-tabs-widget .mat-mdc-tab-header{z-index:10;margin:0;background-color:#fff;position:sticky;position:-webkit-sticky;margin-left:0!important;top:0}.alfresco-tabs-widget .mat-mdc-tab-body-wrapper{padding-top:16px}.mat-mdc-card-content:first-child{padding-top:1em}.adf-container-widget .adf-grid-list{display:grid}.adf-container-widget .adf-grid-list-column-view{display:flex;margin-right:-1%;width:100%}@media (max-width: 959.9px){.adf-container-widget .adf-grid-list-column-view{display:flow}}.adf-container-widget .adf-grid-list-column-view-item{width:100%;flex-grow:1;box-sizing:border-box;padding-left:1%;padding-right:1%}.adf-container-widget .adf-grid-list-single-column{display:flex;flex-direction:column;flex:1 1 auto}.adf-container-widget .adf-grid-list-item{box-sizing:border-box;padding-left:3px;padding-right:3px}@media (max-width: 959.9px){.adf-container-widget .adf-grid-list-item{flex:1 0 100%}.adf-container-widget .adf-grid-list--column-view{flex-direction:column}.adf-container-widget .adf-grid-list-single-column-xl{display:none}.adf-container-widget .adf-grid-list-single-column-s{display:block;width:90%!important}.adf-container-widget .adf-grid-list-column-view-item{flex:1 0 auto}}.adf-container-widget mat-input-placeholder{top:1.8em}.adf-container-widget .mat-focused{width:100%}.adf-container-widget .mat-focused .mdc-text-field--focused label{color:var(--theme-primary-color)}.adf-container-widget .mat-focused label{transition:transform .15s linear;background-color:.3s cubic-bezier(.55,0,.55,.2)}.adf-container-widget .mat-focused .mat-mdc-form-field-text-prefix{color:var(--theme-primary-color)}.adf-container-widget .mat-grid-tile{overflow:visible;width:80%}.adf-container-widget adf-form-field,.adf-container-widget mat-form-field{width:100%}.adf-form-container{max-width:100%;max-height:100%}.adf-form-container .mat-mdc-card{padding:16px 24px;overflow:hidden}.adf-form-container .mat-mdc-tab-header{position:fixed;z-index:1000}.adf-form-container .mat-mdc-card-header-text{margin:0}.adf-form-container .mat-mdc-card-content{overflow:hidden;padding-top:0}.adf-form-container mat-tab-label-text{font-size:var(--theme-subheading-2-font-size);line-height:var(--theme-headline-line-height);letter-spacing:-.4px;text-align:left;color:#0000008a;text-transform:uppercase}.adf-form-container .mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:4px}.adf-form-container .mat-mdc-text-field-wrapper{margin:0 12px 0 0}.adf-form-title{font-size:var(--theme-title-font-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adf-form-reload-button{position:absolute;right:12px;top:30px}.adf-form-validation-button{position:absolute;right:50px;top:39px;color:var(--theme-accent-color)}.adf-form-validation-button .adf-invalid-color{color:var(--theme-warn-color)}.adf-form-hide-button{display:none}.adf-task-title{text-align:center}.adf-label{width:32px;height:16px;font-size:var(--theme-caption-font-size);line-height:var(--theme-headline-line-height);text-align:left;white-space:nowrap}.adf-form-mat-card-actions{padding-bottom:25px;padding-right:25px}.adf-form-mat-card-actions .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-form-mat-card-actions .mdc-button__label{min-width:58px}.adf-left-label-input-container{display:flex}.adf-left-label-input-container div:nth-child(2){flex:1}.adf-left-label-input-container .mat-mdc-floating-label{top:auto;bottom:0}.adf-left-label{line-height:64px;margin-right:15px}form-field{width:100%}form-field .mat-mdc-input-element{font-size:var(--theme-body-2-font-size);padding-top:8px;line-height:normal}.adf-error-messages-container{min-height:35px}\n"] }]
151
151
  }], ctorParameters: () => [{ type: i1.FormService }, { type: i2.FormRulesManager }, { type: undefined, decorators: [{
152
152
  type: Optional
153
153
  }, {
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
159
159
  }], readOnly: [{
160
160
  type: Input
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy9mb3JtLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL2Zvcm0tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0NBQWtDLEVBQWtDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUcsT0FBTyxFQUFrQyxTQUFTLEVB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dGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGb3JtUnVsZXNNYW5hZ2VyLCBmb3JtUnVsZXNNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscy9mb3JtLXJ1bGVzLm1vZGVsJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGT1JNX0ZJRUxEX01PREVMX1JFTkRFUl9NSURETEVXQVJFLCBGb3JtRmllbGRNb2RlbFJlbmRlck1pZGRsZXdhcmUgfSBmcm9tICcuL21pZGRsZXdhcmVzL21pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQ29udGFpbmVyTW9kZWwsIEZvcm1GaWVsZE1vZGVsLCBGb3JtTW9kZWwsIFRhYk1vZGVsIH0gZnJvbSAnLi93aWRnZXRzJztcbmltcG9ydCB7IEhlYWRlcldpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9oZWFkZXIvaGVhZGVyLndpZGdldCc7XG5pbXBvcnQgeyBGb3JtU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1zZWN0aW9uL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1mb3JtLXJlbmRlcmVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvcm1SdWxlc01hbmFnZXIsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBmb3JtUnVsZXNNYW5hZ2VyRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl1cbiAgICAgICAgfVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTmdTdHlsZSxcbiAgICAgICAgRm9ybUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgSGVhZGVyV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICBGb3JtU2VjdGlvbkNvbXBvbmVudFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtUmVuZGVyZXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBmb3JtRGVmaW5pdGlvbjogRm9ybU1vZGVsO1xuXG4gICAgQElucHV0KClcbiAgICByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgZGVidWdNb2RlOiBib29sZWFuO1xuXG4gICAgZmllbGRzOiBGb3JtRmllbGRNb2RlbFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZm9ybVJ1bGVzTWFuYWdlcjogRm9ybVJ1bGVzTWFuYWdlcjxUPixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChGT1JNX0ZJRUxEX01PREVMX1JFTkRFUl9NSURETEVXQVJFKVxuICAgICAgICBwcml2YXRlIG1pZGRsZXdhcmVTZXJ2aWNlcz86IEZvcm1GaWVsZE1vZGVsUmVuZGVyTWlkZGxld2FyZVtdXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVuTWlkZGxld2FyZVNlcnZpY2VzKCk7XG4gICAgICAgIGlmICghdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtUnVsZXNNYW5hZ2VyLmluaXRpYWxpemUodGhpcy5mb3JtRGVmaW5pdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5mb3JtUnVsZXNNYW5hZ2VyLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBoYXNUYWJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRGVmaW5pdGlvbi50YWJzICYmIHRoaXMuZm9ybURlZmluaXRpb24udGFicy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHZpc2libGVUYWJzKCk6IFRhYk1vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRGVmaW5pdGlvbi50YWJzLmZpbHRlcigodGFiKSA9PiB0YWIuaXNWaXNpYmxlKTtcbiAgICB9XG5cbiAgICBnZXROdW1iZXJPZkNvbHVtbnMoY29udGVudDogQ29udGFpbmVyTW9kZWwpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKGNvbnRlbnQuanNvbj8ubnVtYmVyT2ZDb2x1bW5zIHx8IDEpID4gKGNvbnRlbnQuY29sdW1ucz8ubGVuZ3RoIHx8IDEpXG4gICAgICAgICAgICA/IGNvbnRlbnQuanNvbj8ubnVtYmVyT2ZDb2x1bW5zIHx8IDFcbiAgICAgICAgICAgIDogY29udGVudC5jb2x1bW5zPy5sZW5ndGggfHwgMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXJpYWxpemVzIGNvbHVtbiBmaWVsZHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250ZW50IGNvbnRhaW5lciBtb2RlbFxuICAgICAqIEByZXR1cm5zIGEgbGlzdCBvZiBmb3JtIGZpZWxkIG1vZGVsc1xuICAgICAqL1xuICAgIGdldENvbnRhaW5lckZpZWxkcyhjb250ZW50OiBDb250YWluZXJNb2RlbCk6IEZvcm1GaWVsZE1vZGVsW10ge1xuICAgICAgICBjb25zdCBzZXJpYWxpc2VkRm9ybUZpZWxkczogRm9ybUZpZWxkTW9kZWxbXSA9IFtdO1xuICAgICAgICBjb25zdCBtYXhDb2x1bW5GaWVsZHNTaXplID0gdGhpcy5nZXRNYXhDb2x1bW5GaWVsZFNpemUoY29udGVudCk7XG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCBtYXhDb2x1bW5GaWVsZHNTaXplOyByb3dJbmRleCsrKSB7XG4gICAgICAgICAgICBjb250ZW50Py5jb2x1bW5zLmZsYXRNYXAoKGN1cnJlbnRDb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbj8uZmllbGRzW3Jvd0luZGV4XSkge1xuICAgICAgICAgICAgICAgICAgICBzZXJpYWxpc2VkRm9ybUZpZWxkcy5wdXNoKGN1cnJlbnRDb2x1bW4/LmZpZWxkc1tyb3dJbmRleF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Um93RWxlbWVudENvbFNwYW4gPSBjdXJyZW50Q29sdW1uPy5maWVsZHNbMF0/LmNvbHNwYW47XG4gICAgICAgICAgICAgICAgICAgIGlmICghIWZpcnN0Um93RWxlbWVudENvbFNwYW4gJiYgcm93SW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpcnN0Um93RWxlbWVudENvbFNwYW47IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGlzZWRGb3JtRmllbGRzLnB1c2gobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZXJpYWxpc2VkRm9ybUZpZWxkcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1heENvbHVtbkZpZWxkU2l6ZShjb250ZW50OiBDb250YWluZXJNb2RlbCk6IG51bWJlciB7XG4gICAgICAgIGxldCBtYXhGaWVsZFNpemUgPSAwO1xuICAgICAgICBpZiAoY29udGVudD8uY29sdW1ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbWF4RmllbGRTaXplID0gY29udGVudD8uY29sdW1ucz8ucmVkdWNlKChwcmV2Q29sdW1uLCBjdXJyZW50Q29sdW1uKSA9PlxuICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW4uZmllbGRzLmxlbmd0aCA+IHByZXZDb2x1bW4/LmZpZWxkcz8ubGVuZ3RoID8gY3VycmVudENvbHVtbiA6IHByZXZDb2x1bW5cbiAgICAgICAgICAgICk/LmZpZWxkcz8ubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXhGaWVsZFNpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHRoZSBjb2x1bW4gd2lkdGggYmFzZWQgb24gdGhlIG51bWJlck9mQ29sdW1ucyBhbmQgY3VycmVudCBmaWVsZCdzIGNvbHNwYW4gcHJvcGVydHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250YWluZXIgY29udGFpbmVyIG1vZGVsXG4gICAgICogQHJldHVybnMgdGhlIGNvbHVtbiB3aWR0aCBmb3IgdGhlIGdpdmVuIG1vZGVsXG4gICAgICovXG4gICAgZ2V0Q29sdW1uV2lkdGgoY29udGFpbmVyOiBDb250YWluZXJNb2RlbCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgZmllbGQgfSA9IGNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgY29sc3BhbiA9IGZpZWxkID8gZmllbGQuY29sc3BhbiA6IDE7XG4gICAgICAgIHJldHVybiAoMTAwIC8gZmllbGQubnVtYmVyT2ZDb2x1bW5zKSAqIGNvbHNwYW4gKyAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJ1bk1pZGRsZXdhcmVTZXJ2aWNlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWlkZGxld2FyZVNlcnZpY2VzICYmIHRoaXMubWlkZGxld2FyZVNlcnZpY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1GaWVsZHMgPSB0aGlzLmZvcm1EZWZpbml0aW9uLmdldEZvcm1GaWVsZHMoKTtcblxuICAgICAgICAgICAgZm9ybUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubWlkZGxld2FyZVNlcnZpY2VzLmZvckVhY2goKG1pZGRsZXdhcmVTZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtaWRkbGV3YXJlU2VydmljZS50eXBlID09PSBmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZCA9IG1pZGRsZXdhcmVTZXJ2aWNlLmdldFBhcnNlZEZpZWxkKGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGlkPVwiYWRmLWZvcm0tcmVuZGVyZXJcIiBjbGFzcz1cInt7IGZvcm1EZWZpbml0aW9uLmNsYXNzTmFtZSB9fVwiXG4gICAgIFtuZ0NsYXNzXT1cInsgJ2FkZi1yZWFkb25seS1mb3JtJzogZm9ybURlZmluaXRpb24ucmVhZE9ubHkgfVwiPlxuICAgIDxkaXYgKm5nSWY9XCJmb3JtRGVmaW5pdGlvbi5oYXNUYWJzKClcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImhhc1RhYnMoKVwiIGNsYXNzPVwiYWxmcmVzY28tdGFicy13aWRnZXRcIj5cbiAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgIDxtYXQtdGFiICAgKm5nRm9yPVwibGV0IHRhYiBvZiB2aXNpYmxlVGFicygpXCIgW2xhYmVsXT1cInRhYi50aXRsZSB8IHRyYW5zbGF0ZSBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1mb3JtLXRhYi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXI7IGNvbnRleHQ6IHsgZmllbGRUb1JlbmRlcjogdGFiLmZpZWxkcyB9XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCIhZm9ybURlZmluaXRpb24uaGFzVGFicygpICYmIGZvcm1EZWZpbml0aW9uLmhhc0ZpZWxkcygpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlcjsgY29udGV4dDogeyBmaWVsZFRvUmVuZGVyOiBmb3JtRGVmaW5pdGlvbi5maWVsZHMgfVwiIC8+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNyZW5kZXIgbGV0LWZpZWxkVG9SZW5kZXI9XCJmaWVsZFRvUmVuZGVyXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgY3VycmVudFJvb3RFbGVtZW50IG9mIGZpZWxkVG9SZW5kZXJcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRSb290RWxlbWVudC50eXBlID09PSAnY29udGFpbmVyJyB8fCBjdXJyZW50Um9vdEVsZW1lbnQudHlwZSA9PT0gJ2dyb3VwJ1wiXG4gICAgICAgICAgICAgW2lkXT1cIidmaWVsZC0nICsgY3VycmVudFJvb3RFbGVtZW50Py5pZCArICctY29udGFpbmVyJ1wiXG4gICAgICAgICAgICAgY2xhc3M9XCJhZGYtY29udGFpbmVyLXdpZGdldFwiXG4gICAgICAgICAgICAgW2hpZGRlbl09XCIhY3VycmVudFJvb3RFbGVtZW50Py5pc1Zpc2libGVcIj5cbiAgICAgICAgICAgIDxhZGYtaGVhZGVyLXdpZGdldCBbZWxlbWVudF09XCJjdXJyZW50Um9vdEVsZW1lbnRcIiAvPlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFJvb3RFbGVtZW50Py5mb3JtPy5lbmFibGVGaXhlZFNwYWNlOyBlbHNlIGZpeGluZ1RlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1ncmlkLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogJ3JlcGVhdCgnICsgZ2V0TnVtYmVyT2ZDb2x1bW5zKGN1cnJlbnRSb290RWxlbWVudCkgKyAnLCAxZnIpJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VycmVudFJvb3RFbGVtZW50Py5pc0V4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZ3JpZC1saXN0LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBnZXRDb250YWluZXJGaWVsZHMoY3VycmVudFJvb3RFbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC1hcmVhJzogJ2F1dG8gLyBhdXRvIC8gc3BhbiAnICsgKGZpZWxkPy5yb3dzcGFuIHx8IDEpICsgJyAvIHNwYW4gJyArIChmaWVsZD8uY29sc3BhbiB8fCAxKSB9XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1mb3JtLWZpZWxkICpuZ0lmPVwiZmllbGRcIiBbZmllbGRdPVwiZmllbGRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ZpeGluZ1RlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWRmLWdyaWQtbGlzdC1jb2x1bW4tdmlld1wiICpuZ0lmPVwiY3VycmVudFJvb3RFbGVtZW50Py5pc0V4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZ3JpZC1saXN0LXNpbmdsZS1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY3VycmVudFJvb3RFbGVtZW50Py5jb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJnZXRDb2x1bW5XaWR0aChjdXJyZW50Um9vdEVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgY29sdW1uPy5maWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ3NlY3Rpb24nOyBlbHNlIGZvcm1GaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWZvcm0tc2VjdGlvbiBbZmllbGRdPVwiZmllbGRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmb3JtRmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZ3JpZC1saXN0LWNvbHVtbi12aWV3LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZmllbGQ/LnZhbHVlID8/ICdlbXB0eSd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1mb3JtLWZpZWxkIFtmaWVsZF09XCJmaWVsZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtblZpZXdJdGVtIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWdyaWQtbGlzdC1jb2x1bW4tdmlldy1pdGVtXCIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGNvbHVtbj8uZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZm9ybS1maWVsZCAqbmdJZj1cImZpZWxkXCIgW2ZpZWxkXT1cImZpZWxkXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFJvb3RFbGVtZW50LnR5cGUgPT09ICdkeW5hbWljLXRhYmxlJ1wiIGNsYXNzPVwiYWRmLWNvbnRhaW5lci13aWRnZXRcIj5cbiAgICAgICAgICAgIDxhZGYtZm9ybS1maWVsZCBbZmllbGRdPVwiY3VycmVudFJvb3RFbGVtZW50XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtY29udGFpbmVyLXdpZGdldFwiXG4gICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50Um9vdEVsZW1lbnQudHlwZSA9PT0gJ3JlYWRvbmx5JyAmJiBjdXJyZW50Um9vdEVsZW1lbnQuZmllbGQucGFyYW1zLmZpZWxkLnR5cGUgPT09ICdkeW5hbWljLXRhYmxlJ1wiPlxuICAgICAgICAgICAgPGFkZi1mb3JtLWZpZWxkIFtmaWVsZF09XCJjdXJyZW50Um9vdEVsZW1lbnQuZmllbGRcIi8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy9mb3JtLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL2Zvcm0tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0NBQWtDLEVBQWtDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUcsT0FBTyxFQUFrQyxTQUFTLEVB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dGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGb3JtUnVsZXNNYW5hZ2VyLCBmb3JtUnVsZXNNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscy9mb3JtLXJ1bGVzLm1vZGVsJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGT1JNX0ZJRUxEX01PREVMX1JFTkRFUl9NSURETEVXQVJFLCBGb3JtRmllbGRNb2RlbFJlbmRlck1pZGRsZXdhcmUgfSBmcm9tICcuL21pZGRsZXdhcmVzL21pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQ29udGFpbmVyTW9kZWwsIEZvcm1GaWVsZE1vZGVsLCBGb3JtTW9kZWwsIFRhYk1vZGVsIH0gZnJvbSAnLi93aWRnZXRzJztcbmltcG9ydCB7IEhlYWRlcldpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9oZWFkZXIvaGVhZGVyLndpZGdldCc7XG5pbXBvcnQgeyBGb3JtU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1zZWN0aW9uL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1mb3JtLXJlbmRlcmVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvcm1SdWxlc01hbmFnZXIsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBmb3JtUnVsZXNNYW5hZ2VyRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl1cbiAgICAgICAgfVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTmdTdHlsZSxcbiAgICAgICAgRm9ybUZpZWxkQ29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgSGVhZGVyV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICBGb3JtU2VjdGlvbkNvbXBvbmVudFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtUmVuZGVyZXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBmb3JtRGVmaW5pdGlvbjogRm9ybU1vZGVsO1xuXG4gICAgQElucHV0KClcbiAgICByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgZGVidWdNb2RlOiBib29sZWFuO1xuXG4gICAgZmllbGRzOiBGb3JtRmllbGRNb2RlbFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZm9ybVJ1bGVzTWFuYWdlcjogRm9ybVJ1bGVzTWFuYWdlcjxUPixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChGT1JNX0ZJRUxEX01PREVMX1JFTkRFUl9NSURETEVXQVJFKVxuICAgICAgICBwcml2YXRlIG1pZGRsZXdhcmVTZXJ2aWNlcz86IEZvcm1GaWVsZE1vZGVsUmVuZGVyTWlkZGxld2FyZVtdXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVuTWlkZGxld2FyZVNlcnZpY2VzKCk7XG4gICAgICAgIGlmICghdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtUnVsZXNNYW5hZ2VyLmluaXRpYWxpemUodGhpcy5mb3JtRGVmaW5pdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5mb3JtUnVsZXNNYW5hZ2VyLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBoYXNUYWJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRGVmaW5pdGlvbi50YWJzICYmIHRoaXMuZm9ybURlZmluaXRpb24udGFicy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHZpc2libGVUYWJzKCk6IFRhYk1vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRGVmaW5pdGlvbi50YWJzLmZpbHRlcigodGFiKSA9PiB0YWIuaXNWaXNpYmxlKTtcbiAgICB9XG5cbiAgICBnZXROdW1iZXJPZkNvbHVtbnMoY29udGVudDogQ29udGFpbmVyTW9kZWwpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKGNvbnRlbnQuanNvbj8ubnVtYmVyT2ZDb2x1bW5zIHx8IDEpID4gKGNvbnRlbnQuY29sdW1ucz8ubGVuZ3RoIHx8IDEpXG4gICAgICAgICAgICA/IGNvbnRlbnQuanNvbj8ubnVtYmVyT2ZDb2x1bW5zIHx8IDFcbiAgICAgICAgICAgIDogY29udGVudC5jb2x1bW5zPy5sZW5ndGggfHwgMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXJpYWxpemVzIGNvbHVtbiBmaWVsZHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250ZW50IGNvbnRhaW5lciBtb2RlbFxuICAgICAqIEByZXR1cm5zIGEgbGlzdCBvZiBmb3JtIGZpZWxkIG1vZGVsc1xuICAgICAqL1xuICAgIGdldENvbnRhaW5lckZpZWxkcyhjb250ZW50OiBDb250YWluZXJNb2RlbCk6IEZvcm1GaWVsZE1vZGVsW10ge1xuICAgICAgICBjb25zdCBzZXJpYWxpc2VkRm9ybUZpZWxkczogRm9ybUZpZWxkTW9kZWxbXSA9IFtdO1xuICAgICAgICBjb25zdCBtYXhDb2x1bW5GaWVsZHNTaXplID0gdGhpcy5nZXRNYXhDb2x1bW5GaWVsZFNpemUoY29udGVudCk7XG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCBtYXhDb2x1bW5GaWVsZHNTaXplOyByb3dJbmRleCsrKSB7XG4gICAgICAgICAgICBjb250ZW50Py5jb2x1bW5zLmZsYXRNYXAoKGN1cnJlbnRDb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbj8uZmllbGRzW3Jvd0luZGV4XSkge1xuICAgICAgICAgICAgICAgICAgICBzZXJpYWxpc2VkRm9ybUZpZWxkcy5wdXNoKGN1cnJlbnRDb2x1bW4/LmZpZWxkc1tyb3dJbmRleF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Um93RWxlbWVudENvbFNwYW4gPSBjdXJyZW50Q29sdW1uPy5maWVsZHNbMF0/LmNvbHNwYW47XG4gICAgICAgICAgICAgICAgICAgIGlmICghIWZpcnN0Um93RWxlbWVudENvbFNwYW4gJiYgcm93SW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpcnN0Um93RWxlbWVudENvbFNwYW47IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGlzZWRGb3JtRmllbGRzLnB1c2gobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZXJpYWxpc2VkRm9ybUZpZWxkcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1heENvbHVtbkZpZWxkU2l6ZShjb250ZW50OiBDb250YWluZXJNb2RlbCk6IG51bWJlciB7XG4gICAgICAgIGxldCBtYXhGaWVsZFNpemUgPSAwO1xuICAgICAgICBpZiAoY29udGVudD8uY29sdW1ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbWF4RmllbGRTaXplID0gY29udGVudD8uY29sdW1ucz8ucmVkdWNlKChwcmV2Q29sdW1uLCBjdXJyZW50Q29sdW1uKSA9PlxuICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW4uZmllbGRzLmxlbmd0aCA+IHByZXZDb2x1bW4/LmZpZWxkcz8ubGVuZ3RoID8gY3VycmVudENvbHVtbiA6IHByZXZDb2x1bW5cbiAgICAgICAgICAgICk/LmZpZWxkcz8ubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXhGaWVsZFNpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHRoZSBjb2x1bW4gd2lkdGggYmFzZWQgb24gdGhlIG51bWJlck9mQ29sdW1ucyBhbmQgY3VycmVudCBmaWVsZCdzIGNvbHNwYW4gcHJvcGVydHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250YWluZXIgY29udGFpbmVyIG1vZGVsXG4gICAgICogQHJldHVybnMgdGhlIGNvbHVtbiB3aWR0aCBmb3IgdGhlIGdpdmVuIG1vZGVsXG4gICAgICovXG4gICAgZ2V0Q29sdW1uV2lkdGgoY29udGFpbmVyOiBDb250YWluZXJNb2RlbCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgZmllbGQgfSA9IGNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgY29sc3BhbiA9IGZpZWxkID8gZmllbGQuY29sc3BhbiA6IDE7XG4gICAgICAgIHJldHVybiAoMTAwIC8gZmllbGQubnVtYmVyT2ZDb2x1bW5zKSAqIGNvbHNwYW4gKyAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJ1bk1pZGRsZXdhcmVTZXJ2aWNlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWlkZGxld2FyZVNlcnZpY2VzICYmIHRoaXMubWlkZGxld2FyZVNlcnZpY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1GaWVsZHMgPSB0aGlzLmZvcm1EZWZpbml0aW9uLmdldEZvcm1GaWVsZHMoKTtcblxuICAgICAgICAgICAgZm9ybUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubWlkZGxld2FyZVNlcnZpY2VzLmZvckVhY2goKG1pZGRsZXdhcmVTZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtaWRkbGV3YXJlU2VydmljZS50eXBlID09PSBmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZCA9IG1pZGRsZXdhcmVTZXJ2aWNlLmdldFBhcnNlZEZpZWxkKGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGlkPVwiYWRmLWZvcm0tcmVuZGVyZXJcIiBjbGFzcz1cInt7IGZvcm1EZWZpbml0aW9uLmNsYXNzTmFtZSB9fVwiXG4gICAgIFtuZ0NsYXNzXT1cInsgJ2FkZi1yZWFkb25seS1mb3JtJzogZm9ybURlZmluaXRpb24ucmVhZE9ubHkgfVwiPlxuICAgIDxkaXYgKm5nSWY9XCJmb3JtRGVmaW5pdGlvbi5oYXNUYWJzKClcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImhhc1RhYnMoKVwiIGNsYXNzPVwiYWxmcmVzY28tdGFicy13aWRnZXRcIj5cbiAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgIDxtYXQtdGFiICAgKm5nRm9yPVwibGV0IHRhYiBvZiB2aXNpYmxlVGFicygpXCIgW2xhYmVsXT1cInRhYi50aXRsZSB8IHRyYW5zbGF0ZSBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1mb3JtLXRhYi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXI7IGNvbnRleHQ6IHsgZmllbGRUb1JlbmRlcjogdGFiLmZpZWxkcyB9XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCIhZm9ybURlZmluaXRpb24uaGFzVGFicygpICYmIGZvcm1EZWZpbml0aW9uLmhhc0ZpZWxkcygpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlcjsgY29udGV4dDogeyBmaWVsZFRvUmVuZGVyOiBmb3JtRGVmaW5pdGlvbi5maWVsZHMgfVwiIC8+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNyZW5kZXIgbGV0LWZpZWxkVG9SZW5kZXI9XCJmaWVsZFRvUmVuZGVyXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgY3VycmVudFJvb3RFbGVtZW50IG9mIGZpZWxkVG9SZW5kZXJcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRSb290RWxlbWVudC50eXBlID09PSAnY29udGFpbmVyJyB8fCBjdXJyZW50Um9vdEVsZW1lbnQudHlwZSA9PT0gJ2dyb3VwJ1wiXG4gICAgICAgICAgICAgW2lkXT1cIidmaWVsZC0nICsgY3VycmVudFJvb3RFbGVtZW50Py5pZCArICctY29udGFpbmVyJ1wiXG4gICAgICAgICAgICAgY2xhc3M9XCJhZGYtY29udGFpbmVyLXdpZGdldFwiXG4gICAgICAgICAgICAgW2hpZGRlbl09XCIhY3VycmVudFJvb3RFbGVtZW50Py5pc1Zpc2libGVcIj5cbiAgICAgICAgICAgIDxhZGYtaGVhZGVyLXdpZGdldCBbZWxlbWVudF09XCJjdXJyZW50Um9vdEVsZW1lbnRcIiAvPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRSb290RWxlbWVudD8uZm9ybT8uZW5hYmxlRml4ZWRTcGFjZTsgZWxzZSBmaXhpbmdUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZ3JpZC1saXN0XCJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6ICdyZXBlYXQoJyArIGdldE51bWJlck9mQ29sdW1ucyhjdXJyZW50Um9vdEVsZW1lbnQpICsgJywgMWZyKScgfVwiXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRSb290RWxlbWVudD8uaXNFeHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWdyaWQtbGlzdC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZ2V0Q29udGFpbmVyRmllbGRzKGN1cnJlbnRSb290RWxlbWVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtYXJlYSc6ICdhdXRvIC8gYXV0byAvIHNwYW4gJyArIChmaWVsZD8ucm93c3BhbiB8fCAxKSArICcgLyBzcGFuICcgKyAoZmllbGQ/LmNvbHNwYW4gfHwgMSkgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1mb3JtLWZpZWxkICpuZ0lmPVwiZmllbGRcIiBbZmllbGRdPVwiZmllbGRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ZpeGluZ1RlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWRmLWdyaWQtbGlzdC1jb2x1bW4tdmlld1wiICpuZ0lmPVwiY3VycmVudFJvb3RFbGVtZW50Py5pc0V4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZ3JpZC1saXN0LXNpbmdsZS1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY3VycmVudFJvb3RFbGVtZW50Py5jb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJnZXRDb2x1bW5XaWR0aChjdXJyZW50Um9vdEVsZW1lbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjb2x1bW4/LmZpZWxkc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC50eXBlID09PSAnc2VjdGlvbic7IGVsc2UgZm9ybUZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtZm9ybS1zZWN0aW9uIFtmaWVsZF09XCJmaWVsZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Zvcm1GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1ncmlkLWxpc3QtY29sdW1uLXZpZXctaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1mb3JtLWZpZWxkIFtmaWVsZF09XCJmaWVsZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtblZpZXdJdGVtIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWdyaWQtbGlzdC1jb2x1bW4tdmlldy1pdGVtXCIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGNvbHVtbj8uZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZm9ybS1maWVsZCAqbmdJZj1cImZpZWxkXCIgW2ZpZWxkXT1cImZpZWxkXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFJvb3RFbGVtZW50LnR5cGUgPT09ICdkeW5hbWljLXRhYmxlJ1wiIGNsYXNzPVwiYWRmLWNvbnRhaW5lci13aWRnZXRcIj5cbiAgICAgICAgICAgIDxhZGYtZm9ybS1maWVsZCBbZmllbGRdPVwiY3VycmVudFJvb3RFbGVtZW50XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtY29udGFpbmVyLXdpZGdldFwiXG4gICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50Um9vdEVsZW1lbnQudHlwZSA9PT0gJ3JlYWRvbmx5JyAmJiBjdXJyZW50Um9vdEVsZW1lbnQuZmllbGQucGFyYW1zLmZpZWxkLnR5cGUgPT09ICdkeW5hbWljLXRhYmxlJ1wiPlxuICAgICAgICAgICAgPGFkZi1mb3JtLWZpZWxkIFtmaWVsZF09XCJjdXJyZW50Um9vdEVsZW1lbnQuZmllbGRcIi8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==